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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/CMatchParser.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/CMatchParser.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_CMatchParser_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/CMatchParser.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.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_CMatchParser_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/CMatchParser.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.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/CMatchParser.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
44
60
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
46
62
/* Driver template for the LEMON parser generator.
47
63
** Copyright 1991-1995 by D. Richard Hipp.
48
64
**
69
85
#line 39 "manip/CMatchParser.lem"
70
86
 
71
87
 
72
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
 
88
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
73
89
// This file is part of PUMA.
74
90
// Copyright (C) 1999-2003  The PUMA developer team.
75
91
//                                                                
94
110
// Base class for syntax tree match visitors.
95
111
 
96
112
 
97
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
113
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
98
114
// This file is part of PUMA.
99
115
// Copyright (C) 1999-2003  The PUMA developer team.
100
116
//                                                                
117
133
#define __CTranslationUnit__
118
134
 
119
135
 
120
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
136
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
121
137
 
122
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
138
#line 139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
123
139
 
124
140
#ifndef __ac_fwd_ExtAC__
125
141
#define __ac_fwd_ExtAC__
126
142
class ExtAC;
127
143
namespace AC {
128
144
  template <class JoinPoint>
129
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
130
 
  template <class JoinPoint>
131
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
132
 
  template <class JoinPoint>
133
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
134
 
  template <class JoinPoint>
135
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
136
 
  template <class JoinPoint>
137
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
138
 
  template <class JoinPoint, class Binding>
139
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
140
 
  template <class JoinPoint>
141
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
142
 
  template <class JoinPoint, class Binding>
143
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
144
 
  template <class JoinPoint>
145
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
146
 
  template <class JoinPoint>
147
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
148
 
  template <class JoinPoint>
149
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
150
 
}
151
 
#endif
152
 
 
153
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
154
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
155
 
#endif
156
 
 
157
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
158
 
 
159
 
#line 160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
160
 
 
161
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
162
 
// This file is part of PUMA.
163
 
// Copyright (C) 1999-2003  The PUMA developer team.
164
 
//                                                                
165
 
// This program is free software;  you can redistribute it and/or 
166
 
// modify it under the terms of the GNU General Public License as 
167
 
// published by the Free Software Foundation; either version 2 of 
168
 
// the License, or (at your option) any later version.            
169
 
//                                                                
170
 
// This program is distributed in the hope that it will be useful,
171
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
172
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
173
 
// GNU General Public License for more details.                   
174
 
//                                                                
175
 
// You should have received a copy of the GNU General Public      
176
 
// License along with this program; if not, write to the Free     
177
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
178
 
// MA  02111-1307  USA                                            
179
 
 
180
 
#ifndef __ext_ac_ah__
181
 
#define __ext_ac_ah__
182
 
 
183
 
 
184
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
185
 
// This file is part of PUMA.
186
 
// Copyright (C) 1999-2003  The PUMA developer team.
187
 
//                                                                
188
 
// This program is free software;  you can redistribute it and/or 
189
 
// modify it under the terms of the GNU General Public License as 
190
 
// published by the Free Software Foundation; either version 2 of 
191
 
// the License, or (at your option) any later version.            
192
 
//                                                                
193
 
// This program is distributed in the hope that it will be useful,
194
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
195
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
196
 
// GNU General Public License for more details.                   
197
 
//                                                                
198
 
// You should have received a copy of the GNU General Public      
199
 
// License along with this program; if not, write to the Free     
200
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
201
 
// MA  02111-1307  USA                                            
202
 
 
203
 
#ifndef __ACTree_h__
204
 
#define __ACTree_h__
205
 
 
206
 
 
207
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
208
 
 
209
 
#line 210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
210
 
 
211
 
#ifndef __ac_fwd_ExtACTree__
212
 
#define __ac_fwd_ExtACTree__
213
 
class ExtACTree;
214
 
namespace AC {
215
 
  template <class JoinPoint>
216
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
217
 
  template <class JoinPoint>
218
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
219
 
}
220
 
#endif
221
 
 
222
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
223
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
224
 
#endif
225
 
 
226
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
227
 
 
228
 
#line 229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
229
 
 
230
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
231
 
// This file is part of PUMA.
232
 
// Copyright (C) 1999-2003  The PUMA developer team.
233
 
//                                                                
234
 
// This program is free software;  you can redistribute it and/or 
235
 
// modify it under the terms of the GNU General Public License as 
236
 
// published by the Free Software Foundation; either version 2 of 
237
 
// the License, or (at your option) any later version.            
238
 
//                                                                
239
 
// This program is distributed in the hope that it will be useful,
240
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
241
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
242
 
// GNU General Public License for more details.                   
243
 
//                                                                
244
 
// You should have received a copy of the GNU General Public      
245
 
// License along with this program; if not, write to the Free     
246
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
247
 
// MA  02111-1307  USA                                            
248
 
 
249
 
#ifndef __ExtACTree_ah__
250
 
#define __ExtACTree_ah__
251
 
 
252
 
// TODO:
253
 
// this shall be introduced by the ExtAC aspect as soon as the include cycle
254
 
// problem is solved!
255
 
 
256
 
namespace Puma {
257
 
  class CTree;
258
 
}
259
 
 
260
 
using namespace Puma;
261
 
 
262
 
 
263
 
#line 264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
264
 
class WinIfExists;
265
 
class WinImportHandler;
266
 
class WinMacros;
267
 
class CMatchSyntax;
268
 
class ExtGnu;
269
 
class ExtAC;
270
 
class ExtACBuilderCoupling;
271
 
class ExtACSyntaxCoupling;
272
 
class ExtACKeywords;
273
 
class WinAsm;
274
 
class WinDeclSpecs;
275
 
class WinMemberExplSpec;
276
 
class WinTypeKeywords;
277
 
class PragmaOnceUnitState;
278
 
class PragmaOnce;
279
 
class CCExprResolve;
280
 
class CExprResolve;
281
 
 
282
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
283
 
class ExtACTree {
284
 
#line 285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
285
 
 
286
 
public:
287
 
  static ExtACTree *aspectof () {
288
 
    static ExtACTree __instance;
289
 
    return &__instance;
290
 
  }
291
 
  static ExtACTree *aspectOf () {
292
 
    return aspectof ();
293
 
  }
294
 
private:
295
 
 
296
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
297
 
 
298
 
#line 299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
299
 
  friend class ::WinIfExists;
300
 
  friend class ::WinImportHandler;
301
 
  friend class ::WinMacros;
302
 
  friend class ::CMatchSyntax;
303
 
  friend class ::ExtGnu;
304
 
  friend class ::ExtAC;
305
 
  friend class ::ExtACBuilderCoupling;
306
 
  friend class ::ExtACSyntaxCoupling;
307
 
  friend class ::ExtACKeywords;
308
 
  friend class ::WinAsm;
309
 
  friend class ::WinDeclSpecs;
310
 
  friend class ::WinMemberExplSpec;
311
 
  friend class ::WinTypeKeywords;
312
 
  friend class ::PragmaOnceUnitState;
313
 
  friend class ::PragmaOnce;
314
 
  friend class ::CCExprResolve;
315
 
  friend class ::CExprResolve;
316
 
 
317
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
318
 
 
319
 
  
320
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
321
 
 
322
 
  
323
 
  // implemented in a separate .cc file, because Builder.h is needed!
324
 
  void delete_tree (CTree *t);
325
 
  
326
 
  
327
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
328
 
 
329
 
  
330
 
  
331
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
332
 
 
333
 
public: template<class JoinPoint> void __a0_after 
334
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
335
 
 
336
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
337
 
(JoinPoint *tjp)
338
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
339
 
 {
340
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
341
 
 
342
 
  typedef typename JoinPoint::That __JP_That;
343
 
  typedef typename JoinPoint::Target __JP_Target;
344
 
  typedef typename JoinPoint::Result __JP_Result;
345
 
 
346
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
347
 
 
348
 
    tjp->that ()->_intro_members = 0;
349
 
  }
350
 
#line 351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
351
 
 
352
 
private:
353
 
 
354
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
355
 
 
356
 
  
357
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
358
 
 
359
 
public: template<class JoinPoint> void __a1_before 
360
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
361
 
 
362
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
363
 
(JoinPoint *tjp)
364
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
365
 
 {
366
 
#line 367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
367
 
 
368
 
  typedef typename JoinPoint::That __JP_That;
369
 
  typedef typename JoinPoint::Target __JP_Target;
370
 
  typedef typename JoinPoint::Result __JP_Result;
371
 
 
372
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
373
 
 
374
 
    delete_tree (tjp->that ()->_intro_members);
375
 
  }
376
 
#line 377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
377
 
 
378
 
private:
379
 
 
380
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
381
 
 
382
 
};
383
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
384
 
 
385
 
namespace AC {
386
 
  template <class JoinPoint>
387
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
388
 
    ::ExtACTree::aspectof()->__a0_after (tjp);
389
 
  }
390
 
  template <class JoinPoint>
391
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
392
 
    ::ExtACTree::aspectof()->__a1_before (tjp);
393
 
  }
394
 
395
 
 
396
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
397
 
 
398
 
 
399
 
#endif // __ExtACTree_ah__
400
 
 
401
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
402
 
// This file is part of PUMA.
403
 
// Copyright (C) 1999-2003  The PUMA developer team.
404
 
//                                                                
405
 
// This program is free software;  you can redistribute it and/or 
406
 
// modify it under the terms of the GNU General Public License as 
407
 
// published by the Free Software Foundation; either version 2 of 
408
 
// the License, or (at your option) any later version.            
409
 
//                                                                
410
 
// This program is distributed in the hope that it will be useful,
411
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
412
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
413
 
// GNU General Public License for more details.                   
414
 
//                                                                
415
 
// You should have received a copy of the GNU General Public      
416
 
// License along with this program; if not, write to the Free     
417
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
418
 
// MA  02111-1307  USA                                            
419
 
 
420
 
#ifndef __CCExprResolveH_ah__
421
 
#define __CCExprResolveH_ah__
422
 
 
423
 
// This aspect inserts resolve member functions into all syntax tree classes
424
 
// that represent expressions. As the function is virtual, an efficient
425
 
// run-time switch over the node type is implemented.
426
 
 
427
 
namespace Puma {
428
 
  class CCSemExpr;
429
 
}
430
 
 
431
 
using namespace Puma;
432
 
 
433
 
namespace Puma {
434
 
  
435
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
436
 
 
437
 
  
438
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
439
 
 
440
 
}
441
 
 
442
 
 
443
 
#line 444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
444
 
class WinIfExists;
445
 
class WinImportHandler;
446
 
class WinMacros;
447
 
class CMatchSyntax;
448
 
class ExtGnu;
449
 
class ExtAC;
450
 
class ExtACBuilderCoupling;
451
 
class ExtACSyntaxCoupling;
452
 
class ExtACTree;
453
 
class ExtACKeywords;
454
 
class WinAsm;
455
 
class WinDeclSpecs;
456
 
class WinMemberExplSpec;
457
 
class WinTypeKeywords;
458
 
class PragmaOnceUnitState;
459
 
class PragmaOnce;
460
 
class CExprResolve;
461
 
 
462
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
463
 
class CCExprResolve {
464
 
#line 465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
465
 
 
466
 
public:
467
 
  static CCExprResolve *aspectof () {
468
 
    static CCExprResolve __instance;
469
 
    return &__instance;
470
 
  }
471
 
  static CCExprResolve *aspectOf () {
472
 
    return aspectof ();
473
 
  }
474
 
private:
475
 
 
476
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
477
 
 
478
 
#line 479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
479
 
  friend class ::WinIfExists;
480
 
  friend class ::WinImportHandler;
481
 
  friend class ::WinMacros;
482
 
  friend class ::CMatchSyntax;
483
 
  friend class ::ExtGnu;
484
 
  friend class ::ExtAC;
485
 
  friend class ::ExtACBuilderCoupling;
486
 
  friend class ::ExtACSyntaxCoupling;
487
 
  friend class ::ExtACTree;
488
 
  friend class ::ExtACKeywords;
489
 
  friend class ::WinAsm;
490
 
  friend class ::WinDeclSpecs;
491
 
  friend class ::WinMemberExplSpec;
492
 
  friend class ::WinTypeKeywords;
493
 
  friend class ::PragmaOnceUnitState;
494
 
  friend class ::PragmaOnce;
495
 
  friend class ::CExprResolve;
496
 
 
497
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
498
 
 
499
 
  
500
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
501
 
 
502
 
  
503
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
504
 
 
505
 
};
506
 
#line 507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
507
 
 
508
 
namespace AC {
509
 
510
 
 
511
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
512
 
 
513
 
 
514
 
#endif /* __CCExprResolveH_ah__ */
515
 
 
516
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
517
 
// This file is part of PUMA.
518
 
// Copyright (C) 1999-2003  The PUMA developer team.
519
 
//                                                                
520
 
// This program is free software;  you can redistribute it and/or 
521
 
// modify it under the terms of the GNU General Public License as 
522
 
// published by the Free Software Foundation; either version 2 of 
523
 
// the License, or (at your option) any later version.            
524
 
//                                                                
525
 
// This program is distributed in the hope that it will be useful,
526
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
527
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
528
 
// GNU General Public License for more details.                   
529
 
//                                                                
530
 
// You should have received a copy of the GNU General Public      
531
 
// License along with this program; if not, write to the Free     
532
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
533
 
// MA  02111-1307  USA                                            
534
 
 
535
 
#ifndef __CExprResolveH_ah__
536
 
#define __CExprResolveH_ah__
537
 
 
538
 
// This aspect inserts resolve member functions into all syntax tree classes
539
 
// that represent expressions. As the function is virtual, an efficient
540
 
// run-time switch over the node type is implemented.
541
 
 
542
 
namespace Puma {
543
 
  class CSemExpr;
544
 
}
545
 
 
546
 
using namespace Puma;
547
 
 
548
 
namespace Puma {
549
 
  
550
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
551
 
 
552
 
  
553
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
554
 
 
555
 
}
556
 
 
557
 
 
558
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
559
 
class WinIfExists;
560
 
class WinImportHandler;
561
 
class WinMacros;
562
 
class CMatchSyntax;
563
 
class ExtGnu;
564
 
class ExtAC;
565
 
class ExtACBuilderCoupling;
566
 
class ExtACSyntaxCoupling;
567
 
class ExtACTree;
568
 
class ExtACKeywords;
569
 
class WinAsm;
570
 
class WinDeclSpecs;
571
 
class WinMemberExplSpec;
572
 
class WinTypeKeywords;
573
 
class PragmaOnceUnitState;
574
 
class PragmaOnce;
575
 
class CCExprResolve;
576
 
 
577
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
578
 
class CExprResolve {
579
 
#line 580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
580
 
 
581
 
public:
582
 
  static CExprResolve *aspectof () {
583
 
    static CExprResolve __instance;
584
 
    return &__instance;
585
 
  }
586
 
  static CExprResolve *aspectOf () {
587
 
    return aspectof ();
588
 
  }
589
 
private:
590
 
 
591
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
592
 
 
593
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
594
 
  friend class ::WinIfExists;
595
 
  friend class ::WinImportHandler;
596
 
  friend class ::WinMacros;
597
 
  friend class ::CMatchSyntax;
598
 
  friend class ::ExtGnu;
599
 
  friend class ::ExtAC;
600
 
  friend class ::ExtACBuilderCoupling;
601
 
  friend class ::ExtACSyntaxCoupling;
602
 
  friend class ::ExtACTree;
603
 
  friend class ::ExtACKeywords;
604
 
  friend class ::WinAsm;
605
 
  friend class ::WinDeclSpecs;
606
 
  friend class ::WinMemberExplSpec;
607
 
  friend class ::WinTypeKeywords;
608
 
  friend class ::PragmaOnceUnitState;
609
 
  friend class ::PragmaOnce;
610
 
  friend class ::CCExprResolve;
611
 
 
612
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
613
 
 
614
 
  
615
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
616
 
 
617
 
  
618
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
619
 
 
620
 
};
621
 
#line 622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
622
 
 
623
 
namespace AC {
624
 
625
 
 
626
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
627
 
 
628
 
 
629
 
#endif /* __CExprResolveH_ah__ */
630
 
 
631
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
632
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
633
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
634
 
 
635
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
636
 
// This file is part of PUMA.
637
 
// Copyright (C) 1999-2003  The PUMA developer team.
638
 
//                                                                
639
 
// This program is free software;  you can redistribute it and/or 
640
 
// modify it under the terms of the GNU General Public License as 
641
 
// published by the Free Software Foundation; either version 2 of 
642
 
// the License, or (at your option) any later version.            
643
 
//                                                                
644
 
// This program is distributed in the hope that it will be useful,
645
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
646
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
647
 
// GNU General Public License for more details.                   
648
 
//                                                                
649
 
// You should have received a copy of the GNU General Public      
650
 
// License along with this program; if not, write to the Free     
651
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
652
 
// MA  02111-1307  USA                                            
653
 
 
654
 
#ifndef __CTree_h__
655
 
#define __CTree_h__
656
 
 
657
 
namespace Puma {
658
 
 
659
 
 
660
 
// Syntax tree node hierarchy:
 
145
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
146
  template <class JoinPoint>
 
147
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
 
148
  template <class JoinPoint>
 
149
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
 
150
  template <class JoinPoint>
 
151
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
152
  template <class JoinPoint>
 
153
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
 
154
  template <class JoinPoint>
 
155
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
 
156
  template <class JoinPoint>
 
157
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
 
158
  template <class JoinPoint>
 
159
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
160
  template <class JoinPoint>
 
161
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
162
  template <class JoinPoint>
 
163
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
 
164
  template <class JoinPoint>
 
165
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
166
  template <class JoinPoint>
 
167
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp);
 
168
}
 
169
#endif
 
170
 
 
171
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
172
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
173
#endif
 
174
 
 
175
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
176
// This file is part of PUMA.
 
177
// Copyright (C) 1999-2003  The PUMA developer team.
 
178
//                                                                
 
179
// This program is free software;  you can redistribute it and/or 
 
180
// modify it under the terms of the GNU General Public License as 
 
181
// published by the Free Software Foundation; either version 2 of 
 
182
// the License, or (at your option) any later version.            
 
183
//                                                                
 
184
// This program is distributed in the hope that it will be useful,
 
185
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
186
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
187
// GNU General Public License for more details.                   
 
188
//                                                                
 
189
// You should have received a copy of the GNU General Public      
 
190
// License along with this program; if not, write to the Free     
 
191
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
192
// MA  02111-1307  USA                                            
 
193
 
 
194
#ifndef __CClassDatabase_h__
 
195
#define __CClassDatabase_h__
 
196
 
 
197
 
 
198
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
199
// This file is part of PUMA.
 
200
// Copyright (C) 1999-2003  The PUMA developer team.
 
201
//                                                                
 
202
// This program is free software;  you can redistribute it and/or 
 
203
// modify it under the terms of the GNU General Public License as 
 
204
// published by the Free Software Foundation; either version 2 of 
 
205
// the License, or (at your option) any later version.            
 
206
//                                                                
 
207
// This program is distributed in the hope that it will be useful,
 
208
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
209
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
210
// GNU General Public License for more details.                   
 
211
//                                                                
 
212
// You should have received a copy of the GNU General Public      
 
213
// License along with this program; if not, write to the Free     
 
214
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
215
// MA  02111-1307  USA                                            
 
216
 
 
217
#ifndef __CScopeInfo_h__
 
218
#define __CScopeInfo_h__
 
219
 
 
220
// scope info
 
221
 
 
222
 
 
223
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
224
// This file is part of PUMA.
 
225
// Copyright (C) 1999-2003  The PUMA developer team.
 
226
//                                                                
 
227
// This program is free software;  you can redistribute it and/or 
 
228
// modify it under the terms of the GNU General Public License as 
 
229
// published by the Free Software Foundation; either version 2 of 
 
230
// the License, or (at your option) any later version.            
 
231
//                                                                
 
232
// This program is distributed in the hope that it will be useful,
 
233
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
234
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
235
// GNU General Public License for more details.                   
 
236
//                                                                
 
237
// You should have received a copy of the GNU General Public      
 
238
// License along with this program; if not, write to the Free     
 
239
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
240
// MA  02111-1307  USA                                            
 
241
 
 
242
#ifndef __CObjectInfo_h__
 
243
#define __CObjectInfo_h__
 
244
 
 
245
// base class of all semantic infos
 
246
// knows the type of the info, the name of the entity it
 
247
// represents, its qualified name (on demand), its type,
 
248
// its object linkage, its storage duration, its class
 
249
// member access level (protection), and the specifiers 
 
250
// that were used at the declaration of the entity,
 
251
// knows the source file location of the entity's declaration,
 
252
// the corresponding syntax tree node, the class database 
 
253
// it belongs to, and other semantic info objects that refer
 
254
// to the same entity
 
255
 
 
256
 
 
257
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
258
// This file is part of PUMA.
 
259
// Copyright (C) 1999-2003  The PUMA developer team.
 
260
//                                                                
 
261
// This program is free software;  you can redistribute it and/or 
 
262
// modify it under the terms of the GNU General Public License as 
 
263
// published by the Free Software Foundation; either version 2 of 
 
264
// the License, or (at your option) any later version.            
 
265
//                                                                
 
266
// This program is distributed in the hope that it will be useful,
 
267
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
268
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
269
// GNU General Public License for more details.                   
 
270
//                                                                
 
271
// You should have received a copy of the GNU General Public      
 
272
// License along with this program; if not, write to the Free     
 
273
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
274
// MA  02111-1307  USA                                            
 
275
 
 
276
#ifndef __CSourceInfo_h__
 
277
#define __CSourceInfo_h__
 
278
 
 
279
// stores source file information
 
280
// knows the file and the start token where an entity
 
281
// was declared in a program
 
282
 
 
283
namespace Puma {
 
284
 
 
285
 
 
286
class CFileInfo;
 
287
class CT_Token;
 
288
class Token;
 
289
class Unit;
 
290
 
 
291
 
 
292
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
293
} // closed Puma
 
294
class CCExprResolve;
 
295
class CExprResolve;
 
296
class WinIfExists;
 
297
class WinImportHandler;
 
298
class WinMacros;
 
299
class WinAsm;
 
300
class WinDeclSpecs;
 
301
class WinMemberExplSpec;
 
302
class WinTypeKeywords;
 
303
class WinFriend;
 
304
class ExtAC;
 
305
class ExtACBuilderCoupling;
 
306
class ExtACSyntaxCoupling;
 
307
class ExtACTree;
 
308
class ExtACKeywords;
 
309
class ExtGnu;
 
310
class PragmaOnceUnitState;
 
311
class PragmaOnce;
 
312
class CMatchSyntax;
 
313
namespace Puma {
 
314
 
 
315
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
316
class CSourceInfo {
 
317
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
318
  friend class ::CCExprResolve;
 
319
  friend class ::CExprResolve;
 
320
  friend class ::WinIfExists;
 
321
  friend class ::WinImportHandler;
 
322
  friend class ::WinMacros;
 
323
  friend class ::WinAsm;
 
324
  friend class ::WinDeclSpecs;
 
325
  friend class ::WinMemberExplSpec;
 
326
  friend class ::WinTypeKeywords;
 
327
  friend class ::WinFriend;
 
328
  friend class ::ExtAC;
 
329
  friend class ::ExtACBuilderCoupling;
 
330
  friend class ::ExtACSyntaxCoupling;
 
331
  friend class ::ExtACTree;
 
332
  friend class ::ExtACKeywords;
 
333
  friend class ::ExtGnu;
 
334
  friend class ::PragmaOnceUnitState;
 
335
  friend class ::PragmaOnce;
 
336
  friend class ::CMatchSyntax;
 
337
 
 
338
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
339
 
 
340
  CFileInfo *_FileInfo; 
 
341
  CT_Token *_StartToken;
 
342
 
 
343
public: 
 
344
  CSourceInfo ();
 
345
  ~CSourceInfo ();
 
346
  
 
347
  bool operator ==(const CSourceInfo &) const;
 
348
  bool operator !=(const CSourceInfo &) const;
 
349
  bool operator <(const CSourceInfo &) const;
 
350
  bool operator >(const CSourceInfo &) const;
 
351
  bool operator <=(const CSourceInfo &) const;
 
352
  bool operator >=(const CSourceInfo &) const;
 
353
 
 
354
  bool operator ==(const CT_Token *) const;
 
355
  bool operator !=(const CT_Token *) const;
 
356
  bool operator <(const CT_Token *) const;
 
357
  bool operator >(const CT_Token *) const;
 
358
  bool operator <=(const CT_Token *) const;
 
359
  bool operator >=(const CT_Token *) const;
 
360
 
 
361
  bool operator ==(const Token *) const;
 
362
 
 
363
  // Get ...
 
364
  CFileInfo *FileInfo () const;
 
365
  CT_Token *StartToken () const;
 
366
  const char *FileName () const; // the file where it is located
 
367
  int Line () const;
 
368
  Unit *SrcUnit () const;
 
369
 
 
370
  // Set ... 
 
371
  void FileInfo (CFileInfo *);
 
372
  void StartToken (CT_Token *);
 
373
};
 
374
 
 
375
inline CSourceInfo::CSourceInfo () :
 
376
  _FileInfo ((CFileInfo*)0),
 
377
  _StartToken ((CT_Token*)0)
 
378
 {}
 
379
 
 
380
inline CSourceInfo::~CSourceInfo ()
 
381
 {}
 
382
 
 
383
inline bool CSourceInfo::operator !=(const CSourceInfo &info) const 
 
384
 { return ! (*this == info); }
 
385
inline bool CSourceInfo::operator <=(const CSourceInfo &info) const 
 
386
 { return ! (*this > info); }
 
387
inline bool CSourceInfo::operator >=(const CSourceInfo &info) const 
 
388
 { return ! (*this < info); }
 
389
 
 
390
inline bool CSourceInfo::operator !=(const CT_Token *token) const 
 
391
 { return ! (*this == token); }
 
392
inline bool CSourceInfo::operator <=(const CT_Token *token) const 
 
393
 { return ! (*this > token); }
 
394
inline bool CSourceInfo::operator >=(const CT_Token *token) const 
 
395
 { return ! (*this < token); }
 
396
 
 
397
inline CFileInfo *CSourceInfo::FileInfo () const
 
398
 { return _FileInfo; }
 
399
inline CT_Token *CSourceInfo::StartToken () const
 
400
 { return _StartToken; }
 
401
 
 
402
inline void CSourceInfo::FileInfo (CFileInfo *info)
 
403
 { _FileInfo = info; }
 
404
inline void CSourceInfo::StartToken (CT_Token *token)
 
405
 { _StartToken = token; }
 
406
 
 
407
 
 
408
} // namespace Puma
 
409
 
 
410
#endif /* __CSourceInfo_h__ */
 
411
 
 
412
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
413
// This file is part of PUMA.
 
414
// Copyright (C) 1999-2003  The PUMA developer team.
 
415
//                                                                
 
416
// This program is free software;  you can redistribute it and/or 
 
417
// modify it under the terms of the GNU General Public License as 
 
418
// published by the Free Software Foundation; either version 2 of 
 
419
// the License, or (at your option) any later version.            
 
420
//                                                                
 
421
// This program is distributed in the hope that it will be useful,
 
422
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
423
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
424
// GNU General Public License for more details.                   
 
425
//                                                                
 
426
// You should have received a copy of the GNU General Public      
 
427
// License along with this program; if not, write to the Free     
 
428
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
429
// MA  02111-1307  USA                                            
 
430
 
 
431
#ifndef __CProtection_h__
 
432
#define __CProtection_h__
 
433
 
 
434
// C++ class member protection
 
435
 
 
436
namespace Puma {
 
437
 
 
438
 
 
439
 
 
440
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
441
} // closed Puma
 
442
class CCExprResolve;
 
443
class CExprResolve;
 
444
class WinIfExists;
 
445
class WinImportHandler;
 
446
class WinMacros;
 
447
class WinAsm;
 
448
class WinDeclSpecs;
 
449
class WinMemberExplSpec;
 
450
class WinTypeKeywords;
 
451
class WinFriend;
 
452
class ExtAC;
 
453
class ExtACBuilderCoupling;
 
454
class ExtACSyntaxCoupling;
 
455
class ExtACTree;
 
456
class ExtACKeywords;
 
457
class ExtGnu;
 
458
class PragmaOnceUnitState;
 
459
class PragmaOnce;
 
460
class CMatchSyntax;
 
461
namespace Puma {
 
462
 
 
463
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
464
struct CProtection {
 
465
#line 466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
466
  friend class ::CCExprResolve;
 
467
  friend class ::CExprResolve;
 
468
  friend class ::WinIfExists;
 
469
  friend class ::WinImportHandler;
 
470
  friend class ::WinMacros;
 
471
  friend class ::WinAsm;
 
472
  friend class ::WinDeclSpecs;
 
473
  friend class ::WinMemberExplSpec;
 
474
  friend class ::WinTypeKeywords;
 
475
  friend class ::WinFriend;
 
476
  friend class ::ExtAC;
 
477
  friend class ::ExtACBuilderCoupling;
 
478
  friend class ::ExtACSyntaxCoupling;
 
479
  friend class ::ExtACTree;
 
480
  friend class ::ExtACKeywords;
 
481
  friend class ::ExtGnu;
 
482
  friend class ::PragmaOnceUnitState;
 
483
  friend class ::PragmaOnce;
 
484
  friend class ::CMatchSyntax;
 
485
 
 
486
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
487
 
 
488
  enum Type {
 
489
    PROT_PUBLIC, 
 
490
    PROT_PROTECTED, 
 
491
    PROT_PRIVATE,
 
492
    PROT_NONE
 
493
  };
 
494
};
 
495
 
 
496
 
 
497
} // namespace Puma
 
498
 
 
499
#endif /* __CProtection_h__ */
 
500
 
 
501
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
502
// This file is part of PUMA.
 
503
// Copyright (C) 1999-2003  The PUMA developer team.
 
504
//                                                                
 
505
// This program is free software;  you can redistribute it and/or 
 
506
// modify it under the terms of the GNU General Public License as 
 
507
// published by the Free Software Foundation; either version 2 of 
 
508
// the License, or (at your option) any later version.            
 
509
//                                                                
 
510
// This program is distributed in the hope that it will be useful,
 
511
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
512
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
513
// GNU General Public License for more details.                   
 
514
//                                                                
 
515
// You should have received a copy of the GNU General Public      
 
516
// License along with this program; if not, write to the Free     
 
517
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
518
// MA  02111-1307  USA                                            
 
519
 
 
520
#ifndef __CStorage_h__
 
521
#define __CStorage_h__
 
522
 
 
523
// C++ storage classes
 
524
 
 
525
namespace Puma {
 
526
 
 
527
 
 
528
 
 
529
#line 530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
530
} // closed Puma
 
531
class CCExprResolve;
 
532
class CExprResolve;
 
533
class WinIfExists;
 
534
class WinImportHandler;
 
535
class WinMacros;
 
536
class WinAsm;
 
537
class WinDeclSpecs;
 
538
class WinMemberExplSpec;
 
539
class WinTypeKeywords;
 
540
class WinFriend;
 
541
class ExtAC;
 
542
class ExtACBuilderCoupling;
 
543
class ExtACSyntaxCoupling;
 
544
class ExtACTree;
 
545
class ExtACKeywords;
 
546
class ExtGnu;
 
547
class PragmaOnceUnitState;
 
548
class PragmaOnce;
 
549
class CMatchSyntax;
 
550
namespace Puma {
 
551
 
 
552
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
553
struct CStorage {
 
554
#line 555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
555
  friend class ::CCExprResolve;
 
556
  friend class ::CExprResolve;
 
557
  friend class ::WinIfExists;
 
558
  friend class ::WinImportHandler;
 
559
  friend class ::WinMacros;
 
560
  friend class ::WinAsm;
 
561
  friend class ::WinDeclSpecs;
 
562
  friend class ::WinMemberExplSpec;
 
563
  friend class ::WinTypeKeywords;
 
564
  friend class ::WinFriend;
 
565
  friend class ::ExtAC;
 
566
  friend class ::ExtACBuilderCoupling;
 
567
  friend class ::ExtACSyntaxCoupling;
 
568
  friend class ::ExtACTree;
 
569
  friend class ::ExtACKeywords;
 
570
  friend class ::ExtGnu;
 
571
  friend class ::PragmaOnceUnitState;
 
572
  friend class ::PragmaOnce;
 
573
  friend class ::CMatchSyntax;
 
574
 
 
575
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
576
 
 
577
  enum Type {
 
578
    CLASS_STATIC,
 
579
    CLASS_AUTOMATIC, 
 
580
    CLASS_DYNAMIC,
 
581
    CLASS_NONE
 
582
  };
 
583
};
 
584
 
 
585
 
 
586
} // namespace Puma
 
587
 
 
588
#endif /* __CStorage_h__ */
 
589
 
 
590
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.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 __CLinkage_h__
 
610
#define __CLinkage_h__
 
611
 
 
612
// C++ object linkage
 
613
 
 
614
namespace Puma {
 
615
 
 
616
 
 
617
 
 
618
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
619
} // closed Puma
 
620
class CCExprResolve;
 
621
class CExprResolve;
 
622
class WinIfExists;
 
623
class WinImportHandler;
 
624
class WinMacros;
 
625
class WinAsm;
 
626
class WinDeclSpecs;
 
627
class WinMemberExplSpec;
 
628
class WinTypeKeywords;
 
629
class WinFriend;
 
630
class ExtAC;
 
631
class ExtACBuilderCoupling;
 
632
class ExtACSyntaxCoupling;
 
633
class ExtACTree;
 
634
class ExtACKeywords;
 
635
class ExtGnu;
 
636
class PragmaOnceUnitState;
 
637
class PragmaOnce;
 
638
class CMatchSyntax;
 
639
namespace Puma {
 
640
 
 
641
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
642
struct CLinkage {
 
643
#line 644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
644
  friend class ::CCExprResolve;
 
645
  friend class ::CExprResolve;
 
646
  friend class ::WinIfExists;
 
647
  friend class ::WinImportHandler;
 
648
  friend class ::WinMacros;
 
649
  friend class ::WinAsm;
 
650
  friend class ::WinDeclSpecs;
 
651
  friend class ::WinMemberExplSpec;
 
652
  friend class ::WinTypeKeywords;
 
653
  friend class ::WinFriend;
 
654
  friend class ::ExtAC;
 
655
  friend class ::ExtACBuilderCoupling;
 
656
  friend class ::ExtACSyntaxCoupling;
 
657
  friend class ::ExtACTree;
 
658
  friend class ::ExtACKeywords;
 
659
  friend class ::ExtGnu;
 
660
  friend class ::PragmaOnceUnitState;
 
661
  friend class ::PragmaOnce;
 
662
  friend class ::CMatchSyntax;
 
663
 
 
664
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
665
 
 
666
  enum Type {
 
667
    LINK_INTERNAL, 
 
668
    LINK_EXTERNAL, 
 
669
    LINK_NONE
 
670
  };
 
671
};
 
672
 
 
673
 
 
674
} // namespace Puma
 
675
 
 
676
#endif /* __CLinkage_h__ */
 
677
 
 
678
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
679
// This file is part of PUMA.
 
680
// Copyright (C) 1999-2003  The PUMA developer team.
 
681
//                                                                
 
682
// This program is free software;  you can redistribute it and/or 
 
683
// modify it under the terms of the GNU General Public License as 
 
684
// published by the Free Software Foundation; either version 2 of 
 
685
// the License, or (at your option) any later version.            
 
686
//                                                                
 
687
// This program is distributed in the hope that it will be useful,
 
688
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
689
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
690
// GNU General Public License for more details.                   
 
691
//                                                                
 
692
// You should have received a copy of the GNU General Public      
 
693
// License along with this program; if not, write to the Free     
 
694
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
695
// MA  02111-1307  USA                                            
 
696
 
 
697
#ifndef __CLanguage_h__
 
698
#define __CLanguage_h__
 
699
 
 
700
 
 
701
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
702
// This file is part of PUMA.
 
703
// Copyright (C) 1999-2003  The PUMA developer team.
 
704
//                                                                
 
705
// This program is free software;  you can redistribute it and/or 
 
706
// modify it under the terms of the GNU General Public License as 
 
707
// published by the Free Software Foundation; either version 2 of 
 
708
// the License, or (at your option) any later version.            
 
709
//                                                                
 
710
// This program is distributed in the hope that it will be useful,
 
711
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
712
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
713
// GNU General Public License for more details.                   
 
714
//                                                                
 
715
// You should have received a copy of the GNU General Public      
 
716
// License along with this program; if not, write to the Free     
 
717
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
718
// MA  02111-1307  USA                                            
 
719
 
 
720
#ifndef __DString_h__
 
721
#define __DString_h__
 
722
 
 
723
 
 
724
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
725
// This file is part of PUMA.
 
726
// Copyright (C) 1999-2003  The PUMA developer team.
 
727
//                                                                
 
728
// This program is free software;  you can redistribute it and/or 
 
729
// modify it under the terms of the GNU General Public License as 
 
730
// published by the Free Software Foundation; either version 2 of 
 
731
// the License, or (at your option) any later version.            
 
732
//                                                                
 
733
// This program is distributed in the hope that it will be useful,
 
734
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
735
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
736
// GNU General Public License for more details.                   
 
737
//                                                                
 
738
// You should have received a copy of the GNU General Public      
 
739
// License along with this program; if not, write to the Free     
 
740
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
741
// MA  02111-1307  USA                                            
 
742
 
 
743
#ifndef __StrHashTable_h__
 
744
#define __StrHashTable_h__
 
745
 
 
746
 
 
747
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
748
// This file is part of PUMA.
 
749
// Copyright (C) 1999-2003  The PUMA developer team.
 
750
//                                                                
 
751
// This program is free software;  you can redistribute it and/or 
 
752
// modify it under the terms of the GNU General Public License as 
 
753
// published by the Free Software Foundation; either version 2 of 
 
754
// the License, or (at your option) any later version.            
 
755
//                                                                
 
756
// This program is distributed in the hope that it will be useful,
 
757
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
758
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
759
// GNU General Public License for more details.                   
 
760
//                                                                
 
761
// You should have received a copy of the GNU General Public      
 
762
// License along with this program; if not, write to the Free     
 
763
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
764
// MA  02111-1307  USA                                            
 
765
 
 
766
#ifndef __StrHashKey_h__
 
767
#define __StrHashKey_h__
 
768
 
 
769
 
 
770
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
771
// This file is part of PUMA.
 
772
// Copyright (C) 1999-2003  The PUMA developer team.
 
773
//                                                                
 
774
// This program is free software;  you can redistribute it and/or 
 
775
// modify it under the terms of the GNU General Public License as 
 
776
// published by the Free Software Foundation; either version 2 of 
 
777
// the License, or (at your option) any later version.            
 
778
//                                                                
 
779
// This program is distributed in the hope that it will be useful,
 
780
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
781
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
782
// GNU General Public License for more details.                   
 
783
//                                                                
 
784
// You should have received a copy of the GNU General Public      
 
785
// License along with this program; if not, write to the Free     
 
786
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
787
// MA  02111-1307  USA                                            
 
788
 
 
789
#ifndef __str_col__
 
790
#define __str_col__
 
791
 
 
792
// Collection of functions handling strings.
 
793
 
 
794
namespace Puma {
 
795
 
 
796
 
 
797
class Unit;
 
798
 
 
799
 
 
800
#line 801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
801
} // closed Puma
 
802
class CCExprResolve;
 
803
class CExprResolve;
 
804
class WinIfExists;
 
805
class WinImportHandler;
 
806
class WinMacros;
 
807
class WinAsm;
 
808
class WinDeclSpecs;
 
809
class WinMemberExplSpec;
 
810
class WinTypeKeywords;
 
811
class WinFriend;
 
812
class ExtAC;
 
813
class ExtACBuilderCoupling;
 
814
class ExtACSyntaxCoupling;
 
815
class ExtACTree;
 
816
class ExtACKeywords;
 
817
class ExtGnu;
 
818
class PragmaOnceUnitState;
 
819
class PragmaOnce;
 
820
class CMatchSyntax;
 
821
namespace Puma {
 
822
 
 
823
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
824
class StrCol {
 
825
#line 826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
826
  friend class ::CCExprResolve;
 
827
  friend class ::CExprResolve;
 
828
  friend class ::WinIfExists;
 
829
  friend class ::WinImportHandler;
 
830
  friend class ::WinMacros;
 
831
  friend class ::WinAsm;
 
832
  friend class ::WinDeclSpecs;
 
833
  friend class ::WinMemberExplSpec;
 
834
  friend class ::WinTypeKeywords;
 
835
  friend class ::WinFriend;
 
836
  friend class ::ExtAC;
 
837
  friend class ::ExtACBuilderCoupling;
 
838
  friend class ::ExtACSyntaxCoupling;
 
839
  friend class ::ExtACTree;
 
840
  friend class ::ExtACKeywords;
 
841
  friend class ::ExtGnu;
 
842
  friend class ::PragmaOnceUnitState;
 
843
  friend class ::PragmaOnce;
 
844
  friend class ::CMatchSyntax;
 
845
 
 
846
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
847
 
 
848
protected:
 
849
  StrCol () {}
 
850
        
 
851
public:
 
852
  // Return true if c is a white space character.
 
853
  static bool isSpace (const char c);
 
854
 
 
855
  // Return true if the string consists only of spaces.
 
856
  static bool onlySpaces (const char *);
 
857
 
 
858
  // Return true if the two strings differ not only in spaces.
 
859
  static bool effectivelyDifferent (const char *, const char *);
 
860
 
 
861
  // Build a string from a unit.
 
862
  static char *buildString (Unit *);
 
863
        
 
864
  // Duplicate a string
 
865
  static char *dup (const char *);
 
866
  static char *dup (const char *, int);
 
867
};
 
868
 
 
869
 
 
870
} // namespace Puma
 
871
 
 
872
#endif /* __str_col__ */
 
873
 
 
874
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
875
// This file is part of PUMA.
 
876
// Copyright (C) 1999-2003  The PUMA developer team.
 
877
//                                                                
 
878
// This program is free software;  you can redistribute it and/or 
 
879
// modify it under the terms of the GNU General Public License as 
 
880
// published by the Free Software Foundation; either version 2 of 
 
881
// the License, or (at your option) any later version.            
 
882
//                                                                
 
883
// This program is distributed in the hope that it will be useful,
 
884
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
885
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
886
// GNU General Public License for more details.                   
 
887
//                                                                
 
888
// You should have received a copy of the GNU General Public      
 
889
// License along with this program; if not, write to the Free     
 
890
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
891
// MA  02111-1307  USA                                            
 
892
 
 
893
#ifndef __Chain_h__
 
894
#define __Chain_h__
 
895
 
 
896
//
 
897
// implements a simple chain
 
898
// 
 
899
 
 
900
#ifndef __puma
 
901
#include <iostream>
 
902
using namespace std;
 
903
#endif 
 
904
 
 
905
namespace Puma {
 
906
 
 
907
 
 
908
 
 
909
#line 910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
910
} // closed Puma
 
911
class CCExprResolve;
 
912
class CExprResolve;
 
913
class WinIfExists;
 
914
class WinImportHandler;
 
915
class WinMacros;
 
916
class WinAsm;
 
917
class WinDeclSpecs;
 
918
class WinMemberExplSpec;
 
919
class WinTypeKeywords;
 
920
class WinFriend;
 
921
class ExtAC;
 
922
class ExtACBuilderCoupling;
 
923
class ExtACSyntaxCoupling;
 
924
class ExtACTree;
 
925
class ExtACKeywords;
 
926
class ExtGnu;
 
927
class PragmaOnceUnitState;
 
928
class PragmaOnce;
 
929
class CMatchSyntax;
 
930
namespace Puma {
 
931
 
 
932
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
933
class Chain {
 
934
#line 935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
935
  friend class ::CCExprResolve;
 
936
  friend class ::CExprResolve;
 
937
  friend class ::WinIfExists;
 
938
  friend class ::WinImportHandler;
 
939
  friend class ::WinMacros;
 
940
  friend class ::WinAsm;
 
941
  friend class ::WinDeclSpecs;
 
942
  friend class ::WinMemberExplSpec;
 
943
  friend class ::WinTypeKeywords;
 
944
  friend class ::WinFriend;
 
945
  friend class ::ExtAC;
 
946
  friend class ::ExtACBuilderCoupling;
 
947
  friend class ::ExtACSyntaxCoupling;
 
948
  friend class ::ExtACTree;
 
949
  friend class ::ExtACKeywords;
 
950
  friend class ::ExtGnu;
 
951
  friend class ::PragmaOnceUnitState;
 
952
  friend class ::PragmaOnce;
 
953
  friend class ::CMatchSyntax;
 
954
 
 
955
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
 
956
 
 
957
  Chain *next;
 
958
 
 
959
public:
 
960
  Chain () { next = 0; }
 
961
   
 
962
  void select (Chain *c) { next = c; }
 
963
  Chain *select () const { return next; }
 
964
 
 
965
  Chain *unlink () {
 
966
    Chain *res = next;
 
967
    if (next) {
 
968
      next = next->select ();
 
969
    }
 
970
    return res;
 
971
  }
 
972
 
 
973
  void insert (Chain *c) {
 
974
    c->select (next);
 
975
    next = c;
 
976
  }
 
977
};
 
978
 
 
979
#ifndef __puma
 
980
 
 
981
 
 
982
//
 
983
// Chain with useage/max counter
 
984
// 
 
985
 
 
986
class ChainCnt : public Chain {
 
987
  const char* name;
 
988
 
 
989
public:
 
990
  long long max, use;
 
991
  
 
992
  ChainCnt (const char *n) : name (n) { max = use = 0; }
 
993
  ~ChainCnt () {
 
994
    cout << "max list " << name << ": " << max << endl;
 
995
  }
 
996
 
 
997
  Chain *unlink () {
 
998
    Chain *c = Chain::unlink ();
 
999
    if (c) 
 
1000
      use--;
 
1001
    return c;
 
1002
  }
 
1003
  
 
1004
  void insert (Chain *c) {
 
1005
    use++;
 
1006
    if(use > max) 
 
1007
      max = use;
 
1008
    Chain::insert (c);
 
1009
  }
 
1010
};
 
1011
 
 
1012
#endif /* __puma */
 
1013
 
 
1014
 
 
1015
} // namespace Puma
 
1016
 
 
1017
#endif /* __Chain_h__ */
 
1018
 
 
1019
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1020
namespace Puma {
 
1021
 
 
1022
 
 
1023
 
 
1024
#line 1025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1025
} // closed Puma
 
1026
class CCExprResolve;
 
1027
class CExprResolve;
 
1028
class WinIfExists;
 
1029
class WinImportHandler;
 
1030
class WinMacros;
 
1031
class WinAsm;
 
1032
class WinDeclSpecs;
 
1033
class WinMemberExplSpec;
 
1034
class WinTypeKeywords;
 
1035
class WinFriend;
 
1036
class ExtAC;
 
1037
class ExtACBuilderCoupling;
 
1038
class ExtACSyntaxCoupling;
 
1039
class ExtACTree;
 
1040
class ExtACKeywords;
 
1041
class ExtGnu;
 
1042
class PragmaOnceUnitState;
 
1043
class PragmaOnce;
 
1044
class CMatchSyntax;
 
1045
namespace Puma {
 
1046
 
 
1047
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1048
class StrHashKey : public Chain {
 
1049
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1050
  friend class ::CCExprResolve;
 
1051
  friend class ::CExprResolve;
 
1052
  friend class ::WinIfExists;
 
1053
  friend class ::WinImportHandler;
 
1054
  friend class ::WinMacros;
 
1055
  friend class ::WinAsm;
 
1056
  friend class ::WinDeclSpecs;
 
1057
  friend class ::WinMemberExplSpec;
 
1058
  friend class ::WinTypeKeywords;
 
1059
  friend class ::WinFriend;
 
1060
  friend class ::ExtAC;
 
1061
  friend class ::ExtACBuilderCoupling;
 
1062
  friend class ::ExtACSyntaxCoupling;
 
1063
  friend class ::ExtACTree;
 
1064
  friend class ::ExtACKeywords;
 
1065
  friend class ::ExtGnu;
 
1066
  friend class ::PragmaOnceUnitState;
 
1067
  friend class ::PragmaOnce;
 
1068
  friend class ::CMatchSyntax;
 
1069
 
 
1070
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1071
 
 
1072
  unsigned int m_Magic;
 
1073
  unsigned int m_Len;
 
1074
  const char  *m_Str;
 
1075
 
 
1076
  StrHashKey () : m_Len (0), m_Str (0) {}
 
1077
 
 
1078
public:
 
1079
  StrHashKey (int m, const char *s, int l) : 
 
1080
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
1081
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
 
1082
 
 
1083
  unsigned int getMagic () const { return m_Magic; }
 
1084
  unsigned int length () const { return m_Len; }
 
1085
  const char  *c_str () const { return m_Str; }
 
1086
};
 
1087
 
 
1088
 
 
1089
} // namespace Puma
 
1090
 
 
1091
#endif /* __StrHashKey_h__ */
 
1092
 
 
1093
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1094
#include <assert.h>
 
1095
 
 
1096
namespace Puma {
 
1097
 
 
1098
 
 
1099
 
 
1100
#line 1101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1101
} // closed Puma
 
1102
class CCExprResolve;
 
1103
class CExprResolve;
 
1104
class WinIfExists;
 
1105
class WinImportHandler;
 
1106
class WinMacros;
 
1107
class WinAsm;
 
1108
class WinDeclSpecs;
 
1109
class WinMemberExplSpec;
 
1110
class WinTypeKeywords;
 
1111
class WinFriend;
 
1112
class ExtAC;
 
1113
class ExtACBuilderCoupling;
 
1114
class ExtACSyntaxCoupling;
 
1115
class ExtACTree;
 
1116
class ExtACKeywords;
 
1117
class ExtGnu;
 
1118
class PragmaOnceUnitState;
 
1119
class PragmaOnce;
 
1120
class CMatchSyntax;
 
1121
namespace Puma {
 
1122
 
 
1123
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1124
class StrHashTable {
 
1125
#line 1126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1126
  friend class ::CCExprResolve;
 
1127
  friend class ::CExprResolve;
 
1128
  friend class ::WinIfExists;
 
1129
  friend class ::WinImportHandler;
 
1130
  friend class ::WinMacros;
 
1131
  friend class ::WinAsm;
 
1132
  friend class ::WinDeclSpecs;
 
1133
  friend class ::WinMemberExplSpec;
 
1134
  friend class ::WinTypeKeywords;
 
1135
  friend class ::WinFriend;
 
1136
  friend class ::ExtAC;
 
1137
  friend class ::ExtACBuilderCoupling;
 
1138
  friend class ::ExtACSyntaxCoupling;
 
1139
  friend class ::ExtACTree;
 
1140
  friend class ::ExtACKeywords;
 
1141
  friend class ::ExtGnu;
 
1142
  friend class ::PragmaOnceUnitState;
 
1143
  friend class ::PragmaOnce;
 
1144
  friend class ::CMatchSyntax;
 
1145
 
 
1146
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1147
 
 
1148
  StrHashKey *_emptyKey;
 
1149
 
 
1150
public:
 
1151
  StrHashTable () {
 
1152
    _emptyKey = insert ("");
 
1153
    assert (_emptyKey);
 
1154
  }
 
1155
 
 
1156
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
 
1157
  StrHashKey *insert (const char *);
 
1158
  void remove (StrHashKey *);
 
1159
  void clear ();
 
1160
 
 
1161
  enum { STRHASHTABLE_SIZE=0xffff };
 
1162
  
 
1163
private:
 
1164
  Chain m_Table[STRHASHTABLE_SIZE];
 
1165
 
 
1166
  StrHashKey *find (unsigned int, const char *, unsigned int);
 
1167
  unsigned int hash (const char *, unsigned int &);
 
1168
};
 
1169
 
 
1170
 
 
1171
} // namespace Puma
 
1172
 
 
1173
#endif /* __StrHashTable_h__ */
 
1174
 
 
1175
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
1176
#include <assert.h>
 
1177
 
 
1178
namespace Puma {
 
1179
 
 
1180
 
 
1181
extern StrHashTable ___str_dict;
 
1182
 
 
1183
 
 
1184
#line 1185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1185
} // closed Puma
 
1186
class CCExprResolve;
 
1187
class CExprResolve;
 
1188
class WinIfExists;
 
1189
class WinImportHandler;
 
1190
class WinMacros;
 
1191
class WinAsm;
 
1192
class WinDeclSpecs;
 
1193
class WinMemberExplSpec;
 
1194
class WinTypeKeywords;
 
1195
class WinFriend;
 
1196
class ExtAC;
 
1197
class ExtACBuilderCoupling;
 
1198
class ExtACSyntaxCoupling;
 
1199
class ExtACTree;
 
1200
class ExtACKeywords;
 
1201
class ExtGnu;
 
1202
class PragmaOnceUnitState;
 
1203
class PragmaOnce;
 
1204
class CMatchSyntax;
 
1205
namespace Puma {
 
1206
 
 
1207
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
1208
class DString {
 
1209
#line 1210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1210
  friend class ::CCExprResolve;
 
1211
  friend class ::CExprResolve;
 
1212
  friend class ::WinIfExists;
 
1213
  friend class ::WinImportHandler;
 
1214
  friend class ::WinMacros;
 
1215
  friend class ::WinAsm;
 
1216
  friend class ::WinDeclSpecs;
 
1217
  friend class ::WinMemberExplSpec;
 
1218
  friend class ::WinTypeKeywords;
 
1219
  friend class ::WinFriend;
 
1220
  friend class ::ExtAC;
 
1221
  friend class ::ExtACBuilderCoupling;
 
1222
  friend class ::ExtACSyntaxCoupling;
 
1223
  friend class ::ExtACTree;
 
1224
  friend class ::ExtACKeywords;
 
1225
  friend class ::ExtGnu;
 
1226
  friend class ::PragmaOnceUnitState;
 
1227
  friend class ::PragmaOnce;
 
1228
  friend class ::CMatchSyntax;
 
1229
 
 
1230
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
 
1231
 
 
1232
  StrHashKey *m_Key;
 
1233
 
 
1234
public:
 
1235
  DString () {
 
1236
    m_Key = ___str_dict.empty ();
 
1237
    assert (m_Key);
 
1238
  }
 
1239
  DString (const char *s) {
 
1240
    if(s == 0) {
 
1241
      m_Key = ___str_dict.empty ();
 
1242
    } else {
 
1243
      m_Key = ___str_dict.insert (s);
 
1244
    }
 
1245
    assert (m_Key);
 
1246
  }
 
1247
  DString (const DString &s) : m_Key (s.m_Key) {
 
1248
    assert (s.m_Key);
 
1249
  }
 
1250
  
 
1251
  DString &operator = (const DString &s) {
 
1252
    assert (s.m_Key);
 
1253
    m_Key = s.m_Key;
 
1254
    return *this;
 
1255
  }
 
1256
  
 
1257
  DString &operator = (const char *s) {
 
1258
    if(s == 0) {
 
1259
      m_Key = ___str_dict.empty ();
 
1260
    } else {
 
1261
      m_Key = ___str_dict.insert (s);
 
1262
    }
 
1263
    assert (m_Key);
 
1264
    return *this;
 
1265
  }
 
1266
 
 
1267
  bool operator == (const DString &s) const { 
 
1268
    assert (m_Key && s.m_Key);
 
1269
    return m_Key == s.m_Key; 
 
1270
  }
 
1271
  bool operator != (const DString &s) const { 
 
1272
    assert (m_Key && s.m_Key);
 
1273
    return m_Key != s.m_Key; 
 
1274
  }
 
1275
 
 
1276
  const char *c_str() const { 
 
1277
    assert (m_Key);
 
1278
    return m_Key->c_str (); 
 
1279
  }
 
1280
  unsigned int length () const { 
 
1281
    assert (m_Key);
 
1282
    return m_Key->length (); 
 
1283
  }
 
1284
  bool empty () const {
 
1285
    assert (m_Key);
 
1286
    return m_Key->length () == 0;
 
1287
  }
 
1288
  unsigned int magic () const { 
 
1289
    assert (m_Key);
 
1290
    return m_Key->getMagic (); 
 
1291
  }
 
1292
 
 
1293
  operator const char *() const {
 
1294
    assert (m_Key);
 
1295
    return c_str ();
 
1296
  }
 
1297
  
 
1298
  static void clearDict() {
 
1299
    ___str_dict.clear ();
 
1300
  }
 
1301
};
 
1302
 
 
1303
 
 
1304
} // namespace Puma
 
1305
 
 
1306
#endif /* __DString_h__ */
 
1307
 
 
1308
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
1309
// Entity name encoding language; language linkage
 
1310
 
 
1311
namespace Puma {
 
1312
 
 
1313
 
 
1314
 
 
1315
#line 1316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1316
} // closed Puma
 
1317
class CCExprResolve;
 
1318
class CExprResolve;
 
1319
class WinIfExists;
 
1320
class WinImportHandler;
 
1321
class WinMacros;
 
1322
class WinAsm;
 
1323
class WinDeclSpecs;
 
1324
class WinMemberExplSpec;
 
1325
class WinTypeKeywords;
 
1326
class WinFriend;
 
1327
class ExtAC;
 
1328
class ExtACBuilderCoupling;
 
1329
class ExtACSyntaxCoupling;
 
1330
class ExtACTree;
 
1331
class ExtACKeywords;
 
1332
class ExtGnu;
 
1333
class PragmaOnceUnitState;
 
1334
class PragmaOnce;
 
1335
class CMatchSyntax;
 
1336
namespace Puma {
 
1337
 
 
1338
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
1339
class CLanguage {
 
1340
#line 1341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1341
  friend class ::CCExprResolve;
 
1342
  friend class ::CExprResolve;
 
1343
  friend class ::WinIfExists;
 
1344
  friend class ::WinImportHandler;
 
1345
  friend class ::WinMacros;
 
1346
  friend class ::WinAsm;
 
1347
  friend class ::WinDeclSpecs;
 
1348
  friend class ::WinMemberExplSpec;
 
1349
  friend class ::WinTypeKeywords;
 
1350
  friend class ::WinFriend;
 
1351
  friend class ::ExtAC;
 
1352
  friend class ::ExtACBuilderCoupling;
 
1353
  friend class ::ExtACSyntaxCoupling;
 
1354
  friend class ::ExtACTree;
 
1355
  friend class ::ExtACKeywords;
 
1356
  friend class ::ExtGnu;
 
1357
  friend class ::PragmaOnceUnitState;
 
1358
  friend class ::PragmaOnce;
 
1359
  friend class ::CMatchSyntax;
 
1360
 
 
1361
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
1362
 
 
1363
public:
 
1364
  enum LangType {
 
1365
    LANG_C,
 
1366
    LANG_CPLUSPLUS,
 
1367
    LANG_OTHER,
 
1368
    LANG_UNDEFINED
 
1369
  };
 
1370
    
 
1371
private:
 
1372
  LangType m_Type;
 
1373
  DString m_Text;
 
1374
 
 
1375
public:
 
1376
  CLanguage () : m_Type (LANG_UNDEFINED), m_Text ("") {}
 
1377
  
 
1378
  void Type (LangType lt) { 
 
1379
    m_Type = lt; m_Text = (lt==LANG_C)?"C":(lt==LANG_CPLUSPLUS)?"C++":""; 
 
1380
  }
 
1381
  void Type (LangType lt, const char *txt) { 
 
1382
    m_Type = lt; m_Text = (lt==LANG_C)?"C":(lt==LANG_CPLUSPLUS)?"C++":(lt==LANG_OTHER)?txt:""; 
 
1383
  }
 
1384
 
 
1385
  LangType Type () const { return m_Type; }
 
1386
  const DString &Text () const { return m_Text; }
 
1387
 
 
1388
  bool operator== (const CLanguage &lang) { return (m_Type == lang.Type ()) && (m_Text == lang.Text ()); }
 
1389
  bool operator== (LangType lt) { return (m_Type == lt); }
 
1390
};
 
1391
 
 
1392
 
 
1393
} // namespace Puma
 
1394
 
 
1395
#endif /* __CLanguage_h__ */
 
1396
 
 
1397
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
1398
// This file is part of PUMA.
 
1399
// Copyright (C) 1999-2003  The PUMA developer team.
 
1400
//                                                                
 
1401
// This program is free software;  you can redistribute it and/or 
 
1402
// modify it under the terms of the GNU General Public License as 
 
1403
// published by the Free Software Foundation; either version 2 of 
 
1404
// the License, or (at your option) any later version.            
 
1405
//                                                                
 
1406
// This program is distributed in the hope that it will be useful,
 
1407
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1408
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1409
// GNU General Public License for more details.                   
 
1410
//                                                                
 
1411
// You should have received a copy of the GNU General Public      
 
1412
// License along with this program; if not, write to the Free     
 
1413
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1414
// MA  02111-1307  USA                                            
 
1415
 
 
1416
#ifndef __CSpecifiers__
 
1417
#define __CSpecifiers__
 
1418
 
 
1419
// C++ declaration specifiers
 
1420
 
 
1421
namespace Puma {
 
1422
 
 
1423
 
 
1424
 
 
1425
#line 1426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1426
} // closed Puma
 
1427
class CCExprResolve;
 
1428
class CExprResolve;
 
1429
class WinIfExists;
 
1430
class WinImportHandler;
 
1431
class WinMacros;
 
1432
class WinAsm;
 
1433
class WinDeclSpecs;
 
1434
class WinMemberExplSpec;
 
1435
class WinTypeKeywords;
 
1436
class WinFriend;
 
1437
class ExtAC;
 
1438
class ExtACBuilderCoupling;
 
1439
class ExtACSyntaxCoupling;
 
1440
class ExtACTree;
 
1441
class ExtACKeywords;
 
1442
class ExtGnu;
 
1443
class PragmaOnceUnitState;
 
1444
class PragmaOnce;
 
1445
class CMatchSyntax;
 
1446
namespace Puma {
 
1447
 
 
1448
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
1449
class CSpecifiers {
 
1450
#line 1451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1451
  friend class ::CCExprResolve;
 
1452
  friend class ::CExprResolve;
 
1453
  friend class ::WinIfExists;
 
1454
  friend class ::WinImportHandler;
 
1455
  friend class ::WinMacros;
 
1456
  friend class ::WinAsm;
 
1457
  friend class ::WinDeclSpecs;
 
1458
  friend class ::WinMemberExplSpec;
 
1459
  friend class ::WinTypeKeywords;
 
1460
  friend class ::WinFriend;
 
1461
  friend class ::ExtAC;
 
1462
  friend class ::ExtACBuilderCoupling;
 
1463
  friend class ::ExtACSyntaxCoupling;
 
1464
  friend class ::ExtACTree;
 
1465
  friend class ::ExtACKeywords;
 
1466
  friend class ::ExtGnu;
 
1467
  friend class ::PragmaOnceUnitState;
 
1468
  friend class ::PragmaOnce;
 
1469
  friend class ::CMatchSyntax;
 
1470
 
 
1471
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
1472
 
 
1473
public:
 
1474
  enum Spec {
 
1475
    SPEC_NONE     = 0x0,
 
1476
    SPEC_VIRTUAL  = 0x1,
 
1477
    SPEC_STATIC   = 0x2,
 
1478
    SPEC_EXTERN   = 0x4,
 
1479
    SPEC_MUTABLE  = 0x8,
 
1480
    SPEC_REGISTER = 0x10,
 
1481
    SPEC_EXPLICIT = 0x20,
 
1482
    SPEC_AUTO     = 0x40,
 
1483
    SPEC_INLINE   = 0x80
 
1484
  };
 
1485
 
 
1486
private:
 
1487
  unsigned char _specs;
 
1488
  
 
1489
public:
 
1490
  CSpecifiers ();
 
1491
  CSpecifiers (const CSpecifiers &);
 
1492
  CSpecifiers &operator =(const CSpecifiers &);
 
1493
 
 
1494
  // add/remove specifier
 
1495
  CSpecifiers &operator +=(Spec);
 
1496
  CSpecifiers &operator -=(Spec);
 
1497
  
 
1498
  // test for specifier
 
1499
  bool operator ==(Spec) const;
 
1500
  bool operator !=(Spec) const;
 
1501
};
 
1502
 
 
1503
inline CSpecifiers::CSpecifiers () : _specs (SPEC_NONE) 
 
1504
 {}
 
1505
inline CSpecifiers::CSpecifiers (const CSpecifiers &s)
 
1506
 { _specs = s._specs; }
 
1507
inline CSpecifiers &CSpecifiers::operator =(const CSpecifiers &s)
 
1508
 { _specs = s._specs; return *(CSpecifiers*)this; }
 
1509
 
 
1510
inline CSpecifiers &CSpecifiers::operator +=(CSpecifiers::Spec s)
 
1511
 { _specs = _specs | (unsigned char)s; return *(CSpecifiers*)this; }
 
1512
inline CSpecifiers &CSpecifiers::operator -=(CSpecifiers::Spec s)
 
1513
 { _specs = _specs ^ (_specs & (unsigned char)s); return *(CSpecifiers*)this; }
 
1514
 
 
1515
inline bool CSpecifiers::operator ==(CSpecifiers::Spec s) const
 
1516
 { return _specs & (unsigned char)s; }
 
1517
inline bool CSpecifiers::operator !=(CSpecifiers::Spec s) const
 
1518
 { return ! (_specs & (unsigned char)s); }
 
1519
 
 
1520
 
 
1521
} // namespace Puma
 
1522
 
 
1523
#endif /* __CSpecifiers__ */
 
1524
 
 
1525
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
 
1526
// This file is part of PUMA.
 
1527
// Copyright (C) 1999-2003  The PUMA developer team.
 
1528
//                                                                
 
1529
// This program is free software;  you can redistribute it and/or 
 
1530
// modify it under the terms of the GNU General Public License as 
 
1531
// published by the Free Software Foundation; either version 2 of 
 
1532
// the License, or (at your option) any later version.            
 
1533
//                                                                
 
1534
// This program is distributed in the hope that it will be useful,
 
1535
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1536
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1537
// GNU General Public License for more details.                   
 
1538
//                                                                
 
1539
// You should have received a copy of the GNU General Public      
 
1540
// License along with this program; if not, write to the Free     
 
1541
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1542
// MA  02111-1307  USA                                            
 
1543
 
 
1544
#ifndef __array_h__
 
1545
#define __array_h__
 
1546
 
 
1547
#include <assert.h>
 
1548
 
 
1549
namespace Puma {
 
1550
 
 
1551
template <class Item>
 
1552
class Array {
 
1553
protected:
 
1554
  static const long default_init_size = 5;
 
1555
  static const long default_increment = 5;
 
1556
 
 
1557
public:
 
1558
  Array (long is = default_init_size, long incr = default_increment);
 
1559
  Array (const Array<Item>& array);
 
1560
  Array<Item>& operator =(const Array<Item>&);
 
1561
  ~Array ();
 
1562
  void append (const Item& item);
 
1563
  void insert (long index, const Item& item);
 
1564
  void prepend (const Item& item);
 
1565
  void remove (long index);
 
1566
  void reset ();
 
1567
  Item& get (long index);
 
1568
  Item& operator[] (long index);
 
1569
  Item fetch (long index) const;
 
1570
  Item& lookup (long index) const;
 
1571
  long length () const;
 
1572
 
 
1573
private:
 
1574
  Item* data;
 
1575
  long size;
 
1576
  long count;
 
1577
  long increment;
 
1578
      
 
1579
  void grow (long wanted);
 
1580
};
 
1581
 
 
1582
template <class Item>
 
1583
inline Array<Item>::Array (long is, long incr) {
 
1584
  count     = 0; 
 
1585
  size      = is;
 
1586
  increment = incr;
 
1587
  data      = 0;
 
1588
}
 
1589
 
 
1590
template <class Item>
 
1591
Array<Item>::Array (const Array<Item>& array) {
 
1592
  count     = 0;
 
1593
  size      = array.size;
 
1594
  increment = array.increment;
 
1595
  
 
1596
  if (size && array.data) {
 
1597
    data = new Item[size];
 
1598
    for (; count < array.count; count++) {
 
1599
      data[count] = array.data[count];
 
1600
    }
 
1601
  } else
 
1602
    data = 0;
 
1603
}
 
1604
 
 
1605
template <class Item>
 
1606
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
1607
  if (data)
 
1608
    delete[] data;
 
1609
 
 
1610
  count     = 0;
 
1611
  size      = array.size;
 
1612
  increment = array.increment;
 
1613
 
 
1614
  if (size && array.data) {
 
1615
    data = new Item[size];
 
1616
    for (; count < array.count; count++) {
 
1617
      data[count] = array.data[count];
 
1618
    }
 
1619
  } else
 
1620
    data = 0;
 
1621
  
 
1622
  return *this;
 
1623
}
 
1624
 
 
1625
template <class Item>
 
1626
Array<Item>::~Array () {
 
1627
  if (data)
 
1628
    delete[] data;
 
1629
}
 
1630
 
 
1631
template <class Item>
 
1632
inline void Array<Item>::grow (long wanted) {
 
1633
  do {
 
1634
    size += increment;
 
1635
    increment *= 2;
 
1636
  } while (wanted >= size);
 
1637
 
 
1638
  if (data) {
 
1639
    Item* new_data = new Item[size];
 
1640
    for (long i = 0; i < count; i++) {
 
1641
      new_data[i] = data[i];
 
1642
    }
 
1643
    delete[] data;
 
1644
    data = new_data;
 
1645
  } else
 
1646
    data = new Item[size];
 
1647
}
 
1648
   
 
1649
template <class Item>
 
1650
inline void Array<Item>::append (const Item& item) {
 
1651
  if (count >= size || ! data) {
 
1652
    grow (count);
 
1653
  }
 
1654
  data[count++] = item;
 
1655
}
 
1656
 
 
1657
template <class Item>
 
1658
void Array<Item>::prepend (const Item& item) {
 
1659
  insert (0, item);
 
1660
}
 
1661
 
 
1662
template <class Item>
 
1663
void Array<Item>::insert (long index, const Item& item) {
 
1664
  if (count >= size || ! data) {
 
1665
    grow (count);
 
1666
  }
 
1667
  for (long i = count; i > index; i--)
 
1668
    data[i] = data[i - 1];
 
1669
  data[index] = item;
 
1670
  count++;
 
1671
}
 
1672
 
 
1673
template <class Item>
 
1674
inline Item& Array<Item>::get (long index) {
 
1675
  if (index >= size || ! data) {
 
1676
    grow (index);
 
1677
  }
 
1678
  if (index >= count)
 
1679
    count = index + 1;
 
1680
  return data[index];
 
1681
}
 
1682
 
 
1683
template <class Item>
 
1684
inline Item& Array<Item>::operator[] (long index) {
 
1685
  return get (index);
 
1686
}
 
1687
 
 
1688
template <class Item>
 
1689
inline Item Array<Item>::fetch (long index) const {
 
1690
  assert(index < count && data);
 
1691
  return data[index];
 
1692
}
 
1693
 
 
1694
template <class Item>
 
1695
inline long Array<Item>::length () const {
 
1696
  return count;
 
1697
}
 
1698
 
 
1699
template <class Item>
 
1700
inline void Array<Item>::remove (long index) {
 
1701
  if (index < count && count > 0) {
 
1702
    for (long i = index; i < count - 1; i++)
 
1703
      data[i] = data[i + 1];
 
1704
    count--;
 
1705
  }
 
1706
}
 
1707
 
 
1708
#ifndef __puma
 
1709
template <>
 
1710
inline void Array<int>::reset () {
 
1711
  count = 0; 
 
1712
}
 
1713
#endif
 
1714
 
 
1715
template <class Item>
 
1716
void Array<Item>::reset () {
 
1717
  if (data)
 
1718
    delete[] data;
 
1719
    
 
1720
  count     = 0; 
 
1721
  size      = default_init_size;
 
1722
  increment = default_increment;
 
1723
  data      = new Item[size];
 
1724
}
 
1725
 
 
1726
template <class Item>
 
1727
inline Item& Array<Item>::lookup (long index) const {
 
1728
  assert(index >= 0 && index < count);
 
1729
  return data[index];
 
1730
}
 
1731
 
 
1732
 
 
1733
} // namespace Puma
 
1734
 
 
1735
// Array specialization for pointer types sharing method definitions
 
1736
 
 
1737
#ifndef __puma
 
1738
 
 
1739
#include "Puma/VoidPtrArray.h"
 
1740
 
 
1741
namespace Puma {
 
1742
 
 
1743
 
 
1744
template <class Item>
 
1745
class Array<Item*> : private VoidPtrArray {
 
1746
  typedef VoidPtrArray Base;
 
1747
 
 
1748
public:
 
1749
  Array (long is = default_init_size, long incr = default_increment) :
 
1750
    Base (is, incr) {}
 
1751
  Array (const Array<Item*> &array) : 
 
1752
    Base (array) {}
 
1753
  Array<Item*> &operator= (const Array<Item*> &array) 
 
1754
   { return (Array<Item*>&)Base::operator= (array); }
 
1755
 
 
1756
  ~Array () {}
 
1757
 
 
1758
  void append (const Item *item)           { Base::append ((void*)item); }
 
1759
  void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
 
1760
  void prepend (const Item *item)          { Base::prepend ((void*)item); }
 
1761
  void remove (long idx)                   { Base::remove (idx); }
 
1762
  void reset ()                            { Base::reset (); }
 
1763
 
 
1764
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
1765
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
1766
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
1767
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
1768
  long length () const                     { return Base::length (); }
 
1769
};
 
1770
 
 
1771
 
 
1772
} // namespace Puma
 
1773
 
 
1774
#endif /* __puma */
 
1775
 
 
1776
#endif /* __array_h__ */
 
1777
 
 
1778
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
1779
namespace Puma {
 
1780
 
 
1781
 
 
1782
class CRecord;
 
1783
class CStructure;
 
1784
class CFileInfo;
 
1785
class CClassInfo;
 
1786
class CBaseClassInfo;
 
1787
class CMemberAliasInfo;
 
1788
class CTypeInfo;
 
1789
class CScopeInfo;
 
1790
class CLabelInfo;
 
1791
class CUnionInfo;
 
1792
class CLocalScope;
 
1793
class CEnumInfo;
 
1794
class CUsingInfo;
 
1795
class CEnumeratorInfo;
 
1796
class CTypedefInfo;
 
1797
class CFunctionInfo;
 
1798
class CArgumentInfo;
 
1799
class CAttributeInfo;
 
1800
class CTemplateParamInfo;
 
1801
class CTemplateInfo;
 
1802
class CNamespaceInfo;
 
1803
class CClassInstance;
 
1804
class CUnionInstance;
 
1805
class CFctInstance;
 
1806
class CClassDatabase;
661
1807
class CTree;
662
 
class   CT_Statement;          
663
 
class     CT_LabelStmt;
664
 
class     CT_IfStmt;
665
 
class     CT_IfElseStmt;
666
 
class     CT_SwitchStmt;
667
 
class     CT_BreakStmt;
668
 
class     CT_ExprStmt;
669
 
class     CT_WhileStmt;
670
 
class     CT_DoStmt;
671
 
class     CT_ForStmt;
672
 
class     CT_ContinueStmt;
673
 
class     CT_ReturnStmt;
674
 
class     CT_GotoStmt;
675
 
class     CT_DeclStmt;
676
 
class     CT_CaseStmt;
677
 
class     CT_DefaultStmt;
678
 
class     CT_TryStmt;
679
 
class   CT_Expression;
680
 
class     CT_ThrowExpr;
681
 
class     CT_NewExpr;
682
 
class     CT_DeleteExpr;
683
 
class     CT_ConstructExpr;
684
 
class     CT_Integer;
685
 
class     CT_Character;
686
 
class       CT_WideCharacter;
687
 
class     CT_Float;
688
 
class     CT_Bool;
689
 
class     CT_BracedExpr;
690
 
class     CT_BinaryExpr;
691
 
class       CT_MembPtrExpr;
692
 
class         CT_MembRefExpr;
693
 
class     CT_UnaryExpr;
694
 
class       CT_PostfixExpr;
695
 
class       CT_AddrExpr;
696
 
class       CT_DerefExpr;
697
 
class     CT_IfThenExpr;
698
 
class     CT_CmpdLiteral;
699
 
class     CT_IndexExpr;
700
 
class     CT_CallExpr;
701
 
class     CT_CastExpr;
702
 
class     CT_StaticCast;
703
 
class       CT_ConstCast;
704
 
class       CT_ReintCast;
705
 
class       CT_DynamicCast;
706
 
class     CT_TypeidExpr;
707
 
class     CT_SizeofExpr;
708
 
class     CT_MembDesignator;
709
 
class     CT_IndexDesignator;
710
 
class     CT_ImplicitCast;
711
 
class   CT_DeclSpec;
712
 
class     CT_PrimDeclSpec;
713
 
class     CT_NamedType;
714
 
class     CT_ClassSpec;
715
 
class       CT_UnionSpec;
716
 
class       CT_EnumSpec;
717
 
class     CT_ExceptionSpec;
718
 
class   CT_Declarator;
719
 
class     CT_InitDeclarator;
720
 
class     CT_BracedDeclarator;
721
 
class     CT_ArrayDeclarator;
722
 
class     CT_FctDeclarator;
723
 
class     CT_RefDeclarator;
724
 
class     CT_PtrDeclarator;
725
 
class     CT_MembPtrDeclarator;
726
 
class     CT_BitFieldDeclarator;
727
 
class   CT_Decl;
728
 
class     CT_ObjDecl;
729
 
class     CT_ArgDecl;
730
 
class     CT_AccessDecl;
731
 
class       CT_UsingDecl;
732
 
class     CT_FctDef;
733
 
class     CT_AsmDef;
734
 
class     CT_EnumDef;
735
 
class     CT_ClassDef;
736
 
class       CT_UnionDef;
737
 
class     CT_Enumerator;
738
 
class     CT_LinkageSpec;
739
 
class     CT_Handler;
740
 
class     CT_TemplateDecl;
741
 
class     CT_TemplateParamDecl;
742
 
class       CT_TypeParamDecl;
743
 
class       CT_NonTypeParamDecl;
744
 
class     CT_NamespaceDef;
745
 
class     CT_NamespaceAliasDef;
746
 
class     CT_UsingDirective;
747
 
class   CT_List;
748
 
class     CT_CmpdStmt;
749
 
class     CT_DeclSpecSeq;
750
 
class     CT_HandlerSeq;
751
 
class     CT_DesignatorSeq;
752
 
class     CT_DeclList;
753
 
class       CT_Program;
754
 
class       CT_ArgDeclList;
755
 
class         CT_ArgNameList;
756
 
class       CT_ArgDeclSeq;
757
 
class       CT_MembList;
758
 
class     CT_ExprList;
759
 
class     CT_DeclaratorList;
760
 
class     CT_BaseSpecList;
761
 
class     CT_MembInitList;
762
 
class     CT_SimpleName;
763
 
class       CT_SpecialName;
764
 
class         CT_PrivateName;
765
 
class         CT_OperatorName;
766
 
class         CT_DestructorName;
767
 
class         CT_ConversionName;
768
 
class         CT_TemplateName;
769
 
class       CT_QualName;
770
 
class         CT_RootQualName;
771
 
class     CT_String;
772
 
class       CT_WideString;
773
 
class     CT_TemplateParamList;
774
 
class     CT_TemplateArgList;
775
 
class   CT_Token;
776
 
class   CT_Error;
777
 
class   CT_Condition;
778
 
class   CT_BaseSpec;
779
 
class   CT_AccessSpec;
780
 
class   CT_ArrayDelimiter;
781
 
class   CT_Any;
782
 
class   CT_AnyList;
783
 
class   CT_AnyExtension;
784
 
class   CT_AnyCondition;
785
 
 
786
 
 
787
 
} // namespace Puma
788
 
 
789
 
 
790
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
1808
class CT_ExprList;
 
1809
class CTemplateInstance;
 
1810
 
 
1811
 
 
1812
#line 1813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1813
} // closed Puma
 
1814
class CCExprResolve;
 
1815
class CExprResolve;
 
1816
class WinIfExists;
 
1817
class WinImportHandler;
 
1818
class WinMacros;
 
1819
class WinAsm;
 
1820
class WinDeclSpecs;
 
1821
class WinMemberExplSpec;
 
1822
class WinTypeKeywords;
 
1823
class WinFriend;
 
1824
class ExtAC;
 
1825
class ExtACBuilderCoupling;
 
1826
class ExtACSyntaxCoupling;
 
1827
class ExtACTree;
 
1828
class ExtACKeywords;
 
1829
class ExtGnu;
 
1830
class PragmaOnceUnitState;
 
1831
class PragmaOnce;
 
1832
class CMatchSyntax;
 
1833
namespace Puma {
 
1834
 
 
1835
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
1836
class CObjectInfo {
 
1837
#line 1838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
1838
  friend class ::CCExprResolve;
 
1839
  friend class ::CExprResolve;
 
1840
  friend class ::WinIfExists;
 
1841
  friend class ::WinImportHandler;
 
1842
  friend class ::WinMacros;
 
1843
  friend class ::WinAsm;
 
1844
  friend class ::WinDeclSpecs;
 
1845
  friend class ::WinMemberExplSpec;
 
1846
  friend class ::WinTypeKeywords;
 
1847
  friend class ::WinFriend;
 
1848
  friend class ::ExtAC;
 
1849
  friend class ::ExtACBuilderCoupling;
 
1850
  friend class ::ExtACSyntaxCoupling;
 
1851
  friend class ::ExtACTree;
 
1852
  friend class ::ExtACKeywords;
 
1853
  friend class ::ExtGnu;
 
1854
  friend class ::PragmaOnceUnitState;
 
1855
  friend class ::PragmaOnce;
 
1856
  friend class ::CMatchSyntax;
 
1857
 
 
1858
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
1859
 
 
1860
protected:
 
1861
  enum ObjectId {
 
1862
    FILE_INFO, 
 
1863
    UNION_INFO, 
 
1864
    CLASS_INFO,
 
1865
    BASECLASS_INFO,
 
1866
    MEMBERALIAS_INFO,
 
1867
    ENUM_INFO, 
 
1868
    TYPEDEF_INFO, 
 
1869
    FUNCTION_INFO, 
 
1870
    LABEL_INFO,
 
1871
    ENUMERATOR_INFO,
 
1872
    ATTRIBUTE_INFO, 
 
1873
    TEMPLATE_PARAM_INFO,
 
1874
    TEMPLATE_INFO,
 
1875
    CLASS_INSTANCE_INFO,
 
1876
    UNION_INSTANCE_INFO,
 
1877
    FCT_INSTANCE_INFO,
 
1878
    ARGUMENT_INFO, 
 
1879
    LOCAL_INFO, 
 
1880
    NAMESPACE_INFO,
 
1881
    USING_INFO
 
1882
  };
 
1883
 
 
1884
  bool               _DeleteMembersOnly;
 
1885
  
 
1886
private:
 
1887
  DString            _Name;
 
1888
  const char        *_QualName;         // Full qualified name
 
1889
  bool              _abs, _tdef;        // Flags that were used for QualName()
 
1890
  CTypeInfo         *_TypeInfo;
 
1891
  CObjectInfo       *_BaseObject;       // corresponding object of base class
 
1892
  CObjectInfo       *_Next;             // next linked object
 
1893
  CObjectInfo       *_Prev;             // previous linked object
 
1894
  CClassDatabase    *_ClassDB;
 
1895
  CTree             *_Tree;             // corresponding syntax tree
 
1896
  ObjectId           _Id;               // object type
 
1897
  CSpecifiers        _Specifiers;
 
1898
  CSourceInfo        _SourceInfo;       // location in source file
 
1899
  CProtection::Type  _Protection;
 
1900
  CLinkage::Type     _Linkage;
 
1901
  CStorage::Type     _Storage;            
 
1902
  CLanguage          _Language;
 
1903
 
 
1904
protected:
 
1905
  CStructure        *_QualScope;        // != 0 only in CAttributeInfo, CFunctionInfo, and CRecord
 
1906
  CStructure        *_AssignedScope;    // -real- scope of friend classes
 
1907
  Array<CStructure*> _Registered;         
 
1908
  
 
1909
public: 
 
1910
  ~CObjectInfo ();
 
1911
  
 
1912
  // compares the addresses of this and all linked objects
 
1913
  // to determine whether two objects denote the same entity
 
1914
  bool operator ==(const CObjectInfo &) const;
 
1915
  bool operator !=(const CObjectInfo &) const;
 
1916
 
 
1917
  // ask the object info type
 
1918
  CObjectInfo        *ObjectInfo () const;
 
1919
  CLabelInfo         *LabelInfo () const;
 
1920
  CMemberAliasInfo   *MemberAliasInfo () const; 
 
1921
  CBaseClassInfo     *BaseClassInfo () const;
 
1922
  CUsingInfo         *UsingInfo () const;
 
1923
  CTypedefInfo       *TypedefInfo () const;
 
1924
  CArgumentInfo      *ArgumentInfo () const;
 
1925
  CAttributeInfo     *AttributeInfo () const;
 
1926
  CTemplateParamInfo *TemplateParamInfo () const; 
 
1927
  CStructure         *Structure () const; 
 
1928
  CFileInfo          *FileInfo () const;  
 
1929
  CRecord            *Record () const;        
 
1930
  CLocalScope        *LocalScope () const;
 
1931
  CScopeInfo         *ScopeInfo () const; 
 
1932
  CClassInfo         *ClassInfo () const;
 
1933
  CUnionInfo         *UnionInfo () const;
 
1934
  CEnumInfo          *EnumInfo () const;
 
1935
  CFunctionInfo      *FunctionInfo () const;
 
1936
  CNamespaceInfo     *NamespaceInfo () const;
 
1937
  CEnumeratorInfo    *EnumeratorInfo () const;
 
1938
  CTemplateInfo      *TemplateInfo () const; 
 
1939
  CClassInstance     *ClassInstance () const; 
 
1940
  CFctInstance       *FctInstance () const; 
 
1941
  CUnionInstance     *UnionInstance () const; 
 
1942
  CTemplateInstance  *TemplateInstance () const;
 
1943
  CRecord            *ClassScope () const;
 
1944
 
 
1945
  // Get ...
 
1946
  ObjectId            Id () const;
 
1947
  const DString&      Name () const; 
 
1948
  const char         *QualName (bool abs = false, // created on demand
 
1949
                                bool tdef = false);
 
1950
  CObjectInfo        *DefObject () const;         // info of the definition
 
1951
  CTypeInfo          *TypeInfo () const;
 
1952
  CScopeInfo         *Scope () const;             // enclosing scope
 
1953
  CStructure         *QualifiedScope () const;    // scope of qualified names
 
1954
  CSourceInfo        *SourceInfo () const;        // location in source file
 
1955
  CClassDatabase     *ClassDB () const; 
 
1956
  CTree              *Tree () const;
 
1957
  CObjectInfo        *NextObject () const;        // next linked object
 
1958
  CObjectInfo        *PrevObject () const;        // previous linked object
 
1959
  bool                isAnonymous () const;       // has only a private name?
 
1960
  bool                isTemplate () const;
 
1961
  bool                isTemplateInstance () const;
 
1962
  bool                isBuiltin () const;         // has no tree?
 
1963
  bool                isClassMember () const;     // is method or data member?
 
1964
  CTemplateInfo      *Template () const;          // template info of template
 
1965
  CObjectInfo        *BaseObject () const;        // base class object; not yet set
 
1966
  CT_ExprList        *Init () const;              // get initializer (if any)
 
1967
  CProtection::Type   Protection () const;        // member access level
 
1968
  CLinkage::Type      Linkage () const;           // object linkage
 
1969
  CStorage::Type      Storage () const;           // storage duration
 
1970
  const CLanguage    &Language () const;          // entity encoding language
 
1971
  CLanguage          &Language ();                // entity encoding language
 
1972
  bool                isVirtual () const;         // defined virtual?
 
1973
  bool                isStatic () const;          // defined static?
 
1974
  bool                isExtern () const;          // defined extern?
 
1975
  bool                isMutable () const;         // defined mutable?
 
1976
  bool                isRegister () const;        // defined register?
 
1977
  bool                isExplicit () const;        // defined explicit?
 
1978
  bool                isInline () const;          // defined inline?
 
1979
  bool                isAuto () const;            // defined auto?
 
1980
  CStructure          *AssignedScope () const; 
 
1981
  bool                isRegistered (const CStructure*) const;
 
1982
 
 
1983
  // Set ...
 
1984
  void                Name (const char* s) { Name(DString(s==0?"":s)); }
 
1985
  void                Name (const DString&);
 
1986
  void                TypeInfo (CTypeInfo *);
 
1987
  void                BaseObject (CObjectInfo *);
 
1988
  void                Protection (CProtection::Type);
 
1989
  void                Linkage (CLinkage::Type);
 
1990
  void                Storage (CStorage::Type);
 
1991
  void                FileInfo (CFileInfo *);
 
1992
  void                Tree (CTree *);    
 
1993
  void                ClassDB (CClassDatabase *);
 
1994
  void                DeleteMembersOnly ();
 
1995
  void                NextObject (CObjectInfo *); 
 
1996
  void                PrevObject (CObjectInfo *); 
 
1997
  void                Unlink (); 
 
1998
  void                Register (CStructure *);
 
1999
  void                Unregister (CStructure *);
 
2000
  void                isVirtual (bool);
 
2001
  void                isStatic (bool);
 
2002
  void                isExtern (bool);
 
2003
  void                isMutable (bool);
 
2004
  void                isRegister (bool);
 
2005
  void                isExplicit (bool);
 
2006
  void                isInline (bool);
 
2007
  void                isAuto (bool);
 
2008
  void                AssignedScope (CStructure *);
 
2009
 
 
2010
protected:  
 
2011
  CObjectInfo (ObjectId);
 
2012
 
 
2013
  void CleanUp ();
 
2014
};
 
2015
 
 
2016
inline CObjectInfo::CObjectInfo (CObjectInfo::ObjectId id) :
 
2017
  _DeleteMembersOnly (false),
 
2018
  _Name              (),
 
2019
  _QualName          ((const char*)0),
 
2020
  _TypeInfo          ((CTypeInfo*)0),
 
2021
  _BaseObject        ((CObjectInfo*)0),
 
2022
  _Next              ((CObjectInfo*)this),
 
2023
  _Prev              ((CObjectInfo*)this),
 
2024
  _ClassDB           ((CClassDatabase*)0),
 
2025
  _Tree              ((CTree*)0),
 
2026
  _Id                (id),
 
2027
  _Protection        (CProtection::PROT_NONE), 
 
2028
  _Linkage           (CLinkage::LINK_NONE),
 
2029
  _Storage           (CStorage::CLASS_NONE),
 
2030
  _QualScope         ((CStructure*)0),
 
2031
  _AssignedScope     ((CStructure*)0)
 
2032
 {}
 
2033
 
 
2034
inline CObjectInfo::ObjectId CObjectInfo::Id () const
 
2035
 { return _Id; }
 
2036
 
 
2037
inline bool CObjectInfo::operator !=(const CObjectInfo &info) const
 
2038
 { return ! (*this == info); }
 
2039
 
 
2040
inline const DString& CObjectInfo::Name () const 
 
2041
 { return _Name; }
 
2042
inline CTypeInfo *CObjectInfo::TypeInfo () const
 
2043
 { return _TypeInfo; }
 
2044
inline CSourceInfo *CObjectInfo::SourceInfo () const
 
2045
 { return (CSourceInfo*)&_SourceInfo; }
 
2046
inline CProtection::Type CObjectInfo::Protection () const
 
2047
 { return _Protection; }
 
2048
inline CLinkage::Type CObjectInfo::Linkage () const
 
2049
 { return _Linkage; }
 
2050
inline CStorage::Type CObjectInfo::Storage () const
 
2051
 { return _Storage; }
 
2052
inline CLanguage &CObjectInfo::Language ()
 
2053
 { return _Language; }
 
2054
inline const CLanguage &CObjectInfo::Language () const
 
2055
 { return _Language; }
 
2056
inline CObjectInfo *CObjectInfo::BaseObject () const
 
2057
 { return _BaseObject; }
 
2058
inline CTree *CObjectInfo::Tree () const 
 
2059
 { return _Tree; }
 
2060
inline CClassDatabase *CObjectInfo::ClassDB () const
 
2061
 { return _ClassDB; }
 
2062
inline CT_ExprList *CObjectInfo::Init () const 
 
2063
 { return (CT_ExprList*)0; }
 
2064
 
 
2065
inline void CObjectInfo::Protection (CProtection::Type s)
 
2066
 { _Protection = s; }
 
2067
inline void CObjectInfo::Linkage (CLinkage::Type s)
 
2068
 { _Linkage = s; }
 
2069
inline void CObjectInfo::Storage (CStorage::Type s)
 
2070
 { _Storage = s; }
 
2071
inline void CObjectInfo::BaseObject (CObjectInfo *info)
 
2072
 { _BaseObject = info; }
 
2073
inline void CObjectInfo::Tree (CTree *t)    
 
2074
 { _Tree = t; }
 
2075
inline void CObjectInfo::ClassDB (CClassDatabase *db) 
 
2076
 { _ClassDB = db; }
 
2077
inline void CObjectInfo::DeleteMembersOnly () 
 
2078
 { _DeleteMembersOnly = true; }
 
2079
 
 
2080
inline void CObjectInfo::Register (CStructure *scope)
 
2081
 { _Registered.append (scope); }
 
2082
 
 
2083
inline bool CObjectInfo::isAnonymous () const 
 
2084
 { return (Name ().empty () || *Name ().c_str () == '%'); }
 
2085
inline bool CObjectInfo::isBuiltin () const
 
2086
 { return ! (Tree ()); }
 
2087
inline bool CObjectInfo::isTemplateInstance () const 
 
2088
 { return (ClassInstance () || UnionInstance () || FctInstance ()); }
 
2089
 
 
2090
inline bool CObjectInfo::isVirtual () const
 
2091
 { return _Specifiers == CSpecifiers::SPEC_VIRTUAL; }
 
2092
inline bool CObjectInfo::isStatic () const
 
2093
 { return _Specifiers == CSpecifiers::SPEC_STATIC; }
 
2094
inline bool CObjectInfo::isExtern () const
 
2095
 { return _Specifiers == CSpecifiers::SPEC_EXTERN; }
 
2096
inline bool CObjectInfo::isMutable () const
 
2097
 { return _Specifiers == CSpecifiers::SPEC_MUTABLE; }
 
2098
inline bool CObjectInfo::isRegister () const
 
2099
 { return _Specifiers == CSpecifiers::SPEC_REGISTER; }
 
2100
inline bool CObjectInfo::isExplicit () const
 
2101
 { return _Specifiers == CSpecifiers::SPEC_EXPLICIT; }
 
2102
inline bool CObjectInfo::isInline () const
 
2103
 { return _Specifiers == CSpecifiers::SPEC_INLINE; }
 
2104
inline bool CObjectInfo::isAuto () const
 
2105
 { return _Specifiers == CSpecifiers::SPEC_AUTO; }
 
2106
 
 
2107
inline void CObjectInfo::isVirtual (bool v)
 
2108
 { if (v) _Specifiers += CSpecifiers::SPEC_VIRTUAL; 
 
2109
   else   _Specifiers -= CSpecifiers::SPEC_VIRTUAL; }
 
2110
inline void CObjectInfo::isStatic (bool v)
 
2111
 { if (v) _Specifiers += CSpecifiers::SPEC_STATIC; 
 
2112
   else   _Specifiers -= CSpecifiers::SPEC_STATIC; }
 
2113
inline void CObjectInfo::isExtern (bool v)
 
2114
 { if (v) _Specifiers += CSpecifiers::SPEC_EXTERN; 
 
2115
   else   _Specifiers -= CSpecifiers::SPEC_EXTERN; }
 
2116
inline void CObjectInfo::isMutable (bool v)
 
2117
 { if (v) _Specifiers += CSpecifiers::SPEC_MUTABLE; 
 
2118
   else   _Specifiers -= CSpecifiers::SPEC_MUTABLE; }
 
2119
inline void CObjectInfo::isRegister (bool v)
 
2120
 { if (v) _Specifiers += CSpecifiers::SPEC_REGISTER; 
 
2121
   else   _Specifiers -= CSpecifiers::SPEC_REGISTER; }
 
2122
inline void CObjectInfo::isExplicit (bool v)
 
2123
 { if (v) _Specifiers += CSpecifiers::SPEC_EXPLICIT; 
 
2124
   else   _Specifiers -= CSpecifiers::SPEC_EXPLICIT; }
 
2125
inline void CObjectInfo::isInline (bool v)
 
2126
 { if (v) _Specifiers += CSpecifiers::SPEC_INLINE; 
 
2127
   else   _Specifiers -= CSpecifiers::SPEC_INLINE; }
 
2128
inline void CObjectInfo::isAuto (bool v)
 
2129
 { if (v) _Specifiers += CSpecifiers::SPEC_AUTO; 
 
2130
   else   _Specifiers -= CSpecifiers::SPEC_AUTO; }
 
2131
 
 
2132
// link objects
 
2133
 
 
2134
inline CObjectInfo *CObjectInfo::NextObject () const
 
2135
 { return _Next; }
 
2136
inline CObjectInfo *CObjectInfo::PrevObject () const
 
2137
 { return _Prev; }
 
2138
 
 
2139
inline CMemberAliasInfo *CObjectInfo::MemberAliasInfo () const
 
2140
 { return _Id == MEMBERALIAS_INFO ? (CMemberAliasInfo*)this : (CMemberAliasInfo*)0; }
 
2141
inline CBaseClassInfo *CObjectInfo::BaseClassInfo () const
 
2142
 { return _Id == BASECLASS_INFO ? (CBaseClassInfo*)this : (CBaseClassInfo*)0; }
 
2143
inline CClassInfo *CObjectInfo::ClassInfo () const
 
2144
 { return _Id == CLASS_INFO || _Id == CLASS_INSTANCE_INFO ? (CClassInfo*)this : (CClassInfo*)0; }
 
2145
inline CUnionInfo *CObjectInfo::UnionInfo () const
 
2146
 { return _Id == UNION_INFO || _Id == UNION_INSTANCE_INFO ? (CUnionInfo*)this : (CUnionInfo*)0; }
 
2147
inline CEnumInfo *CObjectInfo::EnumInfo () const
 
2148
 { return _Id == ENUM_INFO ? (CEnumInfo*)this : (CEnumInfo*)0; }
 
2149
inline CUsingInfo *CObjectInfo::UsingInfo () const
 
2150
 { return _Id == USING_INFO ? (CUsingInfo*)this : (CUsingInfo*)0; }
 
2151
inline CEnumeratorInfo *CObjectInfo::EnumeratorInfo () const
 
2152
 { return _Id == ENUMERATOR_INFO ? (CEnumeratorInfo*)this : (CEnumeratorInfo*)0; }
 
2153
inline CTypedefInfo *CObjectInfo::TypedefInfo () const
 
2154
 { return _Id == TYPEDEF_INFO ? (CTypedefInfo*)this : (CTypedefInfo*)0; }
 
2155
inline CFunctionInfo *CObjectInfo::FunctionInfo () const
 
2156
 { return _Id == FUNCTION_INFO || _Id == FCT_INSTANCE_INFO ? (CFunctionInfo*)this : (CFunctionInfo*)0; }
 
2157
inline CArgumentInfo *CObjectInfo::ArgumentInfo () const
 
2158
 { return _Id == ARGUMENT_INFO ? (CArgumentInfo*)this : (CArgumentInfo*)0; }
 
2159
inline CAttributeInfo *CObjectInfo::AttributeInfo () const
 
2160
 { return _Id == ATTRIBUTE_INFO || _Id == ENUMERATOR_INFO ? (CAttributeInfo*)this : (CAttributeInfo*)0; }
 
2161
inline CNamespaceInfo *CObjectInfo::NamespaceInfo () const
 
2162
 { return _Id == NAMESPACE_INFO || _Id == FILE_INFO ? (CNamespaceInfo*)this : (CNamespaceInfo*)0; }
 
2163
inline CLabelInfo *CObjectInfo::LabelInfo () const
 
2164
 { return _Id == LABEL_INFO ? (CLabelInfo*)this : (CLabelInfo*)0; }
 
2165
inline CFileInfo *CObjectInfo::FileInfo () const
 
2166
 { return _Id == FILE_INFO ? (CFileInfo*)this : (CFileInfo*)0; }
 
2167
inline CStructure *CObjectInfo::Structure () const
 
2168
 { return NamespaceInfo () || ClassInfo () || UnionInfo () || 
 
2169
          FunctionInfo () || TemplateInfo () || LocalScope () ? 
 
2170
          (CStructure*)this : (CStructure*)0; }
 
2171
inline CRecord *CObjectInfo::Record () const
 
2172
 { return ClassInfo () || UnionInfo () ? (CRecord*)this : (CRecord*)0; }
 
2173
inline CLocalScope *CObjectInfo::LocalScope () const
 
2174
 { return _Id == LOCAL_INFO ? (CLocalScope*)this : (CLocalScope*)0; }
 
2175
inline CTemplateParamInfo *CObjectInfo::TemplateParamInfo () const
 
2176
 { return _Id == TEMPLATE_PARAM_INFO ? (CTemplateParamInfo*)this : (CTemplateParamInfo*)0; }
 
2177
inline CTemplateInfo *CObjectInfo::TemplateInfo () const
 
2178
 { return _Id == TEMPLATE_INFO ? (CTemplateInfo*)this : (CTemplateInfo*)0; }
 
2179
inline CScopeInfo *CObjectInfo::ScopeInfo () const
 
2180
 { return /*_Id == SCOPE_INFO ||*/ Structure () ? (CScopeInfo*)this : (CScopeInfo*)0; }
 
2181
inline CObjectInfo *CObjectInfo::ObjectInfo () const
 
2182
 { return (CObjectInfo*)this; }
 
2183
inline CClassInstance *CObjectInfo::ClassInstance () const
 
2184
 { return _Id == CLASS_INSTANCE_INFO ? (CClassInstance*)this : (CClassInstance*)0; }
 
2185
inline CUnionInstance *CObjectInfo::UnionInstance () const
 
2186
 { return _Id == UNION_INSTANCE_INFO ? (CUnionInstance*)this : (CUnionInstance*)0; }
 
2187
inline CFctInstance *CObjectInfo::FctInstance () const
 
2188
 { return _Id == FCT_INSTANCE_INFO ? (CFctInstance*)this : (CFctInstance*)0; }
 
2189
 
 
2190
inline CStructure *CObjectInfo::QualifiedScope () const { 
 
2191
  return _QualScope;
 
2192
}
 
2193
 
 
2194
inline void CObjectInfo::AssignedScope (CStructure *s)
 
2195
 { _AssignedScope = s; }
 
2196
inline CStructure *CObjectInfo::AssignedScope () const
 
2197
 { return _AssignedScope; } 
 
2198
 
 
2199
 
 
2200
} // namespace Puma
 
2201
 
 
2202
#endif /* __CObjectInfo_h__ */
 
2203
 
 
2204
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
2205
namespace Puma {
 
2206
 
 
2207
 
 
2208
class CLocalScope;
 
2209
class CFunctionInfo;
 
2210
class CNamespaceInfo;
 
2211
class CClassInfo;
 
2212
class CUnionInfo;
 
2213
class CTemplateInfo;
 
2214
 
 
2215
 
 
2216
#line 2217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2217
} // closed Puma
 
2218
class CCExprResolve;
 
2219
class CExprResolve;
 
2220
class WinIfExists;
 
2221
class WinImportHandler;
 
2222
class WinMacros;
 
2223
class WinAsm;
 
2224
class WinDeclSpecs;
 
2225
class WinMemberExplSpec;
 
2226
class WinTypeKeywords;
 
2227
class WinFriend;
 
2228
class ExtAC;
 
2229
class ExtACBuilderCoupling;
 
2230
class ExtACSyntaxCoupling;
 
2231
class ExtACTree;
 
2232
class ExtACKeywords;
 
2233
class ExtGnu;
 
2234
class PragmaOnceUnitState;
 
2235
class PragmaOnce;
 
2236
class CMatchSyntax;
 
2237
namespace Puma {
 
2238
 
 
2239
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
2240
class CScopeInfo : public CObjectInfo {
 
2241
#line 2242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2242
  friend class ::CCExprResolve;
 
2243
  friend class ::CExprResolve;
 
2244
  friend class ::WinIfExists;
 
2245
  friend class ::WinImportHandler;
 
2246
  friend class ::WinMacros;
 
2247
  friend class ::WinAsm;
 
2248
  friend class ::WinDeclSpecs;
 
2249
  friend class ::WinMemberExplSpec;
 
2250
  friend class ::WinTypeKeywords;
 
2251
  friend class ::WinFriend;
 
2252
  friend class ::ExtAC;
 
2253
  friend class ::ExtACBuilderCoupling;
 
2254
  friend class ::ExtACSyntaxCoupling;
 
2255
  friend class ::ExtACTree;
 
2256
  friend class ::ExtACKeywords;
 
2257
  friend class ::ExtGnu;
 
2258
  friend class ::PragmaOnceUnitState;
 
2259
  friend class ::PragmaOnce;
 
2260
  friend class ::CMatchSyntax;
 
2261
 
 
2262
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
2263
 
 
2264
  Array<CScopeInfo*> _Children; // child scopes
 
2265
  CScopeInfo *_Parent; // parent scope
 
2266
 
 
2267
protected:
 
2268
  CScopeInfo (ObjectId);
 
2269
 
 
2270
public:
 
2271
  ~CScopeInfo ();
 
2272
 
 
2273
  // Get ... 
 
2274
  unsigned Children () const;           // children of this scope
 
2275
  CScopeInfo *Child (unsigned) const;
 
2276
  CScopeInfo *Parent () const;          // parent scope
 
2277
  bool isFile () const;                 // is file?
 
2278
  bool isNamespace () const;            // is namespace?
 
2279
  bool isRecord () const;               // is class or union?
 
2280
  bool isClass () const;                // is class?
 
2281
  bool isUnion () const;                // is union?
 
2282
  bool isFunction () const;             // is function?
 
2283
  bool isMethod () const;               // is class method?
 
2284
  bool isClassTemplate () const;        // is class template?
 
2285
  bool isFctTemplate () const;          // is function template?
 
2286
  bool insideTemplate () const;         // is inside class or function template?
 
2287
  bool insideRecord () const;           // is inside class or union?
 
2288
  bool insideClass () const;            // is inside class?
 
2289
  bool insideUnion () const;            // is inside union?
 
2290
  bool insideFunction () const;         // is inside function?
 
2291
  bool insideMethod () const;           // is inside class method?
 
2292
  bool isLocalScope () const;           // is local (block) scope?
 
2293
  bool isLocalRecord () const;          // is local (block scope) class or union?
 
2294
  bool isLocalClass () const;           // is local (block scope) class?
 
2295
  bool isLocalUnion () const;           // is local (block scope) union?
 
2296
  
 
2297
  bool GlobalScope () const;            // global (file) scope
 
2298
 
 
2299
  // Set ...
 
2300
  void Parent (const CScopeInfo *);
 
2301
  void addChild (CScopeInfo *);
 
2302
  void removeChild (const CScopeInfo *); // WILL NOT BE DESTROYED!
 
2303
  
 
2304
  // Create/Delete ...
 
2305
  CLocalScope *newLocalScope ();
 
2306
  CFunctionInfo *newFunction (bool = false);
 
2307
  CClassInfo *newClass (bool = false);
 
2308
  CUnionInfo *newUnion (bool = false);
 
2309
  CNamespaceInfo *newNamespace ();
 
2310
  CTemplateInfo *newTemplate ();
 
2311
  void deleteLocalScope (const CLocalScope *);
 
2312
  void deleteFunction (const CFunctionInfo *);
 
2313
  void deleteClass (const CClassInfo *);
 
2314
  void deleteUnion (const CUnionInfo *);
 
2315
  void deleteNamespace (const CNamespaceInfo *);
 
2316
  void deleteTemplate (const CTemplateInfo *);
 
2317
};
 
2318
 
 
2319
 
 
2320
inline CScopeInfo::CScopeInfo (CObjectInfo::ObjectId id) :
 
2321
  CObjectInfo (id),
 
2322
  _Children (20, 20),
 
2323
  _Parent ((CScopeInfo*)this)
 
2324
 {}
 
2325
 
 
2326
inline unsigned CScopeInfo::Children () const
 
2327
 { return _Children.length (); }
 
2328
inline CScopeInfo *CScopeInfo::Child (unsigned n) const
 
2329
 { return _Children.lookup (n); }
 
2330
inline CScopeInfo *CScopeInfo::Parent () const
 
2331
 { return _Parent; }
 
2332
 
 
2333
inline bool CScopeInfo::isLocalScope () const
 
2334
 { return LocalScope (); }
 
2335
inline bool CScopeInfo::isFile () const 
 
2336
 { return FileInfo (); }
 
2337
inline bool CScopeInfo::isNamespace () const 
 
2338
 { return NamespaceInfo (); }
 
2339
inline bool CScopeInfo::isRecord () const 
 
2340
 { return Record (); }
 
2341
inline bool CScopeInfo::isClass () const 
 
2342
 { return ClassInfo (); }
 
2343
inline bool CScopeInfo::isUnion () const 
 
2344
 { return UnionInfo (); }
 
2345
inline bool CScopeInfo::isFunction () const 
 
2346
 { return FunctionInfo (); }
 
2347
inline bool CScopeInfo::GlobalScope () const 
 
2348
 { return FileInfo (); }
 
2349
 
 
2350
inline bool CScopeInfo::insideFunction () const 
 
2351
 { return isFunction () || (Parent () && Parent () != this && 
 
2352
                            Parent ()->insideFunction ()); }
 
2353
inline bool CScopeInfo::insideMethod () const 
 
2354
 { return isMethod () || (Parent () && Parent () != this && 
 
2355
                          Parent ()->insideMethod ()); }
 
2356
inline bool CScopeInfo::insideRecord () const 
 
2357
 { return isRecord () || (Parent () && Parent () != this && 
 
2358
                          Parent ()->insideRecord ()); }
 
2359
inline bool CScopeInfo::insideTemplate () const 
 
2360
 { return isTemplate () || (Parent () && Parent () != this && 
 
2361
                            Parent ()->insideTemplate ()); }
 
2362
inline bool CScopeInfo::insideClass () const 
 
2363
 { return isClass () || (Parent () && Parent () != this && 
 
2364
                         Parent ()->insideClass ()); }
 
2365
inline bool CScopeInfo::insideUnion () const 
 
2366
 { return isUnion () || (Parent () && Parent () != this && 
 
2367
                         Parent ()->insideUnion ()); }
 
2368
 
 
2369
inline bool CScopeInfo::isLocalClass () const 
 
2370
 { return isClass () && insideFunction (); }
 
2371
inline bool CScopeInfo::isLocalUnion () const 
 
2372
 { return isUnion () && insideFunction (); }
 
2373
inline bool CScopeInfo::isLocalRecord () const 
 
2374
 { return isRecord () && insideFunction (); }
 
2375
 
 
2376
 
 
2377
} // namespace Puma
 
2378
 
 
2379
#endif /* __CScopeInfo_h__ */
 
2380
 
 
2381
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
2382
 
 
2383
#line 2384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2384
 
 
2385
#ifndef __ac_fwd_ExtACKeywords__
 
2386
#define __ac_fwd_ExtACKeywords__
 
2387
class ExtACKeywords;
 
2388
namespace AC {
 
2389
  template <class JoinPoint>
 
2390
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
2391
  template <class JoinPoint>
 
2392
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
2393
  template <class JoinPoint>
 
2394
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
2395
}
 
2396
#endif
 
2397
 
 
2398
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
2399
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
2400
#endif
 
2401
 
 
2402
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
2403
// This file is part of PUMA.
 
2404
// Copyright (C) 1999-2003  The PUMA developer team.
 
2405
//                                                                
 
2406
// This program is free software;  you can redistribute it and/or 
 
2407
// modify it under the terms of the GNU General Public License as 
 
2408
// published by the Free Software Foundation; either version 2 of 
 
2409
// the License, or (at your option) any later version.            
 
2410
//                                                                
 
2411
// This program is distributed in the hope that it will be useful,
 
2412
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2413
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2414
// GNU General Public License for more details.                   
 
2415
//                                                                
 
2416
// You should have received a copy of the GNU General Public      
 
2417
// License along with this program; if not, write to the Free     
 
2418
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2419
// MA  02111-1307  USA                                            
 
2420
 
 
2421
#ifndef __CProject_h__
 
2422
#define __CProject_h__
 
2423
 
 
2424
// Special project derivation for C++ sources.
 
2425
 
 
2426
 
 
2427
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
2428
// This file is part of PUMA.
 
2429
// Copyright (C) 1999-2003  The PUMA developer team.
 
2430
//                                                                
 
2431
// This program is free software;  you can redistribute it and/or 
 
2432
// modify it under the terms of the GNU General Public License as 
 
2433
// published by the Free Software Foundation; either version 2 of 
 
2434
// the License, or (at your option) any later version.            
 
2435
//                                                                
 
2436
// This program is distributed in the hope that it will be useful,
 
2437
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2438
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2439
// GNU General Public License for more details.                   
 
2440
//                                                                
 
2441
// You should have received a copy of the GNU General Public      
 
2442
// License along with this program; if not, write to the Free     
 
2443
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2444
// MA  02111-1307  USA                                            
 
2445
 
 
2446
#ifndef __Config_h__
 
2447
#define __Config_h__
 
2448
 
 
2449
// Class Config provides evaluation of configuration 
 
2450
// information from file or command line.
 
2451
 
 
2452
 
 
2453
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
2454
// This file is part of PUMA.
 
2455
// Copyright (C) 1999-2003  The PUMA developer team.
 
2456
//                                                                
 
2457
// This program is free software;  you can redistribute it and/or 
 
2458
// modify it under the terms of the GNU General Public License as 
 
2459
// published by the Free Software Foundation; either version 2 of 
 
2460
// the License, or (at your option) any later version.            
 
2461
//                                                                
 
2462
// This program is distributed in the hope that it will be useful,
 
2463
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2464
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2465
// GNU General Public License for more details.                   
 
2466
//                                                                
 
2467
// You should have received a copy of the GNU General Public      
 
2468
// License along with this program; if not, write to the Free     
 
2469
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2470
// MA  02111-1307  USA                                            
 
2471
 
 
2472
#ifndef __Flags_h__
 
2473
#define __Flags_h__
 
2474
 
 
2475
namespace Puma {
 
2476
 
 
2477
 
 
2478
 
 
2479
#line 2480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2480
} // closed Puma
 
2481
class CCExprResolve;
 
2482
class CExprResolve;
 
2483
class WinIfExists;
 
2484
class WinImportHandler;
 
2485
class WinMacros;
 
2486
class WinAsm;
 
2487
class WinDeclSpecs;
 
2488
class WinMemberExplSpec;
 
2489
class WinTypeKeywords;
 
2490
class WinFriend;
 
2491
class ExtAC;
 
2492
class ExtACBuilderCoupling;
 
2493
class ExtACSyntaxCoupling;
 
2494
class ExtACTree;
 
2495
class ExtACKeywords;
 
2496
class ExtGnu;
 
2497
class PragmaOnceUnitState;
 
2498
class PragmaOnce;
 
2499
class CMatchSyntax;
 
2500
namespace Puma {
 
2501
 
 
2502
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
2503
class Flags {
 
2504
#line 2505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2505
  friend class ::CCExprResolve;
 
2506
  friend class ::CExprResolve;
 
2507
  friend class ::WinIfExists;
 
2508
  friend class ::WinImportHandler;
 
2509
  friend class ::WinMacros;
 
2510
  friend class ::WinAsm;
 
2511
  friend class ::WinDeclSpecs;
 
2512
  friend class ::WinMemberExplSpec;
 
2513
  friend class ::WinTypeKeywords;
 
2514
  friend class ::WinFriend;
 
2515
  friend class ::ExtAC;
 
2516
  friend class ::ExtACBuilderCoupling;
 
2517
  friend class ::ExtACSyntaxCoupling;
 
2518
  friend class ::ExtACTree;
 
2519
  friend class ::ExtACKeywords;
 
2520
  friend class ::ExtGnu;
 
2521
  friend class ::PragmaOnceUnitState;
 
2522
  friend class ::PragmaOnce;
 
2523
  friend class ::CMatchSyntax;
 
2524
 
 
2525
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
2526
 
 
2527
public:
 
2528
  enum Flag {
 
2529
    NONE                       = 0x0,
 
2530
    
 
2531
    SKIP_FCT_BODY              = 0x1,
 
2532
    SKIP_INITS                 = 0x2,
 
2533
    
 
2534
    // GNU extensions
 
2535
    GNU_NESTED_FCT             = 0x4,
 
2536
    GNU_CONDITION_SCOPE        = 0x8,
 
2537
    GNU_PARAM_DECL             = 0x10,
 
2538
    GNU_FCT_DECL               = 0x20,
 
2539
    GNU_PARAM_SCOPE            = 0x40,
 
2540
    GNU_DEFAULT_ARGS           = 0x80,
 
2541
    GNU_EXTENDED_ASM           = 0x100,
 
2542
    GNU_EXTENDED_EXPR          = 0x200,
 
2543
    GNU_LONG_LONG              = 0x400,
 
2544
    GNU_NAME_SCOPE             = 0x800, 
 
2545
    GNU_IMPLICIT_INT           = 0x1000,
 
2546
    GNU_FCT_ATTRIBUTE          = 0x2000,
 
2547
    GNU_IF_THEN_EXPR           = 0x4000
 
2548
  };
 
2549
  
 
2550
private:
 
2551
  Flag _Flags;
 
2552
  
 
2553
public:
 
2554
  Flags ();
 
2555
  Flags (const Flags &);
 
2556
  Flags &operator =(const Flags &);
 
2557
 
 
2558
  // add/remove flag
 
2559
  Flags &operator +=(Flag);
 
2560
  Flags &operator -=(Flag);
 
2561
  
 
2562
  // test for flag
 
2563
  bool operator ==(Flag) const;
 
2564
  bool operator !=(Flag) const;
 
2565
};
 
2566
 
 
2567
inline Flags::Flags () : _Flags (NONE) 
 
2568
 {}
 
2569
inline Flags::Flags (const Flags &f)
 
2570
 { _Flags = f._Flags; }
 
2571
inline Flags &Flags::operator =(const Flags &f)
 
2572
 { _Flags = f._Flags; return *(Flags*)this; }
 
2573
 
 
2574
inline Flags &Flags::operator +=(Flags::Flag f)
 
2575
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
 
2576
inline Flags &Flags::operator -=(Flags::Flag f)
 
2577
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
 
2578
 
 
2579
inline bool Flags::operator ==(Flags::Flag f) const
 
2580
 { return _Flags & f; }
 
2581
inline bool Flags::operator !=(Flags::Flag f) const
 
2582
 { return ! (_Flags & f); }
 
2583
 
 
2584
 
 
2585
} // namespace Puma
 
2586
 
 
2587
#endif /* __Flags_h__ */
 
2588
 
 
2589
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
2590
// This file is part of PUMA.
 
2591
// Copyright (C) 1999-2003  The PUMA developer team.
 
2592
//                                                                
 
2593
// This program is free software;  you can redistribute it and/or 
 
2594
// modify it under the terms of the GNU General Public License as 
 
2595
// published by the Free Software Foundation; either version 2 of 
 
2596
// the License, or (at your option) any later version.            
 
2597
//                                                                
 
2598
// This program is distributed in the hope that it will be useful,
 
2599
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2600
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2601
// GNU General Public License for more details.                   
 
2602
//                                                                
 
2603
// You should have received a copy of the GNU General Public      
 
2604
// License along with this program; if not, write to the Free     
 
2605
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2606
// MA  02111-1307  USA                                            
 
2607
 
 
2608
#ifndef __ConfOption_h__
 
2609
#define __ConfOption_h__
 
2610
 
 
2611
 
 
2612
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
2613
#include <stdlib.h>
 
2614
 
 
2615
namespace Puma {
 
2616
 
 
2617
 
 
2618
 
 
2619
#line 2620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2620
} // closed Puma
 
2621
class CCExprResolve;
 
2622
class CExprResolve;
 
2623
class WinIfExists;
 
2624
class WinImportHandler;
 
2625
class WinMacros;
 
2626
class WinAsm;
 
2627
class WinDeclSpecs;
 
2628
class WinMemberExplSpec;
 
2629
class WinTypeKeywords;
 
2630
class WinFriend;
 
2631
class ExtAC;
 
2632
class ExtACBuilderCoupling;
 
2633
class ExtACSyntaxCoupling;
 
2634
class ExtACTree;
 
2635
class ExtACKeywords;
 
2636
class ExtGnu;
 
2637
class PragmaOnceUnitState;
 
2638
class PragmaOnce;
 
2639
class CMatchSyntax;
 
2640
namespace Puma {
 
2641
 
 
2642
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
2643
class ConfOption {
 
2644
#line 2645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2645
  friend class ::CCExprResolve;
 
2646
  friend class ::CExprResolve;
 
2647
  friend class ::WinIfExists;
 
2648
  friend class ::WinImportHandler;
 
2649
  friend class ::WinMacros;
 
2650
  friend class ::WinAsm;
 
2651
  friend class ::WinDeclSpecs;
 
2652
  friend class ::WinMemberExplSpec;
 
2653
  friend class ::WinTypeKeywords;
 
2654
  friend class ::WinFriend;
 
2655
  friend class ::ExtAC;
 
2656
  friend class ::ExtACBuilderCoupling;
 
2657
  friend class ::ExtACSyntaxCoupling;
 
2658
  friend class ::ExtACTree;
 
2659
  friend class ::ExtACKeywords;
 
2660
  friend class ::ExtGnu;
 
2661
  friend class ::PragmaOnceUnitState;
 
2662
  friend class ::PragmaOnce;
 
2663
  friend class ::CMatchSyntax;
 
2664
 
 
2665
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
2666
 
 
2667
  const char *_name;
 
2668
  Array<const char *> _args;
 
2669
  
 
2670
public:
 
2671
  ConfOption (const char *);
 
2672
  ConfOption (const char *, const char *);
 
2673
  ConfOption (const char *, const char *, const char *);
 
2674
  ~ConfOption ();
 
2675
  
 
2676
  const char *Name () const;
 
2677
  unsigned Arguments () const;
 
2678
  const char *Argument (unsigned) const;
 
2679
  
 
2680
  void addArgument (const char *);
 
2681
};
 
2682
 
 
2683
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
 
2684
 { _name = StrCol::dup (n); }
 
2685
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
 
2686
 { _name = StrCol::dup (n); addArgument (a1); }
 
2687
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
 
2688
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
 
2689
 
 
2690
inline ConfOption::~ConfOption ()
 
2691
 { delete[] _name; 
 
2692
   for (unsigned i = 0; i < Arguments (); i++) 
 
2693
     delete[] Argument (i);
 
2694
 }
 
2695
 
 
2696
inline const char *ConfOption::Name () const 
 
2697
 { return _name; }
 
2698
inline unsigned ConfOption::Arguments () const
 
2699
 { return _args.length (); }
 
2700
inline const char *ConfOption::Argument (unsigned i) const
 
2701
 { return _args.lookup (i); }
 
2702
  
 
2703
inline void ConfOption::addArgument (const char *a) 
 
2704
 { if (a) _args.append (StrCol::dup (a)); }
 
2705
 
 
2706
 
 
2707
} // namespace Puma
 
2708
 
 
2709
#endif /* __ConfOption_h__ */
 
2710
 
 
2711
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
2712
// This file is part of PUMA.
 
2713
// Copyright (C) 1999-2003  The PUMA developer team.
 
2714
//                                                                
 
2715
// This program is free software;  you can redistribute it and/or 
 
2716
// modify it under the terms of the GNU General Public License as 
 
2717
// published by the Free Software Foundation; either version 2 of 
 
2718
// the License, or (at your option) any later version.            
 
2719
//                                                                
 
2720
// This program is distributed in the hope that it will be useful,
 
2721
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2722
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2723
// GNU General Public License for more details.                   
 
2724
//                                                                
 
2725
// You should have received a copy of the GNU General Public      
 
2726
// License along with this program; if not, write to the Free     
 
2727
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2728
// MA  02111-1307  USA                                            
 
2729
 
 
2730
#ifndef __error_stream_h__
 
2731
#define __error_stream_h__
 
2732
 
 
2733
// An ErrorStream is a special ErrorSink that prints out an error message
 
2734
// as soon as it complete. It also stores the maximum error severity.
 
2735
// The ErrorStream can be reset to it's initial state.
 
2736
 
 
2737
#include <sstream>
 
2738
 
 
2739
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2740
// This file is part of PUMA.
 
2741
// Copyright (C) 1999-2003  The PUMA developer team.
 
2742
//                                                                
 
2743
// This program is free software;  you can redistribute it and/or 
 
2744
// modify it under the terms of the GNU General Public License as 
 
2745
// published by the Free Software Foundation; either version 2 of 
 
2746
// the License, or (at your option) any later version.            
 
2747
//                                                                
 
2748
// This program is distributed in the hope that it will be useful,
 
2749
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2750
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2751
// GNU General Public License for more details.                   
 
2752
//                                                                
 
2753
// You should have received a copy of the GNU General Public      
 
2754
// License along with this program; if not, write to the Free     
 
2755
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2756
// MA  02111-1307  USA                                            
 
2757
 
 
2758
#ifndef __error_sink_h__
 
2759
#define __error_sink_h__
 
2760
 
 
2761
// This is an interface for classes that may be used to consume error
 
2762
// messages during a process where many errors can occur like parsing
 
2763
// a program.
 
2764
// The error information is handed over to the ErrorSink in stream-like
 
2765
// style. Different severities of errors are predefined and can be used
 
2766
// to classify error information that follows. Also a location can be
 
2767
// handed over to the ErrorSink to specify where the error was found
 
2768
// (filename, line, etc.). The error information itself can be of any
 
2769
// standard data type or anything that is "Printable".
 
2770
// Specializations of this class could either build and print error
 
2771
// messages or collect them for a later processing.
 
2772
 
 
2773
 
 
2774
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
791
2775
// This file is part of PUMA.
792
2776
// Copyright (C) 1999-2003  The PUMA developer team.
793
2777
//                                                                
815
2799
 
816
2800
 
817
2801
 
818
 
#line 819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
2802
#line 2803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
819
2803
} // closed Puma
 
2804
class CCExprResolve;
 
2805
class CExprResolve;
820
2806
class WinIfExists;
821
2807
class WinImportHandler;
822
2808
class WinMacros;
823
 
class CMatchSyntax;
824
 
class ExtGnu;
 
2809
class WinAsm;
 
2810
class WinDeclSpecs;
 
2811
class WinMemberExplSpec;
 
2812
class WinTypeKeywords;
 
2813
class WinFriend;
825
2814
class ExtAC;
826
2815
class ExtACBuilderCoupling;
827
2816
class ExtACSyntaxCoupling;
828
2817
class ExtACTree;
829
2818
class ExtACKeywords;
830
 
class WinAsm;
831
 
class WinDeclSpecs;
832
 
class WinMemberExplSpec;
833
 
class WinTypeKeywords;
 
2819
class ExtGnu;
834
2820
class PragmaOnceUnitState;
835
2821
class PragmaOnce;
836
 
class CCExprResolve;
837
 
class CExprResolve;
 
2822
class CMatchSyntax;
838
2823
namespace Puma {
839
2824
 
840
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2825
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
841
2826
class ErrorSeverity {
842
 
#line 843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
2827
#line 2828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2828
  friend class ::CCExprResolve;
 
2829
  friend class ::CExprResolve;
843
2830
  friend class ::WinIfExists;
844
2831
  friend class ::WinImportHandler;
845
2832
  friend class ::WinMacros;
846
 
  friend class ::CMatchSyntax;
847
 
  friend class ::ExtGnu;
 
2833
  friend class ::WinAsm;
 
2834
  friend class ::WinDeclSpecs;
 
2835
  friend class ::WinMemberExplSpec;
 
2836
  friend class ::WinTypeKeywords;
 
2837
  friend class ::WinFriend;
848
2838
  friend class ::ExtAC;
849
2839
  friend class ::ExtACBuilderCoupling;
850
2840
  friend class ::ExtACSyntaxCoupling;
851
2841
  friend class ::ExtACTree;
852
2842
  friend class ::ExtACKeywords;
853
 
  friend class ::WinAsm;
854
 
  friend class ::WinDeclSpecs;
855
 
  friend class ::WinMemberExplSpec;
856
 
  friend class ::WinTypeKeywords;
 
2843
  friend class ::ExtGnu;
857
2844
  friend class ::PragmaOnceUnitState;
858
2845
  friend class ::PragmaOnce;
859
 
  friend class ::CCExprResolve;
860
 
  friend class ::CExprResolve;
 
2846
  friend class ::CMatchSyntax;
861
2847
 
862
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2848
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
863
2849
 
864
2850
  unsigned short _severity;
865
2851
  const char *_text;
899
2885
 
900
2886
#endif /* __error_severity_h__ */
901
2887
 
902
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
2888
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
2889
// This file is part of PUMA.
 
2890
// Copyright (C) 1999-2003  The PUMA developer team.
 
2891
//                                                                
 
2892
// This program is free software;  you can redistribute it and/or 
 
2893
// modify it under the terms of the GNU General Public License as 
 
2894
// published by the Free Software Foundation; either version 2 of 
 
2895
// the License, or (at your option) any later version.            
 
2896
//                                                                
 
2897
// This program is distributed in the hope that it will be useful,
 
2898
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2899
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2900
// GNU General Public License for more details.                   
 
2901
//                                                                
 
2902
// You should have received a copy of the GNU General Public      
 
2903
// License along with this program; if not, write to the Free     
 
2904
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2905
// MA  02111-1307  USA                                            
 
2906
 
 
2907
#ifndef __printable_h__
 
2908
#define __printable_h__
 
2909
 
 
2910
#include <iostream>
 
2911
using namespace std;
 
2912
 
 
2913
namespace Puma {
 
2914
 
 
2915
 
 
2916
 
 
2917
#line 2918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2918
} // closed Puma
 
2919
class CCExprResolve;
 
2920
class CExprResolve;
 
2921
class WinIfExists;
 
2922
class WinImportHandler;
 
2923
class WinMacros;
 
2924
class WinAsm;
 
2925
class WinDeclSpecs;
 
2926
class WinMemberExplSpec;
 
2927
class WinTypeKeywords;
 
2928
class WinFriend;
 
2929
class ExtAC;
 
2930
class ExtACBuilderCoupling;
 
2931
class ExtACSyntaxCoupling;
 
2932
class ExtACTree;
 
2933
class ExtACKeywords;
 
2934
class ExtGnu;
 
2935
class PragmaOnceUnitState;
 
2936
class PragmaOnce;
 
2937
class CMatchSyntax;
 
2938
namespace Puma {
 
2939
 
 
2940
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
2941
class Printable {
 
2942
#line 2943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
2943
  friend class ::CCExprResolve;
 
2944
  friend class ::CExprResolve;
 
2945
  friend class ::WinIfExists;
 
2946
  friend class ::WinImportHandler;
 
2947
  friend class ::WinMacros;
 
2948
  friend class ::WinAsm;
 
2949
  friend class ::WinDeclSpecs;
 
2950
  friend class ::WinMemberExplSpec;
 
2951
  friend class ::WinTypeKeywords;
 
2952
  friend class ::WinFriend;
 
2953
  friend class ::ExtAC;
 
2954
  friend class ::ExtACBuilderCoupling;
 
2955
  friend class ::ExtACSyntaxCoupling;
 
2956
  friend class ::ExtACTree;
 
2957
  friend class ::ExtACKeywords;
 
2958
  friend class ::ExtGnu;
 
2959
  friend class ::PragmaOnceUnitState;
 
2960
  friend class ::PragmaOnce;
 
2961
  friend class ::CMatchSyntax;
 
2962
 
 
2963
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
 
2964
 
 
2965
public:
 
2966
  virtual ~Printable () {}
 
2967
  virtual void print (ostream &os) const = 0;
 
2968
};
 
2969
 
 
2970
 
 
2971
inline ostream &operator << (ostream &os, const Printable &object) {
 
2972
  object.print (os);
 
2973
  return os;
 
2974
}
 
2975
 
 
2976
 
 
2977
} // namespace Puma
 
2978
 
 
2979
#endif /* __printable_h__ */
 
2980
 
 
2981
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2982
// This file is part of PUMA.
 
2983
// Copyright (C) 1999-2003  The PUMA developer team.
 
2984
//                                                                
 
2985
// This program is free software;  you can redistribute it and/or 
 
2986
// modify it under the terms of the GNU General Public License as 
 
2987
// published by the Free Software Foundation; either version 2 of 
 
2988
// the License, or (at your option) any later version.            
 
2989
//                                                                
 
2990
// This program is distributed in the hope that it will be useful,
 
2991
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
2992
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
2993
// GNU General Public License for more details.                   
 
2994
//                                                                
 
2995
// You should have received a copy of the GNU General Public      
 
2996
// License along with this program; if not, write to the Free     
 
2997
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
2998
// MA  02111-1307  USA                                            
 
2999
 
 
3000
#ifndef __location_h__
 
3001
#define __location_h__
 
3002
 
 
3003
 
 
3004
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3005
// This file is part of PUMA.
 
3006
// Copyright (C) 1999-2003  The PUMA developer team.
 
3007
//                                                                
 
3008
// This program is free software;  you can redistribute it and/or 
 
3009
// modify it under the terms of the GNU General Public License as 
 
3010
// published by the Free Software Foundation; either version 2 of 
 
3011
// the License, or (at your option) any later version.            
 
3012
//                                                                
 
3013
// This program is distributed in the hope that it will be useful,
 
3014
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3015
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3016
// GNU General Public License for more details.                   
 
3017
//                                                                
 
3018
// You should have received a copy of the GNU General Public      
 
3019
// License along with this program; if not, write to the Free     
 
3020
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3021
// MA  02111-1307  USA                                            
 
3022
 
 
3023
#ifndef __filename_h__
 
3024
#define __filename_h__
 
3025
 
 
3026
 
 
3027
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3028
// This file is part of PUMA.
 
3029
// Copyright (C) 1999-2003  The PUMA developer team.
 
3030
//                                                                
 
3031
// This program is free software;  you can redistribute it and/or 
 
3032
// modify it under the terms of the GNU General Public License as 
 
3033
// published by the Free Software Foundation; either version 2 of 
 
3034
// the License, or (at your option) any later version.            
 
3035
//                                                                
 
3036
// This program is distributed in the hope that it will be useful,
 
3037
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3038
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3039
// GNU General Public License for more details.                   
 
3040
//                                                                
 
3041
// You should have received a copy of the GNU General Public      
 
3042
// License along with this program; if not, write to the Free     
 
3043
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3044
// MA  02111-1307  USA                                            
 
3045
 
 
3046
#ifndef __smart_ptr_h__
 
3047
#define __smart_ptr_h__
 
3048
 
 
3049
 
 
3050
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3051
// This file is part of PUMA.
 
3052
// Copyright (C) 1999-2003  The PUMA developer team.
 
3053
//                                                                
 
3054
// This program is free software;  you can redistribute it and/or 
 
3055
// modify it under the terms of the GNU General Public License as 
 
3056
// published by the Free Software Foundation; either version 2 of 
 
3057
// the License, or (at your option) any later version.            
 
3058
//                                                                
 
3059
// This program is distributed in the hope that it will be useful,
 
3060
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3061
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3062
// GNU General Public License for more details.                   
 
3063
//                                                                
 
3064
// You should have received a copy of the GNU General Public      
 
3065
// License along with this program; if not, write to the Free     
 
3066
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3067
// MA  02111-1307  USA                                            
 
3068
 
 
3069
#ifndef __ref_cnt_h__
 
3070
#define __ref_cnt_h__
 
3071
 
 
3072
namespace Puma {
 
3073
 
 
3074
 
 
3075
 
 
3076
#line 3077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3077
} // closed Puma
 
3078
class CCExprResolve;
 
3079
class CExprResolve;
 
3080
class WinIfExists;
 
3081
class WinImportHandler;
 
3082
class WinMacros;
 
3083
class WinAsm;
 
3084
class WinDeclSpecs;
 
3085
class WinMemberExplSpec;
 
3086
class WinTypeKeywords;
 
3087
class WinFriend;
 
3088
class ExtAC;
 
3089
class ExtACBuilderCoupling;
 
3090
class ExtACSyntaxCoupling;
 
3091
class ExtACTree;
 
3092
class ExtACKeywords;
 
3093
class ExtGnu;
 
3094
class PragmaOnceUnitState;
 
3095
class PragmaOnce;
 
3096
class CMatchSyntax;
 
3097
namespace Puma {
 
3098
 
 
3099
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3100
class RefCnt {
 
3101
#line 3102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3102
  friend class ::CCExprResolve;
 
3103
  friend class ::CExprResolve;
 
3104
  friend class ::WinIfExists;
 
3105
  friend class ::WinImportHandler;
 
3106
  friend class ::WinMacros;
 
3107
  friend class ::WinAsm;
 
3108
  friend class ::WinDeclSpecs;
 
3109
  friend class ::WinMemberExplSpec;
 
3110
  friend class ::WinTypeKeywords;
 
3111
  friend class ::WinFriend;
 
3112
  friend class ::ExtAC;
 
3113
  friend class ::ExtACBuilderCoupling;
 
3114
  friend class ::ExtACSyntaxCoupling;
 
3115
  friend class ::ExtACTree;
 
3116
  friend class ::ExtACKeywords;
 
3117
  friend class ::ExtGnu;
 
3118
  friend class ::PragmaOnceUnitState;
 
3119
  friend class ::PragmaOnce;
 
3120
  friend class ::CMatchSyntax;
 
3121
 
 
3122
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
3123
 
 
3124
  int _counter;
 
3125
 
 
3126
public:
 
3127
  RefCnt () : _counter (0) {}
 
3128
  virtual ~RefCnt () {}
 
3129
  
 
3130
  void ref () { _counter++; }
 
3131
  void deref () { _counter--; }
 
3132
  int counter () { return _counter; }
 
3133
};
 
3134
 
 
3135
 
 
3136
} // namespace Puma
 
3137
 
 
3138
#endif /* __ref_cnt_h__ */
 
3139
 
 
3140
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3141
namespace Puma {
 
3142
 
 
3143
 
 
3144
 
 
3145
#line 3146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3146
} // closed Puma
 
3147
class CCExprResolve;
 
3148
class CExprResolve;
 
3149
class WinIfExists;
 
3150
class WinImportHandler;
 
3151
class WinMacros;
 
3152
class WinAsm;
 
3153
class WinDeclSpecs;
 
3154
class WinMemberExplSpec;
 
3155
class WinTypeKeywords;
 
3156
class WinFriend;
 
3157
class ExtAC;
 
3158
class ExtACBuilderCoupling;
 
3159
class ExtACSyntaxCoupling;
 
3160
class ExtACTree;
 
3161
class ExtACKeywords;
 
3162
class ExtGnu;
 
3163
class PragmaOnceUnitState;
 
3164
class PragmaOnce;
 
3165
class CMatchSyntax;
 
3166
namespace Puma {
 
3167
 
 
3168
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3169
class SmartPtr {
 
3170
#line 3171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3171
  friend class ::CCExprResolve;
 
3172
  friend class ::CExprResolve;
 
3173
  friend class ::WinIfExists;
 
3174
  friend class ::WinImportHandler;
 
3175
  friend class ::WinMacros;
 
3176
  friend class ::WinAsm;
 
3177
  friend class ::WinDeclSpecs;
 
3178
  friend class ::WinMemberExplSpec;
 
3179
  friend class ::WinTypeKeywords;
 
3180
  friend class ::WinFriend;
 
3181
  friend class ::ExtAC;
 
3182
  friend class ::ExtACBuilderCoupling;
 
3183
  friend class ::ExtACSyntaxCoupling;
 
3184
  friend class ::ExtACTree;
 
3185
  friend class ::ExtACKeywords;
 
3186
  friend class ::ExtGnu;
 
3187
  friend class ::PragmaOnceUnitState;
 
3188
  friend class ::PragmaOnce;
 
3189
  friend class ::CMatchSyntax;
 
3190
 
 
3191
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
3192
 
 
3193
  RefCnt *_data;
 
3194
 
 
3195
public:
 
3196
  SmartPtr () : _data ((RefCnt*)0) {}
 
3197
  ~SmartPtr () { clear (); }
 
3198
  SmartPtr (const SmartPtr &copy);
 
3199
  SmartPtr (RefCnt *rc) : _data (rc) {}
 
3200
  SmartPtr &operator = (const SmartPtr &copy);
 
3201
 
 
3202
  void data (RefCnt *d);
 
3203
  void clear ();
 
3204
  RefCnt *data () const { return _data; }
 
3205
  bool is_defined () const { return _data != (RefCnt*)0; }
 
3206
};
 
3207
 
 
3208
 
 
3209
} // namespace Puma
 
3210
 
 
3211
#endif /* __smart_ptr_h__ */
 
3212
 
 
3213
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
3214
// This file is part of PUMA.
 
3215
// Copyright (C) 1999-2003  The PUMA developer team.
 
3216
//                                                                
 
3217
// This program is free software;  you can redistribute it and/or 
 
3218
// modify it under the terms of the GNU General Public License as 
 
3219
// published by the Free Software Foundation; either version 2 of 
 
3220
// the License, or (at your option) any later version.            
 
3221
//                                                                
 
3222
// This program is distributed in the hope that it will be useful,
 
3223
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3224
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3225
// GNU General Public License for more details.                   
 
3226
//                                                                
 
3227
// You should have received a copy of the GNU General Public      
 
3228
// License along with this program; if not, write to the Free     
 
3229
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3230
// MA  02111-1307  USA                                            
 
3231
 
 
3232
#ifndef __filename_info_h__
 
3233
#define __filename_info_h__
 
3234
 
 
3235
 
 
3236
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
3237
namespace Puma {
 
3238
 
 
3239
 
 
3240
 
 
3241
#line 3242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3242
} // closed Puma
 
3243
class CCExprResolve;
 
3244
class CExprResolve;
 
3245
class WinIfExists;
 
3246
class WinImportHandler;
 
3247
class WinMacros;
 
3248
class WinAsm;
 
3249
class WinDeclSpecs;
 
3250
class WinMemberExplSpec;
 
3251
class WinTypeKeywords;
 
3252
class WinFriend;
 
3253
class ExtAC;
 
3254
class ExtACBuilderCoupling;
 
3255
class ExtACSyntaxCoupling;
 
3256
class ExtACTree;
 
3257
class ExtACKeywords;
 
3258
class ExtGnu;
 
3259
class PragmaOnceUnitState;
 
3260
class PragmaOnce;
 
3261
class CMatchSyntax;
 
3262
namespace Puma {
 
3263
 
 
3264
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
3265
class FilenameInfo : public RefCnt {
 
3266
#line 3267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3267
  friend class ::CCExprResolve;
 
3268
  friend class ::CExprResolve;
 
3269
  friend class ::WinIfExists;
 
3270
  friend class ::WinImportHandler;
 
3271
  friend class ::WinMacros;
 
3272
  friend class ::WinAsm;
 
3273
  friend class ::WinDeclSpecs;
 
3274
  friend class ::WinMemberExplSpec;
 
3275
  friend class ::WinTypeKeywords;
 
3276
  friend class ::WinFriend;
 
3277
  friend class ::ExtAC;
 
3278
  friend class ::ExtACBuilderCoupling;
 
3279
  friend class ::ExtACSyntaxCoupling;
 
3280
  friend class ::ExtACTree;
 
3281
  friend class ::ExtACKeywords;
 
3282
  friend class ::ExtGnu;
 
3283
  friend class ::PragmaOnceUnitState;
 
3284
  friend class ::PragmaOnce;
 
3285
  friend class ::CMatchSyntax;
 
3286
 
 
3287
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
3288
 
 
3289
  DString _name;
 
3290
  const char *_path;
 
3291
  const char *_root;
 
3292
 
 
3293
public:
 
3294
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
 
3295
  ~FilenameInfo ();
 
3296
  void name (const char *n);
 
3297
//  void name (const DString &dsn) { _name = dsn; }
 
3298
  const char *name () const { return _name.c_str (); }
 
3299
  const char *path ();
 
3300
  const char *root ();
 
3301
  bool is_absolute () const;
 
3302
  bool operator == (const FilenameInfo &rc) const {
 
3303
    return _name == rc._name;
 
3304
  }
 
3305
};
 
3306
 
 
3307
 
 
3308
} // namespace Puma
 
3309
 
 
3310
#endif /* __filename_info_h__ */
 
3311
 
 
3312
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3313
namespace Puma {
 
3314
 
 
3315
 
 
3316
 
 
3317
#line 3318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3318
} // closed Puma
 
3319
class CCExprResolve;
 
3320
class CExprResolve;
 
3321
class WinIfExists;
 
3322
class WinImportHandler;
 
3323
class WinMacros;
 
3324
class WinAsm;
 
3325
class WinDeclSpecs;
 
3326
class WinMemberExplSpec;
 
3327
class WinTypeKeywords;
 
3328
class WinFriend;
 
3329
class ExtAC;
 
3330
class ExtACBuilderCoupling;
 
3331
class ExtACSyntaxCoupling;
 
3332
class ExtACTree;
 
3333
class ExtACKeywords;
 
3334
class ExtGnu;
 
3335
class PragmaOnceUnitState;
 
3336
class PragmaOnce;
 
3337
class CMatchSyntax;
 
3338
namespace Puma {
 
3339
 
 
3340
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3341
class Filename : public SmartPtr, public Printable {
 
3342
#line 3343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3343
  friend class ::CCExprResolve;
 
3344
  friend class ::CExprResolve;
 
3345
  friend class ::WinIfExists;
 
3346
  friend class ::WinImportHandler;
 
3347
  friend class ::WinMacros;
 
3348
  friend class ::WinAsm;
 
3349
  friend class ::WinDeclSpecs;
 
3350
  friend class ::WinMemberExplSpec;
 
3351
  friend class ::WinTypeKeywords;
 
3352
  friend class ::WinFriend;
 
3353
  friend class ::ExtAC;
 
3354
  friend class ::ExtACBuilderCoupling;
 
3355
  friend class ::ExtACSyntaxCoupling;
 
3356
  friend class ::ExtACTree;
 
3357
  friend class ::ExtACKeywords;
 
3358
  friend class ::ExtGnu;
 
3359
  friend class ::PragmaOnceUnitState;
 
3360
  friend class ::PragmaOnce;
 
3361
  friend class ::CMatchSyntax;
 
3362
 
 
3363
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
3364
 
 
3365
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
 
3366
 
 
3367
public:
 
3368
  Filename () {}
 
3369
  Filename (const char *n) { name (n); }
 
3370
  Filename &operator = (const char *n) { name (n); return *this; }
 
3371
  bool operator ~ () const { return info () != 0; }
 
3372
  void name (const char *n);
 
3373
  const char *name () const;
 
3374
  const char *path () const;
 
3375
  const char *root () const;
 
3376
  bool is_absolute () const;
 
3377
  bool operator == (const Filename &f) const;
 
3378
  bool operator != (const Filename &f) const { return !(*this == f); }
 
3379
  virtual void print (ostream &os) const { if (info ()) os << name (); }
 
3380
};
 
3381
 
 
3382
 
 
3383
} // namespace Puma
 
3384
 
 
3385
#endif /* __filename_h__ */
 
3386
 
 
3387
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
3388
namespace Puma {
 
3389
 
 
3390
 
 
3391
 
 
3392
#line 3393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3393
} // closed Puma
 
3394
class CCExprResolve;
 
3395
class CExprResolve;
 
3396
class WinIfExists;
 
3397
class WinImportHandler;
 
3398
class WinMacros;
 
3399
class WinAsm;
 
3400
class WinDeclSpecs;
 
3401
class WinMemberExplSpec;
 
3402
class WinTypeKeywords;
 
3403
class WinFriend;
 
3404
class ExtAC;
 
3405
class ExtACBuilderCoupling;
 
3406
class ExtACSyntaxCoupling;
 
3407
class ExtACTree;
 
3408
class ExtACKeywords;
 
3409
class ExtGnu;
 
3410
class PragmaOnceUnitState;
 
3411
class PragmaOnce;
 
3412
class CMatchSyntax;
 
3413
namespace Puma {
 
3414
 
 
3415
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
3416
class Location {
 
3417
#line 3418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3418
  friend class ::CCExprResolve;
 
3419
  friend class ::CExprResolve;
 
3420
  friend class ::WinIfExists;
 
3421
  friend class ::WinImportHandler;
 
3422
  friend class ::WinMacros;
 
3423
  friend class ::WinAsm;
 
3424
  friend class ::WinDeclSpecs;
 
3425
  friend class ::WinMemberExplSpec;
 
3426
  friend class ::WinTypeKeywords;
 
3427
  friend class ::WinFriend;
 
3428
  friend class ::ExtAC;
 
3429
  friend class ::ExtACBuilderCoupling;
 
3430
  friend class ::ExtACSyntaxCoupling;
 
3431
  friend class ::ExtACTree;
 
3432
  friend class ::ExtACKeywords;
 
3433
  friend class ::ExtGnu;
 
3434
  friend class ::PragmaOnceUnitState;
 
3435
  friend class ::PragmaOnce;
 
3436
  friend class ::CMatchSyntax;
 
3437
 
 
3438
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
3439
 
 
3440
  Filename _filename;
 
3441
  int _line;
 
3442
  int _column;
 
3443
 
 
3444
public:
 
3445
  Location () : _filename (), _line (0), _column (0) {}
 
3446
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
3447
  void setup (Filename f, int l, int c = 0) {
 
3448
    _filename = f;
 
3449
    _line     = l;
 
3450
    _column   = c;
 
3451
  }
 
3452
  const Filename &filename () const { return _filename; }
 
3453
  int line () const { return _line; }
 
3454
  int column () const { return _column; }
 
3455
  bool operator == (const Location &l) const {
 
3456
    return filename () == l.filename () && line () == l.line () &&
 
3457
      column () == l.column ();
 
3458
  }
 
3459
  bool operator != (const Location &l) const { return ! (*this == l); }
 
3460
  bool operator < (const Location &l) const {
 
3461
    // TODO: does it make sense to compare the filenames? better assert?
 
3462
    if (filename () != l.filename ())
 
3463
      return false;
 
3464
    return line () < l.line () && column () < l.column ();
 
3465
  }
 
3466
};
 
3467
 
 
3468
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
 
3469
#ifdef VISUAL_STUDIO
 
3470
  os << loc.filename () << "(" << loc.line () << ")";
 
3471
#else
 
3472
  os << loc.filename () << ":" << loc.line ();
 
3473
#endif
 
3474
  return os;  
 
3475
}
 
3476
} // namespace Puma
 
3477
 
 
3478
#endif /* __location_h__ */
 
3479
 
 
3480
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
3481
namespace Puma {
 
3482
 
 
3483
 
 
3484
 
 
3485
#line 3486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3486
} // closed Puma
 
3487
class CCExprResolve;
 
3488
class CExprResolve;
 
3489
class WinIfExists;
 
3490
class WinImportHandler;
 
3491
class WinMacros;
 
3492
class WinAsm;
 
3493
class WinDeclSpecs;
 
3494
class WinMemberExplSpec;
 
3495
class WinTypeKeywords;
 
3496
class WinFriend;
 
3497
class ExtAC;
 
3498
class ExtACBuilderCoupling;
 
3499
class ExtACSyntaxCoupling;
 
3500
class ExtACTree;
 
3501
class ExtACKeywords;
 
3502
class ExtGnu;
 
3503
class PragmaOnceUnitState;
 
3504
class PragmaOnce;
 
3505
class CMatchSyntax;
 
3506
namespace Puma {
 
3507
 
 
3508
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
3509
class ErrorSink {
 
3510
#line 3511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3511
  friend class ::CCExprResolve;
 
3512
  friend class ::CExprResolve;
 
3513
  friend class ::WinIfExists;
 
3514
  friend class ::WinImportHandler;
 
3515
  friend class ::WinMacros;
 
3516
  friend class ::WinAsm;
 
3517
  friend class ::WinDeclSpecs;
 
3518
  friend class ::WinMemberExplSpec;
 
3519
  friend class ::WinTypeKeywords;
 
3520
  friend class ::WinFriend;
 
3521
  friend class ::ExtAC;
 
3522
  friend class ::ExtACBuilderCoupling;
 
3523
  friend class ::ExtACSyntaxCoupling;
 
3524
  friend class ::ExtACTree;
 
3525
  friend class ::ExtACKeywords;
 
3526
  friend class ::ExtGnu;
 
3527
  friend class ::PragmaOnceUnitState;
 
3528
  friend class ::PragmaOnce;
 
3529
  friend class ::CMatchSyntax;
 
3530
 
 
3531
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
3532
 
 
3533
public:
 
3534
  virtual ~ErrorSink () {}
 
3535
  virtual ErrorSink &operator << (const char *) = 0;
 
3536
  virtual ErrorSink &operator << (long) = 0;
 
3537
  virtual ErrorSink &operator << (unsigned) = 0;
 
3538
  virtual ErrorSink &operator << (int) = 0;
 
3539
  virtual ErrorSink &operator << (short) = 0;
 
3540
  virtual ErrorSink &operator << (char) = 0;
 
3541
  virtual ErrorSink &operator << (double) = 0;
 
3542
  virtual ErrorSink &operator << (const ErrorSeverity &) = 0;
 
3543
  virtual ErrorSink &operator << (Location) = 0;
 
3544
  virtual ErrorSink &operator << (const Printable &) = 0;
 
3545
  virtual ErrorSink &operator << (void (*f)(ErrorSink &)) = 0;
 
3546
  virtual void endMessage () = 0;
 
3547
};
 
3548
 
 
3549
void endMessage (ErrorSink &);
 
3550
 
 
3551
 
 
3552
} // namespace Puma
 
3553
 
 
3554
#endif /* __error_sink_h__ */
 
3555
 
 
3556
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
3557
using namespace std;
 
3558
 
 
3559
namespace Puma {
 
3560
 
 
3561
 
 
3562
 
 
3563
#line 3564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3564
} // closed Puma
 
3565
class CCExprResolve;
 
3566
class CExprResolve;
 
3567
class WinIfExists;
 
3568
class WinImportHandler;
 
3569
class WinMacros;
 
3570
class WinAsm;
 
3571
class WinDeclSpecs;
 
3572
class WinMemberExplSpec;
 
3573
class WinTypeKeywords;
 
3574
class WinFriend;
 
3575
class ExtAC;
 
3576
class ExtACBuilderCoupling;
 
3577
class ExtACSyntaxCoupling;
 
3578
class ExtACTree;
 
3579
class ExtACKeywords;
 
3580
class ExtGnu;
 
3581
class PragmaOnceUnitState;
 
3582
class PragmaOnce;
 
3583
class CMatchSyntax;
 
3584
namespace Puma {
 
3585
 
 
3586
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
3587
class ErrorStream : public ErrorSink {
 
3588
#line 3589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3589
  friend class ::CCExprResolve;
 
3590
  friend class ::CExprResolve;
 
3591
  friend class ::WinIfExists;
 
3592
  friend class ::WinImportHandler;
 
3593
  friend class ::WinMacros;
 
3594
  friend class ::WinAsm;
 
3595
  friend class ::WinDeclSpecs;
 
3596
  friend class ::WinMemberExplSpec;
 
3597
  friend class ::WinTypeKeywords;
 
3598
  friend class ::WinFriend;
 
3599
  friend class ::ExtAC;
 
3600
  friend class ::ExtACBuilderCoupling;
 
3601
  friend class ::ExtACSyntaxCoupling;
 
3602
  friend class ::ExtACTree;
 
3603
  friend class ::ExtACKeywords;
 
3604
  friend class ::ExtGnu;
 
3605
  friend class ::PragmaOnceUnitState;
 
3606
  friend class ::PragmaOnce;
 
3607
  friend class ::CMatchSyntax;
 
3608
 
 
3609
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
3610
 
 
3611
  ostream *_ostream;
 
3612
  ErrorSeverity _max_severity;
 
3613
  ErrorSeverity _curr_severity;
 
3614
  Location _location;
 
3615
  bool _have_location;
 
3616
  std::ostringstream *_msg;
 
3617
  bool _silently;
 
3618
 
 
3619
  void output ();
 
3620
  void clear ();
 
3621
 
 
3622
public:
 
3623
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
 
3624
   { reset (); _silently = false; }
 
3625
  virtual ~ErrorStream () { delete _msg; }
 
3626
 
 
3627
  ErrorStream &operator << (const char *);
 
3628
  ErrorStream &operator << (long);
 
3629
  ErrorStream &operator << (unsigned);
 
3630
  ErrorStream &operator << (int);
 
3631
  ErrorStream &operator << (short);
 
3632
  ErrorStream &operator << (char);
 
3633
  ErrorStream &operator << (double);
 
3634
  ErrorStream &operator << (const ErrorSeverity &);
 
3635
  ErrorStream &operator << (Location);
 
3636
  ErrorStream &operator << (const Printable &);
 
3637
  ErrorStream &operator << (void (*f)(ErrorSink &));
 
3638
 
 
3639
  void endMessage ();
 
3640
  void reset ();
 
3641
  void silent ();
 
3642
  void loud ();
 
3643
 
 
3644
  ErrorSeverity severity () const { return _max_severity; }
 
3645
};
 
3646
 
 
3647
 
 
3648
} // namespace Puma
 
3649
 
 
3650
#endif /* __error_stream_h__ */
 
3651
 
 
3652
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
3653
// This file is part of PUMA.
 
3654
// Copyright (C) 1999-2003  The PUMA developer team.
 
3655
//                                                                
 
3656
// This program is free software;  you can redistribute it and/or 
 
3657
// modify it under the terms of the GNU General Public License as 
 
3658
// published by the Free Software Foundation; either version 2 of 
 
3659
// the License, or (at your option) any later version.            
 
3660
//                                                                
 
3661
// This program is distributed in the hope that it will be useful,
 
3662
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3663
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3664
// GNU General Public License for more details.                   
 
3665
//                                                                
 
3666
// You should have received a copy of the GNU General Public      
 
3667
// License along with this program; if not, write to the Free     
 
3668
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3669
// MA  02111-1307  USA                                            
 
3670
 
 
3671
#ifndef __OptsParser_h__
 
3672
#define __OptsParser_h__
 
3673
 
 
3674
 
 
3675
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
3676
// This file is part of PUMA.
 
3677
// Copyright (C) 1999-2003  The PUMA developer team.
 
3678
//                                                                
 
3679
// This program is free software;  you can redistribute it and/or 
 
3680
// modify it under the terms of the GNU General Public License as 
 
3681
// published by the Free Software Foundation; either version 2 of 
 
3682
// the License, or (at your option) any later version.            
 
3683
//                                                                
 
3684
// This program is distributed in the hope that it will be useful,
 
3685
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
3686
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
3687
// GNU General Public License for more details.                   
 
3688
//                                                                
 
3689
// You should have received a copy of the GNU General Public      
 
3690
// License along with this program; if not, write to the Free     
 
3691
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
3692
// MA  02111-1307  USA                                            
 
3693
 
 
3694
#ifndef __SimpleParser_h__
 
3695
#define __SimpleParser_h__
 
3696
 
 
3697
 
 
3698
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
3699
#include <vector>
 
3700
using namespace std;
 
3701
 
 
3702
namespace Puma {
 
3703
 
 
3704
 
 
3705
/** 
 
3706
 * Simple string parser. 
 
3707
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
3708
 */
 
3709
 
 
3710
#line 3711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3711
} // closed Puma
 
3712
class CCExprResolve;
 
3713
class CExprResolve;
 
3714
class WinIfExists;
 
3715
class WinImportHandler;
 
3716
class WinMacros;
 
3717
class WinAsm;
 
3718
class WinDeclSpecs;
 
3719
class WinMemberExplSpec;
 
3720
class WinTypeKeywords;
 
3721
class WinFriend;
 
3722
class ExtAC;
 
3723
class ExtACBuilderCoupling;
 
3724
class ExtACSyntaxCoupling;
 
3725
class ExtACTree;
 
3726
class ExtACKeywords;
 
3727
class ExtGnu;
 
3728
class PragmaOnceUnitState;
 
3729
class PragmaOnce;
 
3730
class CMatchSyntax;
 
3731
namespace Puma {
 
3732
 
 
3733
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
3734
class SimpleParser {
 
3735
#line 3736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3736
  friend class ::CCExprResolve;
 
3737
  friend class ::CExprResolve;
 
3738
  friend class ::WinIfExists;
 
3739
  friend class ::WinImportHandler;
 
3740
  friend class ::WinMacros;
 
3741
  friend class ::WinAsm;
 
3742
  friend class ::WinDeclSpecs;
 
3743
  friend class ::WinMemberExplSpec;
 
3744
  friend class ::WinTypeKeywords;
 
3745
  friend class ::WinFriend;
 
3746
  friend class ::ExtAC;
 
3747
  friend class ::ExtACBuilderCoupling;
 
3748
  friend class ::ExtACSyntaxCoupling;
 
3749
  friend class ::ExtACTree;
 
3750
  friend class ::ExtACKeywords;
 
3751
  friend class ::ExtGnu;
 
3752
  friend class ::PragmaOnceUnitState;
 
3753
  friend class ::PragmaOnce;
 
3754
  friend class ::CMatchSyntax;
 
3755
 
 
3756
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
3757
 
 
3758
public:
 
3759
  /**
 
3760
   * Remove enclosing double-quotes from a string.
 
3761
   * \param str The string to strip.
 
3762
   * \return String without the enclosing double-quotes.
 
3763
   */
 
3764
  static string strip (const string& str);
 
3765
  /**
 
3766
   * Splits a given string into tokens recognized by the given delimiters.
 
3767
   * \param str The string to split.
 
3768
   * \param tokens A vector for the tokens.
 
3769
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
3770
   * \return Number of recognized tokens.
 
3771
   */
 
3772
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
3773
 
 
3774
private:
 
3775
  /**
 
3776
   * Get the position of the next token.
 
3777
   * \param line The string to tokenize.
 
3778
   * \param delimiters A string with the token delimiters.
 
3779
   * \param pos The current position in the string.
 
3780
   * \param lastPos The last position in the string.
 
3781
   * \return The position of the next token.
 
3782
   */
 
3783
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
3784
  /**
 
3785
   * Get the begin of the next token.
 
3786
   * \param line The string to tokenize.
 
3787
   * \param delimiters A string with the token delimiters.
 
3788
   * \param pos The current position in the string.
 
3789
   * \return The begin of the next token.
 
3790
   */
 
3791
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
3792
  /**
 
3793
   * Get the end of the next token.
 
3794
   * \param line The string to tokenize.
 
3795
   * \param delimiters A string with the token delimiters.
 
3796
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
3797
   * \return The end of the next token.
 
3798
   */
 
3799
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
 
3800
};
 
3801
 
 
3802
 
 
3803
} // namespace Puma
 
3804
 
 
3805
#endif /* __SimpleParser_h__ */
 
3806
 
 
3807
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
3808
using namespace std;
 
3809
 
 
3810
namespace Puma {
 
3811
 
 
3812
 
 
3813
/** \brief The %Options %Parser searches command line parameters for options and
 
3814
 *  handles their option arguments, if applicable.
 
3815
 */
 
3816
 
 
3817
#line 3818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3818
} // closed Puma
 
3819
class CCExprResolve;
 
3820
class CExprResolve;
 
3821
class WinIfExists;
 
3822
class WinImportHandler;
 
3823
class WinMacros;
 
3824
class WinAsm;
 
3825
class WinDeclSpecs;
 
3826
class WinMemberExplSpec;
 
3827
class WinTypeKeywords;
 
3828
class WinFriend;
 
3829
class ExtAC;
 
3830
class ExtACBuilderCoupling;
 
3831
class ExtACSyntaxCoupling;
 
3832
class ExtACTree;
 
3833
class ExtACKeywords;
 
3834
class ExtGnu;
 
3835
class PragmaOnceUnitState;
 
3836
class PragmaOnce;
 
3837
class CMatchSyntax;
 
3838
namespace Puma {
 
3839
 
 
3840
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
3841
class OptsParser : public SimpleParser {
 
3842
#line 3843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3843
  friend class ::CCExprResolve;
 
3844
  friend class ::CExprResolve;
 
3845
  friend class ::WinIfExists;
 
3846
  friend class ::WinImportHandler;
 
3847
  friend class ::WinMacros;
 
3848
  friend class ::WinAsm;
 
3849
  friend class ::WinDeclSpecs;
 
3850
  friend class ::WinMemberExplSpec;
 
3851
  friend class ::WinTypeKeywords;
 
3852
  friend class ::WinFriend;
 
3853
  friend class ::ExtAC;
 
3854
  friend class ::ExtACBuilderCoupling;
 
3855
  friend class ::ExtACSyntaxCoupling;
 
3856
  friend class ::ExtACTree;
 
3857
  friend class ::ExtACKeywords;
 
3858
  friend class ::ExtGnu;
 
3859
  friend class ::PragmaOnceUnitState;
 
3860
  friend class ::PragmaOnce;
 
3861
  friend class ::CMatchSyntax;
 
3862
 
 
3863
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
3864
 
 
3865
  
 
3866
  
 
3867
  /** \brief Vector holding the commandline parameters. 
 
3868
   *  
 
3869
   *  This vector is filled in the constructor
 
3870
   */
 
3871
  vector<string> m_argv;
 
3872
 
 
3873
  /** \brief Position of current parameter analyzed by the 
 
3874
   *  options parser.
 
3875
   */
 
3876
  unsigned int m_curarg;
 
3877
  
 
3878
  /** \brief The increment added to m_curarg used to get to the next 
 
3879
   *  entry of m_argv which shall be analysed.
 
3880
   */
 
3881
  unsigned int m_tonext;
 
3882
  
 
3883
  /** \brief %Option number of currently processed element of m_argv
 
3884
   */
 
3885
  int m_number;
 
3886
  
 
3887
  /** \brief Name of current option
 
3888
   */
 
3889
  string m_opt;
 
3890
 
 
3891
  /** \brief Value of current option argument
 
3892
   */
 
3893
  string m_arg;
 
3894
  
 
3895
   
 
3896
public:
 
3897
  
 
3898
  /** \enum
 
3899
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
3900
   */
 
3901
  enum {
 
3902
     NOARG =-4, /**< %Option has no argument */
 
3903
     ERR = -3, /**< Error when parsing option */
 
3904
     NOOPTION = -2, /**< Command line parameter is not an option */
 
3905
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
3906
     FINISH = 0 /**< All options are handled */
 
3907
  };
 
3908
  
 
3909
  /** \enum
 
3910
   *  Type of argument associated to an option  
 
3911
   */
 
3912
  enum ArgType { 
 
3913
     AT_NONE = 0, /**< %Option receives no argument */
 
3914
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
3915
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
3916
  };
 
3917
  
 
3918
  /** \struct
 
3919
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
3920
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
3921
   */
 
3922
  struct Option {
 
3923
#line 3924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
3924
  friend class ::CCExprResolve;
 
3925
  friend class ::CExprResolve;
 
3926
  friend class ::WinIfExists;
 
3927
  friend class ::WinImportHandler;
 
3928
  friend class ::WinMacros;
 
3929
  friend class ::WinAsm;
 
3930
  friend class ::WinDeclSpecs;
 
3931
  friend class ::WinMemberExplSpec;
 
3932
  friend class ::WinTypeKeywords;
 
3933
  friend class ::WinFriend;
 
3934
  friend class ::ExtAC;
 
3935
  friend class ::ExtACBuilderCoupling;
 
3936
  friend class ::ExtACSyntaxCoupling;
 
3937
  friend class ::ExtACTree;
 
3938
  friend class ::ExtACKeywords;
 
3939
  friend class ::ExtGnu;
 
3940
  friend class ::PragmaOnceUnitState;
 
3941
  friend class ::PragmaOnce;
 
3942
  friend class ::CMatchSyntax;
 
3943
 
 
3944
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
3945
 
 
3946
    int number; /**< Number associated with this option */
 
3947
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
3948
    const char *longName; /**< Long namen of this option */
 
3949
    const char *desc; /**< Description of this option **/ 
 
3950
    ArgType argType; /**< Type of argument for this option */
 
3951
  };
 
3952
 
 
3953
private:
 
3954
  /** Pointer to array of available options. This value is set to the value of the 
 
3955
   * parameter passed to the constructor OptsParser::OptsParser()
 
3956
   */
 
3957
  const Option *m_opts;
 
3958
   
 
3959
public:
 
3960
  /** \brief Constructor of OptsParser
 
3961
   *  
 
3962
   *  \param argc Number of parameters to be analyzed
 
3963
   *  \param argv Parameters to be analyzed
 
3964
   *  \param opts Pointer to array of options which shall be
 
3965
   *              recognized by the options parser
 
3966
   *
 
3967
   */
 
3968
  OptsParser (int argc, char **argv, const Option *opts);
 
3969
  
 
3970
  /** \brief Constructor of OptsParser
 
3971
   *  
 
3972
   *  \param line Reference to string with parameters to analyse
 
3973
   *              The paramaters are extracted from the string by splitting it up 
 
3974
   *              into tokens at:
 
3975
   *               - space character
 
3976
   *               - tabs 
 
3977
   *               - newline
 
3978
   *               - carriage return
 
3979
   *  \param opts Pointer to array of options which shall be 
 
3980
   *              recognized by the options parser
 
3981
   */
 
3982
  OptsParser (const string &line, const Option *);
 
3983
 
 
3984
  
 
3985
  /** Get next parameter without modification. 
 
3986
   * No option parsing is done
 
3987
   *
 
3988
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
3989
   */
 
3990
  int getRawOption ();
 
3991
  
 
3992
  /** \brief Get next option
 
3993
   *
 
3994
   * This function processes the next parameter passed to the constructor 
 
3995
   * OptsParser::OptsParser(). 
 
3996
   * That is, search for options and eventually process
 
3997
   * option and option arguement. 
 
3998
   *
 
3999
   * \return Number of option recognized by the options parser or
 
4000
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
4001
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
4002
   *
 
4003
   */
 
4004
  int getOption ();
 
4005
  
 
4006
  /** \brief Get result of last processed parameter
 
4007
   *
 
4008
   *  The number returned by this function is identical to the number 
 
4009
   *  returned by the last call of OptsParser::getOption
 
4010
   *   
 
4011
   * \return Number of option recognized by the options parser or
 
4012
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
4013
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
4014
   *
 
4015
   */
 
4016
  int getResult () const;
 
4017
  
 
4018
  /** \brief Get option argument of last processed parameter
 
4019
   *
 
4020
   *  This function returns the argument of the option processed during 
 
4021
   *  OptsParser::getOption. If the option does not provide any argument
 
4022
   *  the string will be empty.
 
4023
   *
 
4024
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
4025
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
4026
   *  which is no option, of course.
 
4027
   *
 
4028
   *  \return Argument of last processed parameter
 
4029
   */
 
4030
  const string &getArgument () const;
 
4031
  
 
4032
  /** \brief Get option name of last processed parameter
 
4033
   *
 
4034
   *  If the last processed parameter did not contain an option the string 
 
4035
   *  returned by this function is empty.
 
4036
   *
 
4037
   *  \return Name of last processed parameter
 
4038
   *
 
4039
   */
 
4040
  const string &getOptionName () const;
 
4041
  
 
4042
  /** \brief Get position of current argument
 
4043
   *
 
4044
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
4045
   *
 
4046
   */
 
4047
  int getCurrentArgNum () const;
 
4048
  
 
4049
  /** \brief Get position of next argument
 
4050
   *
 
4051
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
4052
   *
 
4053
   */
 
4054
  int getNextArgNum () const;
 
4055
 
 
4056
private:
 
4057
  /** Search for an option in m_argv at position m_curarg
 
4058
   *
 
4059
   *  \param arg Currently processed parameter 
 
4060
   */
 
4061
  const Option*  findOption(const string &arg, bool isLong);
 
4062
  
 
4063
  /** Process an option found by OptsParser::findOption(). 
 
4064
   */
 
4065
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
 
4066
};
 
4067
 
 
4068
 
 
4069
} // namespace Puma
 
4070
 
 
4071
#endif /* __OptsParser_h__ */
 
4072
 
 
4073
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
4074
using namespace std;
 
4075
 
 
4076
namespace Puma {
 
4077
 
 
4078
 
 
4079
 
 
4080
#line 4081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4081
} // closed Puma
 
4082
class CCExprResolve;
 
4083
class CExprResolve;
 
4084
class WinIfExists;
 
4085
class WinImportHandler;
 
4086
class WinMacros;
 
4087
class WinAsm;
 
4088
class WinDeclSpecs;
 
4089
class WinMemberExplSpec;
 
4090
class WinTypeKeywords;
 
4091
class WinFriend;
 
4092
class ExtAC;
 
4093
class ExtACBuilderCoupling;
 
4094
class ExtACSyntaxCoupling;
 
4095
class ExtACTree;
 
4096
class ExtACKeywords;
 
4097
class ExtGnu;
 
4098
class PragmaOnceUnitState;
 
4099
class PragmaOnce;
 
4100
class CMatchSyntax;
 
4101
namespace Puma {
 
4102
 
 
4103
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
4104
class Config {
 
4105
#line 4106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4106
  friend class ::CCExprResolve;
 
4107
  friend class ::CExprResolve;
 
4108
  friend class ::WinIfExists;
 
4109
  friend class ::WinImportHandler;
 
4110
  friend class ::WinMacros;
 
4111
  friend class ::WinAsm;
 
4112
  friend class ::WinDeclSpecs;
 
4113
  friend class ::WinMemberExplSpec;
 
4114
  friend class ::WinTypeKeywords;
 
4115
  friend class ::WinFriend;
 
4116
  friend class ::ExtAC;
 
4117
  friend class ::ExtACBuilderCoupling;
 
4118
  friend class ::ExtACSyntaxCoupling;
 
4119
  friend class ::ExtACTree;
 
4120
  friend class ::ExtACKeywords;
 
4121
  friend class ::ExtGnu;
 
4122
  friend class ::PragmaOnceUnitState;
 
4123
  friend class ::PragmaOnce;
 
4124
  friend class ::CMatchSyntax;
 
4125
 
 
4126
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
4127
 
 
4128
  Flags _flags;
 
4129
  ErrorStream &_err;
 
4130
  Array<const ConfOption *> _options;
 
4131
  
 
4132
public:
 
4133
  enum OPTIONS {
 
4134
    PRE_ASSERT = 1,
 
4135
    PRE_DEFINE, 
 
4136
    PRE_UNDEFINE, 
 
4137
    PRE_LOCK_MACRO,
 
4138
    PRE_INCLUDE,
 
4139
    CFG_FILE, 
 
4140
    PROJ_PATH, 
 
4141
    PROJ_DESTINATION,
 
4142
    SET_SUFFIX, 
 
4143
    SET_EXTENSION, 
 
4144
    SET_WRITE_PROTECTED,
 
4145
    SET_OPTION, 
 
4146
    SET_OPTION_ARG
 
4147
  };
 
4148
   
 
4149
public:
 
4150
  Config (ErrorStream &);
 
4151
  Config (const Config &);
 
4152
  ~Config ();
 
4153
  
 
4154
  // read config file
 
4155
  Config (ErrorStream &, const char *);
 
4156
  // read command line
 
4157
  Config (ErrorStream &, int &, char **&);
 
4158
  // read config file and command line
 
4159
  Config (ErrorStream &, const char *, int &, char **&);
 
4160
        
 
4161
  // join with another configuration
 
4162
  void Join (const Config &);
 
4163
 
 
4164
  // evaluate file, if file not given read from $PUMA_CONFIG
 
4165
  // or /etc/puma.config
 
4166
  void Read (const char * = (const char *)0);
 
4167
  // evaluate command line
 
4168
  void Read (int &, char **&);
 
4169
 
 
4170
  // add options to configuration
 
4171
  void Add (const ConfOption *);
 
4172
  void Add (const char *);
 
4173
  void Add (const char *, const char *);
 
4174
  void Add (const char *, const char *, const char *);
 
4175
 
 
4176
  // get options
 
4177
  unsigned Options () const;
 
4178
  const ConfOption *Option (unsigned) const;
 
4179
  const ConfOption *Option (const char *) const;
 
4180
 
 
4181
  Flags FlagTable () const;
 
4182
  
 
4183
private:
 
4184
  bool Valid (const char *, const char * = (const char *)0) const;
 
4185
 
 
4186
  bool Process (OptsParser&, bool unescape = false);
 
4187
  bool ProcessAssert (const string&);
 
4188
  bool ProcessDefine (const string&);
 
4189
  bool ProcessLockMacro (const string&);
 
4190
  bool ProcessUndefine (const string&);
 
4191
  bool ProcessConfigFile (const string&,const string&);
 
4192
  bool ProcessArgument (const string&,const string&);
 
4193
  bool ProcessPathArgument (const string&,const string&);
 
4194
 
 
4195
  string Unescape(const string&);
 
4196
};
 
4197
 
 
4198
inline Config::Config (ErrorStream &e) : _err (e)
 
4199
 {}
 
4200
inline Config::Config (const Config &c) : _err (c._err)
 
4201
 { Join (c); }
 
4202
  
 
4203
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
 
4204
 { Read (file); }
 
4205
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
 
4206
 { Read (argc, argv); }
 
4207
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
 
4208
 { Read (file); Read (argc, argv); }
 
4209
 
 
4210
inline Config::~Config  ()
 
4211
 { for (unsigned i = 0; i < Options (); i++)
 
4212
     delete (ConfOption *) Option (i);
 
4213
 }
 
4214
 
 
4215
inline void Config::Add (const ConfOption *o) 
 
4216
 { _options.append (o); }
 
4217
inline void Config::Add (const char *n)
 
4218
 { Add (new ConfOption (n)); }
 
4219
inline void Config::Add (const char *n, const char *a1)
 
4220
 { Add (new ConfOption (n, a1)); }
 
4221
inline void Config::Add (const char *n, const char *a1, const char *a2)
 
4222
 { Add (new ConfOption (n, a1, a2)); }
 
4223
 
 
4224
inline unsigned Config::Options () const
 
4225
 { return _options.length (); }
 
4226
inline const ConfOption *Config::Option (unsigned i) const
 
4227
 { return _options.lookup (i); }
 
4228
 
 
4229
inline Flags Config::FlagTable () const
 
4230
 { return _flags; }
 
4231
 
 
4232
 
 
4233
} // namespace Puma
 
4234
 
 
4235
#endif /* __Config_h__ */
 
4236
 
 
4237
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
4238
// This file is part of PUMA.
 
4239
// Copyright (C) 1999-2003  The PUMA developer team.
 
4240
//                                                                
 
4241
// This program is free software;  you can redistribute it and/or 
 
4242
// modify it under the terms of the GNU General Public License as 
 
4243
// published by the Free Software Foundation; either version 2 of 
 
4244
// the License, or (at your option) any later version.            
 
4245
//                                                                
 
4246
// This program is distributed in the hope that it will be useful,
 
4247
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4248
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4249
// GNU General Public License for more details.                   
 
4250
//                                                                
 
4251
// You should have received a copy of the GNU General Public      
 
4252
// License along with this program; if not, write to the Free     
 
4253
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4254
// MA  02111-1307  USA                                            
 
4255
 
 
4256
#ifndef __project__
 
4257
#define __project__
 
4258
 
 
4259
// The basic project is a set of source directories. It provides 
 
4260
// methods for searching and writing files. 
 
4261
 
 
4262
 
 
4263
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
4264
// This file is part of PUMA.
 
4265
// Copyright (C) 1999-2003  The PUMA developer team.
 
4266
//                                                                
 
4267
// This program is free software;  you can redistribute it and/or 
 
4268
// modify it under the terms of the GNU General Public License as 
 
4269
// published by the Free Software Foundation; either version 2 of 
 
4270
// the License, or (at your option) any later version.            
 
4271
//                                                                
 
4272
// This program is distributed in the hope that it will be useful,
 
4273
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4274
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4275
// GNU General Public License for more details.                   
 
4276
//                                                                
 
4277
// You should have received a copy of the GNU General Public      
 
4278
// License along with this program; if not, write to the Free     
 
4279
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4280
// MA  02111-1307  USA                                            
 
4281
 
 
4282
#ifndef __path_manager__
 
4283
#define __path_manager__
 
4284
 
 
4285
// Manages directories and methods to access the files in it.
 
4286
 
 
4287
 
 
4288
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
4289
// This file is part of PUMA.
 
4290
// Copyright (C) 1999-2003  The PUMA developer team.
 
4291
//                                                                
 
4292
// This program is free software;  you can redistribute it and/or 
 
4293
// modify it under the terms of the GNU General Public License as 
 
4294
// published by the Free Software Foundation; either version 2 of 
 
4295
// the License, or (at your option) any later version.            
 
4296
//                                                                
 
4297
// This program is distributed in the hope that it will be useful,
 
4298
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4299
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4300
// GNU General Public License for more details.                   
 
4301
//                                                                
 
4302
// You should have received a copy of the GNU General Public      
 
4303
// License along with this program; if not, write to the Free     
 
4304
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4305
// MA  02111-1307  USA                                            
 
4306
 
 
4307
#ifndef __path_info__
 
4308
#define __path_info__
 
4309
 
 
4310
// A path information object consists of a source and optionally
 
4311
// a destination path.
 
4312
 
 
4313
namespace Puma {
 
4314
 
 
4315
 
 
4316
 
 
4317
#line 4318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4318
} // closed Puma
 
4319
class CCExprResolve;
 
4320
class CExprResolve;
 
4321
class WinIfExists;
 
4322
class WinImportHandler;
 
4323
class WinMacros;
 
4324
class WinAsm;
 
4325
class WinDeclSpecs;
 
4326
class WinMemberExplSpec;
 
4327
class WinTypeKeywords;
 
4328
class WinFriend;
 
4329
class ExtAC;
 
4330
class ExtACBuilderCoupling;
 
4331
class ExtACSyntaxCoupling;
 
4332
class ExtACTree;
 
4333
class ExtACKeywords;
 
4334
class ExtGnu;
 
4335
class PragmaOnceUnitState;
 
4336
class PragmaOnce;
 
4337
class CMatchSyntax;
 
4338
namespace Puma {
 
4339
 
 
4340
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
4341
class PathInfo {
 
4342
#line 4343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4343
  friend class ::CCExprResolve;
 
4344
  friend class ::CExprResolve;
 
4345
  friend class ::WinIfExists;
 
4346
  friend class ::WinImportHandler;
 
4347
  friend class ::WinMacros;
 
4348
  friend class ::WinAsm;
 
4349
  friend class ::WinDeclSpecs;
 
4350
  friend class ::WinMemberExplSpec;
 
4351
  friend class ::WinTypeKeywords;
 
4352
  friend class ::WinFriend;
 
4353
  friend class ::ExtAC;
 
4354
  friend class ::ExtACBuilderCoupling;
 
4355
  friend class ::ExtACSyntaxCoupling;
 
4356
  friend class ::ExtACTree;
 
4357
  friend class ::ExtACKeywords;
 
4358
  friend class ::ExtGnu;
 
4359
  friend class ::PragmaOnceUnitState;
 
4360
  friend class ::PragmaOnce;
 
4361
  friend class ::CMatchSyntax;
 
4362
 
 
4363
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
4364
 
 
4365
  const char *_src;        // Source path.
 
4366
  const char *_dest;        // Destination path.
 
4367
        
 
4368
public:
 
4369
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
 
4370
  PathInfo (const PathInfo &);
 
4371
  ~PathInfo ();
 
4372
        
 
4373
  // Needed for class Array.
 
4374
  PathInfo &operator =(const PathInfo &);
 
4375
 
 
4376
  // Set or get the source path.
 
4377
  void src (const char *);
 
4378
  const char *src () const { return _src; }
 
4379
        
 
4380
  // Set or get the destination path.
 
4381
  void dest (const char *);
 
4382
  const char *dest () const { return _dest; }
 
4383
};
 
4384
 
 
4385
 
 
4386
} // namespace Puma
 
4387
 
 
4388
#endif /* __path_info__ */
 
4389
 
 
4390
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
4391
// This file is part of PUMA.
 
4392
// Copyright (C) 1999-2003  The PUMA developer team.
 
4393
//                                                                
 
4394
// This program is free software;  you can redistribute it and/or 
 
4395
// modify it under the terms of the GNU General Public License as 
 
4396
// published by the Free Software Foundation; either version 2 of 
 
4397
// the License, or (at your option) any later version.            
 
4398
//                                                                
 
4399
// This program is distributed in the hope that it will be useful,
 
4400
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4401
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4402
// GNU General Public License for more details.                   
 
4403
//                                                                
 
4404
// You should have received a copy of the GNU General Public      
 
4405
// License along with this program; if not, write to the Free     
 
4406
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4407
// MA  02111-1307  USA                                            
 
4408
 
 
4409
#ifndef __path_iterator__
 
4410
#define __path_iterator__
 
4411
 
 
4412
// A path iterator is used to iterate the contents of the paths
 
4413
// a project is managing. But only files matching a given pattern 
 
4414
// are iterated. 
 
4415
 
 
4416
 
 
4417
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
4418
// This file is part of PUMA.
 
4419
// Copyright (C) 1999-2003  The PUMA developer team.
 
4420
//                                                                
 
4421
// This program is free software;  you can redistribute it and/or 
 
4422
// modify it under the terms of the GNU General Public License as 
 
4423
// published by the Free Software Foundation; either version 2 of 
 
4424
// the License, or (at your option) any later version.            
 
4425
//                                                                
 
4426
// This program is distributed in the hope that it will be useful,
 
4427
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4428
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4429
// GNU General Public License for more details.                   
 
4430
//                                                                
 
4431
// You should have received a copy of the GNU General Public      
 
4432
// License along with this program; if not, write to the Free     
 
4433
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4434
// MA  02111-1307  USA                                            
 
4435
 
 
4436
#ifndef __project_file__
 
4437
#define __project_file__
 
4438
 
 
4439
#include <map>
 
4440
using std::map;
 
4441
 
 
4442
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
4443
using std::string;
 
4444
 
 
4445
 
 
4446
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
4447
namespace Puma {
 
4448
 
 
4449
// the project file abstraction is used to store all filenames relevant
 
4450
// for a specific file that is managed by Puma.
 
4451
 
 
4452
 
 
4453
#line 4454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4454
} // closed Puma
 
4455
class CCExprResolve;
 
4456
class CExprResolve;
 
4457
class WinIfExists;
 
4458
class WinImportHandler;
 
4459
class WinMacros;
 
4460
class WinAsm;
 
4461
class WinDeclSpecs;
 
4462
class WinMemberExplSpec;
 
4463
class WinTypeKeywords;
 
4464
class WinFriend;
 
4465
class ExtAC;
 
4466
class ExtACBuilderCoupling;
 
4467
class ExtACSyntaxCoupling;
 
4468
class ExtACTree;
 
4469
class ExtACKeywords;
 
4470
class ExtGnu;
 
4471
class PragmaOnceUnitState;
 
4472
class PragmaOnce;
 
4473
class CMatchSyntax;
 
4474
namespace Puma {
 
4475
 
 
4476
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
4477
class ProjectFile {
 
4478
#line 4479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4479
  friend class ::CCExprResolve;
 
4480
  friend class ::CExprResolve;
 
4481
  friend class ::WinIfExists;
 
4482
  friend class ::WinImportHandler;
 
4483
  friend class ::WinMacros;
 
4484
  friend class ::WinAsm;
 
4485
  friend class ::WinDeclSpecs;
 
4486
  friend class ::WinMemberExplSpec;
 
4487
  friend class ::WinTypeKeywords;
 
4488
  friend class ::WinFriend;
 
4489
  friend class ::ExtAC;
 
4490
  friend class ::ExtACBuilderCoupling;
 
4491
  friend class ::ExtACSyntaxCoupling;
 
4492
  friend class ::ExtACTree;
 
4493
  friend class ::ExtACKeywords;
 
4494
  friend class ::ExtGnu;
 
4495
  friend class ::PragmaOnceUnitState;
 
4496
  friend class ::PragmaOnce;
 
4497
  friend class ::CMatchSyntax;
 
4498
 
 
4499
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
4500
 
 
4501
  Filename _nick_name;
 
4502
  Filename _dest_path;
 
4503
public:  
 
4504
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
 
4505
  ProjectFile (const Filename &nn, const Filename &dp) :
 
4506
    _nick_name (nn), _dest_path (dp) {}
 
4507
  void dest (const Filename &dp) { _dest_path = dp; }
 
4508
  Filename name () const { return _nick_name; }
 
4509
  Filename dest () const {
 
4510
    assert (_dest_path.is_defined ());
 
4511
    return _dest_path;
 
4512
  }
 
4513
};
 
4514
 
 
4515
typedef map<string, ProjectFile> PFMap;
 
4516
typedef PFMap::value_type PFMPair;
 
4517
typedef PFMap::const_iterator PFMConstIter;
 
4518
 
 
4519
} // namespace Puma
 
4520
 
 
4521
#endif // __project_file__
 
4522
 
 
4523
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
4524
namespace Puma {
 
4525
 
 
4526
class PathManager;
 
4527
class RegComp;
 
4528
 
 
4529
 
 
4530
#line 4531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4531
} // closed Puma
 
4532
class CCExprResolve;
 
4533
class CExprResolve;
 
4534
class WinIfExists;
 
4535
class WinImportHandler;
 
4536
class WinMacros;
 
4537
class WinAsm;
 
4538
class WinDeclSpecs;
 
4539
class WinMemberExplSpec;
 
4540
class WinTypeKeywords;
 
4541
class WinFriend;
 
4542
class ExtAC;
 
4543
class ExtACBuilderCoupling;
 
4544
class ExtACSyntaxCoupling;
 
4545
class ExtACTree;
 
4546
class ExtACKeywords;
 
4547
class ExtGnu;
 
4548
class PragmaOnceUnitState;
 
4549
class PragmaOnce;
 
4550
class CMatchSyntax;
 
4551
namespace Puma {
 
4552
 
 
4553
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
4554
class PathIterator : public PFMConstIter {
 
4555
#line 4556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4556
  friend class ::CCExprResolve;
 
4557
  friend class ::CExprResolve;
 
4558
  friend class ::WinIfExists;
 
4559
  friend class ::WinImportHandler;
 
4560
  friend class ::WinMacros;
 
4561
  friend class ::WinAsm;
 
4562
  friend class ::WinDeclSpecs;
 
4563
  friend class ::WinMemberExplSpec;
 
4564
  friend class ::WinTypeKeywords;
 
4565
  friend class ::WinFriend;
 
4566
  friend class ::ExtAC;
 
4567
  friend class ::ExtACBuilderCoupling;
 
4568
  friend class ::ExtACSyntaxCoupling;
 
4569
  friend class ::ExtACTree;
 
4570
  friend class ::ExtACKeywords;
 
4571
  friend class ::ExtGnu;
 
4572
  friend class ::PragmaOnceUnitState;
 
4573
  friend class ::PragmaOnce;
 
4574
  friend class ::CMatchSyntax;
 
4575
 
 
4576
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
4577
 
 
4578
  friend class PathManager;
 
4579
 
 
4580
  RegComp *_regexp;  // Search pattern.
 
4581
  bool _in_use;
 
4582
 
 
4583
public:
 
4584
  PathIterator (const char *);     // Expects a regular expression.
 
4585
  ~PathIterator ();                // for the files to match.
 
4586
 
 
4587
  void pattern (const char *);     // Set the search pattern.
 
4588
  void init (const PFMConstIter &begin);
 
4589
  bool in_use () const { return _in_use; }
 
4590
  void done () { _in_use = false; }
 
4591
 
 
4592
  // retrieve information about the currently referenced ProjectFile
 
4593
  const char *file () const;
 
4594
  const char *dest () const;
 
4595
};
 
4596
 
 
4597
} // namespace Puma
 
4598
 
 
4599
#endif /* __path_iterator__ */
 
4600
 
 
4601
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
4602
namespace Puma {
 
4603
 
 
4604
class RegComp;
 
4605
class Config;
 
4606
class Unit;
 
4607
 
 
4608
 
 
4609
#line 4610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4610
} // closed Puma
 
4611
class CCExprResolve;
 
4612
class CExprResolve;
 
4613
class WinIfExists;
 
4614
class WinImportHandler;
 
4615
class WinMacros;
 
4616
class WinAsm;
 
4617
class WinDeclSpecs;
 
4618
class WinMemberExplSpec;
 
4619
class WinTypeKeywords;
 
4620
class WinFriend;
 
4621
class ExtAC;
 
4622
class ExtACBuilderCoupling;
 
4623
class ExtACSyntaxCoupling;
 
4624
class ExtACTree;
 
4625
class ExtACKeywords;
 
4626
class ExtGnu;
 
4627
class PragmaOnceUnitState;
 
4628
class PragmaOnce;
 
4629
class CMatchSyntax;
 
4630
namespace Puma {
 
4631
 
 
4632
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
4633
class PathManager {
 
4634
#line 4635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4635
  friend class ::CCExprResolve;
 
4636
  friend class ::CExprResolve;
 
4637
  friend class ::WinIfExists;
 
4638
  friend class ::WinImportHandler;
 
4639
  friend class ::WinMacros;
 
4640
  friend class ::WinAsm;
 
4641
  friend class ::WinDeclSpecs;
 
4642
  friend class ::WinMemberExplSpec;
 
4643
  friend class ::WinTypeKeywords;
 
4644
  friend class ::WinFriend;
 
4645
  friend class ::ExtAC;
 
4646
  friend class ::ExtACBuilderCoupling;
 
4647
  friend class ::ExtACSyntaxCoupling;
 
4648
  friend class ::ExtACTree;
 
4649
  friend class ::ExtACKeywords;
 
4650
  friend class ::ExtGnu;
 
4651
  friend class ::PragmaOnceUnitState;
 
4652
  friend class ::PragmaOnce;
 
4653
  friend class ::CMatchSyntax;
 
4654
 
 
4655
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
4656
 
 
4657
 
 
4658
  ErrorStream     *_err;
 
4659
  Array<PathInfo>  _paths;     // List of directories path.
 
4660
  Array<RegComp*>  _protected; // List of regular patterns specifying 
 
4661
                               // protected paths.
 
4662
  PFMap _files;                // Maps the canonical filename of a project
 
4663
                               // to its related information
 
4664
 
 
4665
  // find all files of a directory tree and add them to _files
 
4666
  void traverse (const char *path);
 
4667
 
 
4668
  // find the canonical filename representation for a file
 
4669
  bool canonFilename (Filename name, Filename &abs_name) const;
 
4670
  
 
4671
  // Add a new file to the project file list
 
4672
  PFMConstIter addFile (const ProjectFile &file);
 
4673
 
 
4674
protected:
 
4675
  // Get the destination directory for a given source directory.
 
4676
  const char *getDestination (Filename file, ostream * = 0) const;
 
4677
        
 
4678
  // Called for every matched file.
 
4679
  virtual void action (PathIterator &) {}
 
4680
        
 
4681
  // Add the separator '/' to the copy of the given string.
 
4682
  char *addSeparator (const char *) const;
 
4683
 
 
4684
public:
 
4685
  PathManager (ErrorStream &e) : _err (&e) {} 
 
4686
  // Copy-constructor.
 
4687
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
 
4688
  virtual ~PathManager ();
 
4689
 
 
4690
  // Start the globbing. Let call action for every match.
 
4691
  void glob (char *pattern = (char*) 0);
 
4692
 
 
4693
  // Iterate the contents of the paths.
 
4694
  const char *iterate (PathIterator &) const;
 
4695
        
 
4696
  // Add a source and destination directories pair.
 
4697
  virtual void addPath (const char *, const char * = (const char*) 0);
 
4698
 
 
4699
  // Add a new file to the project file list
 
4700
  PFMConstIter addFile (Filename name);
 
4701
 
 
4702
  // Add a new file to the project file list with destination path
 
4703
  PFMConstIter addFile (Filename name, Filename dest);
 
4704
 
 
4705
  // search an absolute file name in the project tree
 
4706
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
 
4707
 
 
4708
  // Set the destination directory of the given source directory.
 
4709
  void setDest (const char *, const char *);
 
4710
 
 
4711
  // Add a protected-path pattern.
 
4712
  void protect (const char *);
 
4713
 
 
4714
  // Get path information.
 
4715
  long numPaths () const { return _paths.length (); }
 
4716
  long numProts () const { return _protected.length (); }
 
4717
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
 
4718
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
 
4719
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
 
4720
 
 
4721
  // Return true if the given file or path is protected.
 
4722
  bool isProtected (const char *file) const;
 
4723
 
 
4724
  // checks if a give file (by name) is a registered file of this path manager
 
4725
  // In case of success (found!) the an iterator is returned, which can be
 
4726
  // used to access more information about the file.
 
4727
  bool isBelow (const char *file, PFMConstIter &iter) const;
 
4728
 
 
4729
  // Returns true if the given file is registered with this path manager
 
4730
  virtual bool isBelow (const char *file) const;
 
4731
 
 
4732
  // Configure the project from the command line or a file.
 
4733
  virtual void configure (const Config &);
 
4734
 
 
4735
  // Join the paths of the given manager with the paths 
 
4736
  // of this path manager.
 
4737
  virtual void join (PathManager &);
 
4738
        
 
4739
  // Get the error stream object.
 
4740
  ErrorStream &err () const { return *_err; }
 
4741
 
 
4742
  // Get the path of a file in the destination directory.
 
4743
  bool getDestinationPath (const char *filename, ostream &out) const;
 
4744
        
 
4745
};
 
4746
 
 
4747
inline bool PathManager::isBelow (const char *file) const { 
 
4748
  PFMConstIter iter;
 
4749
  return isBelow (file, iter);
 
4750
}
 
4751
 
 
4752
 
 
4753
} // namespace Puma
 
4754
 
 
4755
#endif /* __path_manager__ */
 
4756
 
 
4757
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4758
 
 
4759
#line 4760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4760
 
 
4761
#ifndef __ac_fwd_PragmaOnceUnitState__
 
4762
#define __ac_fwd_PragmaOnceUnitState__
 
4763
class PragmaOnceUnitState;
 
4764
namespace AC {
 
4765
  template <class JoinPoint>
 
4766
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
4767
  template <class JoinPoint>
 
4768
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
4769
}
 
4770
#endif
 
4771
 
 
4772
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4773
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
4774
#endif
 
4775
 
 
4776
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4777
// This file is part of PUMA.
 
4778
// Copyright (C) 1999-2003  The PUMA developer team.
 
4779
//                                                                
 
4780
// This program is free software;  you can redistribute it and/or 
 
4781
// modify it under the terms of the GNU General Public License as 
 
4782
// published by the Free Software Foundation; either version 2 of 
 
4783
// the License, or (at your option) any later version.            
 
4784
//                                                                
 
4785
// This program is distributed in the hope that it will be useful,
 
4786
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4787
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4788
// GNU General Public License for more details.                   
 
4789
//                                                                
 
4790
// You should have received a copy of the GNU General Public      
 
4791
// License along with this program; if not, write to the Free     
 
4792
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4793
// MA  02111-1307  USA                                            
 
4794
 
 
4795
#ifndef __UnitManager__
 
4796
#define __UnitManager__
 
4797
 
 
4798
// Class UnitManager helps you to have control of all units built.
 
4799
 
 
4800
 
 
4801
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4802
#include <list>
 
4803
 
 
4804
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4805
using namespace std;
 
4806
 
 
4807
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4808
namespace Puma {
 
4809
 
 
4810
 
 
4811
class Unit;
 
4812
class Source;
 
4813
class Tokenizer;
 
4814
 
 
4815
 
 
4816
#line 4817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4817
} // closed Puma
 
4818
class CCExprResolve;
 
4819
class CExprResolve;
 
4820
class WinIfExists;
 
4821
class WinImportHandler;
 
4822
class WinMacros;
 
4823
class WinAsm;
 
4824
class WinDeclSpecs;
 
4825
class WinMemberExplSpec;
 
4826
class WinTypeKeywords;
 
4827
class WinFriend;
 
4828
class ExtAC;
 
4829
class ExtACBuilderCoupling;
 
4830
class ExtACSyntaxCoupling;
 
4831
class ExtACTree;
 
4832
class ExtACKeywords;
 
4833
class ExtGnu;
 
4834
class PragmaOnceUnitState;
 
4835
class PragmaOnce;
 
4836
class CMatchSyntax;
 
4837
namespace Puma {
 
4838
 
 
4839
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4840
class UnitManager {
 
4841
#line 4842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4842
  friend class ::CCExprResolve;
 
4843
  friend class ::CExprResolve;
 
4844
  friend class ::WinIfExists;
 
4845
  friend class ::WinImportHandler;
 
4846
  friend class ::WinMacros;
 
4847
  friend class ::WinAsm;
 
4848
  friend class ::WinDeclSpecs;
 
4849
  friend class ::WinMemberExplSpec;
 
4850
  friend class ::WinTypeKeywords;
 
4851
  friend class ::WinFriend;
 
4852
  friend class ::ExtAC;
 
4853
  friend class ::ExtACBuilderCoupling;
 
4854
  friend class ::ExtACSyntaxCoupling;
 
4855
  friend class ::ExtACTree;
 
4856
  friend class ::ExtACKeywords;
 
4857
  friend class ::ExtGnu;
 
4858
  friend class ::PragmaOnceUnitState;
 
4859
  friend class ::PragmaOnce;
 
4860
  friend class ::CMatchSyntax;
 
4861
 
 
4862
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4863
 
 
4864
public:
 
4865
  typedef map<string, Unit*> UMap;
 
4866
private:
 
4867
  ErrorStream *_err;        // For error messages.
 
4868
  list<Unit*> _nonames;     // Noname units list.
 
4869
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
4870
  typedef UMap::value_type UMapPair;
 
4871
  Tokenizer *_tokenizer;    // File scanner.
 
4872
 
 
4873
public:
 
4874
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
4875
        
 
4876
  // Destructor: Delete all units.
 
4877
  virtual ~UnitManager ();
 
4878
        
 
4879
  // Get the unit hash table.
 
4880
  UMap &getTable () const { return _umap; }
 
4881
  typedef UMap::iterator UMapIter;
 
4882
        
 
4883
  // Get/Set the file scanner that is used by newUnit
 
4884
  Tokenizer *tokenizer () const { return _tokenizer; }
 
4885
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
4886
 
 
4887
  // Add a unit to manager.
 
4888
  void addUnit (Unit *unit);
 
4889
        
 
4890
  // Remove (and destroy) a unit from hash table. If the name
 
4891
  // is NULL remove all (but not the nonames).
 
4892
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
4893
                   bool destroy = true) const;
 
4894
 
 
4895
  // Empty a unit. Don't remove from hash table.
 
4896
  // Preserve the last save location information.
 
4897
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
4898
 
 
4899
  // Build and add a new unit. 
 
4900
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
4901
        
 
4902
  // Get a unit by name. 
 
4903
  Unit *getUnit (const char *name, bool = false) const;
 
4904
                        
 
4905
  // Print given unit to the given outstream. If no
 
4906
  // name is given, print all units.
 
4907
  void print (const char *name = (const char*) 0, bool = false, 
 
4908
              ostream &out = cout) const;
 
4909
 
 
4910
  // Destroy all noname units.
 
4911
  void removeNonames ();
 
4912
      
 
4913
  // Initialize the unit manager and the managed 
 
4914
  // units for the next parse process.
 
4915
  
 
4916
#line 4917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4917
public: __attribute__((always_inline)) inline void __exec_old_init();
 
4918
 
 
4919
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
4920
void init ();
 
4921
};
 
4922
 
 
4923
 
 
4924
} // namespace Puma
 
4925
 
 
4926
#endif /* __UnitManager__ */
 
4927
 
 
4928
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
4929
// This file is part of PUMA.
 
4930
// Copyright (C) 1999-2003  The PUMA developer team.
 
4931
//                                                                
 
4932
// This program is free software;  you can redistribute it and/or 
 
4933
// modify it under the terms of the GNU General Public License as 
 
4934
// published by the Free Software Foundation; either version 2 of 
 
4935
// the License, or (at your option) any later version.            
 
4936
//                                                                
 
4937
// This program is distributed in the hope that it will be useful,
 
4938
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
4939
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
4940
// GNU General Public License for more details.                   
 
4941
//                                                                
 
4942
// You should have received a copy of the GNU General Public      
 
4943
// License along with this program; if not, write to the Free     
 
4944
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
4945
// MA  02111-1307  USA                                            
 
4946
 
 
4947
#ifndef __SaveMode__
 
4948
#define __SaveMode__
 
4949
 
 
4950
namespace Puma {
 
4951
 
 
4952
 
 
4953
// Project file save mode.
 
4954
 
 
4955
#line 4956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4956
} // closed Puma
 
4957
class CCExprResolve;
 
4958
class CExprResolve;
 
4959
class WinIfExists;
 
4960
class WinImportHandler;
 
4961
class WinMacros;
 
4962
class WinAsm;
 
4963
class WinDeclSpecs;
 
4964
class WinMemberExplSpec;
 
4965
class WinTypeKeywords;
 
4966
class WinFriend;
 
4967
class ExtAC;
 
4968
class ExtACBuilderCoupling;
 
4969
class ExtACSyntaxCoupling;
 
4970
class ExtACTree;
 
4971
class ExtACKeywords;
 
4972
class ExtGnu;
 
4973
class PragmaOnceUnitState;
 
4974
class PragmaOnce;
 
4975
class CMatchSyntax;
 
4976
namespace Puma {
 
4977
 
 
4978
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
4979
struct SaveMode {
 
4980
#line 4981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
4981
  friend class ::CCExprResolve;
 
4982
  friend class ::CExprResolve;
 
4983
  friend class ::WinIfExists;
 
4984
  friend class ::WinImportHandler;
 
4985
  friend class ::WinMacros;
 
4986
  friend class ::WinAsm;
 
4987
  friend class ::WinDeclSpecs;
 
4988
  friend class ::WinMemberExplSpec;
 
4989
  friend class ::WinTypeKeywords;
 
4990
  friend class ::WinFriend;
 
4991
  friend class ::ExtAC;
 
4992
  friend class ::ExtACBuilderCoupling;
 
4993
  friend class ::ExtACSyntaxCoupling;
 
4994
  friend class ::ExtACTree;
 
4995
  friend class ::ExtACKeywords;
 
4996
  friend class ::ExtGnu;
 
4997
  friend class ::PragmaOnceUnitState;
 
4998
  friend class ::PragmaOnce;
 
4999
  friend class ::CMatchSyntax;
 
5000
 
 
5001
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
5002
 
 
5003
  enum Mode { 
 
5004
    OVERWRITE = 1, 
 
5005
    RENAME_OLD, 
 
5006
    NEW_SUFFIX 
 
5007
  };
 
5008
};
 
5009
    
 
5010
 
 
5011
} // namespace Puma
 
5012
 
 
5013
#endif /* __SaveMode__ */
 
5014
 
 
5015
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
5016
#include <fstream>
 
5017
 
 
5018
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
5019
using namespace std;
 
5020
 
 
5021
namespace Puma {
 
5022
 
 
5023
 
 
5024
 
 
5025
#line 5026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5026
} // closed Puma
 
5027
class CCExprResolve;
 
5028
class CExprResolve;
 
5029
class WinIfExists;
 
5030
class WinImportHandler;
 
5031
class WinMacros;
 
5032
class WinAsm;
 
5033
class WinDeclSpecs;
 
5034
class WinMemberExplSpec;
 
5035
class WinTypeKeywords;
 
5036
class WinFriend;
 
5037
class ExtAC;
 
5038
class ExtACBuilderCoupling;
 
5039
class ExtACSyntaxCoupling;
 
5040
class ExtACTree;
 
5041
class ExtACKeywords;
 
5042
class ExtGnu;
 
5043
class PragmaOnceUnitState;
 
5044
class PragmaOnce;
 
5045
class CMatchSyntax;
 
5046
namespace Puma {
 
5047
 
 
5048
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
5049
class Project : public PathManager, public SaveMode {
 
5050
#line 5051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5051
  friend class ::CCExprResolve;
 
5052
  friend class ::CExprResolve;
 
5053
  friend class ::WinIfExists;
 
5054
  friend class ::WinImportHandler;
 
5055
  friend class ::WinMacros;
 
5056
  friend class ::WinAsm;
 
5057
  friend class ::WinDeclSpecs;
 
5058
  friend class ::WinMemberExplSpec;
 
5059
  friend class ::WinTypeKeywords;
 
5060
  friend class ::WinFriend;
 
5061
  friend class ::ExtAC;
 
5062
  friend class ::ExtACBuilderCoupling;
 
5063
  friend class ::ExtACSyntaxCoupling;
 
5064
  friend class ::ExtACTree;
 
5065
  friend class ::ExtACKeywords;
 
5066
  friend class ::ExtGnu;
 
5067
  friend class ::PragmaOnceUnitState;
 
5068
  friend class ::PragmaOnce;
 
5069
  friend class ::CMatchSyntax;
 
5070
 
 
5071
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
5072
 
 
5073
  UnitManager  _unitManager; 
 
5074
  const char  *_suffix;           // Current file name suffix.
 
5075
  Mode         _mode;      // Current save mode.
 
5076
 
 
5077
  // Change to the directory, or create it if necessary.
 
5078
  bool makeDir (const char *) const;
 
5079
        
 
5080
  // Create the directory hierarchy need for file 'path'.
 
5081
  bool makeDirHierarchy (Filename path) const;
 
5082
 
 
5083
protected:
 
5084
  // Write a unit on a file. Called by save().
 
5085
  virtual void write (Unit *unit, ofstream &) const; 
 
5086
 
 
5087
  // Check/update the state of the given unit.
 
5088
  bool checkState (const char *, Unit *) const;
 
5089
  void updateState (const char *, Unit *) const;
 
5090
        
 
5091
public:
 
5092
  Project (ErrorStream &);
 
5093
  virtual ~Project ();
 
5094
 
 
5095
  // Set the mode for saving an unit.
 
5096
  // OVERWRITE  -> Save the unit under its name and overwrite existing
 
5097
  //                   files.
 
5098
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
 
5099
  //                   added to the name of the file, like `main.cc.old'
 
5100
  //                   for the file `main.cc' and the suffix `.old'.
 
5101
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
 
5102
  //                   `main.cpp' for the unit `main.cc' and the suffix 
 
5103
  //               `cpp'.
 
5104
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
 
5105
 
 
5106
  // Save a unit using the name of the unit to get the full 
 
5107
  // name of the file and path to save to. The save location
 
5108
  // must not be protected by a protect pattern and the original
 
5109
  // file must be located in one of the source directories.
 
5110
  virtual void save (Unit *, bool = false) const;
 
5111
        
 
5112
  // Save a FileUnit (or all) to a file (or files).
 
5113
  virtual void save (const char *file = (const char*)0,
 
5114
                     bool only_modified = false, bool is_reg_ex = false) const;
 
5115
 
 
5116
  // Print an unit, regular expression for more units.
 
5117
  // If no name is given print all units.
 
5118
  void print (const char *name = (const char*)0, ostream &out = cout,
 
5119
              bool is_reg_ex = false) const;
 
5120
        
 
5121
  // Close an unit, regular expression for more units.
 
5122
  // If no name is given close all units. If destroy is true,
 
5123
  // the unit(s) will be deleted. 
 
5124
  void close (const char *name = (const char*)0, bool destroy = false,
 
5125
              bool is_reg_ex = false) const;
 
5126
 
 
5127
  // Add a new file to the project.
 
5128
  Unit *addFile (Filename);
 
5129
  Unit *addFile (Filename, Filename);
 
5130
 
 
5131
  // Configure the project from the command line or a file.
 
5132
  virtual void configure (const Config &);
 
5133
        
 
5134
  // Member access.
 
5135
  UnitManager &unitManager ();
 
5136
        
 
5137
  // Return true if the given file in the source directory
 
5138
  // (or at the unit manager) is newer than the corresponding
 
5139
  // file in the destination directory.
 
5140
  bool isNewer (const char *) const;
 
5141
 
 
5142
  // Returns true if the given file is in or below the project dirs
 
5143
  virtual bool isBelow (const char *) const;
 
5144
  virtual bool isBelow (Unit *) const;
 
5145
};
 
5146
 
 
5147
inline UnitManager &Project::unitManager () 
 
5148
 {  return _unitManager; }
 
5149
 
 
5150
inline bool Project::isBelow (const char *file) const
 
5151
 { return PathManager::isBelow (file); }
 
5152
 
 
5153
 
 
5154
} // namespace Puma
 
5155
 
 
5156
#endif /* __project__ */
 
5157
 
 
5158
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5159
 
 
5160
#line 5161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5161
 
 
5162
#ifndef __ac_fwd_ExtACKeywords__
 
5163
#define __ac_fwd_ExtACKeywords__
 
5164
class ExtACKeywords;
 
5165
namespace AC {
 
5166
  template <class JoinPoint>
 
5167
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
5168
  template <class JoinPoint>
 
5169
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
5170
  template <class JoinPoint>
 
5171
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
5172
}
 
5173
#endif
 
5174
 
 
5175
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
5176
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
5177
#endif
 
5178
 
 
5179
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
5180
// This file is part of PUMA.
 
5181
// Copyright (C) 1999-2003  The PUMA developer team.
 
5182
//                                                                
 
5183
// This program is free software;  you can redistribute it and/or 
 
5184
// modify it under the terms of the GNU General Public License as 
 
5185
// published by the Free Software Foundation; either version 2 of 
 
5186
// the License, or (at your option) any later version.            
 
5187
//                                                                
 
5188
// This program is distributed in the hope that it will be useful,
 
5189
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5190
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5191
// GNU General Public License for more details.                   
 
5192
//                                                                
 
5193
// You should have received a copy of the GNU General Public      
 
5194
// License along with this program; if not, write to the Free     
 
5195
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5196
// MA  02111-1307  USA                                            
 
5197
 
 
5198
#ifndef __c_scanner_h__
 
5199
#define __c_scanner_h__
 
5200
 
 
5201
 
 
5202
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
5203
// This file is part of PUMA.
 
5204
// Copyright (C) 1999-2003  The PUMA developer team.
 
5205
//                                                                
 
5206
// This program is free software;  you can redistribute it and/or 
 
5207
// modify it under the terms of the GNU General Public License as 
 
5208
// published by the Free Software Foundation; either version 2 of 
 
5209
// the License, or (at your option) any later version.            
 
5210
//                                                                
 
5211
// This program is distributed in the hope that it will be useful,
 
5212
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5213
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5214
// GNU General Public License for more details.                   
 
5215
//                                                                
 
5216
// You should have received a copy of the GNU General Public      
 
5217
// License along with this program; if not, write to the Free     
 
5218
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5219
// MA  02111-1307  USA                                            
 
5220
 
 
5221
#ifndef __c_recognizer_h__
 
5222
#define __c_recognizer_h__
 
5223
 
 
5224
 
 
5225
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
5226
// This file is part of PUMA.
 
5227
// Copyright (C) 1999-2003  The PUMA developer team.
 
5228
//                                                                
 
5229
// This program is free software;  you can redistribute it and/or 
 
5230
// modify it under the terms of the GNU General Public License as 
 
5231
// published by the Free Software Foundation; either version 2 of 
 
5232
// the License, or (at your option) any later version.            
 
5233
//                                                                
 
5234
// This program is distributed in the hope that it will be useful,
 
5235
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5236
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5237
// GNU General Public License for more details.                   
 
5238
//                                                                
 
5239
// You should have received a copy of the GNU General Public      
 
5240
// License along with this program; if not, write to the Free     
 
5241
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5242
// MA  02111-1307  USA                                            
 
5243
 
 
5244
#ifndef __CScanBuffer_h__
 
5245
#define __CScanBuffer_h__
 
5246
 
 
5247
 
 
5248
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
5249
// This file is part of PUMA.
 
5250
// Copyright (C) 1999-2003  The PUMA developer team.
 
5251
//                                                                
 
5252
// This program is free software;  you can redistribute it and/or 
 
5253
// modify it under the terms of the GNU General Public License as 
 
5254
// published by the Free Software Foundation; either version 2 of 
 
5255
// the License, or (at your option) any later version.            
 
5256
//                                                                
 
5257
// This program is distributed in the hope that it will be useful,
 
5258
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5259
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5260
// GNU General Public License for more details.                   
 
5261
//                                                                
 
5262
// You should have received a copy of the GNU General Public      
 
5263
// License along with this program; if not, write to the Free     
 
5264
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5265
// MA  02111-1307  USA                                            
 
5266
 
 
5267
#ifndef __scan_buffer_h__
 
5268
#define __scan_buffer_h__
 
5269
 
 
5270
 
 
5271
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
5272
using namespace std;
 
5273
 
 
5274
namespace Puma {
 
5275
 
 
5276
 
 
5277
#line 5278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5278
} // closed Puma
 
5279
class CCExprResolve;
 
5280
class CExprResolve;
 
5281
class WinIfExists;
 
5282
class WinImportHandler;
 
5283
class WinMacros;
 
5284
class WinAsm;
 
5285
class WinDeclSpecs;
 
5286
class WinMemberExplSpec;
 
5287
class WinTypeKeywords;
 
5288
class WinFriend;
 
5289
class ExtAC;
 
5290
class ExtACBuilderCoupling;
 
5291
class ExtACSyntaxCoupling;
 
5292
class ExtACTree;
 
5293
class ExtACKeywords;
 
5294
class ExtGnu;
 
5295
class PragmaOnceUnitState;
 
5296
class PragmaOnce;
 
5297
class CMatchSyntax;
 
5298
namespace Puma {
 
5299
 
 
5300
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
5301
class ScanBuffer {
 
5302
#line 5303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5303
  friend class ::CCExprResolve;
 
5304
  friend class ::CExprResolve;
 
5305
  friend class ::WinIfExists;
 
5306
  friend class ::WinImportHandler;
 
5307
  friend class ::WinMacros;
 
5308
  friend class ::WinAsm;
 
5309
  friend class ::WinDeclSpecs;
 
5310
  friend class ::WinMemberExplSpec;
 
5311
  friend class ::WinTypeKeywords;
 
5312
  friend class ::WinFriend;
 
5313
  friend class ::ExtAC;
 
5314
  friend class ::ExtACBuilderCoupling;
 
5315
  friend class ::ExtACSyntaxCoupling;
 
5316
  friend class ::ExtACTree;
 
5317
  friend class ::ExtACKeywords;
 
5318
  friend class ::ExtGnu;
 
5319
  friend class ::PragmaOnceUnitState;
 
5320
  friend class ::PragmaOnce;
 
5321
  friend class ::CMatchSyntax;
 
5322
 
 
5323
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
5324
 
 
5325
public:
 
5326
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
5327
 
 
5328
private:
 
5329
  int _token;      // start position of current token
 
5330
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
5331
  char *_buffer;   // token to the buffer that contains all input characters
 
5332
  int  _buff_size; // size of the input buffer
 
5333
  State _state;
 
5334
 
 
5335
public:  
 
5336
  ScanBuffer () : _state (STATE_NEW) {}
 
5337
 
 
5338
  // init buffer to directly scan from a string
 
5339
  void init (const char *str, int l = 0);
 
5340
  
 
5341
  char next () { return _buffer[_pos++]; }
 
5342
  char lookahead () { return _buffer[_pos]; }
 
5343
  char *token () const { return _buffer + _token; }
 
5344
  int len () const { return _pos - _token; }
 
5345
  void reset () { _token = _pos = 0; }
 
5346
  void retry () { _pos = _token; } 
 
5347
  void accept (int len) {
 
5348
    _token += len;
 
5349
    _pos = _token;
 
5350
  }
 
5351
  void more (int len) { _pos = _token + len; }
 
5352
  State state () {
 
5353
    if (_state == STATE_OK && _pos >= _buff_size)
 
5354
      return STATE_END;
 
5355
    return _state;
 
5356
  }
 
5357
};
 
5358
 
 
5359
 
 
5360
} // namespace Puma
 
5361
 
 
5362
#endif /* __scan_buffer_h__ */
 
5363
 
 
5364
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
5365
namespace Puma {
 
5366
 
 
5367
 
 
5368
 
 
5369
#line 5370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5370
} // closed Puma
 
5371
class CCExprResolve;
 
5372
class CExprResolve;
 
5373
class WinIfExists;
 
5374
class WinImportHandler;
 
5375
class WinMacros;
 
5376
class WinAsm;
 
5377
class WinDeclSpecs;
 
5378
class WinMemberExplSpec;
 
5379
class WinTypeKeywords;
 
5380
class WinFriend;
 
5381
class ExtAC;
 
5382
class ExtACBuilderCoupling;
 
5383
class ExtACSyntaxCoupling;
 
5384
class ExtACTree;
 
5385
class ExtACKeywords;
 
5386
class ExtGnu;
 
5387
class PragmaOnceUnitState;
 
5388
class PragmaOnce;
 
5389
class CMatchSyntax;
 
5390
namespace Puma {
 
5391
 
 
5392
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
5393
class CScanBuffer : public ScanBuffer {
 
5394
#line 5395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5395
  friend class ::CCExprResolve;
 
5396
  friend class ::CExprResolve;
 
5397
  friend class ::WinIfExists;
 
5398
  friend class ::WinImportHandler;
 
5399
  friend class ::WinMacros;
 
5400
  friend class ::WinAsm;
 
5401
  friend class ::WinDeclSpecs;
 
5402
  friend class ::WinMemberExplSpec;
 
5403
  friend class ::WinTypeKeywords;
 
5404
  friend class ::WinFriend;
 
5405
  friend class ::ExtAC;
 
5406
  friend class ::ExtACBuilderCoupling;
 
5407
  friend class ::ExtACSyntaxCoupling;
 
5408
  friend class ::ExtACTree;
 
5409
  friend class ::ExtACKeywords;
 
5410
  friend class ::ExtGnu;
 
5411
  friend class ::PragmaOnceUnitState;
 
5412
  friend class ::PragmaOnce;
 
5413
  friend class ::CMatchSyntax;
 
5414
 
 
5415
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
5416
 
 
5417
 
 
5418
  int _new_line_pos;
 
5419
  void check ();
 
5420
 
 
5421
public:
 
5422
  CScanBuffer () : _new_line_pos (-1) {}
 
5423
  inline char next ();
 
5424
  inline void reset ();
 
5425
  inline void retry (); 
 
5426
  inline void accept (int len);
 
5427
  inline bool new_line (int len) const;
 
5428
};
 
5429
 
 
5430
 
 
5431
inline char CScanBuffer::next () {
 
5432
  char character = ScanBuffer::next ();
 
5433
  if (character == '\n' && _new_line_pos == -1)
 
5434
    _new_line_pos = len ();
 
5435
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
5436
      ScanBuffer::lookahead () == '\\')
 
5437
    check ();
 
5438
  return character;
 
5439
}
 
5440
 
 
5441
inline void CScanBuffer::reset () { 
 
5442
  ScanBuffer::reset ();
 
5443
  _new_line_pos = -1;
 
5444
  check ();
 
5445
}
 
5446
 
 
5447
inline void CScanBuffer::retry () {
 
5448
  ScanBuffer::retry ();
 
5449
  _new_line_pos = -1;
 
5450
}
 
5451
 
 
5452
inline void CScanBuffer::accept (int len) {
 
5453
  ScanBuffer::accept (len);
 
5454
  _new_line_pos = -1;
 
5455
}
 
5456
 
 
5457
inline bool CScanBuffer::new_line (int len) const {
 
5458
  return _new_line_pos != -1 && _new_line_pos <= len;
 
5459
}
 
5460
 
 
5461
} // namespace Puma
 
5462
 
 
5463
#endif // __CScanBuffer_h__
 
5464
 
 
5465
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
5466
// This file is part of PUMA.
 
5467
// Copyright (C) 1999-2003  The PUMA developer team.
 
5468
//                                                                
 
5469
// This program is free software;  you can redistribute it and/or 
 
5470
// modify it under the terms of the GNU General Public License as 
 
5471
// published by the Free Software Foundation; either version 2 of 
 
5472
// the License, or (at your option) any later version.            
 
5473
//                                                                
 
5474
// This program is distributed in the hope that it will be useful,
 
5475
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5476
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5477
// GNU General Public License for more details.                   
 
5478
//                                                                
 
5479
// You should have received a copy of the GNU General Public      
 
5480
// License along with this program; if not, write to the Free     
 
5481
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5482
// MA  02111-1307  USA                                            
 
5483
 
 
5484
#ifndef __c_comment_recognizer_h__
 
5485
#define __c_comment_recognizer_h__
 
5486
 
 
5487
 
 
5488
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
5489
// This file is part of PUMA.
 
5490
// Copyright (C) 1999-2003  The PUMA developer team.
 
5491
//                                                                
 
5492
// This program is free software;  you can redistribute it and/or 
 
5493
// modify it under the terms of the GNU General Public License as 
 
5494
// published by the Free Software Foundation; either version 2 of 
 
5495
// the License, or (at your option) any later version.            
 
5496
//                                                                
 
5497
// This program is distributed in the hope that it will be useful,
 
5498
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5499
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5500
// GNU General Public License for more details.                   
 
5501
//                                                                
 
5502
// You should have received a copy of the GNU General Public      
 
5503
// License along with this program; if not, write to the Free     
 
5504
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5505
// MA  02111-1307  USA                                            
 
5506
 
 
5507
#ifndef __mapped_orange_recognizer_h__
 
5508
#define __mapped_orange_recognizer_h__
 
5509
 
 
5510
// The token recognizer class, which uses scanner tables generated by the
 
5511
// orange tool. Returned expressions mapped according to an orange
 
5512
// generated mapping table
 
5513
 
 
5514
 
 
5515
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
 
5516
// This file is part of PUMA.
 
5517
// Copyright (C) 1999-2003  The PUMA developer team.
 
5518
//                                                                
 
5519
// This program is free software;  you can redistribute it and/or 
 
5520
// modify it under the terms of the GNU General Public License as 
 
5521
// published by the Free Software Foundation; either version 2 of 
 
5522
// the License, or (at your option) any later version.            
 
5523
//                                                                
 
5524
// This program is distributed in the hope that it will be useful,
 
5525
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5526
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5527
// GNU General Public License for more details.                   
 
5528
//                                                                
 
5529
// You should have received a copy of the GNU General Public      
 
5530
// License along with this program; if not, write to the Free     
 
5531
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5532
// MA  02111-1307  USA                                            
 
5533
 
 
5534
#ifndef __recognizer_h__
 
5535
#define __recognizer_h__
 
5536
 
 
5537
// The token recognizer class, which uses scanner tables generated by the
 
5538
// orange tool.
 
5539
 
 
5540
namespace Puma {
 
5541
 
 
5542
 
 
5543
#ifndef __TTGEN__
 
5544
#  define __TTGEN__
 
5545
typedef struct
 
5546
 { unsigned char Type;
 
5547
   unsigned char LookAhead;
 
5548
   int           Expression;
 
5549
   int           Start;
 
5550
 } States;                                                                   
 
5551
#endif
 
5552
 
 
5553
 
 
5554
// class declaration
 
5555
 
 
5556
template <typename TScanBuffer>
 
5557
class OrangeRecognizer {
 
5558
  // local structures generated by Orange
 
5559
 
 
5560
  char *_map;
 
5561
  int _start;
 
5562
  States *_state;
 
5563
  int *_next;
 
5564
  int *_control;
 
5565
  int _tab_size;
 
5566
 
 
5567
public:
 
5568
  OrangeRecognizer (char *map, int start, States *state, int *next,
 
5569
                    int *control, int tab_size) : 
 
5570
    _map (map), _start (start), _state (state), _next (next),
 
5571
    _control (control), _tab_size (tab_size)
 
5572
   {}
 
5573
 
 
5574
  // try to recognize the current token in the character buffer
 
5575
  // returns 1 on success, 0 on eof, -1 on unknown token
 
5576
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
 
5577
};
 
5578
 
 
5579
template <typename TScanBuffer>
 
5580
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
 
5581
                                              int &token, int &len) {
 
5582
  int  NextState;
 
5583
  char Character;
 
5584
  char CharClass;
 
5585
  int  NextStatePos;
 
5586
  int  State;
 
5587
  int  LookAheadLen;
 
5588
  int  AcceptLen;
 
5589
  int  AcceptState;
 
5590
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
 
5591
 
 
5592
  State = _start;
 
5593
  AcceptState = -1;
 
5594
  LookAheadLen = 0;
 
5595
  AcceptLen = 0;
 
5596
 
 
5597
  do { 
 
5598
    Character = scan_buffer->next ();
 
5599
 
 
5600
    CharClass = _map[(unsigned char)Character];
 
5601
    if (CharClass == -1)
 
5602
      break;
 
5603
 
 
5604
    NextStatePos = _state[State].Start + CharClass;
 
5605
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
 
5606
        _control[NextStatePos] != State)
 
5607
      break;
 
5608
 
 
5609
    if ((NextState = _next[NextStatePos]) == -1)
 
5610
      break;
 
5611
 
 
5612
    State = NextState;
 
5613
 
 
5614
    if (_state[State].Type > 0) {
 
5615
      AcceptState = State; // remember this (terminal) state
 
5616
      AcceptLen = scan_buffer->len ();
 
5617
    }
 
5618
 
 
5619
    if (_state[State].LookAhead)
 
5620
      LookAheadLen = scan_buffer->len ();
 
5621
 
 
5622
    buffer_state = scan_buffer->state ();
 
5623
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
 
5624
 
 
5625
  if (buffer_state == TScanBuffer::STATE_ERROR)
 
5626
    return -1;
 
5627
 
 
5628
  if (AcceptState == -1)
 
5629
    return 0;
 
5630
 
 
5631
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
 
5632
  token = _state[AcceptState].Expression;
 
5633
 
 
5634
  return 1;
 
5635
}
 
5636
 
 
5637
} // namespace Puma
 
5638
 
 
5639
#endif /* __orange_recognizer_h__ */
 
5640
 
 
5641
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
5642
namespace Puma {
 
5643
 
 
5644
 
 
5645
// class declaration
 
5646
 
 
5647
template <class ScanBuffer>
 
5648
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
 
5649
  int *_expr_map;
 
5650
 
 
5651
public:
 
5652
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
 
5653
                          States *state, int *next,
 
5654
                          int *control, int tab_size) : 
 
5655
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
 
5656
    _expr_map (expr_map) 
 
5657
   {}
 
5658
 
 
5659
  // try to recognize the current token in the character buffer
 
5660
  // returns 1 on success, 0 on eof, -1 on unknown token
 
5661
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
 
5662
    int result;
 
5663
 
 
5664
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
 
5665
      token = _expr_map[token];
 
5666
    }
 
5667
    return result;
 
5668
  }
 
5669
};
 
5670
 
 
5671
 
 
5672
} // namespace Puma
 
5673
 
 
5674
#endif // __mapped_orange_recognizer_h__
 
5675
 
 
5676
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
5677
namespace Puma {
 
5678
 
 
5679
 
 
5680
 
 
5681
#line 5682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5682
} // closed Puma
 
5683
class CCExprResolve;
 
5684
class CExprResolve;
 
5685
class WinIfExists;
 
5686
class WinImportHandler;
 
5687
class WinMacros;
 
5688
class WinAsm;
 
5689
class WinDeclSpecs;
 
5690
class WinMemberExplSpec;
 
5691
class WinTypeKeywords;
 
5692
class WinFriend;
 
5693
class ExtAC;
 
5694
class ExtACBuilderCoupling;
 
5695
class ExtACSyntaxCoupling;
 
5696
class ExtACTree;
 
5697
class ExtACKeywords;
 
5698
class ExtGnu;
 
5699
class PragmaOnceUnitState;
 
5700
class PragmaOnce;
 
5701
class CMatchSyntax;
 
5702
namespace Puma {
 
5703
 
 
5704
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
5705
class CCommentRecognizer {
 
5706
#line 5707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5707
  friend class ::CCExprResolve;
 
5708
  friend class ::CExprResolve;
 
5709
  friend class ::WinIfExists;
 
5710
  friend class ::WinImportHandler;
 
5711
  friend class ::WinMacros;
 
5712
  friend class ::WinAsm;
 
5713
  friend class ::WinDeclSpecs;
 
5714
  friend class ::WinMemberExplSpec;
 
5715
  friend class ::WinTypeKeywords;
 
5716
  friend class ::WinFriend;
 
5717
  friend class ::ExtAC;
 
5718
  friend class ::ExtACBuilderCoupling;
 
5719
  friend class ::ExtACSyntaxCoupling;
 
5720
  friend class ::ExtACTree;
 
5721
  friend class ::ExtACKeywords;
 
5722
  friend class ::ExtGnu;
 
5723
  friend class ::PragmaOnceUnitState;
 
5724
  friend class ::PragmaOnce;
 
5725
  friend class ::CMatchSyntax;
 
5726
 
 
5727
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
5728
 
 
5729
public:
 
5730
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
 
5731
 
 
5732
private:
 
5733
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
 
5734
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
 
5735
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
 
5736
  Mode comment_mode;
 
5737
 
 
5738
public:
 
5739
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
 
5740
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
5741
  void mode (Mode mode) { comment_mode = mode; }
 
5742
  Mode mode () { return comment_mode; }
 
5743
};
 
5744
 
 
5745
 
 
5746
} // namespace Puma
 
5747
 
 
5748
#endif /* __c_comment_recognizer_h__ */
 
5749
 
 
5750
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
5751
// This file is part of PUMA.
 
5752
// Copyright (C) 1999-2003  The PUMA developer team.
 
5753
//                                                                
 
5754
// This program is free software;  you can redistribute it and/or 
 
5755
// modify it under the terms of the GNU General Public License as 
 
5756
// published by the Free Software Foundation; either version 2 of 
 
5757
// the License, or (at your option) any later version.            
 
5758
//                                                                
 
5759
// This program is distributed in the hope that it will be useful,
 
5760
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5761
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5762
// GNU General Public License for more details.                   
 
5763
//                                                                
 
5764
// You should have received a copy of the GNU General Public      
 
5765
// License along with this program; if not, write to the Free     
 
5766
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5767
// MA  02111-1307  USA                                            
 
5768
 
 
5769
#ifndef __keyword_recognizer_h__
 
5770
#define __keyword_recognizer_h__
 
5771
 
 
5772
 
 
5773
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
5774
namespace Puma {
 
5775
 
 
5776
 
 
5777
 
 
5778
#line 5779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5779
} // closed Puma
 
5780
class CCExprResolve;
 
5781
class CExprResolve;
 
5782
class WinIfExists;
 
5783
class WinImportHandler;
 
5784
class WinMacros;
 
5785
class WinAsm;
 
5786
class WinDeclSpecs;
 
5787
class WinMemberExplSpec;
 
5788
class WinTypeKeywords;
 
5789
class WinFriend;
 
5790
class ExtAC;
 
5791
class ExtACBuilderCoupling;
 
5792
class ExtACSyntaxCoupling;
 
5793
class ExtACTree;
 
5794
class ExtACKeywords;
 
5795
class ExtGnu;
 
5796
class PragmaOnceUnitState;
 
5797
class PragmaOnce;
 
5798
class CMatchSyntax;
 
5799
namespace Puma {
 
5800
 
 
5801
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
5802
class KeywordRecognizer {
 
5803
#line 5804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5804
  friend class ::CCExprResolve;
 
5805
  friend class ::CExprResolve;
 
5806
  friend class ::WinIfExists;
 
5807
  friend class ::WinImportHandler;
 
5808
  friend class ::WinMacros;
 
5809
  friend class ::WinAsm;
 
5810
  friend class ::WinDeclSpecs;
 
5811
  friend class ::WinMemberExplSpec;
 
5812
  friend class ::WinTypeKeywords;
 
5813
  friend class ::WinFriend;
 
5814
  friend class ::ExtAC;
 
5815
  friend class ::ExtACBuilderCoupling;
 
5816
  friend class ::ExtACSyntaxCoupling;
 
5817
  friend class ::ExtACTree;
 
5818
  friend class ::ExtACKeywords;
 
5819
  friend class ::ExtGnu;
 
5820
  friend class ::PragmaOnceUnitState;
 
5821
  friend class ::PragmaOnce;
 
5822
  friend class ::CMatchSyntax;
 
5823
 
 
5824
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
5825
 
 
5826
protected:
 
5827
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
 
5828
 
 
5829
public:
 
5830
  virtual ~KeywordRecognizer () {}
 
5831
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
5832
};
 
5833
 
 
5834
 
 
5835
} // namespace Puma
 
5836
 
 
5837
#endif /* __keyword_recognizer_h__ */
 
5838
 
 
5839
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
5840
namespace Puma {
 
5841
 
 
5842
 
 
5843
 
 
5844
#line 5845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5845
} // closed Puma
 
5846
class CCExprResolve;
 
5847
class CExprResolve;
 
5848
class WinIfExists;
 
5849
class WinImportHandler;
 
5850
class WinMacros;
 
5851
class WinAsm;
 
5852
class WinDeclSpecs;
 
5853
class WinMemberExplSpec;
 
5854
class WinTypeKeywords;
 
5855
class WinFriend;
 
5856
class ExtAC;
 
5857
class ExtACBuilderCoupling;
 
5858
class ExtACSyntaxCoupling;
 
5859
class ExtACTree;
 
5860
class ExtACKeywords;
 
5861
class ExtGnu;
 
5862
class PragmaOnceUnitState;
 
5863
class PragmaOnce;
 
5864
class CMatchSyntax;
 
5865
namespace Puma {
 
5866
 
 
5867
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
5868
class CRecognizer {
 
5869
#line 5870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5870
  friend class ::CCExprResolve;
 
5871
  friend class ::CExprResolve;
 
5872
  friend class ::WinIfExists;
 
5873
  friend class ::WinImportHandler;
 
5874
  friend class ::WinMacros;
 
5875
  friend class ::WinAsm;
 
5876
  friend class ::WinDeclSpecs;
 
5877
  friend class ::WinMemberExplSpec;
 
5878
  friend class ::WinTypeKeywords;
 
5879
  friend class ::WinFriend;
 
5880
  friend class ::ExtAC;
 
5881
  friend class ::ExtACBuilderCoupling;
 
5882
  friend class ::ExtACSyntaxCoupling;
 
5883
  friend class ::ExtACTree;
 
5884
  friend class ::ExtACKeywords;
 
5885
  friend class ::ExtGnu;
 
5886
  friend class ::PragmaOnceUnitState;
 
5887
  friend class ::PragmaOnce;
 
5888
  friend class ::CMatchSyntax;
 
5889
 
 
5890
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
5891
 
 
5892
  CCommentRecognizer comment_recognizer;
 
5893
  Array<KeywordRecognizer*> additional_keyword_recognizers;
 
5894
 
 
5895
public:
 
5896
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
5897
 
 
5898
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
 
5899
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
 
5900
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
 
5901
 
 
5902
  CRecognizer () : directives(true), wildcards (false),
 
5903
    aspectc (false), macro_ops (false),
 
5904
    std_c (true), std_cplusplus (true) {}
 
5905
  void allow_directives (bool flag = true)    { directives = flag; }
 
5906
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
 
5907
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
 
5908
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
 
5909
  void allow_std_c (bool flag = true)         { std_c = flag; }
 
5910
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
 
5911
  void setup ();
 
5912
  int recognize (Lang &lang, int &expr, int &len);
 
5913
  Mode mode () const { return scan_mode; }
 
5914
  void mode (Mode mode) { scan_mode = mode; }
 
5915
  CScanBuffer& buffer () { return scan_buffer; }
 
5916
  void addRecognizer(KeywordRecognizer &recognizer) 
 
5917
   { additional_keyword_recognizers.append(&recognizer); }
 
5918
 
 
5919
private:
 
5920
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
 
5921
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
 
5922
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
 
5923
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
 
5924
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
 
5925
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
 
5926
 
 
5927
  Mode scan_mode;
 
5928
  bool directives;
 
5929
  bool wildcards;
 
5930
  bool aspectc;
 
5931
  bool macro_ops;
 
5932
  bool std_c;
 
5933
  bool std_cplusplus;
 
5934
};
 
5935
 
 
5936
 
 
5937
} // namespace Puma
 
5938
 
 
5939
#endif /* __c_recognizer_h__ */
 
5940
 
 
5941
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
5942
// This file is part of PUMA.
 
5943
// Copyright (C) 1999-2003  The PUMA developer team.
 
5944
//                                                                
 
5945
// This program is free software;  you can redistribute it and/or 
 
5946
// modify it under the terms of the GNU General Public License as 
 
5947
// published by the Free Software Foundation; either version 2 of 
 
5948
// the License, or (at your option) any later version.            
 
5949
//                                                                
 
5950
// This program is distributed in the hope that it will be useful,
 
5951
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
5952
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
5953
// GNU General Public License for more details.                   
 
5954
//                                                                
 
5955
// You should have received a copy of the GNU General Public      
 
5956
// License along with this program; if not, write to the Free     
 
5957
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
5958
// MA  02111-1307  USA                                            
 
5959
 
 
5960
#ifndef __language_id_h__
 
5961
#define __language_id_h__
 
5962
 
 
5963
// A language ID is a unique identifier for a language
 
5964
 
 
5965
namespace Puma {
 
5966
 
 
5967
 
 
5968
 
 
5969
#line 5970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5970
} // closed Puma
 
5971
class CCExprResolve;
 
5972
class CExprResolve;
 
5973
class WinIfExists;
 
5974
class WinImportHandler;
 
5975
class WinMacros;
 
5976
class WinAsm;
 
5977
class WinDeclSpecs;
 
5978
class WinMemberExplSpec;
 
5979
class WinTypeKeywords;
 
5980
class WinFriend;
 
5981
class ExtAC;
 
5982
class ExtACBuilderCoupling;
 
5983
class ExtACSyntaxCoupling;
 
5984
class ExtACTree;
 
5985
class ExtACKeywords;
 
5986
class ExtGnu;
 
5987
class PragmaOnceUnitState;
 
5988
class PragmaOnce;
 
5989
class CMatchSyntax;
 
5990
namespace Puma {
 
5991
 
 
5992
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
5993
class LanguageID {
 
5994
#line 5995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
5995
  friend class ::CCExprResolve;
 
5996
  friend class ::CExprResolve;
 
5997
  friend class ::WinIfExists;
 
5998
  friend class ::WinImportHandler;
 
5999
  friend class ::WinMacros;
 
6000
  friend class ::WinAsm;
 
6001
  friend class ::WinDeclSpecs;
 
6002
  friend class ::WinMemberExplSpec;
 
6003
  friend class ::WinTypeKeywords;
 
6004
  friend class ::WinFriend;
 
6005
  friend class ::ExtAC;
 
6006
  friend class ::ExtACBuilderCoupling;
 
6007
  friend class ::ExtACSyntaxCoupling;
 
6008
  friend class ::ExtACTree;
 
6009
  friend class ::ExtACKeywords;
 
6010
  friend class ::ExtGnu;
 
6011
  friend class ::PragmaOnceUnitState;
 
6012
  friend class ::PragmaOnce;
 
6013
  friend class ::CMatchSyntax;
 
6014
 
 
6015
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
6016
 
 
6017
  const char *_id;
 
6018
 
 
6019
public:
 
6020
  LanguageID () : _id ((const char*)0) {}
 
6021
  LanguageID (const char *id) : _id (id) {}
 
6022
  operator const char *() const { return _id; }
 
6023
  bool operator == (const LanguageID &id) const
 
6024
   { return _id == (const char*)id; }
 
6025
};
 
6026
 
 
6027
 
 
6028
} // namespace Puma
 
6029
 
 
6030
#endif /* __language_id_h__ */
 
6031
 
 
6032
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
6033
// This file is part of PUMA.
 
6034
// Copyright (C) 1999-2003  The PUMA developer team.
 
6035
//                                                                
 
6036
// This program is free software;  you can redistribute it and/or 
 
6037
// modify it under the terms of the GNU General Public License as 
 
6038
// published by the Free Software Foundation; either version 2 of 
 
6039
// the License, or (at your option) any later version.            
 
6040
//                                                                
 
6041
// This program is distributed in the hope that it will be useful,
 
6042
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6043
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6044
// GNU General Public License for more details.                   
 
6045
//                                                                
 
6046
// You should have received a copy of the GNU General Public      
 
6047
// License along with this program; if not, write to the Free     
 
6048
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6049
// MA  02111-1307  USA                                            
 
6050
 
 
6051
#ifndef __Tokenizer_h__
 
6052
#define __Tokenizer_h__
 
6053
 
 
6054
// Tokenizer interface. Tokenizer read input from a "Source" and
 
6055
// form tokens, which used to fill a "Unit".
 
6056
 
 
6057
 
 
6058
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
6059
// This file is part of PUMA.
 
6060
// Copyright (C) 1999-2003  The PUMA developer team.
 
6061
//                                                                
 
6062
// This program is free software;  you can redistribute it and/or 
 
6063
// modify it under the terms of the GNU General Public License as 
 
6064
// published by the Free Software Foundation; either version 2 of 
 
6065
// the License, or (at your option) any later version.            
 
6066
//                                                                
 
6067
// This program is distributed in the hope that it will be useful,
 
6068
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6069
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6070
// GNU General Public License for more details.                   
 
6071
//                                                                
 
6072
// You should have received a copy of the GNU General Public      
 
6073
// License along with this program; if not, write to the Free     
 
6074
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6075
// MA  02111-1307  USA                                            
 
6076
 
 
6077
#ifndef __source_h__
 
6078
#define __source_h__
 
6079
 
 
6080
namespace Puma {
 
6081
 
 
6082
 
 
6083
 
 
6084
#line 6085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6085
} // closed Puma
 
6086
class CCExprResolve;
 
6087
class CExprResolve;
 
6088
class WinIfExists;
 
6089
class WinImportHandler;
 
6090
class WinMacros;
 
6091
class WinAsm;
 
6092
class WinDeclSpecs;
 
6093
class WinMemberExplSpec;
 
6094
class WinTypeKeywords;
 
6095
class WinFriend;
 
6096
class ExtAC;
 
6097
class ExtACBuilderCoupling;
 
6098
class ExtACSyntaxCoupling;
 
6099
class ExtACTree;
 
6100
class ExtACKeywords;
 
6101
class ExtGnu;
 
6102
class PragmaOnceUnitState;
 
6103
class PragmaOnce;
 
6104
class CMatchSyntax;
 
6105
namespace Puma {
 
6106
 
 
6107
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
6108
class Source {
 
6109
#line 6110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6110
  friend class ::CCExprResolve;
 
6111
  friend class ::CExprResolve;
 
6112
  friend class ::WinIfExists;
 
6113
  friend class ::WinImportHandler;
 
6114
  friend class ::WinMacros;
 
6115
  friend class ::WinAsm;
 
6116
  friend class ::WinDeclSpecs;
 
6117
  friend class ::WinMemberExplSpec;
 
6118
  friend class ::WinTypeKeywords;
 
6119
  friend class ::WinFriend;
 
6120
  friend class ::ExtAC;
 
6121
  friend class ::ExtACBuilderCoupling;
 
6122
  friend class ::ExtACSyntaxCoupling;
 
6123
  friend class ::ExtACTree;
 
6124
  friend class ::ExtACKeywords;
 
6125
  friend class ::ExtGnu;
 
6126
  friend class ::PragmaOnceUnitState;
 
6127
  friend class ::PragmaOnce;
 
6128
  friend class ::CMatchSyntax;
 
6129
 
 
6130
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
6131
 
 
6132
public:
 
6133
  Source () {}
 
6134
  virtual ~Source () {}
 
6135
  virtual int read (char *dest, int n) = 0;
 
6136
  virtual int size () { return -1; }
 
6137
};
 
6138
 
 
6139
 
 
6140
} // namespace Puma
 
6141
 
 
6142
#endif /* __source_h__ */
 
6143
 
 
6144
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
6145
// This file is part of PUMA.
 
6146
// Copyright (C) 1999-2003  The PUMA developer team.
 
6147
//                                                                
 
6148
// This program is free software;  you can redistribute it and/or 
 
6149
// modify it under the terms of the GNU General Public License as 
 
6150
// published by the Free Software Foundation; either version 2 of 
 
6151
// the License, or (at your option) any later version.            
 
6152
//                                                                
 
6153
// This program is distributed in the hope that it will be useful,
 
6154
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6155
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6156
// GNU General Public License for more details.                   
 
6157
//                                                                
 
6158
// You should have received a copy of the GNU General Public      
 
6159
// License along with this program; if not, write to the Free     
 
6160
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6161
// MA  02111-1307  USA                                            
 
6162
 
 
6163
#ifndef __unit_h__
 
6164
#define __unit_h__
 
6165
 
 
6166
 
 
6167
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
6168
// This file is part of PUMA.
 
6169
// Copyright (C) 1999-2003  The PUMA developer team.
 
6170
//                                                                
 
6171
// This program is free software;  you can redistribute it and/or 
 
6172
// modify it under the terms of the GNU General Public License as 
 
6173
// published by the Free Software Foundation; either version 2 of 
 
6174
// the License, or (at your option) any later version.            
 
6175
//                                                                
 
6176
// This program is distributed in the hope that it will be useful,
 
6177
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6178
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6179
// GNU General Public License for more details.                   
 
6180
//                                                                
 
6181
// You should have received a copy of the GNU General Public      
 
6182
// License along with this program; if not, write to the Free     
 
6183
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6184
// MA  02111-1307  USA                                            
 
6185
 
 
6186
#ifndef __list_h__
 
6187
#define __list_h__
 
6188
 
 
6189
 
 
6190
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
6191
// This file is part of PUMA.
 
6192
// Copyright (C) 1999-2003  The PUMA developer team.
 
6193
//                                                                
 
6194
// This program is free software;  you can redistribute it and/or 
 
6195
// modify it under the terms of the GNU General Public License as 
 
6196
// published by the Free Software Foundation; either version 2 of 
 
6197
// the License, or (at your option) any later version.            
 
6198
//                                                                
 
6199
// This program is distributed in the hope that it will be useful,
 
6200
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6201
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6202
// GNU General Public License for more details.                   
 
6203
//                                                                
 
6204
// You should have received a copy of the GNU General Public      
 
6205
// License along with this program; if not, write to the Free     
 
6206
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6207
// MA  02111-1307  USA                                            
 
6208
 
 
6209
#ifndef __list_element_h__
 
6210
#define __list_element_h__
 
6211
 
 
6212
// Base class for objects that may be inserted into a List. Lists
 
6213
// autonomously delete or copy list element. So it's necessary to
 
6214
// define a destructor and a duplicate method in the derived
 
6215
// classes.
 
6216
 
 
6217
#include <assert.h>
 
6218
 
 
6219
namespace Puma {
 
6220
 
 
6221
 
 
6222
class List;
 
6223
 
 
6224
 
 
6225
#line 6226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6226
} // closed Puma
 
6227
class CCExprResolve;
 
6228
class CExprResolve;
 
6229
class WinIfExists;
 
6230
class WinImportHandler;
 
6231
class WinMacros;
 
6232
class WinAsm;
 
6233
class WinDeclSpecs;
 
6234
class WinMemberExplSpec;
 
6235
class WinTypeKeywords;
 
6236
class WinFriend;
 
6237
class ExtAC;
 
6238
class ExtACBuilderCoupling;
 
6239
class ExtACSyntaxCoupling;
 
6240
class ExtACTree;
 
6241
class ExtACKeywords;
 
6242
class ExtGnu;
 
6243
class PragmaOnceUnitState;
 
6244
class PragmaOnce;
 
6245
class CMatchSyntax;
 
6246
namespace Puma {
 
6247
 
 
6248
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
6249
class ListElement {
 
6250
#line 6251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6251
  friend class ::CCExprResolve;
 
6252
  friend class ::CExprResolve;
 
6253
  friend class ::WinIfExists;
 
6254
  friend class ::WinImportHandler;
 
6255
  friend class ::WinMacros;
 
6256
  friend class ::WinAsm;
 
6257
  friend class ::WinDeclSpecs;
 
6258
  friend class ::WinMemberExplSpec;
 
6259
  friend class ::WinTypeKeywords;
 
6260
  friend class ::WinFriend;
 
6261
  friend class ::ExtAC;
 
6262
  friend class ::ExtACBuilderCoupling;
 
6263
  friend class ::ExtACSyntaxCoupling;
 
6264
  friend class ::ExtACTree;
 
6265
  friend class ::ExtACKeywords;
 
6266
  friend class ::ExtGnu;
 
6267
  friend class ::PragmaOnceUnitState;
 
6268
  friend class ::PragmaOnce;
 
6269
  friend class ::CMatchSyntax;
 
6270
 
 
6271
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
6272
 
 
6273
  friend class List;
 
6274
 
 
6275
  List        *_belonging_to;
 
6276
  ListElement *_next;
 
6277
  ListElement *_prev;
 
6278
 
 
6279
public:
 
6280
  ListElement () : _belonging_to ((List*)0) {}
 
6281
  virtual ~ListElement () { assert (! _belonging_to); };
 
6282
 
 
6283
  virtual ListElement *duplicate () = 0;
 
6284
  List *belonging_to () const { return _belonging_to; }
 
6285
};
 
6286
 
 
6287
 
 
6288
} // namespace Puma
 
6289
 
 
6290
#endif /* __list_element_h__ */
 
6291
 
 
6292
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
6293
namespace Puma {
 
6294
 
 
6295
 
 
6296
 
 
6297
#line 6298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6298
} // closed Puma
 
6299
class CCExprResolve;
 
6300
class CExprResolve;
 
6301
class WinIfExists;
 
6302
class WinImportHandler;
 
6303
class WinMacros;
 
6304
class WinAsm;
 
6305
class WinDeclSpecs;
 
6306
class WinMemberExplSpec;
 
6307
class WinTypeKeywords;
 
6308
class WinFriend;
 
6309
class ExtAC;
 
6310
class ExtACBuilderCoupling;
 
6311
class ExtACSyntaxCoupling;
 
6312
class ExtACTree;
 
6313
class ExtACKeywords;
 
6314
class ExtGnu;
 
6315
class PragmaOnceUnitState;
 
6316
class PragmaOnce;
 
6317
class CMatchSyntax;
 
6318
namespace Puma {
 
6319
 
 
6320
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
6321
class List {
 
6322
#line 6323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6323
  friend class ::CCExprResolve;
 
6324
  friend class ::CExprResolve;
 
6325
  friend class ::WinIfExists;
 
6326
  friend class ::WinImportHandler;
 
6327
  friend class ::WinMacros;
 
6328
  friend class ::WinAsm;
 
6329
  friend class ::WinDeclSpecs;
 
6330
  friend class ::WinMemberExplSpec;
 
6331
  friend class ::WinTypeKeywords;
 
6332
  friend class ::WinFriend;
 
6333
  friend class ::ExtAC;
 
6334
  friend class ::ExtACBuilderCoupling;
 
6335
  friend class ::ExtACSyntaxCoupling;
 
6336
  friend class ::ExtACTree;
 
6337
  friend class ::ExtACKeywords;
 
6338
  friend class ::ExtGnu;
 
6339
  friend class ::PragmaOnceUnitState;
 
6340
  friend class ::PragmaOnce;
 
6341
  friend class ::CMatchSyntax;
 
6342
 
 
6343
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
 
6344
 
 
6345
  ListElement *_first;
 
6346
  ListElement *_last;
 
6347
 
 
6348
public:
 
6349
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
 
6350
  List (const List &);
 
6351
  ~List();
 
6352
 
 
6353
  List &operator = (const List &);
 
6354
  List &operator += (const List &);
 
6355
  List operator + (const List &);
 
6356
 
 
6357
  void clear ();
 
6358
 
 
6359
  void append (ListElement &);
 
6360
  void prepend (ListElement &);
 
6361
  void insert (ListElement *at, ListElement &element);
 
6362
  void remove (ListElement *element);
 
6363
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
 
6364
   { List discard; cut (discard, from, to); }
 
6365
 
 
6366
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
 
6367
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
 
6368
  List *copy (ListElement *from = (ListElement*)0, 
 
6369
              ListElement *to = (ListElement*)0);
 
6370
  void paste (ListElement *at, const List &l);
 
6371
  void paste_before (ListElement *at, const List &l);
 
6372
  void move (ListElement *at, List &l);
 
6373
  void move_before (ListElement *at, List &l);
 
6374
 
 
6375
  bool empty () const { return _first == (ListElement*)0; }
 
6376
  const ListElement *first () const { return _first; }
 
6377
  const ListElement *last () const { return _last; }
 
6378
  const ListElement *next (const ListElement *element) const
 
6379
   { return element ? element->_next : 0; }
 
6380
  const ListElement *prev (const ListElement *element) const 
 
6381
   { return element ? element->_prev : 0; }
 
6382
};
 
6383
 
 
6384
 
 
6385
} // namespace Puma
 
6386
 
 
6387
#endif /* __list_h__ */
 
6388
 
 
6389
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6390
 
 
6391
#line 6392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6392
 
 
6393
#ifndef __ac_fwd_PragmaOnceUnitState__
 
6394
#define __ac_fwd_PragmaOnceUnitState__
 
6395
class PragmaOnceUnitState;
 
6396
namespace AC {
 
6397
  template <class JoinPoint>
 
6398
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
6399
  template <class JoinPoint>
 
6400
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
6401
}
 
6402
#endif
 
6403
 
 
6404
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6405
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6406
#endif
 
6407
 
 
6408
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6409
// This file is part of PUMA.
 
6410
// Copyright (C) 1999-2003  The PUMA developer team.
 
6411
//                                                                
 
6412
// This program is free software;  you can redistribute it and/or 
 
6413
// modify it under the terms of the GNU General Public License as 
 
6414
// published by the Free Software Foundation; either version 2 of 
 
6415
// the License, or (at your option) any later version.            
 
6416
//                                                                
 
6417
// This program is distributed in the hope that it will be useful,
 
6418
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6419
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6420
// GNU General Public License for more details.                   
 
6421
//                                                                
 
6422
// You should have received a copy of the GNU General Public      
 
6423
// License along with this program; if not, write to the Free     
 
6424
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6425
// MA  02111-1307  USA                                            
 
6426
 
 
6427
#ifndef __UnitState__
 
6428
#define __UnitState__
 
6429
 
 
6430
// The state of a unit: 
 
6431
// 1. modified by manipulations and not updated at the class registry
 
6432
// 2. modified by manipulations and updated at the class registry
 
6433
// 3. unmodified by manipulations and not updated at the class registry
 
6434
// 4. unmodified by manipulations and updated at the class registry
 
6435
 
 
6436
namespace Puma {
 
6437
 
 
6438
 
 
6439
 
 
6440
#line 6441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6441
} // closed Puma
 
6442
class CCExprResolve;
 
6443
class CExprResolve;
 
6444
class WinIfExists;
 
6445
class WinImportHandler;
 
6446
class WinMacros;
 
6447
class WinAsm;
 
6448
class WinDeclSpecs;
 
6449
class WinMemberExplSpec;
 
6450
class WinTypeKeywords;
 
6451
class WinFriend;
 
6452
class ExtAC;
 
6453
class ExtACBuilderCoupling;
 
6454
class ExtACSyntaxCoupling;
 
6455
class ExtACTree;
 
6456
class ExtACKeywords;
 
6457
class ExtGnu;
 
6458
class PragmaOnceUnitState;
 
6459
class PragmaOnce;
 
6460
class CMatchSyntax;
 
6461
namespace Puma {
 
6462
 
 
6463
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6464
 
 
6465
#line 6466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6466
} // closed Puma
 
6467
 
 
6468
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6469
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
6470
 
 
6471
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6472
// This file is part of PUMA.
 
6473
// Copyright (C) 1999-2003  The PUMA developer team.
 
6474
//                                                                
 
6475
// This program is free software;  you can redistribute it and/or 
 
6476
// modify it under the terms of the GNU General Public License as 
 
6477
// published by the Free Software Foundation; either version 2 of 
 
6478
// the License, or (at your option) any later version.            
 
6479
//                                                                
 
6480
// This program is distributed in the hope that it will be useful,
 
6481
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6482
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6483
// GNU General Public License for more details.                   
 
6484
//                                                                
 
6485
// You should have received a copy of the GNU General Public      
 
6486
// License along with this program; if not, write to the Free     
 
6487
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6488
// MA  02111-1307  USA                                            
 
6489
 
 
6490
#ifndef __PragmaOnceUnitState__
 
6491
#define __PragmaOnceUnitState__
 
6492
 
 
6493
 
 
6494
#line 6495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6495
class CCExprResolve;
 
6496
class CExprResolve;
 
6497
class WinIfExists;
 
6498
class WinImportHandler;
 
6499
class WinMacros;
 
6500
class WinAsm;
 
6501
class WinDeclSpecs;
 
6502
class WinMemberExplSpec;
 
6503
class WinTypeKeywords;
 
6504
class WinFriend;
 
6505
class ExtAC;
 
6506
class ExtACBuilderCoupling;
 
6507
class ExtACSyntaxCoupling;
 
6508
class ExtACTree;
 
6509
class ExtACKeywords;
 
6510
class ExtGnu;
 
6511
class PragmaOnce;
 
6512
class CMatchSyntax;
 
6513
 
 
6514
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6515
class PragmaOnceUnitState {
 
6516
#line 6517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6517
 
 
6518
public:
 
6519
  static PragmaOnceUnitState *aspectof () {
 
6520
    static PragmaOnceUnitState __instance;
 
6521
    return &__instance;
 
6522
  }
 
6523
  static PragmaOnceUnitState *aspectOf () {
 
6524
    return aspectof ();
 
6525
  }
 
6526
private:
 
6527
 
 
6528
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6529
 
 
6530
#line 6531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6531
  friend class ::CCExprResolve;
 
6532
  friend class ::CExprResolve;
 
6533
  friend class ::WinIfExists;
 
6534
  friend class ::WinImportHandler;
 
6535
  friend class ::WinMacros;
 
6536
  friend class ::WinAsm;
 
6537
  friend class ::WinDeclSpecs;
 
6538
  friend class ::WinMemberExplSpec;
 
6539
  friend class ::WinTypeKeywords;
 
6540
  friend class ::WinFriend;
 
6541
  friend class ::ExtAC;
 
6542
  friend class ::ExtACBuilderCoupling;
 
6543
  friend class ::ExtACSyntaxCoupling;
 
6544
  friend class ::ExtACTree;
 
6545
  friend class ::ExtACKeywords;
 
6546
  friend class ::ExtGnu;
 
6547
  friend class ::PragmaOnce;
 
6548
  friend class ::CMatchSyntax;
 
6549
 
 
6550
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6551
 
 
6552
  /******************************************************/
 
6553
  /* specific #pragma once unit state                   */
 
6554
  /******************************************************/
 
6555
 
 
6556
  // pointcut definitions
 
6557
  
 
6558
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6559
 
 
6560
 
 
6561
  
 
6562
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6563
 
 
6564
  
 
6565
  // initialize new state flag
 
6566
  
 
6567
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6568
 
 
6569
public: template<class JoinPoint> void __a0_after 
 
6570
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6571
 
 
6572
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6573
(JoinPoint *tjp)
 
6574
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6575
 {
 
6576
#line 6577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6577
 
 
6578
  JoinPoint *&thisJoinPoint = tjp;
 
6579
 
 
6580
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6581
 
 
6582
#line 6583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6583
 
 
6584
  typedef typename JoinPoint::That __JP_That;
 
6585
  typedef typename JoinPoint::Target __JP_Target;
 
6586
  typedef typename JoinPoint::Result __JP_Result;
 
6587
 
 
6588
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6589
 
 
6590
    thisJoinPoint->that ()->_once = false;
 
6591
  }
 
6592
#line 6593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6593
 
 
6594
private:
 
6595
 
 
6596
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6597
 
 
6598
  
 
6599
  // initialize new flag for all managed units 
 
6600
  
 
6601
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6602
 
 
6603
public: template<class JoinPoint> void __a1_after 
 
6604
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6605
 
 
6606
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6607
(JoinPoint *tjp)
 
6608
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6609
 {
 
6610
#line 6611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6611
 
 
6612
  typedef typename JoinPoint::That __JP_That;
 
6613
  typedef typename JoinPoint::Target __JP_Target;
 
6614
  typedef typename JoinPoint::Result __JP_Result;
 
6615
 
 
6616
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6617
 
 
6618
    // go through the whole unit hash table and reset the 
 
6619
    // `#pragma once' state of the units
 
6620
    typename __JP_That
 
6621
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6622
::UMapIter iter;
 
6623
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
6624
      (*iter).second->state ().onlyOnce (false);
 
6625
  }
 
6626
#line 6627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6627
 
 
6628
private:
 
6629
 
 
6630
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6631
 
 
6632
 
 
6633
protected:
 
6634
  // this aspect should never be instantiated directly
 
6635
  PragmaOnceUnitState () {}
 
6636
};
 
6637
#line 6638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6638
 
 
6639
namespace AC {
 
6640
  template <class JoinPoint>
 
6641
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
6642
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
 
6643
  }
 
6644
  template <class JoinPoint>
 
6645
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
6646
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
6647
  }
 
6648
 
6649
 
 
6650
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6651
 
 
6652
 
 
6653
 
 
6654
#endif /* __PragmaOnceUnitState__ */
 
6655
 
 
6656
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6657
#endif
 
6658
namespace Puma {
 
6659
 
 
6660
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6661
class UnitState {
 
6662
#line 6663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6663
  friend class ::CCExprResolve;
 
6664
  friend class ::CExprResolve;
 
6665
  friend class ::WinIfExists;
 
6666
  friend class ::WinImportHandler;
 
6667
  friend class ::WinMacros;
 
6668
  friend class ::WinAsm;
 
6669
  friend class ::WinDeclSpecs;
 
6670
  friend class ::WinMemberExplSpec;
 
6671
  friend class ::WinTypeKeywords;
 
6672
  friend class ::WinFriend;
 
6673
  friend class ::ExtAC;
 
6674
  friend class ::ExtACBuilderCoupling;
 
6675
  friend class ::ExtACSyntaxCoupling;
 
6676
  friend class ::ExtACTree;
 
6677
  friend class ::ExtACKeywords;
 
6678
  friend class ::ExtGnu;
 
6679
  friend class ::PragmaOnceUnitState;
 
6680
  friend class ::PragmaOnce;
 
6681
  friend class ::CMatchSyntax;
 
6682
 
 
6683
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6684
 
 
6685
  bool _modified;
 
6686
  bool _updated;
 
6687
  long _lastModified;
 
6688
      
 
6689
public:
 
6690
  
 
6691
#line 6692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6692
public: __attribute__((always_inline)) inline void __exec_old_C1();
 
6693
 
 
6694
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6695
UnitState ();
 
6696
      
 
6697
  bool isModified () const;
 
6698
  bool isUpdated () const;
 
6699
  long lastModified () const;
 
6700
 
 
6701
  // Is modified and has to be updated.
 
6702
  void modified ();
 
6703
  void lastModified (long);
 
6704
  void unmodified ();
 
6705
  void updated ();
 
6706
   private:
 
6707
 
 
6708
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
6709
 bool _once ;
 
6710
public :
 
6711
 
 
6712
bool onlyOnce ( ) const { return _once ; }
 
6713
void onlyOnce ( bool v ) { _once = v ; }
 
6714
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6715
 
 
6716
#line 6717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6717
 
 
6718
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
6719
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
6720
  typedef TResult Result;
 
6721
  typedef TThat   That;
 
6722
  typedef TTarget Target;
 
6723
  enum { ARGS = TArgs::ARGS };
 
6724
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
6725
  static const int JPID = 4295;
 
6726
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
6727
  struct Res {
 
6728
    typedef void Type;
 
6729
    typedef void ReferredType;
 
6730
  };
 
6731
 
 
6732
  That *_that;
 
6733
 
 
6734
  inline That *that() {return (That*)_that;}
 
6735
 
 
6736
};
 
6737
 
 
6738
 
 
6739
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6740
 
 
6741
#line 6742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6742
 
 
6743
public:
 
6744
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
 
6745
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
6746
  __TJP tjp;
 
6747
  tjp._that =  (__TJP::That*)this;
 
6748
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
6749
 
 
6750
}
 
6751
 
 
6752
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6753
};
 
6754
 
 
6755
 
 
6756
#line 6757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6757
 
 
6758
 
 
6759
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
6760
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
6761
  typedef TResult Result;
 
6762
  typedef TThat   That;
 
6763
  typedef TTarget Target;
 
6764
  enum { ARGS = TArgs::ARGS };
 
6765
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
6766
  static const int JPID = 4271;
 
6767
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
6768
  struct Res {
 
6769
    typedef void Type;
 
6770
    typedef void ReferredType;
 
6771
  };
 
6772
 
 
6773
  That *_that;
 
6774
 
 
6775
  inline That *that() {return (That*)_that;}
 
6776
 
 
6777
};
 
6778
 
 
6779
 
 
6780
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6781
inline UnitState::UnitState ()
 
6782
 
 
6783
#line 6784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6784
{
 
6785
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
6786
    __TJP tjp;
 
6787
  tjp._that =  (__TJP::That*)this;
 
6788
    this->__exec_old_C1();
 
6789
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
6790
  
 
6791
}
 
6792
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
6793
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
6794
{ _modified = false; _updated = false; _lastModified = 0; }
 
6795
 
 
6796
inline bool UnitState::isModified () const 
 
6797
 { return _modified; }
 
6798
inline bool UnitState::isUpdated () const 
 
6799
 { return _updated; }
 
6800
inline long UnitState::lastModified () const
 
6801
 { return _lastModified; }
 
6802
 
 
6803
inline void UnitState::modified () 
 
6804
 { _modified = true; _updated = false; _lastModified = 0; }
 
6805
inline void UnitState::unmodified () 
 
6806
 { _modified = false; }
 
6807
inline void UnitState::updated () 
 
6808
 { _updated = true; }
 
6809
inline void UnitState::lastModified (long when) 
 
6810
 { _lastModified = when; }
 
6811
 
 
6812
 
 
6813
} // namespace Puma
 
6814
 
 
6815
#endif /* __UnitState__ */
 
6816
 
 
6817
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
6818
namespace Puma {
 
6819
 
 
6820
 
 
6821
 
 
6822
#line 6823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6823
} // closed Puma
 
6824
class CCExprResolve;
 
6825
class CExprResolve;
 
6826
class WinIfExists;
 
6827
class WinImportHandler;
 
6828
class WinMacros;
 
6829
class WinAsm;
 
6830
class WinDeclSpecs;
 
6831
class WinMemberExplSpec;
 
6832
class WinTypeKeywords;
 
6833
class WinFriend;
 
6834
class ExtAC;
 
6835
class ExtACBuilderCoupling;
 
6836
class ExtACSyntaxCoupling;
 
6837
class ExtACTree;
 
6838
class ExtACKeywords;
 
6839
class ExtGnu;
 
6840
class PragmaOnceUnitState;
 
6841
class PragmaOnce;
 
6842
class CMatchSyntax;
 
6843
namespace Puma {
 
6844
 
 
6845
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
6846
class Unit : public List, public Printable {
 
6847
#line 6848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6848
  friend class ::CCExprResolve;
 
6849
  friend class ::CExprResolve;
 
6850
  friend class ::WinIfExists;
 
6851
  friend class ::WinImportHandler;
 
6852
  friend class ::WinMacros;
 
6853
  friend class ::WinAsm;
 
6854
  friend class ::WinDeclSpecs;
 
6855
  friend class ::WinMemberExplSpec;
 
6856
  friend class ::WinTypeKeywords;
 
6857
  friend class ::WinFriend;
 
6858
  friend class ::ExtAC;
 
6859
  friend class ::ExtACBuilderCoupling;
 
6860
  friend class ::ExtACSyntaxCoupling;
 
6861
  friend class ::ExtACTree;
 
6862
  friend class ::ExtACKeywords;
 
6863
  friend class ::ExtGnu;
 
6864
  friend class ::PragmaOnceUnitState;
 
6865
  friend class ::PragmaOnce;
 
6866
  friend class ::CMatchSyntax;
 
6867
 
 
6868
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
 
6869
 
 
6870
  char *_name;
 
6871
  UnitState _state;
 
6872
 
 
6873
public:
 
6874
  Unit () : List (), _name ((char*)0) {}
 
6875
  Unit (const List &list) : List (list), _name ((char*)0) {}
 
6876
  virtual ~Unit ();
 
6877
  virtual void name (const char *);
 
6878
  char *name () const { return _name; }
 
6879
  virtual void print (ostream &os) const;
 
6880
  virtual bool isFile () const { return false; }
 
6881
  virtual bool isMacroExp () const { return false; }
 
6882
  UnitState &state () { return _state; }
 
6883
};
 
6884
 
 
6885
 
 
6886
} // namespace Puma
 
6887
 
 
6888
#endif /* __unit_h__ */
 
6889
 
 
6890
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
6891
namespace Puma {
 
6892
 
 
6893
 
 
6894
 
 
6895
#line 6896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6896
} // closed Puma
 
6897
class CCExprResolve;
 
6898
class CExprResolve;
 
6899
class WinIfExists;
 
6900
class WinImportHandler;
 
6901
class WinMacros;
 
6902
class WinAsm;
 
6903
class WinDeclSpecs;
 
6904
class WinMemberExplSpec;
 
6905
class WinTypeKeywords;
 
6906
class WinFriend;
 
6907
class ExtAC;
 
6908
class ExtACBuilderCoupling;
 
6909
class ExtACSyntaxCoupling;
 
6910
class ExtACTree;
 
6911
class ExtACKeywords;
 
6912
class ExtGnu;
 
6913
class PragmaOnceUnitState;
 
6914
class PragmaOnce;
 
6915
class CMatchSyntax;
 
6916
namespace Puma {
 
6917
 
 
6918
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
6919
class Tokenizer {
 
6920
#line 6921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6921
  friend class ::CCExprResolve;
 
6922
  friend class ::CExprResolve;
 
6923
  friend class ::WinIfExists;
 
6924
  friend class ::WinImportHandler;
 
6925
  friend class ::WinMacros;
 
6926
  friend class ::WinAsm;
 
6927
  friend class ::WinDeclSpecs;
 
6928
  friend class ::WinMemberExplSpec;
 
6929
  friend class ::WinTypeKeywords;
 
6930
  friend class ::WinFriend;
 
6931
  friend class ::ExtAC;
 
6932
  friend class ::ExtACBuilderCoupling;
 
6933
  friend class ::ExtACSyntaxCoupling;
 
6934
  friend class ::ExtACTree;
 
6935
  friend class ::ExtACKeywords;
 
6936
  friend class ::ExtGnu;
 
6937
  friend class ::PragmaOnceUnitState;
 
6938
  friend class ::PragmaOnce;
 
6939
  friend class ::CMatchSyntax;
 
6940
 
 
6941
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
6942
 
 
6943
public:
 
6944
  virtual ~Tokenizer () {}
 
6945
  virtual void fill_unit (Source &in, Unit &unit) = 0;
 
6946
};
 
6947
 
 
6948
 
 
6949
} // namespace Puma
 
6950
 
 
6951
#endif /* __Tokenizer_h__ */
 
6952
 
 
6953
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6954
namespace Puma {
 
6955
 
 
6956
 
 
6957
class Token;
 
6958
 
 
6959
 
 
6960
#line 6961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6961
} // closed Puma
 
6962
class CCExprResolve;
 
6963
class CExprResolve;
 
6964
class WinIfExists;
 
6965
class WinImportHandler;
 
6966
class WinMacros;
 
6967
class WinAsm;
 
6968
class WinDeclSpecs;
 
6969
class WinMemberExplSpec;
 
6970
class WinTypeKeywords;
 
6971
class WinFriend;
 
6972
class ExtAC;
 
6973
class ExtACBuilderCoupling;
 
6974
class ExtACSyntaxCoupling;
 
6975
class ExtACTree;
 
6976
class ExtACKeywords;
 
6977
class ExtGnu;
 
6978
class PragmaOnceUnitState;
 
6979
class PragmaOnce;
 
6980
class CMatchSyntax;
 
6981
namespace Puma {
 
6982
 
 
6983
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
6984
class CScanner : public CRecognizer, public Tokenizer {
 
6985
#line 6986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
6986
  friend class ::CCExprResolve;
 
6987
  friend class ::CExprResolve;
 
6988
  friend class ::WinIfExists;
 
6989
  friend class ::WinImportHandler;
 
6990
  friend class ::WinMacros;
 
6991
  friend class ::WinAsm;
 
6992
  friend class ::WinDeclSpecs;
 
6993
  friend class ::WinMemberExplSpec;
 
6994
  friend class ::WinTypeKeywords;
 
6995
  friend class ::WinFriend;
 
6996
  friend class ::ExtAC;
 
6997
  friend class ::ExtACBuilderCoupling;
 
6998
  friend class ::ExtACSyntaxCoupling;
 
6999
  friend class ::ExtACTree;
 
7000
  friend class ::ExtACKeywords;
 
7001
  friend class ::ExtGnu;
 
7002
  friend class ::PragmaOnceUnitState;
 
7003
  friend class ::PragmaOnce;
 
7004
  friend class ::CMatchSyntax;
 
7005
 
 
7006
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7007
 
 
7008
  Location loc;
 
7009
  ErrorSink &err;
 
7010
 
 
7011
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
 
7012
  LanguageID map_lang (CRecognizer::Lang lang);
 
7013
  Token *scan ();
 
7014
  void scan_all (Unit &unit);
 
7015
 
 
7016
public:
 
7017
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
 
7018
  virtual ~CScanner () {}
 
7019
  void configure (const Config &);
 
7020
  
 
7021
#line 7022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7022
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
7023
 
 
7024
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7025
void fill_unit (Source &in, Unit &unit);
 
7026
  
 
7027
#line 7028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7028
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
7029
 
 
7030
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
7031
void fill_unit (const char *in, Unit &unit);
 
7032
};
 
7033
 
 
7034
 
 
7035
} // namespace Puma
 
7036
 
 
7037
#endif /* __c_scanner_h__ */
 
7038
 
 
7039
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
7040
namespace Puma {
 
7041
 
 
7042
 
 
7043
class Source;
 
7044
class CTypeInfo;
 
7045
 
 
7046
 
 
7047
#line 7048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7048
} // closed Puma
 
7049
class CCExprResolve;
 
7050
class CExprResolve;
 
7051
class WinIfExists;
 
7052
class WinImportHandler;
 
7053
class WinMacros;
 
7054
class WinAsm;
 
7055
class WinDeclSpecs;
 
7056
class WinMemberExplSpec;
 
7057
class WinTypeKeywords;
 
7058
class WinFriend;
 
7059
class ExtAC;
 
7060
class ExtACBuilderCoupling;
 
7061
class ExtACSyntaxCoupling;
 
7062
class ExtACTree;
 
7063
class ExtACKeywords;
 
7064
class ExtGnu;
 
7065
class PragmaOnceUnitState;
 
7066
class PragmaOnce;
 
7067
class CMatchSyntax;
 
7068
namespace Puma {
 
7069
 
 
7070
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
7071
class CProject : public Project {
 
7072
#line 7073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7073
  friend class ::CCExprResolve;
 
7074
  friend class ::CExprResolve;
 
7075
  friend class ::WinIfExists;
 
7076
  friend class ::WinImportHandler;
 
7077
  friend class ::WinMacros;
 
7078
  friend class ::WinAsm;
 
7079
  friend class ::WinDeclSpecs;
 
7080
  friend class ::WinMemberExplSpec;
 
7081
  friend class ::WinTypeKeywords;
 
7082
  friend class ::WinFriend;
 
7083
  friend class ::ExtAC;
 
7084
  friend class ::ExtACBuilderCoupling;
 
7085
  friend class ::ExtACSyntaxCoupling;
 
7086
  friend class ::ExtACTree;
 
7087
  friend class ::ExtACKeywords;
 
7088
  friend class ::ExtGnu;
 
7089
  friend class ::PragmaOnceUnitState;
 
7090
  friend class ::PragmaOnce;
 
7091
  friend class ::CMatchSyntax;
 
7092
 
 
7093
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
7094
 
 
7095
  Config _config;
 
7096
  CScanner _scanner;
 
7097
 
 
7098
public:
 
7099
  CProject (ErrorStream &e);
 
7100
 
 
7101
  // Constructor: Add some source directories.
 
7102
  CProject (ErrorStream &, const char *defs, 
 
7103
               const char *decls = (const char*)0); 
 
7104
 
 
7105
  // Constructor: Setup preprocessor configuration according to
 
7106
  // command line parameter and the global config file and
 
7107
  // add some source directories.
 
7108
  CProject (ErrorStream &, int &argc, char **&argv, 
 
7109
            const char *defs = (const char*)0, 
 
7110
            const char *decls = (const char*)0);
 
7111
 
 
7112
public: // Project configuration 
 
7113
  // Get the preprocessor configuration.
 
7114
  Config &config ();
 
7115
 
 
7116
  // Configure the project from the command line or a file.
 
7117
  virtual void configure (Config &);
 
7118
 
 
7119
  // Add a new file to the project.
 
7120
  Unit *addFile (Filename file);
 
7121
 
 
7122
public: // Scanner interface
 
7123
  // Get the scanner.
 
7124
  CScanner &scanner ();
 
7125
 
 
7126
  // Scan the file `file' or the source if given. When
 
7127
  // scanning a source the resulting unit gets the name `file'.
 
7128
  
 
7129
#line 7130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7130
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
7131
 
 
7132
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
7133
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
7134
                          bool isFile = true);
 
7135
        
 
7136
  // Scan a string. The resulting unit gets the name `name'.
 
7137
  // (and will not be registered at the unit manager!)
 
7138
  virtual Unit *scanString (const char *str, 
 
7139
                            const char *name = (const char*)0);
 
7140
 
 
7141
public: // Miscellaneous Functions
 
7142
 
 
7143
  // Give the filename needed to include a particular header file
 
7144
  Filename getInclString (Filename filename);
 
7145
 
 
7146
private:
 
7147
  // Map the type string from --size-type and --ptrdiff-type
 
7148
  // to real Puma type.
 
7149
  CTypeInfo *mapType (const char *) const;
 
7150
};
 
7151
 
 
7152
inline Config &CProject::config () 
 
7153
 { return _config; }
 
7154
inline CScanner &CProject::scanner () 
 
7155
 { return _scanner; }
 
7156
 
 
7157
 
 
7158
} // namespace Puma
 
7159
 
 
7160
#endif /* __CProject_h__ */
 
7161
 
 
7162
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
7163
using namespace std;
 
7164
 
 
7165
namespace Puma {
 
7166
 
 
7167
 
 
7168
class CObjectInfo;
 
7169
class CClassInfo;
 
7170
class CUnionInfo;
 
7171
class CEnumInfo;
 
7172
class CTypedefInfo;
 
7173
class CTemplateParamInfo;
 
7174
class CTypeInfo;
 
7175
class CFileInfo;
 
7176
class Token;
 
7177
 
 
7178
/** \file 
 
7179
 *  Database of all semantic objects (infos) of a project. 
 
7180
 *  \see Puma::CClassDatabase */
 
7181
 
 
7182
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
 
7183
 *  A CClassDatabase object is a database of all semantic objects
 
7184
 *  (infos) of a project. */
 
7185
 
 
7186
#line 7187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7187
} // closed Puma
 
7188
class CCExprResolve;
 
7189
class CExprResolve;
 
7190
class WinIfExists;
 
7191
class WinImportHandler;
 
7192
class WinMacros;
 
7193
class WinAsm;
 
7194
class WinDeclSpecs;
 
7195
class WinMemberExplSpec;
 
7196
class WinTypeKeywords;
 
7197
class WinFriend;
 
7198
class ExtAC;
 
7199
class ExtACBuilderCoupling;
 
7200
class ExtACSyntaxCoupling;
 
7201
class ExtACTree;
 
7202
class ExtACKeywords;
 
7203
class ExtGnu;
 
7204
class PragmaOnceUnitState;
 
7205
class PragmaOnce;
 
7206
class CMatchSyntax;
 
7207
namespace Puma {
 
7208
 
 
7209
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
7210
 
 
7211
#line 7212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7212
} // closed Puma
 
7213
 
 
7214
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
7215
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
7216
 
 
7217
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
7218
// This file is part of PUMA.
 
7219
// Copyright (C) 1999-2003  The PUMA developer team.
 
7220
//                                                                
 
7221
// This program is free software;  you can redistribute it and/or 
 
7222
// modify it under the terms of the GNU General Public License as 
 
7223
// published by the Free Software Foundation; either version 2 of 
 
7224
// the License, or (at your option) any later version.            
 
7225
//                                                                
 
7226
// This program is distributed in the hope that it will be useful,
 
7227
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7228
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7229
// GNU General Public License for more details.                   
 
7230
//                                                                
 
7231
// You should have received a copy of the GNU General Public      
 
7232
// License along with this program; if not, write to the Free     
 
7233
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7234
// MA  02111-1307  USA                                            
 
7235
 
 
7236
#ifndef __ext_ac_ah__
 
7237
#define __ext_ac_ah__
 
7238
 
 
7239
#include <string.h>
 
7240
 
 
7241
 
 
7242
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
7243
// This file is part of PUMA.
 
7244
// Copyright (C) 1999-2003  The PUMA developer team.
 
7245
//                                                                
 
7246
// This program is free software;  you can redistribute it and/or 
 
7247
// modify it under the terms of the GNU General Public License as 
 
7248
// published by the Free Software Foundation; either version 2 of 
 
7249
// the License, or (at your option) any later version.            
 
7250
//                                                                
 
7251
// This program is distributed in the hope that it will be useful,
 
7252
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7253
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7254
// GNU General Public License for more details.                   
 
7255
//                                                                
 
7256
// You should have received a copy of the GNU General Public      
 
7257
// License along with this program; if not, write to the Free     
 
7258
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7259
// MA  02111-1307  USA                                            
 
7260
 
 
7261
#ifndef __ACTree_h__
 
7262
#define __ACTree_h__
 
7263
 
 
7264
 
 
7265
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7266
 
 
7267
#line 7268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7268
 
 
7269
#ifndef __ac_fwd_ExtACTree__
 
7270
#define __ac_fwd_ExtACTree__
 
7271
class ExtACTree;
 
7272
namespace AC {
 
7273
  template <class JoinPoint>
 
7274
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
7275
  template <class JoinPoint>
 
7276
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
7277
}
 
7278
#endif
 
7279
 
 
7280
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
7281
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
7282
#endif
 
7283
 
 
7284
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7285
// This file is part of PUMA.
 
7286
// Copyright (C) 1999-2003  The PUMA developer team.
 
7287
//                                                                
 
7288
// This program is free software;  you can redistribute it and/or 
 
7289
// modify it under the terms of the GNU General Public License as 
 
7290
// published by the Free Software Foundation; either version 2 of 
 
7291
// the License, or (at your option) any later version.            
 
7292
//                                                                
 
7293
// This program is distributed in the hope that it will be useful,
 
7294
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
7295
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
7296
// GNU General Public License for more details.                   
 
7297
//                                                                
 
7298
// You should have received a copy of the GNU General Public      
 
7299
// License along with this program; if not, write to the Free     
 
7300
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
7301
// MA  02111-1307  USA                                            
 
7302
 
 
7303
#ifndef __CTree_h__
 
7304
#define __CTree_h__
 
7305
 
 
7306
namespace Puma {
 
7307
 
 
7308
 
 
7309
// Syntax tree node hierarchy:
 
7310
class CTree;
 
7311
class   CT_Statement;          
 
7312
class     CT_LabelStmt;
 
7313
class     CT_IfStmt;
 
7314
class     CT_IfElseStmt;
 
7315
class     CT_SwitchStmt;
 
7316
class     CT_BreakStmt;
 
7317
class     CT_ExprStmt;
 
7318
class     CT_WhileStmt;
 
7319
class     CT_DoStmt;
 
7320
class     CT_ForStmt;
 
7321
class     CT_ContinueStmt;
 
7322
class     CT_ReturnStmt;
 
7323
class     CT_GotoStmt;
 
7324
class     CT_DeclStmt;
 
7325
class     CT_CaseStmt;
 
7326
class     CT_DefaultStmt;
 
7327
class     CT_TryStmt;
 
7328
class   CT_Expression;
 
7329
class     CT_Call;
 
7330
class       CT_CallExpr;
 
7331
class       CT_ImplicitCall;
 
7332
class     CT_ThrowExpr;
 
7333
class     CT_NewExpr;
 
7334
class     CT_DeleteExpr;
 
7335
class     CT_ConstructExpr;
 
7336
class     CT_Integer;
 
7337
class     CT_Character;
 
7338
class       CT_WideCharacter;
 
7339
class     CT_Float;
 
7340
class     CT_Bool;
 
7341
class     CT_BracedExpr;
 
7342
class     CT_BinaryExpr;
 
7343
class       CT_MembPtrExpr;
 
7344
class         CT_MembRefExpr;
 
7345
class     CT_UnaryExpr;
 
7346
class       CT_PostfixExpr;
 
7347
class       CT_AddrExpr;
 
7348
class       CT_DerefExpr;
 
7349
class     CT_IfThenExpr;
 
7350
class     CT_CmpdLiteral;
 
7351
class     CT_IndexExpr;
 
7352
class     CT_CastExpr;
 
7353
class     CT_StaticCast;
 
7354
class       CT_ConstCast;
 
7355
class       CT_ReintCast;
 
7356
class       CT_DynamicCast;
 
7357
class     CT_TypeidExpr;
 
7358
class     CT_SizeofExpr;
 
7359
class     CT_MembDesignator;
 
7360
class     CT_IndexDesignator;
 
7361
class     CT_ImplicitCast;
 
7362
class   CT_DeclSpec;
 
7363
class     CT_PrimDeclSpec;
 
7364
class     CT_NamedType;
 
7365
class     CT_ClassSpec;
 
7366
class       CT_UnionSpec;
 
7367
class       CT_EnumSpec;
 
7368
class     CT_ExceptionSpec;
 
7369
class   CT_Declarator;
 
7370
class     CT_InitDeclarator;
 
7371
class     CT_BracedDeclarator;
 
7372
class     CT_ArrayDeclarator;
 
7373
class     CT_FctDeclarator;
 
7374
class     CT_RefDeclarator;
 
7375
class     CT_PtrDeclarator;
 
7376
class     CT_MembPtrDeclarator;
 
7377
class     CT_BitFieldDeclarator;
 
7378
class   CT_Decl;
 
7379
class     CT_ObjDecl;
 
7380
class     CT_ArgDecl;
 
7381
class     CT_AccessDecl;
 
7382
class       CT_UsingDecl;
 
7383
class     CT_FctDef;
 
7384
class     CT_AsmDef;
 
7385
class     CT_EnumDef;
 
7386
class     CT_ClassDef;
 
7387
class       CT_UnionDef;
 
7388
class     CT_Enumerator;
 
7389
class     CT_LinkageSpec;
 
7390
class     CT_Handler;
 
7391
class     CT_TemplateDecl;
 
7392
class     CT_TemplateParamDecl;
 
7393
class       CT_TypeParamDecl;
 
7394
class       CT_NonTypeParamDecl;
 
7395
class     CT_NamespaceDef;
 
7396
class     CT_NamespaceAliasDef;
 
7397
class     CT_UsingDirective;
 
7398
class     CT_Condition;
 
7399
class   CT_List;
 
7400
class     CT_CmpdStmt;
 
7401
class     CT_DeclSpecSeq;
 
7402
class     CT_HandlerSeq;
 
7403
class     CT_DesignatorSeq;
 
7404
class     CT_DeclList;
 
7405
class       CT_Program;
 
7406
class       CT_ArgDeclList;
 
7407
class         CT_ArgNameList;
 
7408
class       CT_ArgDeclSeq;
 
7409
class       CT_MembList;
 
7410
class     CT_ExprList;
 
7411
class     CT_DeclaratorList;
 
7412
class     CT_BaseSpecList;
 
7413
class     CT_MembInitList;
 
7414
class     CT_SimpleName;
 
7415
class       CT_SpecialName;
 
7416
class         CT_PrivateName;
 
7417
class         CT_OperatorName;
 
7418
class         CT_DestructorName;
 
7419
class         CT_ConversionName;
 
7420
class         CT_TemplateName;
 
7421
class       CT_QualName;
 
7422
class         CT_RootQualName;
 
7423
class     CT_String;
 
7424
class       CT_WideString;
 
7425
class     CT_TemplateParamList;
 
7426
class     CT_TemplateArgList;
 
7427
class   CT_Token;
 
7428
class   CT_Error;
 
7429
class   CT_BaseSpec;
 
7430
class   CT_AccessSpec;
 
7431
class   CT_ArrayDelimiter;
 
7432
class   CT_Any;
 
7433
class   CT_AnyList;
 
7434
class   CT_AnyExtension;
 
7435
class   CT_AnyCondition;
 
7436
 
 
7437
 
 
7438
} // namespace Puma
 
7439
 
 
7440
 
 
7441
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
903
7442
// This file is part of PUMA.
904
7443
// Copyright (C) 1999-2003  The PUMA developer team.
905
7444
//                                                                
927
7466
class CObjectInfo;
928
7467
 
929
7468
 
930
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7469
#line 7470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
931
7470
} // closed Puma
 
7471
class CCExprResolve;
 
7472
class CExprResolve;
932
7473
class WinIfExists;
933
7474
class WinImportHandler;
934
7475
class WinMacros;
935
 
class CMatchSyntax;
936
 
class ExtGnu;
 
7476
class WinAsm;
 
7477
class WinDeclSpecs;
 
7478
class WinMemberExplSpec;
 
7479
class WinTypeKeywords;
 
7480
class WinFriend;
937
7481
class ExtAC;
938
7482
class ExtACBuilderCoupling;
939
7483
class ExtACSyntaxCoupling;
940
7484
class ExtACTree;
941
7485
class ExtACKeywords;
942
 
class WinAsm;
943
 
class WinDeclSpecs;
944
 
class WinMemberExplSpec;
945
 
class WinTypeKeywords;
 
7486
class ExtGnu;
946
7487
class PragmaOnceUnitState;
947
7488
class PragmaOnce;
948
 
class CCExprResolve;
949
 
class CExprResolve;
 
7489
class CMatchSyntax;
950
7490
namespace Puma {
951
7491
 
952
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
7492
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
953
7493
class CSemObject {
954
 
#line 955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7494
#line 7495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7495
  friend class ::CCExprResolve;
 
7496
  friend class ::CExprResolve;
955
7497
  friend class ::WinIfExists;
956
7498
  friend class ::WinImportHandler;
957
7499
  friend class ::WinMacros;
958
 
  friend class ::CMatchSyntax;
959
 
  friend class ::ExtGnu;
 
7500
  friend class ::WinAsm;
 
7501
  friend class ::WinDeclSpecs;
 
7502
  friend class ::WinMemberExplSpec;
 
7503
  friend class ::WinTypeKeywords;
 
7504
  friend class ::WinFriend;
960
7505
  friend class ::ExtAC;
961
7506
  friend class ::ExtACBuilderCoupling;
962
7507
  friend class ::ExtACSyntaxCoupling;
963
7508
  friend class ::ExtACTree;
964
7509
  friend class ::ExtACKeywords;
965
 
  friend class ::WinAsm;
966
 
  friend class ::WinDeclSpecs;
967
 
  friend class ::WinMemberExplSpec;
968
 
  friend class ::WinTypeKeywords;
 
7510
  friend class ::ExtGnu;
969
7511
  friend class ::PragmaOnceUnitState;
970
7512
  friend class ::PragmaOnce;
971
 
  friend class ::CCExprResolve;
972
 
  friend class ::CExprResolve;
 
7513
  friend class ::CMatchSyntax;
973
7514
 
974
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
7515
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
975
7516
 
976
7517
  CObjectInfo *_obj;
977
7518
 
986
7527
 
987
7528
#endif /* __CSemObject_h__ */
988
7529
 
989
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
7530
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
990
7531
// This file is part of PUMA.
991
7532
// Copyright (C) 1999-2003  The PUMA developer team.
992
7533
//                                                                
1014
7555
class CStructure;
1015
7556
 
1016
7557
 
1017
 
#line 1018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7558
#line 7559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1018
7559
} // closed Puma
 
7560
class CCExprResolve;
 
7561
class CExprResolve;
1019
7562
class WinIfExists;
1020
7563
class WinImportHandler;
1021
7564
class WinMacros;
1022
 
class CMatchSyntax;
1023
 
class ExtGnu;
 
7565
class WinAsm;
 
7566
class WinDeclSpecs;
 
7567
class WinMemberExplSpec;
 
7568
class WinTypeKeywords;
 
7569
class WinFriend;
1024
7570
class ExtAC;
1025
7571
class ExtACBuilderCoupling;
1026
7572
class ExtACSyntaxCoupling;
1027
7573
class ExtACTree;
1028
7574
class ExtACKeywords;
1029
 
class WinAsm;
1030
 
class WinDeclSpecs;
1031
 
class WinMemberExplSpec;
1032
 
class WinTypeKeywords;
 
7575
class ExtGnu;
1033
7576
class PragmaOnceUnitState;
1034
7577
class PragmaOnce;
1035
 
class CCExprResolve;
1036
 
class CExprResolve;
 
7578
class CMatchSyntax;
1037
7579
namespace Puma {
1038
7580
 
1039
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
7581
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
1040
7582
class CSemScope {
1041
 
#line 1042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7583
#line 7584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7584
  friend class ::CCExprResolve;
 
7585
  friend class ::CExprResolve;
1042
7586
  friend class ::WinIfExists;
1043
7587
  friend class ::WinImportHandler;
1044
7588
  friend class ::WinMacros;
1045
 
  friend class ::CMatchSyntax;
1046
 
  friend class ::ExtGnu;
 
7589
  friend class ::WinAsm;
 
7590
  friend class ::WinDeclSpecs;
 
7591
  friend class ::WinMemberExplSpec;
 
7592
  friend class ::WinTypeKeywords;
 
7593
  friend class ::WinFriend;
1047
7594
  friend class ::ExtAC;
1048
7595
  friend class ::ExtACBuilderCoupling;
1049
7596
  friend class ::ExtACSyntaxCoupling;
1050
7597
  friend class ::ExtACTree;
1051
7598
  friend class ::ExtACKeywords;
1052
 
  friend class ::WinAsm;
1053
 
  friend class ::WinDeclSpecs;
1054
 
  friend class ::WinMemberExplSpec;
1055
 
  friend class ::WinTypeKeywords;
 
7599
  friend class ::ExtGnu;
1056
7600
  friend class ::PragmaOnceUnitState;
1057
7601
  friend class ::PragmaOnce;
1058
 
  friend class ::CCExprResolve;
1059
 
  friend class ::CExprResolve;
 
7602
  friend class ::CMatchSyntax;
1060
7603
 
1061
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
7604
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
1062
7605
 
1063
7606
  CStructure *_scope;
1064
7607
 
1073
7616
 
1074
7617
#endif /* __CSemScope_h__ */
1075
7618
 
1076
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
7619
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
1077
7620
// This file is part of PUMA.
1078
7621
// Copyright (C) 1999-2003  The PUMA developer team.
1079
7622
//                                                                
1096
7639
#define __CSemValue_h__
1097
7640
 
1098
7641
 
1099
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
7642
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1100
7643
// This file is part of PUMA.
1101
7644
// Copyright (C) 1999-2003  The PUMA developer team.
1102
7645
//                                                                
1118
7661
#ifndef __CExprValue_h__
1119
7662
#define __CExprValue_h__
1120
7663
 
1121
 
#include <ostream>
 
7664
 
 
7665
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1122
7666
using std::ostream;
1123
7667
 
1124
7668
namespace Puma {
1130
7674
class CWStrLiteral;
1131
7675
 
1132
7676
 
1133
 
#line 1134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7677
#line 7678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1134
7678
} // closed Puma
 
7679
class CCExprResolve;
 
7680
class CExprResolve;
1135
7681
class WinIfExists;
1136
7682
class WinImportHandler;
1137
7683
class WinMacros;
1138
 
class CMatchSyntax;
1139
 
class ExtGnu;
 
7684
class WinAsm;
 
7685
class WinDeclSpecs;
 
7686
class WinMemberExplSpec;
 
7687
class WinTypeKeywords;
 
7688
class WinFriend;
1140
7689
class ExtAC;
1141
7690
class ExtACBuilderCoupling;
1142
7691
class ExtACSyntaxCoupling;
1143
7692
class ExtACTree;
1144
7693
class ExtACKeywords;
1145
 
class WinAsm;
1146
 
class WinDeclSpecs;
1147
 
class WinMemberExplSpec;
1148
 
class WinTypeKeywords;
 
7694
class ExtGnu;
1149
7695
class PragmaOnceUnitState;
1150
7696
class PragmaOnce;
1151
 
class CCExprResolve;
1152
 
class CExprResolve;
 
7697
class CMatchSyntax;
1153
7698
namespace Puma {
1154
7699
 
1155
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
7700
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1156
7701
class CExprValue {
1157
 
#line 1158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7702
#line 7703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7703
  friend class ::CCExprResolve;
 
7704
  friend class ::CExprResolve;
1158
7705
  friend class ::WinIfExists;
1159
7706
  friend class ::WinImportHandler;
1160
7707
  friend class ::WinMacros;
1161
 
  friend class ::CMatchSyntax;
1162
 
  friend class ::ExtGnu;
 
7708
  friend class ::WinAsm;
 
7709
  friend class ::WinDeclSpecs;
 
7710
  friend class ::WinMemberExplSpec;
 
7711
  friend class ::WinTypeKeywords;
 
7712
  friend class ::WinFriend;
1163
7713
  friend class ::ExtAC;
1164
7714
  friend class ::ExtACBuilderCoupling;
1165
7715
  friend class ::ExtACSyntaxCoupling;
1166
7716
  friend class ::ExtACTree;
1167
7717
  friend class ::ExtACKeywords;
1168
 
  friend class ::WinAsm;
1169
 
  friend class ::WinDeclSpecs;
1170
 
  friend class ::WinMemberExplSpec;
1171
 
  friend class ::WinTypeKeywords;
 
7718
  friend class ::ExtGnu;
1172
7719
  friend class ::PragmaOnceUnitState;
1173
7720
  friend class ::PragmaOnce;
1174
 
  friend class ::CCExprResolve;
1175
 
  friend class ::CExprResolve;
 
7721
  friend class ::CMatchSyntax;
1176
7722
 
1177
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
7723
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
1178
7724
 
1179
7725
  CTypeInfo *_type;
1180
7726
  
1201
7747
 
1202
7748
#endif /* __CExprValue_h__ */
1203
7749
 
1204
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
7750
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1205
7751
// This file is part of PUMA.
1206
7752
// Copyright (C) 1999-2003  The PUMA developer team.
1207
7753
//                                                                
1224
7770
#define __CTypeInfo_h__
1225
7771
 
1226
7772
 
1227
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1228
 
// This file is part of PUMA.
1229
 
// Copyright (C) 1999-2003  The PUMA developer team.
1230
 
//                                                                
1231
 
// This program is free software;  you can redistribute it and/or 
1232
 
// modify it under the terms of the GNU General Public License as 
1233
 
// published by the Free Software Foundation; either version 2 of 
1234
 
// the License, or (at your option) any later version.            
1235
 
//                                                                
1236
 
// This program is distributed in the hope that it will be useful,
1237
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1238
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1239
 
// GNU General Public License for more details.                   
1240
 
//                                                                
1241
 
// You should have received a copy of the GNU General Public      
1242
 
// License along with this program; if not, write to the Free     
1243
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1244
 
// MA  02111-1307  USA                                            
1245
 
 
1246
 
#ifndef __printable_h__
1247
 
#define __printable_h__
1248
 
 
1249
 
#include <iostream>
1250
 
using namespace std;
1251
 
 
1252
 
namespace Puma {
1253
 
 
1254
 
 
1255
 
 
1256
 
#line 1257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
1257
 
} // closed Puma
1258
 
class WinIfExists;
1259
 
class WinImportHandler;
1260
 
class WinMacros;
1261
 
class CMatchSyntax;
1262
 
class ExtGnu;
1263
 
class ExtAC;
1264
 
class ExtACBuilderCoupling;
1265
 
class ExtACSyntaxCoupling;
1266
 
class ExtACTree;
1267
 
class ExtACKeywords;
1268
 
class WinAsm;
1269
 
class WinDeclSpecs;
1270
 
class WinMemberExplSpec;
1271
 
class WinTypeKeywords;
1272
 
class PragmaOnceUnitState;
1273
 
class PragmaOnce;
1274
 
class CCExprResolve;
1275
 
class CExprResolve;
1276
 
namespace Puma {
1277
 
 
1278
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1279
 
class Printable {
1280
 
#line 1281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
1281
 
  friend class ::WinIfExists;
1282
 
  friend class ::WinImportHandler;
1283
 
  friend class ::WinMacros;
1284
 
  friend class ::CMatchSyntax;
1285
 
  friend class ::ExtGnu;
1286
 
  friend class ::ExtAC;
1287
 
  friend class ::ExtACBuilderCoupling;
1288
 
  friend class ::ExtACSyntaxCoupling;
1289
 
  friend class ::ExtACTree;
1290
 
  friend class ::ExtACKeywords;
1291
 
  friend class ::WinAsm;
1292
 
  friend class ::WinDeclSpecs;
1293
 
  friend class ::WinMemberExplSpec;
1294
 
  friend class ::WinTypeKeywords;
1295
 
  friend class ::PragmaOnceUnitState;
1296
 
  friend class ::PragmaOnce;
1297
 
  friend class ::CCExprResolve;
1298
 
  friend class ::CExprResolve;
1299
 
 
1300
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
1301
 
 
1302
 
public:
1303
 
  virtual ~Printable () {}
1304
 
  virtual void print (ostream &os) const = 0;
1305
 
};
1306
 
 
1307
 
 
1308
 
inline ostream &operator << (ostream &os, const Printable &object) {
1309
 
  object.print (os);
1310
 
  return os;
1311
 
}
1312
 
 
1313
 
 
1314
 
} // namespace Puma
1315
 
 
1316
 
#endif /* __printable_h__ */
1317
 
 
1318
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
7773
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1319
7774
namespace Puma {
1320
7775
 
1321
7776
 
1343
7798
class CT_ExprList;
1344
7799
class CObjectInfo;
1345
7800
class CScopeInfo;
 
7801
class CTemplateParamInfo;
1346
7802
//class ostream;
1347
7803
 
1348
7804
 
1349
 
#line 1350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7805
#line 7806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1350
7806
} // closed Puma
 
7807
class CCExprResolve;
 
7808
class CExprResolve;
1351
7809
class WinIfExists;
1352
7810
class WinImportHandler;
1353
7811
class WinMacros;
1354
 
class CMatchSyntax;
1355
 
class ExtGnu;
 
7812
class WinAsm;
 
7813
class WinDeclSpecs;
 
7814
class WinMemberExplSpec;
 
7815
class WinTypeKeywords;
 
7816
class WinFriend;
1356
7817
class ExtAC;
1357
7818
class ExtACBuilderCoupling;
1358
7819
class ExtACSyntaxCoupling;
1359
7820
class ExtACTree;
1360
7821
class ExtACKeywords;
1361
 
class WinAsm;
1362
 
class WinDeclSpecs;
1363
 
class WinMemberExplSpec;
1364
 
class WinTypeKeywords;
 
7822
class ExtGnu;
1365
7823
class PragmaOnceUnitState;
1366
7824
class PragmaOnce;
1367
 
class CCExprResolve;
1368
 
class CExprResolve;
 
7825
class CMatchSyntax;
1369
7826
namespace Puma {
1370
7827
 
1371
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
7828
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1372
7829
class CTypeInfo : public Printable {
1373
 
#line 1374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
7830
#line 7831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
7831
  friend class ::CCExprResolve;
 
7832
  friend class ::CExprResolve;
1374
7833
  friend class ::WinIfExists;
1375
7834
  friend class ::WinImportHandler;
1376
7835
  friend class ::WinMacros;
1377
 
  friend class ::CMatchSyntax;
1378
 
  friend class ::ExtGnu;
 
7836
  friend class ::WinAsm;
 
7837
  friend class ::WinDeclSpecs;
 
7838
  friend class ::WinMemberExplSpec;
 
7839
  friend class ::WinTypeKeywords;
 
7840
  friend class ::WinFriend;
1379
7841
  friend class ::ExtAC;
1380
7842
  friend class ::ExtACBuilderCoupling;
1381
7843
  friend class ::ExtACSyntaxCoupling;
1382
7844
  friend class ::ExtACTree;
1383
7845
  friend class ::ExtACKeywords;
1384
 
  friend class ::WinAsm;
1385
 
  friend class ::WinDeclSpecs;
1386
 
  friend class ::WinMemberExplSpec;
1387
 
  friend class ::WinTypeKeywords;
 
7846
  friend class ::ExtGnu;
1388
7847
  friend class ::PragmaOnceUnitState;
1389
7848
  friend class ::PragmaOnce;
1390
 
  friend class ::CCExprResolve;
1391
 
  friend class ::CExprResolve;
 
7849
  friend class ::CMatchSyntax;
1392
7850
 
1393
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
7851
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
1394
7852
 
1395
7853
  // needed for type printing
1396
7854
  enum PrintState {
1398
7856
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
1399
7857
    PRINT_ABS = 2,  // printing absolute names
1400
7858
    PRINT_TPL = 4,  // printing template argument list
1401
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
7859
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
7860
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
1402
7861
  };
1403
7862
 
1404
7863
public:
1459
7918
  bool operator !=(const CTypeInfo &) const;
1460
7919
  
1461
7920
  void print (ostream& os) const;
1462
 
  void TypeText (ostream &, const char * = (const char*)0,
1463
 
                 bool abs = false, bool tdef = false) const;
 
7921
  void TypeText (ostream &, const char *name = (const char*)0,
 
7922
                 bool abs = false, bool tdef = false, 
 
7923
                 bool elaborated_type_spec = false) const;
1464
7924
  long int Dimension () const;
1465
7925
  
1466
7926
  long int Size () const;
1592
8052
  void Mangled (ostream &) const;
1593
8053
 
1594
8054
private:
 
8055
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
1595
8056
  void TypeText (char, ostream &, const char * = (const char*)0) const;
1596
8057
  void printName (char, ostream &, CObjectInfo *) const;
1597
8058
  void printScope (char, ostream &, CObjectInfo *) const;
1603
8064
 
1604
8065
 
1605
8066
 
1606
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8067
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1607
8068
// This file is part of PUMA.
1608
8069
// Copyright (C) 1999-2003  The PUMA developer team.
1609
8070
//                                                                
1634
8095
 
1635
8096
 
1636
8097
 
1637
 
#line 1638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8098
#line 8099 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1638
8099
} // closed Puma
 
8100
class CCExprResolve;
 
8101
class CExprResolve;
1639
8102
class WinIfExists;
1640
8103
class WinImportHandler;
1641
8104
class WinMacros;
1642
 
class CMatchSyntax;
1643
 
class ExtGnu;
 
8105
class WinAsm;
 
8106
class WinDeclSpecs;
 
8107
class WinMemberExplSpec;
 
8108
class WinTypeKeywords;
 
8109
class WinFriend;
1644
8110
class ExtAC;
1645
8111
class ExtACBuilderCoupling;
1646
8112
class ExtACSyntaxCoupling;
1647
8113
class ExtACTree;
1648
8114
class ExtACKeywords;
1649
 
class WinAsm;
1650
 
class WinDeclSpecs;
1651
 
class WinMemberExplSpec;
1652
 
class WinTypeKeywords;
 
8115
class ExtGnu;
1653
8116
class PragmaOnceUnitState;
1654
8117
class PragmaOnce;
1655
 
class CCExprResolve;
1656
 
class CExprResolve;
 
8118
class CMatchSyntax;
1657
8119
namespace Puma {
1658
8120
 
1659
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8121
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1660
8122
class CTypePrimitive : public CTypeInfo {
1661
 
#line 1662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8123
#line 8124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8124
  friend class ::CCExprResolve;
 
8125
  friend class ::CExprResolve;
1662
8126
  friend class ::WinIfExists;
1663
8127
  friend class ::WinImportHandler;
1664
8128
  friend class ::WinMacros;
1665
 
  friend class ::CMatchSyntax;
1666
 
  friend class ::ExtGnu;
 
8129
  friend class ::WinAsm;
 
8130
  friend class ::WinDeclSpecs;
 
8131
  friend class ::WinMemberExplSpec;
 
8132
  friend class ::WinTypeKeywords;
 
8133
  friend class ::WinFriend;
1667
8134
  friend class ::ExtAC;
1668
8135
  friend class ::ExtACBuilderCoupling;
1669
8136
  friend class ::ExtACSyntaxCoupling;
1670
8137
  friend class ::ExtACTree;
1671
8138
  friend class ::ExtACKeywords;
1672
 
  friend class ::WinAsm;
1673
 
  friend class ::WinDeclSpecs;
1674
 
  friend class ::WinMemberExplSpec;
1675
 
  friend class ::WinTypeKeywords;
 
8139
  friend class ::ExtGnu;
1676
8140
  friend class ::PragmaOnceUnitState;
1677
8141
  friend class ::PragmaOnce;
1678
 
  friend class ::CCExprResolve;
1679
 
  friend class ::CExprResolve;
 
8142
  friend class ::CMatchSyntax;
1680
8143
 
1681
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
8144
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
1682
8145
 
1683
8146
  const char *_Text;
1684
8147
 
1727
8190
 
1728
8191
#endif /* __CTypePrimitive_h__ */
1729
8192
 
1730
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
8193
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1731
8194
// This file is part of PUMA.
1732
8195
// Copyright (C) 1999-2003  The PUMA developer team.
1733
8196
//                                                                
1758
8221
 
1759
8222
 
1760
8223
 
1761
 
#line 1762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8224
#line 8225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1762
8225
} // closed Puma
 
8226
class CCExprResolve;
 
8227
class CExprResolve;
1763
8228
class WinIfExists;
1764
8229
class WinImportHandler;
1765
8230
class WinMacros;
1766
 
class CMatchSyntax;
1767
 
class ExtGnu;
 
8231
class WinAsm;
 
8232
class WinDeclSpecs;
 
8233
class WinMemberExplSpec;
 
8234
class WinTypeKeywords;
 
8235
class WinFriend;
1768
8236
class ExtAC;
1769
8237
class ExtACBuilderCoupling;
1770
8238
class ExtACSyntaxCoupling;
1771
8239
class ExtACTree;
1772
8240
class ExtACKeywords;
1773
 
class WinAsm;
1774
 
class WinDeclSpecs;
1775
 
class WinMemberExplSpec;
1776
 
class WinTypeKeywords;
 
8241
class ExtGnu;
1777
8242
class PragmaOnceUnitState;
1778
8243
class PragmaOnce;
1779
 
class CCExprResolve;
1780
 
class CExprResolve;
 
8244
class CMatchSyntax;
1781
8245
namespace Puma {
1782
8246
 
1783
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
8247
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1784
8248
class CTypeQualified : public CTypeInfo {
1785
 
#line 1786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8249
#line 8250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8250
  friend class ::CCExprResolve;
 
8251
  friend class ::CExprResolve;
1786
8252
  friend class ::WinIfExists;
1787
8253
  friend class ::WinImportHandler;
1788
8254
  friend class ::WinMacros;
1789
 
  friend class ::CMatchSyntax;
1790
 
  friend class ::ExtGnu;
 
8255
  friend class ::WinAsm;
 
8256
  friend class ::WinDeclSpecs;
 
8257
  friend class ::WinMemberExplSpec;
 
8258
  friend class ::WinTypeKeywords;
 
8259
  friend class ::WinFriend;
1791
8260
  friend class ::ExtAC;
1792
8261
  friend class ::ExtACBuilderCoupling;
1793
8262
  friend class ::ExtACSyntaxCoupling;
1794
8263
  friend class ::ExtACTree;
1795
8264
  friend class ::ExtACKeywords;
1796
 
  friend class ::WinAsm;
1797
 
  friend class ::WinDeclSpecs;
1798
 
  friend class ::WinMemberExplSpec;
1799
 
  friend class ::WinTypeKeywords;
 
8265
  friend class ::ExtGnu;
1800
8266
  friend class ::PragmaOnceUnitState;
1801
8267
  friend class ::PragmaOnce;
1802
 
  friend class ::CCExprResolve;
1803
 
  friend class ::CExprResolve;
1804
 
 
1805
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
1806
 
 
1807
 
  bool _Const;
1808
 
  bool _Volatile;
1809
 
  bool _Restrict;
 
8268
  friend class ::CMatchSyntax;
 
8269
 
 
8270
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
8271
 
 
8272
  bool _QualConst;
 
8273
  bool _QualVolatile;
 
8274
  bool _QualRestrict;
1810
8275
 
1811
8276
protected:
1812
8277
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
1827
8292
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
1828
8293
 CTypeInfo::TypeId id) :
1829
8294
  CTypeInfo (base, id),
1830
 
  _Const (c),
1831
 
  _Volatile (v),
1832
 
  _Restrict (r)
 
8295
  _QualConst (c),
 
8296
  _QualVolatile (v),
 
8297
  _QualRestrict (r)
1833
8298
 {}
1834
8299
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
1835
8300
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
1836
 
  _Const (c),
1837
 
  _Volatile (v),
1838
 
  _Restrict (r)
 
8301
  _QualConst (c),
 
8302
  _QualVolatile (v),
 
8303
  _QualRestrict (r)
1839
8304
 {}
1840
8305
inline CTypeQualified::~CTypeQualified ()
1841
8306
 {}
1842
8307
 
1843
8308
inline bool CTypeQualified::isConst () const
1844
 
 { return _Const; }
 
8309
 { return _QualConst; }
1845
8310
inline bool CTypeQualified::isVolatile () const
1846
 
 { return _Volatile; }
 
8311
 { return _QualVolatile; }
1847
8312
inline bool CTypeQualified::isRestrict () const
1848
 
 { return _Restrict; }
 
8313
 { return _QualRestrict; }
1849
8314
 
1850
8315
inline void CTypeQualified::isConst (bool v)
1851
 
 { _Const = v; }
 
8316
 { _QualConst = v; }
1852
8317
inline void CTypeQualified::isVolatile (bool v)
1853
 
 { _Volatile = v; }
 
8318
 { _QualVolatile = v; }
1854
8319
inline void CTypeQualified::isRestrict (bool v)
1855
 
 { _Restrict = v; }
 
8320
 { _QualRestrict = v; }
1856
8321
 
1857
8322
 
1858
8323
} // namespace Puma
1859
8324
 
1860
8325
#endif /* __CTypeQualified_h__ */
1861
8326
 
1862
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
8327
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1863
8328
// This file is part of PUMA.
1864
8329
// Copyright (C) 1999-2003  The PUMA developer team.
1865
8330
//                                                                
1890
8355
 
1891
8356
 
1892
8357
 
1893
 
#line 1894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8358
#line 8359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1894
8359
} // closed Puma
 
8360
class CCExprResolve;
 
8361
class CExprResolve;
1895
8362
class WinIfExists;
1896
8363
class WinImportHandler;
1897
8364
class WinMacros;
1898
 
class CMatchSyntax;
1899
 
class ExtGnu;
 
8365
class WinAsm;
 
8366
class WinDeclSpecs;
 
8367
class WinMemberExplSpec;
 
8368
class WinTypeKeywords;
 
8369
class WinFriend;
1900
8370
class ExtAC;
1901
8371
class ExtACBuilderCoupling;
1902
8372
class ExtACSyntaxCoupling;
1903
8373
class ExtACTree;
1904
8374
class ExtACKeywords;
1905
 
class WinAsm;
1906
 
class WinDeclSpecs;
1907
 
class WinMemberExplSpec;
1908
 
class WinTypeKeywords;
 
8375
class ExtGnu;
1909
8376
class PragmaOnceUnitState;
1910
8377
class PragmaOnce;
1911
 
class CCExprResolve;
1912
 
class CExprResolve;
 
8378
class CMatchSyntax;
1913
8379
namespace Puma {
1914
8380
 
1915
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
8381
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1916
8382
class CTypeAddress : public CTypeInfo {
1917
 
#line 1918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8383
#line 8384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8384
  friend class ::CCExprResolve;
 
8385
  friend class ::CExprResolve;
1918
8386
  friend class ::WinIfExists;
1919
8387
  friend class ::WinImportHandler;
1920
8388
  friend class ::WinMacros;
1921
 
  friend class ::CMatchSyntax;
1922
 
  friend class ::ExtGnu;
 
8389
  friend class ::WinAsm;
 
8390
  friend class ::WinDeclSpecs;
 
8391
  friend class ::WinMemberExplSpec;
 
8392
  friend class ::WinTypeKeywords;
 
8393
  friend class ::WinFriend;
1923
8394
  friend class ::ExtAC;
1924
8395
  friend class ::ExtACBuilderCoupling;
1925
8396
  friend class ::ExtACSyntaxCoupling;
1926
8397
  friend class ::ExtACTree;
1927
8398
  friend class ::ExtACKeywords;
1928
 
  friend class ::WinAsm;
1929
 
  friend class ::WinDeclSpecs;
1930
 
  friend class ::WinMemberExplSpec;
1931
 
  friend class ::WinTypeKeywords;
 
8399
  friend class ::ExtGnu;
1932
8400
  friend class ::PragmaOnceUnitState;
1933
8401
  friend class ::PragmaOnce;
1934
 
  friend class ::CCExprResolve;
1935
 
  friend class ::CExprResolve;
 
8402
  friend class ::CMatchSyntax;
1936
8403
 
1937
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
8404
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
1938
8405
 
1939
8406
public:
1940
8407
  CTypeAddress (CTypeInfo *);
1952
8419
 
1953
8420
#endif /* __CTypeAddress_h__ */
1954
8421
 
1955
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
8422
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
1956
8423
// This file is part of PUMA.
1957
8424
// Copyright (C) 1999-2003  The PUMA developer team.
1958
8425
//                                                                
1983
8450
 
1984
8451
 
1985
8452
 
1986
 
#line 1987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8453
#line 8454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
1987
8454
} // closed Puma
 
8455
class CCExprResolve;
 
8456
class CExprResolve;
1988
8457
class WinIfExists;
1989
8458
class WinImportHandler;
1990
8459
class WinMacros;
1991
 
class CMatchSyntax;
1992
 
class ExtGnu;
 
8460
class WinAsm;
 
8461
class WinDeclSpecs;
 
8462
class WinMemberExplSpec;
 
8463
class WinTypeKeywords;
 
8464
class WinFriend;
1993
8465
class ExtAC;
1994
8466
class ExtACBuilderCoupling;
1995
8467
class ExtACSyntaxCoupling;
1996
8468
class ExtACTree;
1997
8469
class ExtACKeywords;
1998
 
class WinAsm;
1999
 
class WinDeclSpecs;
2000
 
class WinMemberExplSpec;
2001
 
class WinTypeKeywords;
 
8470
class ExtGnu;
2002
8471
class PragmaOnceUnitState;
2003
8472
class PragmaOnce;
2004
 
class CCExprResolve;
2005
 
class CExprResolve;
 
8473
class CMatchSyntax;
2006
8474
namespace Puma {
2007
8475
 
2008
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
8476
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
2009
8477
class CTypeBitField : public CTypeInfo {
2010
 
#line 2011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8478
#line 8479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8479
  friend class ::CCExprResolve;
 
8480
  friend class ::CExprResolve;
2011
8481
  friend class ::WinIfExists;
2012
8482
  friend class ::WinImportHandler;
2013
8483
  friend class ::WinMacros;
2014
 
  friend class ::CMatchSyntax;
2015
 
  friend class ::ExtGnu;
 
8484
  friend class ::WinAsm;
 
8485
  friend class ::WinDeclSpecs;
 
8486
  friend class ::WinMemberExplSpec;
 
8487
  friend class ::WinTypeKeywords;
 
8488
  friend class ::WinFriend;
2016
8489
  friend class ::ExtAC;
2017
8490
  friend class ::ExtACBuilderCoupling;
2018
8491
  friend class ::ExtACSyntaxCoupling;
2019
8492
  friend class ::ExtACTree;
2020
8493
  friend class ::ExtACKeywords;
2021
 
  friend class ::WinAsm;
2022
 
  friend class ::WinDeclSpecs;
2023
 
  friend class ::WinMemberExplSpec;
2024
 
  friend class ::WinTypeKeywords;
 
8494
  friend class ::ExtGnu;
2025
8495
  friend class ::PragmaOnceUnitState;
2026
8496
  friend class ::PragmaOnce;
2027
 
  friend class ::CCExprResolve;
2028
 
  friend class ::CExprResolve;
 
8497
  friend class ::CMatchSyntax;
2029
8498
 
2030
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
8499
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
2031
8500
 
2032
8501
  long int _Size;
2033
8502
 
2056
8525
 
2057
8526
#endif /* __CTypeBitField_h__ */
2058
8527
 
2059
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
8528
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2060
8529
// This file is part of PUMA.
2061
8530
// Copyright (C) 1999-2003  The PUMA developer team.
2062
8531
//                                                                
2087
8556
 
2088
8557
 
2089
8558
 
2090
 
#line 2091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8559
#line 8560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2091
8560
} // closed Puma
 
8561
class CCExprResolve;
 
8562
class CExprResolve;
2092
8563
class WinIfExists;
2093
8564
class WinImportHandler;
2094
8565
class WinMacros;
2095
 
class CMatchSyntax;
2096
 
class ExtGnu;
 
8566
class WinAsm;
 
8567
class WinDeclSpecs;
 
8568
class WinMemberExplSpec;
 
8569
class WinTypeKeywords;
 
8570
class WinFriend;
2097
8571
class ExtAC;
2098
8572
class ExtACBuilderCoupling;
2099
8573
class ExtACSyntaxCoupling;
2100
8574
class ExtACTree;
2101
8575
class ExtACKeywords;
2102
 
class WinAsm;
2103
 
class WinDeclSpecs;
2104
 
class WinMemberExplSpec;
2105
 
class WinTypeKeywords;
 
8576
class ExtGnu;
2106
8577
class PragmaOnceUnitState;
2107
8578
class PragmaOnce;
2108
 
class CCExprResolve;
2109
 
class CExprResolve;
 
8579
class CMatchSyntax;
2110
8580
namespace Puma {
2111
8581
 
2112
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
8582
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2113
8583
class CTypeArray : public CTypeInfo {
2114
 
#line 2115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8584
#line 8585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8585
  friend class ::CCExprResolve;
 
8586
  friend class ::CExprResolve;
2115
8587
  friend class ::WinIfExists;
2116
8588
  friend class ::WinImportHandler;
2117
8589
  friend class ::WinMacros;
2118
 
  friend class ::CMatchSyntax;
2119
 
  friend class ::ExtGnu;
 
8590
  friend class ::WinAsm;
 
8591
  friend class ::WinDeclSpecs;
 
8592
  friend class ::WinMemberExplSpec;
 
8593
  friend class ::WinTypeKeywords;
 
8594
  friend class ::WinFriend;
2120
8595
  friend class ::ExtAC;
2121
8596
  friend class ::ExtACBuilderCoupling;
2122
8597
  friend class ::ExtACSyntaxCoupling;
2123
8598
  friend class ::ExtACTree;
2124
8599
  friend class ::ExtACKeywords;
2125
 
  friend class ::WinAsm;
2126
 
  friend class ::WinDeclSpecs;
2127
 
  friend class ::WinMemberExplSpec;
2128
 
  friend class ::WinTypeKeywords;
 
8600
  friend class ::ExtGnu;
2129
8601
  friend class ::PragmaOnceUnitState;
2130
8602
  friend class ::PragmaOnce;
2131
 
  friend class ::CCExprResolve;
2132
 
  friend class ::CExprResolve;
 
8603
  friend class ::CMatchSyntax;
2133
8604
 
2134
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
8605
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
2135
8606
 
2136
8607
  long int _Size;
2137
8608
  bool _isFixed;
2138
8609
  CTypeQualified *_Quals;
2139
8610
  CTypeTemplateParam *_DepDim;
 
8611
  bool _hasDim;
2140
8612
 
2141
8613
protected:
2142
8614
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
2143
8615
  
2144
8616
public:
2145
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
8617
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
2146
8618
  ~CTypeArray ();
2147
8619
 
2148
8620
  void Dimension (long int);
2151
8623
  void isFixed (bool);
2152
8624
  bool isFixed () const;
2153
8625
  
 
8626
  void hasDimension (bool);
 
8627
  bool hasDimension () const;
 
8628
  
2154
8629
  CTypeQualified *Qualifiers () const;
2155
8630
  
2156
8631
  void DepDim (CTypeTemplateParam *);
2157
8632
  CTypeTemplateParam *DepDim () const;
2158
8633
};
2159
8634
 
2160
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
8635
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
2161
8636
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
2162
8637
  _Size (0),
2163
8638
  _isFixed (false),
2164
8639
  _Quals (quals),
2165
 
  _DepDim (0)
 
8640
  _DepDim (0),
 
8641
  _hasDim (has_dimension)
2166
8642
 {}
2167
8643
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
2168
8644
  CTypeInfo (base, id),
2169
8645
  _Size (0),
2170
8646
  _isFixed (false),
2171
8647
  _Quals (quals),
2172
 
  _DepDim (0)
 
8648
  _DepDim (0),
 
8649
  _hasDim (false)
2173
8650
 {}
2174
8651
inline CTypeArray::~CTypeArray ()
2175
8652
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
2184
8661
inline bool CTypeArray::isFixed () const
2185
8662
 { return _isFixed; }
2186
8663
 
 
8664
inline void CTypeArray::hasDimension (bool v)
 
8665
 { _hasDim = v; }
 
8666
inline bool CTypeArray::hasDimension () const
 
8667
 { return _hasDim || _Size != 0; }
 
8668
 
2187
8669
inline CTypeQualified *CTypeArray::Qualifiers () const
2188
8670
 { return _Quals; }
2189
8671
 
2197
8679
 
2198
8680
#endif /* __CTypeArray_h__ */
2199
8681
 
2200
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
8682
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2201
8683
// This file is part of PUMA.
2202
8684
// Copyright (C) 1999-2003  The PUMA developer team.
2203
8685
//                                                                
2228
8710
 
2229
8711
 
2230
8712
 
2231
 
#line 2232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8713
#line 8714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2232
8714
} // closed Puma
 
8715
class CCExprResolve;
 
8716
class CExprResolve;
2233
8717
class WinIfExists;
2234
8718
class WinImportHandler;
2235
8719
class WinMacros;
2236
 
class CMatchSyntax;
2237
 
class ExtGnu;
 
8720
class WinAsm;
 
8721
class WinDeclSpecs;
 
8722
class WinMemberExplSpec;
 
8723
class WinTypeKeywords;
 
8724
class WinFriend;
2238
8725
class ExtAC;
2239
8726
class ExtACBuilderCoupling;
2240
8727
class ExtACSyntaxCoupling;
2241
8728
class ExtACTree;
2242
8729
class ExtACKeywords;
2243
 
class WinAsm;
2244
 
class WinDeclSpecs;
2245
 
class WinMemberExplSpec;
2246
 
class WinTypeKeywords;
 
8730
class ExtGnu;
2247
8731
class PragmaOnceUnitState;
2248
8732
class PragmaOnce;
2249
 
class CCExprResolve;
2250
 
class CExprResolve;
 
8733
class CMatchSyntax;
2251
8734
namespace Puma {
2252
8735
 
2253
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
8736
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2254
8737
class CTypeVarArray : public CTypeArray {
2255
 
#line 2256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8738
#line 8739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8739
  friend class ::CCExprResolve;
 
8740
  friend class ::CExprResolve;
2256
8741
  friend class ::WinIfExists;
2257
8742
  friend class ::WinImportHandler;
2258
8743
  friend class ::WinMacros;
2259
 
  friend class ::CMatchSyntax;
2260
 
  friend class ::ExtGnu;
 
8744
  friend class ::WinAsm;
 
8745
  friend class ::WinDeclSpecs;
 
8746
  friend class ::WinMemberExplSpec;
 
8747
  friend class ::WinTypeKeywords;
 
8748
  friend class ::WinFriend;
2261
8749
  friend class ::ExtAC;
2262
8750
  friend class ::ExtACBuilderCoupling;
2263
8751
  friend class ::ExtACSyntaxCoupling;
2264
8752
  friend class ::ExtACTree;
2265
8753
  friend class ::ExtACKeywords;
2266
 
  friend class ::WinAsm;
2267
 
  friend class ::WinDeclSpecs;
2268
 
  friend class ::WinMemberExplSpec;
2269
 
  friend class ::WinTypeKeywords;
 
8754
  friend class ::ExtGnu;
2270
8755
  friend class ::PragmaOnceUnitState;
2271
8756
  friend class ::PragmaOnce;
2272
 
  friend class ::CCExprResolve;
2273
 
  friend class ::CExprResolve;
 
8757
  friend class ::CMatchSyntax;
2274
8758
 
2275
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
8759
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
2276
8760
 
2277
8761
public:
2278
8762
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
2290
8774
 
2291
8775
#endif /* __CTypeVarArray_h__ */
2292
8776
 
2293
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
8777
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2294
8778
// This file is part of PUMA.
2295
8779
// Copyright (C) 1999-2003  The PUMA developer team.
2296
8780
//                                                                
2321
8805
 
2322
8806
 
2323
8807
 
2324
 
#line 2325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8808
#line 8809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2325
8809
} // closed Puma
 
8810
class CCExprResolve;
 
8811
class CExprResolve;
2326
8812
class WinIfExists;
2327
8813
class WinImportHandler;
2328
8814
class WinMacros;
2329
 
class CMatchSyntax;
2330
 
class ExtGnu;
 
8815
class WinAsm;
 
8816
class WinDeclSpecs;
 
8817
class WinMemberExplSpec;
 
8818
class WinTypeKeywords;
 
8819
class WinFriend;
2331
8820
class ExtAC;
2332
8821
class ExtACBuilderCoupling;
2333
8822
class ExtACSyntaxCoupling;
2334
8823
class ExtACTree;
2335
8824
class ExtACKeywords;
2336
 
class WinAsm;
2337
 
class WinDeclSpecs;
2338
 
class WinMemberExplSpec;
2339
 
class WinTypeKeywords;
 
8825
class ExtGnu;
2340
8826
class PragmaOnceUnitState;
2341
8827
class PragmaOnce;
2342
 
class CCExprResolve;
2343
 
class CExprResolve;
 
8828
class CMatchSyntax;
2344
8829
namespace Puma {
2345
8830
 
2346
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
8831
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2347
8832
class CTypePointer : public CTypeInfo {
2348
 
#line 2349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8833
#line 8834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8834
  friend class ::CCExprResolve;
 
8835
  friend class ::CExprResolve;
2349
8836
  friend class ::WinIfExists;
2350
8837
  friend class ::WinImportHandler;
2351
8838
  friend class ::WinMacros;
2352
 
  friend class ::CMatchSyntax;
2353
 
  friend class ::ExtGnu;
 
8839
  friend class ::WinAsm;
 
8840
  friend class ::WinDeclSpecs;
 
8841
  friend class ::WinMemberExplSpec;
 
8842
  friend class ::WinTypeKeywords;
 
8843
  friend class ::WinFriend;
2354
8844
  friend class ::ExtAC;
2355
8845
  friend class ::ExtACBuilderCoupling;
2356
8846
  friend class ::ExtACSyntaxCoupling;
2357
8847
  friend class ::ExtACTree;
2358
8848
  friend class ::ExtACKeywords;
2359
 
  friend class ::WinAsm;
2360
 
  friend class ::WinDeclSpecs;
2361
 
  friend class ::WinMemberExplSpec;
2362
 
  friend class ::WinTypeKeywords;
 
8849
  friend class ::ExtGnu;
2363
8850
  friend class ::PragmaOnceUnitState;
2364
8851
  friend class ::PragmaOnce;
2365
 
  friend class ::CCExprResolve;
2366
 
  friend class ::CExprResolve;
 
8852
  friend class ::CMatchSyntax;
2367
8853
 
2368
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
8854
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
2369
8855
 
2370
8856
protected:
2371
8857
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
2389
8875
 
2390
8876
#endif /* __CTypePointer_h__ */
2391
8877
 
2392
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
8878
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2393
8879
// This file is part of PUMA.
2394
8880
// Copyright (C) 1999-2003  The PUMA developer team.
2395
8881
//                                                                
2424
8910
class CTemplateParamInfo;
2425
8911
 
2426
8912
 
2427
 
#line 2428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8913
#line 8914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2428
8914
} // closed Puma
 
8915
class CCExprResolve;
 
8916
class CExprResolve;
2429
8917
class WinIfExists;
2430
8918
class WinImportHandler;
2431
8919
class WinMacros;
2432
 
class CMatchSyntax;
2433
 
class ExtGnu;
 
8920
class WinAsm;
 
8921
class WinDeclSpecs;
 
8922
class WinMemberExplSpec;
 
8923
class WinTypeKeywords;
 
8924
class WinFriend;
2434
8925
class ExtAC;
2435
8926
class ExtACBuilderCoupling;
2436
8927
class ExtACSyntaxCoupling;
2437
8928
class ExtACTree;
2438
8929
class ExtACKeywords;
2439
 
class WinAsm;
2440
 
class WinDeclSpecs;
2441
 
class WinMemberExplSpec;
2442
 
class WinTypeKeywords;
 
8930
class ExtGnu;
2443
8931
class PragmaOnceUnitState;
2444
8932
class PragmaOnce;
2445
 
class CCExprResolve;
2446
 
class CExprResolve;
 
8933
class CMatchSyntax;
2447
8934
namespace Puma {
2448
8935
 
2449
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
8936
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2450
8937
class CTypeMemberPointer : public CTypePointer {
2451
 
#line 2452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
8938
#line 8939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
8939
  friend class ::CCExprResolve;
 
8940
  friend class ::CExprResolve;
2452
8941
  friend class ::WinIfExists;
2453
8942
  friend class ::WinImportHandler;
2454
8943
  friend class ::WinMacros;
2455
 
  friend class ::CMatchSyntax;
2456
 
  friend class ::ExtGnu;
 
8944
  friend class ::WinAsm;
 
8945
  friend class ::WinDeclSpecs;
 
8946
  friend class ::WinMemberExplSpec;
 
8947
  friend class ::WinTypeKeywords;
 
8948
  friend class ::WinFriend;
2457
8949
  friend class ::ExtAC;
2458
8950
  friend class ::ExtACBuilderCoupling;
2459
8951
  friend class ::ExtACSyntaxCoupling;
2460
8952
  friend class ::ExtACTree;
2461
8953
  friend class ::ExtACKeywords;
2462
 
  friend class ::WinAsm;
2463
 
  friend class ::WinDeclSpecs;
2464
 
  friend class ::WinMemberExplSpec;
2465
 
  friend class ::WinTypeKeywords;
 
8954
  friend class ::ExtGnu;
2466
8955
  friend class ::PragmaOnceUnitState;
2467
8956
  friend class ::PragmaOnce;
2468
 
  friend class ::CCExprResolve;
2469
 
  friend class ::CExprResolve;
 
8957
  friend class ::CMatchSyntax;
2470
8958
 
2471
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
8959
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
2472
8960
 
2473
8961
  CObjectInfo *_Class;
2474
8962
 
2492
8980
 
2493
8981
#endif /* __CTypeMemberPointer_h__ */
2494
8982
 
2495
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
8983
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2496
8984
// This file is part of PUMA.
2497
8985
// Copyright (C) 1999-2003  The PUMA developer team.
2498
8986
//                                                                
2520
9008
#endif
2521
9009
 
2522
9010
 
2523
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9011
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2524
9012
// This file is part of PUMA.
2525
9013
// Copyright (C) 1999-2003  The PUMA developer team.
2526
9014
//                                                                
2543
9031
#define __CTypeList_h__
2544
9032
 
2545
9033
 
2546
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2547
 
// This file is part of PUMA.
2548
 
// Copyright (C) 1999-2003  The PUMA developer team.
2549
 
//                                                                
2550
 
// This program is free software;  you can redistribute it and/or 
2551
 
// modify it under the terms of the GNU General Public License as 
2552
 
// published by the Free Software Foundation; either version 2 of 
2553
 
// the License, or (at your option) any later version.            
2554
 
//                                                                
2555
 
// This program is distributed in the hope that it will be useful,
2556
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
2557
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
2558
 
// GNU General Public License for more details.                   
2559
 
//                                                                
2560
 
// You should have received a copy of the GNU General Public      
2561
 
// License along with this program; if not, write to the Free     
2562
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
2563
 
// MA  02111-1307  USA                                            
2564
 
 
2565
 
#ifndef __array_h__
2566
 
#define __array_h__
2567
 
 
2568
 
#include <assert.h>
2569
 
 
2570
 
namespace Puma {
2571
 
 
2572
 
 
2573
 
#line 2574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
2574
 
} // closed Puma
2575
 
class WinIfExists;
2576
 
class WinImportHandler;
2577
 
class WinMacros;
2578
 
class CMatchSyntax;
2579
 
class ExtGnu;
2580
 
class ExtAC;
2581
 
class ExtACBuilderCoupling;
2582
 
class ExtACSyntaxCoupling;
2583
 
class ExtACTree;
2584
 
class ExtACKeywords;
2585
 
class WinAsm;
2586
 
class WinDeclSpecs;
2587
 
class WinMemberExplSpec;
2588
 
class WinTypeKeywords;
2589
 
class PragmaOnceUnitState;
2590
 
class PragmaOnce;
2591
 
class CCExprResolve;
2592
 
class CExprResolve;
2593
 
namespace Puma {
2594
 
 
2595
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2596
 
template <class Item>
2597
 
class Array {
2598
 
#line 2599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
2599
 
  friend class ::WinIfExists;
2600
 
  friend class ::WinImportHandler;
2601
 
  friend class ::WinMacros;
2602
 
  friend class ::CMatchSyntax;
2603
 
  friend class ::ExtGnu;
2604
 
  friend class ::ExtAC;
2605
 
  friend class ::ExtACBuilderCoupling;
2606
 
  friend class ::ExtACSyntaxCoupling;
2607
 
  friend class ::ExtACTree;
2608
 
  friend class ::ExtACKeywords;
2609
 
  friend class ::WinAsm;
2610
 
  friend class ::WinDeclSpecs;
2611
 
  friend class ::WinMemberExplSpec;
2612
 
  friend class ::WinTypeKeywords;
2613
 
  friend class ::PragmaOnceUnitState;
2614
 
  friend class ::PragmaOnce;
2615
 
  friend class ::CCExprResolve;
2616
 
  friend class ::CExprResolve;
2617
 
 
2618
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2619
 
 
2620
 
   protected:
2621
 
      static const long default_init_size = 5;
2622
 
      static const long default_increment = 5;
2623
 
 
2624
 
   public:
2625
 
      Array (long is = default_init_size, long incr = default_increment);
2626
 
      Array (const Array<Item>& array);
2627
 
      Array<Item>& operator =(const Array<Item>&);
2628
 
      ~Array ();
2629
 
      void append (const Item& item);
2630
 
      void insert (long index, const Item& item);
2631
 
      void prepend (const Item& item);
2632
 
      void remove (long index);
2633
 
      void reset ();
2634
 
      Item& get (long index);
2635
 
      Item& operator[] (long index);
2636
 
      Item fetch (long index) const;
2637
 
      Item& lookup (long index) const;
2638
 
      long length () const;
2639
 
 
2640
 
   private:
2641
 
      Item* data;
2642
 
      long size;
2643
 
      long count;
2644
 
      long increment;
2645
 
      
2646
 
      void check (long wanted);
2647
 
 };
2648
 
 
2649
 
template <class Item>
2650
 
inline Array<Item>::Array (long is, long incr)
2651
 
 {
2652
 
   count     = 0; 
2653
 
   size      = is;
2654
 
   increment = incr;
2655
 
   data      = new Item[size];
2656
 
 }
2657
 
 
2658
 
template <class Item>
2659
 
Array<Item>::Array (const Array<Item>& array)
2660
 
 {
2661
 
   count = 0;
2662
 
   size  = array.size;
2663
 
   data  = new Item[size];
2664
 
   increment = array.increment;
2665
 
 
2666
 
   for (int pos = 0; pos < array.length (); pos++)
2667
 
      append (array.lookup (pos));
2668
 
 }
2669
 
 
2670
 
template <class Item>
2671
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
2672
 
 {
2673
 
   if (data)
2674
 
      delete[] data;
2675
 
   count = 0;
2676
 
   size  = array.size;
2677
 
   data  = new Item[size];
2678
 
   increment = array.increment;
2679
 
 
2680
 
   for (int pos = 0; pos < array.length (); pos++)
2681
 
      append (array.lookup (pos));
2682
 
   return *this;
2683
 
 }
2684
 
 
2685
 
template <class Item>
2686
 
Array<Item>::~Array ()
2687
 
 {
2688
 
   if (data)
2689
 
      delete[] data;
2690
 
 }
2691
 
 
2692
 
template <class Item>
2693
 
inline void Array<Item>::check (long wanted)
2694
 
 {
2695
 
   if (wanted >= size)
2696
 
    {
2697
 
      Item* new_data;
2698
 
 
2699
 
      while (wanted >= size)
2700
 
      {
2701
 
         size += increment;
2702
 
         increment*=2;
2703
 
      }
2704
 
      new_data = new Item[size];
2705
 
      for (int pos = 0; pos < count; pos++)
2706
 
         new_data[pos] = data[pos];
2707
 
      delete[] data;
2708
 
      data = new_data;
2709
 
    }
2710
 
 }
2711
 
   
2712
 
template <class Item>
2713
 
inline void Array<Item>::append (const Item& item)
2714
 
 {
2715
 
   check (count);
2716
 
   data[count++] = item;
2717
 
 }
2718
 
 
2719
 
template <class Item>
2720
 
void Array<Item>::prepend (const Item& item)
2721
 
 {
2722
 
   insert (0, item);
2723
 
 }
2724
 
 
2725
 
template <class Item>
2726
 
void Array<Item>::insert (long index, const Item& item)
2727
 
 {
2728
 
   check (count);
2729
 
   for (int pos = count; pos > index; pos--)
2730
 
      data[pos] = data[pos - 1];
2731
 
   data[index] = item;
2732
 
   count++;
2733
 
 }
2734
 
 
2735
 
template <class Item>
2736
 
inline Item& Array<Item>::get (long index)
2737
 
 {
2738
 
   check (index);
2739
 
   if (index >= count)
2740
 
      count = index + 1;
2741
 
   return data[index];
2742
 
 }
2743
 
 
2744
 
template <class Item>
2745
 
inline Item& Array<Item>::operator[] (long index)
2746
 
 {
2747
 
   return get (index);
2748
 
 }
2749
 
 
2750
 
template <class Item>
2751
 
inline Item Array<Item>::fetch (long index) const
2752
 
 {
2753
 
   assert(index < count);
2754
 
   return data[index];
2755
 
 }
2756
 
 
2757
 
template <class Item>
2758
 
inline long Array<Item>::length () const
2759
 
 {
2760
 
   return count;
2761
 
 }
2762
 
 
2763
 
template <class Item>
2764
 
inline void Array<Item>::remove (long index)
2765
 
 {
2766
 
   if (index < count && count > 0)
2767
 
    {
2768
 
      for (int pos = index; pos < count - 1; pos++)
2769
 
         data[pos] = data[pos + 1];
2770
 
      count--;
2771
 
    }
2772
 
 }
2773
 
 
2774
 
#ifndef __puma
2775
 
template <>
2776
 
inline void Array<int>::reset () {
2777
 
   count = 0; 
2778
 
}
2779
 
#endif
2780
 
 
2781
 
template <class Item>
2782
 
void Array<Item>::reset ()
2783
 
 {
2784
 
   if (data)
2785
 
      delete[] data;
2786
 
   count     = 0; 
2787
 
   size      = default_init_size;
2788
 
   increment = default_increment;
2789
 
   data      = new Item[size];
2790
 
 }
2791
 
 
2792
 
template <class Item>
2793
 
inline Item& Array<Item>::lookup (long index) const
2794
 
 {
2795
 
   assert(index >= 0 && index < count);
2796
 
//   if (index >= count) index = count - 1; 
2797
 
//   if (index < 0)      index = 0;
2798
 
   return data[index];
2799
 
 }
2800
 
 
2801
 
 
2802
 
} // namespace Puma
2803
 
 
2804
 
// Array specialization for pointer types sharing method definitions
2805
 
 
2806
 
#ifndef __puma
2807
 
 
2808
 
#include "Puma/VoidPtrArray.h"
2809
 
 
2810
 
namespace Puma {
2811
 
 
2812
 
 
2813
 
template <class Item>
2814
 
class Array<Item*> : private VoidPtrArray {
2815
 
  typedef VoidPtrArray Base;
2816
 
 
2817
 
public:
2818
 
  Array (long is = default_init_size, long incr = default_increment) :
2819
 
    Base (is, incr) {}
2820
 
  Array (const Array<Item*> &array) : 
2821
 
    Base (array) {}
2822
 
  Array<Item*> &operator= (const Array<Item*> &array) 
2823
 
   { return (Array<Item*>&)Base::operator= (array); }
2824
 
 
2825
 
  ~Array () {}
2826
 
 
2827
 
  void append (const Item *item)           { Base::append ((void*)item); }
2828
 
  void insert (long idx, const Item *item) { Base::insert (idx, (void*)item); }
2829
 
  void prepend (const Item *item)          { Base::prepend ((void*)item); }
2830
 
  void remove (long idx)                   { Base::remove (idx); }
2831
 
  void reset ()                            { Base::reset (); }
2832
 
 
2833
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
2834
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
2835
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
2836
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
2837
 
  long length () const           { return Base::length (); }
2838
 
};
2839
 
 
2840
 
 
2841
 
} // namespace Puma
2842
 
 
2843
 
#endif /* __puma */
2844
 
 
2845
 
#endif /* __array_h__ */
2846
 
 
2847
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9034
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2848
9035
namespace Puma {
2849
9036
 
2850
9037
 
2852
9039
class CT_ArgDeclList;
2853
9040
 
2854
9041
 
2855
 
#line 2856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9042
#line 9043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2856
9043
} // closed Puma
 
9044
class CCExprResolve;
 
9045
class CExprResolve;
2857
9046
class WinIfExists;
2858
9047
class WinImportHandler;
2859
9048
class WinMacros;
2860
 
class CMatchSyntax;
2861
 
class ExtGnu;
 
9049
class WinAsm;
 
9050
class WinDeclSpecs;
 
9051
class WinMemberExplSpec;
 
9052
class WinTypeKeywords;
 
9053
class WinFriend;
2862
9054
class ExtAC;
2863
9055
class ExtACBuilderCoupling;
2864
9056
class ExtACSyntaxCoupling;
2865
9057
class ExtACTree;
2866
9058
class ExtACKeywords;
2867
 
class WinAsm;
2868
 
class WinDeclSpecs;
2869
 
class WinMemberExplSpec;
2870
 
class WinTypeKeywords;
 
9059
class ExtGnu;
2871
9060
class PragmaOnceUnitState;
2872
9061
class PragmaOnce;
2873
 
class CCExprResolve;
2874
 
class CExprResolve;
 
9062
class CMatchSyntax;
2875
9063
namespace Puma {
2876
9064
 
2877
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9065
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2878
9066
class CTypeList {
2879
 
#line 2880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9067
#line 9068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9068
  friend class ::CCExprResolve;
 
9069
  friend class ::CExprResolve;
2880
9070
  friend class ::WinIfExists;
2881
9071
  friend class ::WinImportHandler;
2882
9072
  friend class ::WinMacros;
2883
 
  friend class ::CMatchSyntax;
2884
 
  friend class ::ExtGnu;
 
9073
  friend class ::WinAsm;
 
9074
  friend class ::WinDeclSpecs;
 
9075
  friend class ::WinMemberExplSpec;
 
9076
  friend class ::WinTypeKeywords;
 
9077
  friend class ::WinFriend;
2885
9078
  friend class ::ExtAC;
2886
9079
  friend class ::ExtACBuilderCoupling;
2887
9080
  friend class ::ExtACSyntaxCoupling;
2888
9081
  friend class ::ExtACTree;
2889
9082
  friend class ::ExtACKeywords;
2890
 
  friend class ::WinAsm;
2891
 
  friend class ::WinDeclSpecs;
2892
 
  friend class ::WinMemberExplSpec;
2893
 
  friend class ::WinTypeKeywords;
 
9083
  friend class ::ExtGnu;
2894
9084
  friend class ::PragmaOnceUnitState;
2895
9085
  friend class ::PragmaOnce;
2896
 
  friend class ::CCExprResolve;
2897
 
  friend class ::CExprResolve;
 
9086
  friend class ::CMatchSyntax;
2898
9087
 
2899
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
9088
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
2900
9089
 
2901
9090
  Array<CTypeInfo*> _List;
2902
9091
  CT_ArgDeclList *_ArgumentList;
2944
9133
 
2945
9134
#endif /* __CTypeList_h__ */
2946
9135
 
2947
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9136
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2948
9137
namespace Puma {
2949
9138
 
2950
9139
 
2952
9141
class CRecord;
2953
9142
 
2954
9143
 
2955
 
#line 2956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9144
#line 9145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
2956
9145
} // closed Puma
 
9146
class CCExprResolve;
 
9147
class CExprResolve;
2957
9148
class WinIfExists;
2958
9149
class WinImportHandler;
2959
9150
class WinMacros;
2960
 
class CMatchSyntax;
2961
 
class ExtGnu;
 
9151
class WinAsm;
 
9152
class WinDeclSpecs;
 
9153
class WinMemberExplSpec;
 
9154
class WinTypeKeywords;
 
9155
class WinFriend;
2962
9156
class ExtAC;
2963
9157
class ExtACBuilderCoupling;
2964
9158
class ExtACSyntaxCoupling;
2965
9159
class ExtACTree;
2966
9160
class ExtACKeywords;
2967
 
class WinAsm;
2968
 
class WinDeclSpecs;
2969
 
class WinMemberExplSpec;
2970
 
class WinTypeKeywords;
 
9161
class ExtGnu;
2971
9162
class PragmaOnceUnitState;
2972
9163
class PragmaOnce;
2973
 
class CCExprResolve;
2974
 
class CExprResolve;
 
9164
class CMatchSyntax;
2975
9165
namespace Puma {
2976
9166
 
2977
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9167
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
2978
9168
class CTypeFunction : public CTypeQualified {
2979
 
#line 2980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9169
#line 9170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9170
  friend class ::CCExprResolve;
 
9171
  friend class ::CExprResolve;
2980
9172
  friend class ::WinIfExists;
2981
9173
  friend class ::WinImportHandler;
2982
9174
  friend class ::WinMacros;
2983
 
  friend class ::CMatchSyntax;
2984
 
  friend class ::ExtGnu;
 
9175
  friend class ::WinAsm;
 
9176
  friend class ::WinDeclSpecs;
 
9177
  friend class ::WinMemberExplSpec;
 
9178
  friend class ::WinTypeKeywords;
 
9179
  friend class ::WinFriend;
2985
9180
  friend class ::ExtAC;
2986
9181
  friend class ::ExtACBuilderCoupling;
2987
9182
  friend class ::ExtACSyntaxCoupling;
2988
9183
  friend class ::ExtACTree;
2989
9184
  friend class ::ExtACKeywords;
2990
 
  friend class ::WinAsm;
2991
 
  friend class ::WinDeclSpecs;
2992
 
  friend class ::WinMemberExplSpec;
2993
 
  friend class ::WinTypeKeywords;
 
9185
  friend class ::ExtGnu;
2994
9186
  friend class ::PragmaOnceUnitState;
2995
9187
  friend class ::PragmaOnce;
2996
 
  friend class ::CCExprResolve;
2997
 
  friend class ::CExprResolve;
 
9188
  friend class ::CMatchSyntax;
2998
9189
 
2999
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
9190
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
3000
9191
 
3001
9192
  CTypeList *_ArgTypes;
3002
9193
  CFunctionInfo *_Function;
3044
9235
 
3045
9236
#endif /* __CTypeFunction_h__ */
3046
9237
 
3047
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
9238
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3048
9239
// This file is part of PUMA.
3049
9240
// Copyright (C) 1999-2003  The PUMA developer team.
3050
9241
//                                                                
3077
9268
class CEnumInfo;
3078
9269
 
3079
9270
 
3080
 
#line 3081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9271
#line 9272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3081
9272
} // closed Puma
 
9273
class CCExprResolve;
 
9274
class CExprResolve;
3082
9275
class WinIfExists;
3083
9276
class WinImportHandler;
3084
9277
class WinMacros;
3085
 
class CMatchSyntax;
3086
 
class ExtGnu;
 
9278
class WinAsm;
 
9279
class WinDeclSpecs;
 
9280
class WinMemberExplSpec;
 
9281
class WinTypeKeywords;
 
9282
class WinFriend;
3087
9283
class ExtAC;
3088
9284
class ExtACBuilderCoupling;
3089
9285
class ExtACSyntaxCoupling;
3090
9286
class ExtACTree;
3091
9287
class ExtACKeywords;
3092
 
class WinAsm;
3093
 
class WinDeclSpecs;
3094
 
class WinMemberExplSpec;
3095
 
class WinTypeKeywords;
 
9288
class ExtGnu;
3096
9289
class PragmaOnceUnitState;
3097
9290
class PragmaOnce;
3098
 
class CCExprResolve;
3099
 
class CExprResolve;
 
9291
class CMatchSyntax;
3100
9292
namespace Puma {
3101
9293
 
3102
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
9294
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3103
9295
class CTypeEnum : public CTypeInfo {
3104
 
#line 3105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9296
#line 9297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9297
  friend class ::CCExprResolve;
 
9298
  friend class ::CExprResolve;
3105
9299
  friend class ::WinIfExists;
3106
9300
  friend class ::WinImportHandler;
3107
9301
  friend class ::WinMacros;
3108
 
  friend class ::CMatchSyntax;
3109
 
  friend class ::ExtGnu;
 
9302
  friend class ::WinAsm;
 
9303
  friend class ::WinDeclSpecs;
 
9304
  friend class ::WinMemberExplSpec;
 
9305
  friend class ::WinTypeKeywords;
 
9306
  friend class ::WinFriend;
3110
9307
  friend class ::ExtAC;
3111
9308
  friend class ::ExtACBuilderCoupling;
3112
9309
  friend class ::ExtACSyntaxCoupling;
3113
9310
  friend class ::ExtACTree;
3114
9311
  friend class ::ExtACKeywords;
3115
 
  friend class ::WinAsm;
3116
 
  friend class ::WinDeclSpecs;
3117
 
  friend class ::WinMemberExplSpec;
3118
 
  friend class ::WinTypeKeywords;
 
9312
  friend class ::ExtGnu;
3119
9313
  friend class ::PragmaOnceUnitState;
3120
9314
  friend class ::PragmaOnce;
3121
 
  friend class ::CCExprResolve;
3122
 
  friend class ::CExprResolve;
 
9315
  friend class ::CMatchSyntax;
3123
9316
 
3124
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
9317
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
3125
9318
 
3126
9319
  CEnumInfo *_Enum;
3127
9320
 
3131
9324
 
3132
9325
  CEnumInfo *EnumInfo () const;
3133
9326
  bool isComplete (unsigned long = 0) const;
 
9327
  
 
9328
  CTypeInfo *UnderlyingType () const;
3134
9329
};
3135
9330
 
3136
9331
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
3142
9337
 
3143
9338
inline CEnumInfo *CTypeEnum::EnumInfo () const 
3144
9339
 { return _Enum; }
3145
 
 
 
9340
 
3146
9341
 
3147
9342
} // namespace Puma
3148
9343
 
3149
9344
#endif /* __CTypeEnum_h__ */
3150
9345
 
3151
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
9346
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3152
9347
// This file is part of PUMA.
3153
9348
// Copyright (C) 1999-2003  The PUMA developer team.
3154
9349
//                                                                
3181
9376
class CRecord;
3182
9377
 
3183
9378
 
3184
 
#line 3185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9379
#line 9380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3185
9380
} // closed Puma
 
9381
class CCExprResolve;
 
9382
class CExprResolve;
3186
9383
class WinIfExists;
3187
9384
class WinImportHandler;
3188
9385
class WinMacros;
3189
 
class CMatchSyntax;
3190
 
class ExtGnu;
 
9386
class WinAsm;
 
9387
class WinDeclSpecs;
 
9388
class WinMemberExplSpec;
 
9389
class WinTypeKeywords;
 
9390
class WinFriend;
3191
9391
class ExtAC;
3192
9392
class ExtACBuilderCoupling;
3193
9393
class ExtACSyntaxCoupling;
3194
9394
class ExtACTree;
3195
9395
class ExtACKeywords;
3196
 
class WinAsm;
3197
 
class WinDeclSpecs;
3198
 
class WinMemberExplSpec;
3199
 
class WinTypeKeywords;
 
9396
class ExtGnu;
3200
9397
class PragmaOnceUnitState;
3201
9398
class PragmaOnce;
3202
 
class CCExprResolve;
3203
 
class CExprResolve;
 
9399
class CMatchSyntax;
3204
9400
namespace Puma {
3205
9401
 
3206
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
9402
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3207
9403
class CTypeRecord : public CTypeInfo {
3208
 
#line 3209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9404
#line 9405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9405
  friend class ::CCExprResolve;
 
9406
  friend class ::CExprResolve;
3209
9407
  friend class ::WinIfExists;
3210
9408
  friend class ::WinImportHandler;
3211
9409
  friend class ::WinMacros;
3212
 
  friend class ::CMatchSyntax;
3213
 
  friend class ::ExtGnu;
 
9410
  friend class ::WinAsm;
 
9411
  friend class ::WinDeclSpecs;
 
9412
  friend class ::WinMemberExplSpec;
 
9413
  friend class ::WinTypeKeywords;
 
9414
  friend class ::WinFriend;
3214
9415
  friend class ::ExtAC;
3215
9416
  friend class ::ExtACBuilderCoupling;
3216
9417
  friend class ::ExtACSyntaxCoupling;
3217
9418
  friend class ::ExtACTree;
3218
9419
  friend class ::ExtACKeywords;
3219
 
  friend class ::WinAsm;
3220
 
  friend class ::WinDeclSpecs;
3221
 
  friend class ::WinMemberExplSpec;
3222
 
  friend class ::WinTypeKeywords;
 
9420
  friend class ::ExtGnu;
3223
9421
  friend class ::PragmaOnceUnitState;
3224
9422
  friend class ::PragmaOnce;
3225
 
  friend class ::CCExprResolve;
3226
 
  friend class ::CExprResolve;
 
9423
  friend class ::CMatchSyntax;
3227
9424
 
3228
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
9425
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
3229
9426
 
3230
9427
  bool _hasConstMember;
3231
9428
 
3280
9477
 
3281
9478
#endif /* __CTypeRecord_h__ */
3282
9479
 
3283
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
9480
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3284
9481
// This file is part of PUMA.
3285
9482
// Copyright (C) 1999-2003  The PUMA developer team.
3286
9483
//                                                                
3314
9511
class CRecord;
3315
9512
 
3316
9513
 
3317
 
#line 3318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9514
#line 9515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3318
9515
} // closed Puma
 
9516
class CCExprResolve;
 
9517
class CExprResolve;
3319
9518
class WinIfExists;
3320
9519
class WinImportHandler;
3321
9520
class WinMacros;
3322
 
class CMatchSyntax;
3323
 
class ExtGnu;
 
9521
class WinAsm;
 
9522
class WinDeclSpecs;
 
9523
class WinMemberExplSpec;
 
9524
class WinTypeKeywords;
 
9525
class WinFriend;
3324
9526
class ExtAC;
3325
9527
class ExtACBuilderCoupling;
3326
9528
class ExtACSyntaxCoupling;
3327
9529
class ExtACTree;
3328
9530
class ExtACKeywords;
3329
 
class WinAsm;
3330
 
class WinDeclSpecs;
3331
 
class WinMemberExplSpec;
3332
 
class WinTypeKeywords;
 
9531
class ExtGnu;
3333
9532
class PragmaOnceUnitState;
3334
9533
class PragmaOnce;
3335
 
class CCExprResolve;
3336
 
class CExprResolve;
 
9534
class CMatchSyntax;
3337
9535
namespace Puma {
3338
9536
 
3339
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
9537
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3340
9538
class CTypeClass : public CTypeRecord {
3341
 
#line 3342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9539
#line 9540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9540
  friend class ::CCExprResolve;
 
9541
  friend class ::CExprResolve;
3342
9542
  friend class ::WinIfExists;
3343
9543
  friend class ::WinImportHandler;
3344
9544
  friend class ::WinMacros;
3345
 
  friend class ::CMatchSyntax;
3346
 
  friend class ::ExtGnu;
 
9545
  friend class ::WinAsm;
 
9546
  friend class ::WinDeclSpecs;
 
9547
  friend class ::WinMemberExplSpec;
 
9548
  friend class ::WinTypeKeywords;
 
9549
  friend class ::WinFriend;
3347
9550
  friend class ::ExtAC;
3348
9551
  friend class ::ExtACBuilderCoupling;
3349
9552
  friend class ::ExtACSyntaxCoupling;
3350
9553
  friend class ::ExtACTree;
3351
9554
  friend class ::ExtACKeywords;
3352
 
  friend class ::WinAsm;
3353
 
  friend class ::WinDeclSpecs;
3354
 
  friend class ::WinMemberExplSpec;
3355
 
  friend class ::WinTypeKeywords;
 
9555
  friend class ::ExtGnu;
3356
9556
  friend class ::PragmaOnceUnitState;
3357
9557
  friend class ::PragmaOnce;
3358
 
  friend class ::CCExprResolve;
3359
 
  friend class ::CExprResolve;
 
9558
  friend class ::CMatchSyntax;
3360
9559
 
3361
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
9560
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
3362
9561
 
3363
9562
public:
3364
9563
  CTypeClass (CRecord *);
3378
9577
 
3379
9578
#endif /* __CTypeClass_h__ */
3380
9579
 
3381
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
9580
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3382
9581
// This file is part of PUMA.
3383
9582
// Copyright (C) 1999-2003  The PUMA developer team.
3384
9583
//                                                                
3412
9611
class CRecord;
3413
9612
 
3414
9613
 
3415
 
#line 3416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9614
#line 9615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3416
9615
} // closed Puma
 
9616
class CCExprResolve;
 
9617
class CExprResolve;
3417
9618
class WinIfExists;
3418
9619
class WinImportHandler;
3419
9620
class WinMacros;
3420
 
class CMatchSyntax;
3421
 
class ExtGnu;
 
9621
class WinAsm;
 
9622
class WinDeclSpecs;
 
9623
class WinMemberExplSpec;
 
9624
class WinTypeKeywords;
 
9625
class WinFriend;
3422
9626
class ExtAC;
3423
9627
class ExtACBuilderCoupling;
3424
9628
class ExtACSyntaxCoupling;
3425
9629
class ExtACTree;
3426
9630
class ExtACKeywords;
3427
 
class WinAsm;
3428
 
class WinDeclSpecs;
3429
 
class WinMemberExplSpec;
3430
 
class WinTypeKeywords;
 
9631
class ExtGnu;
3431
9632
class PragmaOnceUnitState;
3432
9633
class PragmaOnce;
3433
 
class CCExprResolve;
3434
 
class CExprResolve;
 
9634
class CMatchSyntax;
3435
9635
namespace Puma {
3436
9636
 
3437
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
9637
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3438
9638
class CTypeUnion : public CTypeRecord {
3439
 
#line 3440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9639
#line 9640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9640
  friend class ::CCExprResolve;
 
9641
  friend class ::CExprResolve;
3440
9642
  friend class ::WinIfExists;
3441
9643
  friend class ::WinImportHandler;
3442
9644
  friend class ::WinMacros;
3443
 
  friend class ::CMatchSyntax;
3444
 
  friend class ::ExtGnu;
 
9645
  friend class ::WinAsm;
 
9646
  friend class ::WinDeclSpecs;
 
9647
  friend class ::WinMemberExplSpec;
 
9648
  friend class ::WinTypeKeywords;
 
9649
  friend class ::WinFriend;
3445
9650
  friend class ::ExtAC;
3446
9651
  friend class ::ExtACBuilderCoupling;
3447
9652
  friend class ::ExtACSyntaxCoupling;
3448
9653
  friend class ::ExtACTree;
3449
9654
  friend class ::ExtACKeywords;
3450
 
  friend class ::WinAsm;
3451
 
  friend class ::WinDeclSpecs;
3452
 
  friend class ::WinMemberExplSpec;
3453
 
  friend class ::WinTypeKeywords;
 
9655
  friend class ::ExtGnu;
3454
9656
  friend class ::PragmaOnceUnitState;
3455
9657
  friend class ::PragmaOnce;
3456
 
  friend class ::CCExprResolve;
3457
 
  friend class ::CExprResolve;
 
9658
  friend class ::CMatchSyntax;
3458
9659
 
3459
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
9660
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
3460
9661
 
3461
9662
public:
3462
9663
  CTypeUnion (CRecord *);
3476
9677
 
3477
9678
#endif /* __CTypeUnion_h__ */
3478
9679
 
3479
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
9680
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3480
9681
// This file is part of PUMA.
3481
9682
// Copyright (C) 1999-2003  The PUMA developer team.
3482
9683
//                                                                
3509
9710
class CTemplateParamInfo;
3510
9711
 
3511
9712
 
3512
 
#line 3513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9713
#line 9714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3513
9714
} // closed Puma
 
9715
class CCExprResolve;
 
9716
class CExprResolve;
3514
9717
class WinIfExists;
3515
9718
class WinImportHandler;
3516
9719
class WinMacros;
3517
 
class CMatchSyntax;
3518
 
class ExtGnu;
 
9720
class WinAsm;
 
9721
class WinDeclSpecs;
 
9722
class WinMemberExplSpec;
 
9723
class WinTypeKeywords;
 
9724
class WinFriend;
3519
9725
class ExtAC;
3520
9726
class ExtACBuilderCoupling;
3521
9727
class ExtACSyntaxCoupling;
3522
9728
class ExtACTree;
3523
9729
class ExtACKeywords;
3524
 
class WinAsm;
3525
 
class WinDeclSpecs;
3526
 
class WinMemberExplSpec;
3527
 
class WinTypeKeywords;
 
9730
class ExtGnu;
3528
9731
class PragmaOnceUnitState;
3529
9732
class PragmaOnce;
3530
 
class CCExprResolve;
3531
 
class CExprResolve;
 
9733
class CMatchSyntax;
3532
9734
namespace Puma {
3533
9735
 
3534
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
9736
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3535
9737
class CTypeTemplateParam : public CTypeInfo {
3536
 
#line 3537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
9738
#line 9739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
9739
  friend class ::CCExprResolve;
 
9740
  friend class ::CExprResolve;
3537
9741
  friend class ::WinIfExists;
3538
9742
  friend class ::WinImportHandler;
3539
9743
  friend class ::WinMacros;
3540
 
  friend class ::CMatchSyntax;
3541
 
  friend class ::ExtGnu;
 
9744
  friend class ::WinAsm;
 
9745
  friend class ::WinDeclSpecs;
 
9746
  friend class ::WinMemberExplSpec;
 
9747
  friend class ::WinTypeKeywords;
 
9748
  friend class ::WinFriend;
3542
9749
  friend class ::ExtAC;
3543
9750
  friend class ::ExtACBuilderCoupling;
3544
9751
  friend class ::ExtACSyntaxCoupling;
3545
9752
  friend class ::ExtACTree;
3546
9753
  friend class ::ExtACKeywords;
3547
 
  friend class ::WinAsm;
3548
 
  friend class ::WinDeclSpecs;
3549
 
  friend class ::WinMemberExplSpec;
3550
 
  friend class ::WinTypeKeywords;
 
9754
  friend class ::ExtGnu;
3551
9755
  friend class ::PragmaOnceUnitState;
3552
9756
  friend class ::PragmaOnce;
3553
 
  friend class ::CCExprResolve;
3554
 
  friend class ::CExprResolve;
 
9757
  friend class ::CMatchSyntax;
3555
9758
 
3556
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
9759
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
3557
9760
 
3558
9761
  CTemplateParamInfo *_TemplateParam;
3559
9762
 
3562
9765
  ~CTypeTemplateParam ();
3563
9766
 
3564
9767
  CTemplateParamInfo *TemplateParamInfo () const;
 
9768
  void TemplateParamInfo (CTemplateParamInfo *);
3565
9769
  bool isType () const;
3566
9770
  bool isNonType () const;
3567
9771
};
3579
9783
inline bool CTypeTemplateParam::isNonType () const
3580
9784
 { return (! isType ()); }
3581
9785
 
 
9786
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
9787
 { _TemplateParam = info; }
3582
9788
 
3583
9789
} // namespace Puma
3584
9790
 
3585
9791
#endif /* __CTypeTemplateParam_h__ */
3586
9792
 
3587
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
9793
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
3588
9794
namespace Puma {
3589
9795
 
3590
9796
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
3610
9816
 
3611
9817
inline void CTypeInfo::print (ostream& out) const 
3612
9818
 { TypeText ((char)PRINT_STD, out); }
3613
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
9819
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
3614
9820
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
3615
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
9821
   if (tdef) flags |= (char)PRINT_TDN; 
 
9822
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
9823
   TypeText (flags, out, t); }
3616
9824
 
3617
9825
inline long int CTypeInfo::Dimension () const
3618
9826
 { return TypeArray () ? TypeArray ()->Dimension () : 
3798
10006
 
3799
10007
#endif /* __CTypeInfo_h__ */
3800
10008
 
3801
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
10009
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3802
10010
namespace Puma {
3803
10011
 
3804
10012
 
3805
10013
 
3806
 
#line 3807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10014
#line 10015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3807
10015
} // closed Puma
 
10016
class CCExprResolve;
 
10017
class CExprResolve;
3808
10018
class WinIfExists;
3809
10019
class WinImportHandler;
3810
10020
class WinMacros;
3811
 
class CMatchSyntax;
3812
 
class ExtGnu;
 
10021
class WinAsm;
 
10022
class WinDeclSpecs;
 
10023
class WinMemberExplSpec;
 
10024
class WinTypeKeywords;
 
10025
class WinFriend;
3813
10026
class ExtAC;
3814
10027
class ExtACBuilderCoupling;
3815
10028
class ExtACSyntaxCoupling;
3816
10029
class ExtACTree;
3817
10030
class ExtACKeywords;
3818
 
class WinAsm;
3819
 
class WinDeclSpecs;
3820
 
class WinMemberExplSpec;
3821
 
class WinTypeKeywords;
 
10031
class ExtGnu;
3822
10032
class PragmaOnceUnitState;
3823
10033
class PragmaOnce;
3824
 
class CCExprResolve;
3825
 
class CExprResolve;
 
10034
class CMatchSyntax;
3826
10035
namespace Puma {
3827
10036
 
3828
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
10037
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3829
10038
class CSemValue {
3830
 
#line 3831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10039
#line 10040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10040
  friend class ::CCExprResolve;
 
10041
  friend class ::CExprResolve;
3831
10042
  friend class ::WinIfExists;
3832
10043
  friend class ::WinImportHandler;
3833
10044
  friend class ::WinMacros;
3834
 
  friend class ::CMatchSyntax;
3835
 
  friend class ::ExtGnu;
 
10045
  friend class ::WinAsm;
 
10046
  friend class ::WinDeclSpecs;
 
10047
  friend class ::WinMemberExplSpec;
 
10048
  friend class ::WinTypeKeywords;
 
10049
  friend class ::WinFriend;
3836
10050
  friend class ::ExtAC;
3837
10051
  friend class ::ExtACBuilderCoupling;
3838
10052
  friend class ::ExtACSyntaxCoupling;
3839
10053
  friend class ::ExtACTree;
3840
10054
  friend class ::ExtACKeywords;
3841
 
  friend class ::WinAsm;
3842
 
  friend class ::WinDeclSpecs;
3843
 
  friend class ::WinMemberExplSpec;
3844
 
  friend class ::WinTypeKeywords;
 
10055
  friend class ::ExtGnu;
3845
10056
  friend class ::PragmaOnceUnitState;
3846
10057
  friend class ::PragmaOnce;
3847
 
  friend class ::CCExprResolve;
3848
 
  friend class ::CExprResolve;
 
10058
  friend class ::CMatchSyntax;
3849
10059
 
3850
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
10060
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
3851
10061
 
3852
10062
  bool value_ref;
3853
10063
  bool type_ref;
3864
10074
  void setValueRef (CExprValue *);
3865
10075
  void setType (CTypeInfo *);
3866
10076
  void setTypeRef (CTypeInfo *);
 
10077
  CExprValue* getValue() { return value; }
 
10078
  CTypeInfo* getType() { return type; }
3867
10079
};
3868
10080
 
3869
10081
inline CSemValue::CSemValue () : 
3895
10107
 
3896
10108
#endif /* __CSemValue_h__ */
3897
10109
 
3898
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
10110
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3899
10111
// This file is part of PUMA.
3900
10112
// Copyright (C) 1999-2003  The PUMA developer team.
3901
10113
//                                                                
3918
10130
#define __CStrLiteral_h__
3919
10131
 
3920
10132
 
3921
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
10133
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3922
10134
namespace Puma {
3923
10135
 
3924
10136
 
3925
10137
 
3926
 
#line 3927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10138
#line 10139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
3927
10139
} // closed Puma
 
10140
class CCExprResolve;
 
10141
class CExprResolve;
3928
10142
class WinIfExists;
3929
10143
class WinImportHandler;
3930
10144
class WinMacros;
3931
 
class CMatchSyntax;
3932
 
class ExtGnu;
 
10145
class WinAsm;
 
10146
class WinDeclSpecs;
 
10147
class WinMemberExplSpec;
 
10148
class WinTypeKeywords;
 
10149
class WinFriend;
3933
10150
class ExtAC;
3934
10151
class ExtACBuilderCoupling;
3935
10152
class ExtACSyntaxCoupling;
3936
10153
class ExtACTree;
3937
10154
class ExtACKeywords;
3938
 
class WinAsm;
3939
 
class WinDeclSpecs;
3940
 
class WinMemberExplSpec;
3941
 
class WinTypeKeywords;
 
10155
class ExtGnu;
3942
10156
class PragmaOnceUnitState;
3943
10157
class PragmaOnce;
3944
 
class CCExprResolve;
3945
 
class CExprResolve;
 
10158
class CMatchSyntax;
3946
10159
namespace Puma {
3947
10160
 
3948
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
10161
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3949
10162
class CStrLiteral : public CExprValue {
3950
 
#line 3951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10163
#line 10164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10164
  friend class ::CCExprResolve;
 
10165
  friend class ::CExprResolve;
3951
10166
  friend class ::WinIfExists;
3952
10167
  friend class ::WinImportHandler;
3953
10168
  friend class ::WinMacros;
3954
 
  friend class ::CMatchSyntax;
3955
 
  friend class ::ExtGnu;
 
10169
  friend class ::WinAsm;
 
10170
  friend class ::WinDeclSpecs;
 
10171
  friend class ::WinMemberExplSpec;
 
10172
  friend class ::WinTypeKeywords;
 
10173
  friend class ::WinFriend;
3956
10174
  friend class ::ExtAC;
3957
10175
  friend class ::ExtACBuilderCoupling;
3958
10176
  friend class ::ExtACSyntaxCoupling;
3959
10177
  friend class ::ExtACTree;
3960
10178
  friend class ::ExtACKeywords;
3961
 
  friend class ::WinAsm;
3962
 
  friend class ::WinDeclSpecs;
3963
 
  friend class ::WinMemberExplSpec;
3964
 
  friend class ::WinTypeKeywords;
 
10179
  friend class ::ExtGnu;
3965
10180
  friend class ::PragmaOnceUnitState;
3966
10181
  friend class ::PragmaOnce;
3967
 
  friend class ::CCExprResolve;
3968
 
  friend class ::CExprResolve;
 
10182
  friend class ::CMatchSyntax;
3969
10183
 
3970
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
10184
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
3971
10185
 
3972
10186
  const char *_string;
3973
10187
  unsigned long _len;
3989
10203
 
3990
10204
#endif /* __CStrLiteral_h__ */
3991
10205
 
3992
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
10206
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
3993
10207
// This file is part of PUMA.
3994
10208
// Copyright (C) 1999-2003  The PUMA developer team.
3995
10209
//                                                                
4020
10234
  TOK_ZERO_VAL,
4021
10235
  TOK_INT_VAL,
4022
10236
  TOK_FLT_VAL,
 
10237
  TOK_STRING_VAL,
 
10238
  TOK_CHAR_VAL,
4023
10239
  TOK_COMMA,
4024
10240
  TOK_ASSIGN,
4025
10241
  TOK_QUESTION,
4202
10418
  TOK_LAST_AC = TOK_UNKNOWN_T,
4203
10419
  
4204
10420
  // further [A](C|C++) token
4205
 
  TOK_STRING_VAL,
4206
 
  TOK_CHAR_VAL,
4207
10421
  TOK_ID,
4208
10422
 
4209
10423
  // These two always have to be the ** last ** token listed here!!!
4216
10430
 
4217
10431
#endif /* __C_TOKENS__ */
4218
10432
 
4219
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
10433
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
4220
10434
// This file is part of PUMA.
4221
10435
// Copyright (C) 1999-2003  The PUMA developer team.
4222
10436
//                                                                
4244
10458
 
4245
10459
#include <stdlib.h>
4246
10460
 
4247
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4248
 
// This file is part of PUMA.
4249
 
// Copyright (C) 1999-2003  The PUMA developer team.
4250
 
//                                                                
4251
 
// This program is free software;  you can redistribute it and/or 
4252
 
// modify it under the terms of the GNU General Public License as 
4253
 
// published by the Free Software Foundation; either version 2 of 
4254
 
// the License, or (at your option) any later version.            
4255
 
//                                                                
4256
 
// This program is distributed in the hope that it will be useful,
4257
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4258
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4259
 
// GNU General Public License for more details.                   
4260
 
//                                                                
4261
 
// You should have received a copy of the GNU General Public      
4262
 
// License along with this program; if not, write to the Free     
4263
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4264
 
// MA  02111-1307  USA                                            
4265
 
 
4266
 
#ifndef __language_id_h__
4267
 
#define __language_id_h__
4268
 
 
4269
 
// A language ID is a unique identifier for a language
4270
 
 
4271
 
namespace Puma {
4272
 
 
4273
 
 
4274
 
 
4275
 
#line 4276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4276
 
} // closed Puma
4277
 
class WinIfExists;
4278
 
class WinImportHandler;
4279
 
class WinMacros;
4280
 
class CMatchSyntax;
4281
 
class ExtGnu;
4282
 
class ExtAC;
4283
 
class ExtACBuilderCoupling;
4284
 
class ExtACSyntaxCoupling;
4285
 
class ExtACTree;
4286
 
class ExtACKeywords;
4287
 
class WinAsm;
4288
 
class WinDeclSpecs;
4289
 
class WinMemberExplSpec;
4290
 
class WinTypeKeywords;
4291
 
class PragmaOnceUnitState;
4292
 
class PragmaOnce;
4293
 
class CCExprResolve;
4294
 
class CExprResolve;
4295
 
namespace Puma {
4296
 
 
4297
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4298
 
class LanguageID {
4299
 
#line 4300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4300
 
  friend class ::WinIfExists;
4301
 
  friend class ::WinImportHandler;
4302
 
  friend class ::WinMacros;
4303
 
  friend class ::CMatchSyntax;
4304
 
  friend class ::ExtGnu;
4305
 
  friend class ::ExtAC;
4306
 
  friend class ::ExtACBuilderCoupling;
4307
 
  friend class ::ExtACSyntaxCoupling;
4308
 
  friend class ::ExtACTree;
4309
 
  friend class ::ExtACKeywords;
4310
 
  friend class ::WinAsm;
4311
 
  friend class ::WinDeclSpecs;
4312
 
  friend class ::WinMemberExplSpec;
4313
 
  friend class ::WinTypeKeywords;
4314
 
  friend class ::PragmaOnceUnitState;
4315
 
  friend class ::PragmaOnce;
4316
 
  friend class ::CCExprResolve;
4317
 
  friend class ::CExprResolve;
4318
 
 
4319
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
4320
 
 
4321
 
  const char *_id;
4322
 
 
4323
 
public:
4324
 
  LanguageID () : _id ((const char*)0) {}
4325
 
  LanguageID (const char *id) : _id (id) {}
4326
 
  operator const char *() const { return _id; }
4327
 
  bool operator == (const LanguageID &id) const
4328
 
   { return _id == (const char*)id; }
4329
 
};
4330
 
 
4331
 
 
4332
 
} // namespace Puma
4333
 
 
4334
 
#endif /* __language_id_h__ */
4335
 
 
4336
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
4337
 
// This file is part of PUMA.
4338
 
// Copyright (C) 1999-2003  The PUMA developer team.
4339
 
//                                                                
4340
 
// This program is free software;  you can redistribute it and/or 
4341
 
// modify it under the terms of the GNU General Public License as 
4342
 
// published by the Free Software Foundation; either version 2 of 
4343
 
// the License, or (at your option) any later version.            
4344
 
//                                                                
4345
 
// This program is distributed in the hope that it will be useful,
4346
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4347
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4348
 
// GNU General Public License for more details.                   
4349
 
//                                                                
4350
 
// You should have received a copy of the GNU General Public      
4351
 
// License along with this program; if not, write to the Free     
4352
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4353
 
// MA  02111-1307  USA                                            
4354
 
 
4355
 
#ifndef __location_h__
4356
 
#define __location_h__
4357
 
 
4358
 
 
4359
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4360
 
// This file is part of PUMA.
4361
 
// Copyright (C) 1999-2003  The PUMA developer team.
4362
 
//                                                                
4363
 
// This program is free software;  you can redistribute it and/or 
4364
 
// modify it under the terms of the GNU General Public License as 
4365
 
// published by the Free Software Foundation; either version 2 of 
4366
 
// the License, or (at your option) any later version.            
4367
 
//                                                                
4368
 
// This program is distributed in the hope that it will be useful,
4369
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4370
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4371
 
// GNU General Public License for more details.                   
4372
 
//                                                                
4373
 
// You should have received a copy of the GNU General Public      
4374
 
// License along with this program; if not, write to the Free     
4375
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4376
 
// MA  02111-1307  USA                                            
4377
 
 
4378
 
#ifndef __smart_ptr_h__
4379
 
#define __smart_ptr_h__
4380
 
 
4381
 
 
4382
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4383
 
// This file is part of PUMA.
4384
 
// Copyright (C) 1999-2003  The PUMA developer team.
4385
 
//                                                                
4386
 
// This program is free software;  you can redistribute it and/or 
4387
 
// modify it under the terms of the GNU General Public License as 
4388
 
// published by the Free Software Foundation; either version 2 of 
4389
 
// the License, or (at your option) any later version.            
4390
 
//                                                                
4391
 
// This program is distributed in the hope that it will be useful,
4392
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4393
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4394
 
// GNU General Public License for more details.                   
4395
 
//                                                                
4396
 
// You should have received a copy of the GNU General Public      
4397
 
// License along with this program; if not, write to the Free     
4398
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4399
 
// MA  02111-1307  USA                                            
4400
 
 
4401
 
#ifndef __ref_cnt_h__
4402
 
#define __ref_cnt_h__
4403
 
 
4404
 
namespace Puma {
4405
 
 
4406
 
 
4407
 
 
4408
 
#line 4409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4409
 
} // closed Puma
4410
 
class WinIfExists;
4411
 
class WinImportHandler;
4412
 
class WinMacros;
4413
 
class CMatchSyntax;
4414
 
class ExtGnu;
4415
 
class ExtAC;
4416
 
class ExtACBuilderCoupling;
4417
 
class ExtACSyntaxCoupling;
4418
 
class ExtACTree;
4419
 
class ExtACKeywords;
4420
 
class WinAsm;
4421
 
class WinDeclSpecs;
4422
 
class WinMemberExplSpec;
4423
 
class WinTypeKeywords;
4424
 
class PragmaOnceUnitState;
4425
 
class PragmaOnce;
4426
 
class CCExprResolve;
4427
 
class CExprResolve;
4428
 
namespace Puma {
4429
 
 
4430
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4431
 
class RefCnt {
4432
 
#line 4433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4433
 
  friend class ::WinIfExists;
4434
 
  friend class ::WinImportHandler;
4435
 
  friend class ::WinMacros;
4436
 
  friend class ::CMatchSyntax;
4437
 
  friend class ::ExtGnu;
4438
 
  friend class ::ExtAC;
4439
 
  friend class ::ExtACBuilderCoupling;
4440
 
  friend class ::ExtACSyntaxCoupling;
4441
 
  friend class ::ExtACTree;
4442
 
  friend class ::ExtACKeywords;
4443
 
  friend class ::WinAsm;
4444
 
  friend class ::WinDeclSpecs;
4445
 
  friend class ::WinMemberExplSpec;
4446
 
  friend class ::WinTypeKeywords;
4447
 
  friend class ::PragmaOnceUnitState;
4448
 
  friend class ::PragmaOnce;
4449
 
  friend class ::CCExprResolve;
4450
 
  friend class ::CExprResolve;
4451
 
 
4452
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
4453
 
 
4454
 
  int _counter;
4455
 
 
4456
 
public:
4457
 
  RefCnt () : _counter (0) {}
4458
 
  virtual ~RefCnt () {}
4459
 
  
4460
 
  void ref () { _counter++; }
4461
 
  void deref () { _counter--; }
4462
 
  int counter () { return _counter; }
4463
 
};
4464
 
 
4465
 
 
4466
 
} // namespace Puma
4467
 
 
4468
 
#endif /* __ref_cnt_h__ */
4469
 
 
4470
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4471
 
namespace Puma {
4472
 
 
4473
 
 
4474
 
 
4475
 
#line 4476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4476
 
} // closed Puma
4477
 
class WinIfExists;
4478
 
class WinImportHandler;
4479
 
class WinMacros;
4480
 
class CMatchSyntax;
4481
 
class ExtGnu;
4482
 
class ExtAC;
4483
 
class ExtACBuilderCoupling;
4484
 
class ExtACSyntaxCoupling;
4485
 
class ExtACTree;
4486
 
class ExtACKeywords;
4487
 
class WinAsm;
4488
 
class WinDeclSpecs;
4489
 
class WinMemberExplSpec;
4490
 
class WinTypeKeywords;
4491
 
class PragmaOnceUnitState;
4492
 
class PragmaOnce;
4493
 
class CCExprResolve;
4494
 
class CExprResolve;
4495
 
namespace Puma {
4496
 
 
4497
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4498
 
class SmartPtr {
4499
 
#line 4500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4500
 
  friend class ::WinIfExists;
4501
 
  friend class ::WinImportHandler;
4502
 
  friend class ::WinMacros;
4503
 
  friend class ::CMatchSyntax;
4504
 
  friend class ::ExtGnu;
4505
 
  friend class ::ExtAC;
4506
 
  friend class ::ExtACBuilderCoupling;
4507
 
  friend class ::ExtACSyntaxCoupling;
4508
 
  friend class ::ExtACTree;
4509
 
  friend class ::ExtACKeywords;
4510
 
  friend class ::WinAsm;
4511
 
  friend class ::WinDeclSpecs;
4512
 
  friend class ::WinMemberExplSpec;
4513
 
  friend class ::WinTypeKeywords;
4514
 
  friend class ::PragmaOnceUnitState;
4515
 
  friend class ::PragmaOnce;
4516
 
  friend class ::CCExprResolve;
4517
 
  friend class ::CExprResolve;
4518
 
 
4519
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
4520
 
 
4521
 
  RefCnt *_data;
4522
 
 
4523
 
public:
4524
 
  SmartPtr () : _data ((RefCnt*)0) {}
4525
 
  ~SmartPtr () { clear (); }
4526
 
  SmartPtr (const SmartPtr &copy);
4527
 
  SmartPtr (RefCnt *rc) : _data (rc) {}
4528
 
  SmartPtr &operator = (const SmartPtr &copy);
4529
 
 
4530
 
  void data (RefCnt *d);
4531
 
  void clear ();
4532
 
  RefCnt *data () const { return _data; }
4533
 
  bool is_defined () const { return _data != (RefCnt*)0; }
4534
 
};
4535
 
 
4536
 
 
4537
 
} // namespace Puma
4538
 
 
4539
 
#endif /* __smart_ptr_h__ */
4540
 
 
4541
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
4542
 
// This file is part of PUMA.
4543
 
// Copyright (C) 1999-2003  The PUMA developer team.
4544
 
//                                                                
4545
 
// This program is free software;  you can redistribute it and/or 
4546
 
// modify it under the terms of the GNU General Public License as 
4547
 
// published by the Free Software Foundation; either version 2 of 
4548
 
// the License, or (at your option) any later version.            
4549
 
//                                                                
4550
 
// This program is distributed in the hope that it will be useful,
4551
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4552
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4553
 
// GNU General Public License for more details.                   
4554
 
//                                                                
4555
 
// You should have received a copy of the GNU General Public      
4556
 
// License along with this program; if not, write to the Free     
4557
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4558
 
// MA  02111-1307  USA                                            
4559
 
 
4560
 
#ifndef __location_info_h__
4561
 
#define __location_info_h__
4562
 
 
4563
 
 
4564
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
4565
 
// This file is part of PUMA.
4566
 
// Copyright (C) 1999-2003  The PUMA developer team.
4567
 
//                                                                
4568
 
// This program is free software;  you can redistribute it and/or 
4569
 
// modify it under the terms of the GNU General Public License as 
4570
 
// published by the Free Software Foundation; either version 2 of 
4571
 
// the License, or (at your option) any later version.            
4572
 
//                                                                
4573
 
// This program is distributed in the hope that it will be useful,
4574
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4575
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4576
 
// GNU General Public License for more details.                   
4577
 
//                                                                
4578
 
// You should have received a copy of the GNU General Public      
4579
 
// License along with this program; if not, write to the Free     
4580
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4581
 
// MA  02111-1307  USA                                            
4582
 
 
4583
 
#ifndef __filename_h__
4584
 
#define __filename_h__
4585
 
 
4586
 
 
4587
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
4588
 
// This file is part of PUMA.
4589
 
// Copyright (C) 1999-2003  The PUMA developer team.
4590
 
//                                                                
4591
 
// This program is free software;  you can redistribute it and/or 
4592
 
// modify it under the terms of the GNU General Public License as 
4593
 
// published by the Free Software Foundation; either version 2 of 
4594
 
// the License, or (at your option) any later version.            
4595
 
//                                                                
4596
 
// This program is distributed in the hope that it will be useful,
4597
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4598
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4599
 
// GNU General Public License for more details.                   
4600
 
//                                                                
4601
 
// You should have received a copy of the GNU General Public      
4602
 
// License along with this program; if not, write to the Free     
4603
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4604
 
// MA  02111-1307  USA                                            
4605
 
 
4606
 
#ifndef __filename_info_h__
4607
 
#define __filename_info_h__
4608
 
 
4609
 
 
4610
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
4611
 
// This file is part of PUMA.
4612
 
// Copyright (C) 1999-2003  The PUMA developer team.
4613
 
//                                                                
4614
 
// This program is free software;  you can redistribute it and/or 
4615
 
// modify it under the terms of the GNU General Public License as 
4616
 
// published by the Free Software Foundation; either version 2 of 
4617
 
// the License, or (at your option) any later version.            
4618
 
//                                                                
4619
 
// This program is distributed in the hope that it will be useful,
4620
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4621
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4622
 
// GNU General Public License for more details.                   
4623
 
//                                                                
4624
 
// You should have received a copy of the GNU General Public      
4625
 
// License along with this program; if not, write to the Free     
4626
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4627
 
// MA  02111-1307  USA                                            
4628
 
 
4629
 
#ifndef __DString_h__
4630
 
#define __DString_h__
4631
 
 
4632
 
 
4633
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4634
 
// This file is part of PUMA.
4635
 
// Copyright (C) 1999-2003  The PUMA developer team.
4636
 
//                                                                
4637
 
// This program is free software;  you can redistribute it and/or 
4638
 
// modify it under the terms of the GNU General Public License as 
4639
 
// published by the Free Software Foundation; either version 2 of 
4640
 
// the License, or (at your option) any later version.            
4641
 
//                                                                
4642
 
// This program is distributed in the hope that it will be useful,
4643
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4644
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4645
 
// GNU General Public License for more details.                   
4646
 
//                                                                
4647
 
// You should have received a copy of the GNU General Public      
4648
 
// License along with this program; if not, write to the Free     
4649
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4650
 
// MA  02111-1307  USA                                            
4651
 
 
4652
 
#ifndef __StrHashTable_h__
4653
 
#define __StrHashTable_h__
4654
 
 
4655
 
 
4656
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4657
 
// This file is part of PUMA.
4658
 
// Copyright (C) 1999-2003  The PUMA developer team.
4659
 
//                                                                
4660
 
// This program is free software;  you can redistribute it and/or 
4661
 
// modify it under the terms of the GNU General Public License as 
4662
 
// published by the Free Software Foundation; either version 2 of 
4663
 
// the License, or (at your option) any later version.            
4664
 
//                                                                
4665
 
// This program is distributed in the hope that it will be useful,
4666
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4667
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4668
 
// GNU General Public License for more details.                   
4669
 
//                                                                
4670
 
// You should have received a copy of the GNU General Public      
4671
 
// License along with this program; if not, write to the Free     
4672
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4673
 
// MA  02111-1307  USA                                            
4674
 
 
4675
 
#ifndef __StrHashKey_h__
4676
 
#define __StrHashKey_h__
4677
 
 
4678
 
 
4679
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
4680
 
// This file is part of PUMA.
4681
 
// Copyright (C) 1999-2003  The PUMA developer team.
4682
 
//                                                                
4683
 
// This program is free software;  you can redistribute it and/or 
4684
 
// modify it under the terms of the GNU General Public License as 
4685
 
// published by the Free Software Foundation; either version 2 of 
4686
 
// the License, or (at your option) any later version.            
4687
 
//                                                                
4688
 
// This program is distributed in the hope that it will be useful,
4689
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4690
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4691
 
// GNU General Public License for more details.                   
4692
 
//                                                                
4693
 
// You should have received a copy of the GNU General Public      
4694
 
// License along with this program; if not, write to the Free     
4695
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4696
 
// MA  02111-1307  USA                                            
4697
 
 
4698
 
#ifndef __str_col__
4699
 
#define __str_col__
4700
 
 
4701
 
// Collection of functions handling strings.
4702
 
 
4703
 
namespace Puma {
4704
 
 
4705
 
 
4706
 
class Unit;
4707
 
 
4708
 
 
4709
 
#line 4710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4710
 
} // closed Puma
4711
 
class WinIfExists;
4712
 
class WinImportHandler;
4713
 
class WinMacros;
4714
 
class CMatchSyntax;
4715
 
class ExtGnu;
4716
 
class ExtAC;
4717
 
class ExtACBuilderCoupling;
4718
 
class ExtACSyntaxCoupling;
4719
 
class ExtACTree;
4720
 
class ExtACKeywords;
4721
 
class WinAsm;
4722
 
class WinDeclSpecs;
4723
 
class WinMemberExplSpec;
4724
 
class WinTypeKeywords;
4725
 
class PragmaOnceUnitState;
4726
 
class PragmaOnce;
4727
 
class CCExprResolve;
4728
 
class CExprResolve;
4729
 
namespace Puma {
4730
 
 
4731
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
4732
 
class StrCol {
4733
 
#line 4734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4734
 
  friend class ::WinIfExists;
4735
 
  friend class ::WinImportHandler;
4736
 
  friend class ::WinMacros;
4737
 
  friend class ::CMatchSyntax;
4738
 
  friend class ::ExtGnu;
4739
 
  friend class ::ExtAC;
4740
 
  friend class ::ExtACBuilderCoupling;
4741
 
  friend class ::ExtACSyntaxCoupling;
4742
 
  friend class ::ExtACTree;
4743
 
  friend class ::ExtACKeywords;
4744
 
  friend class ::WinAsm;
4745
 
  friend class ::WinDeclSpecs;
4746
 
  friend class ::WinMemberExplSpec;
4747
 
  friend class ::WinTypeKeywords;
4748
 
  friend class ::PragmaOnceUnitState;
4749
 
  friend class ::PragmaOnce;
4750
 
  friend class ::CCExprResolve;
4751
 
  friend class ::CExprResolve;
4752
 
 
4753
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
4754
 
 
4755
 
protected:
4756
 
  StrCol () {}
4757
 
        
4758
 
public:
4759
 
  // Return true if c is a white space character.
4760
 
  static bool isSpace (const char c);
4761
 
 
4762
 
  // Return true if the string consists only of spaces.
4763
 
  static bool onlySpaces (const char *);
4764
 
 
4765
 
  // Return true if the two strings differ not only in spaces.
4766
 
  static bool effectivelyDifferent (const char *, const char *);
4767
 
 
4768
 
  // Build a string from a unit.
4769
 
  static char *buildString (Unit *);
4770
 
        
4771
 
  // Duplicate a string
4772
 
  static char *dup (const char *);
4773
 
  static char *dup (const char *, int);
4774
 
};
4775
 
 
4776
 
 
4777
 
} // namespace Puma
4778
 
 
4779
 
#endif /* __str_col__ */
4780
 
 
4781
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
4782
 
// This file is part of PUMA.
4783
 
// Copyright (C) 1999-2003  The PUMA developer team.
4784
 
//                                                                
4785
 
// This program is free software;  you can redistribute it and/or 
4786
 
// modify it under the terms of the GNU General Public License as 
4787
 
// published by the Free Software Foundation; either version 2 of 
4788
 
// the License, or (at your option) any later version.            
4789
 
//                                                                
4790
 
// This program is distributed in the hope that it will be useful,
4791
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4792
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4793
 
// GNU General Public License for more details.                   
4794
 
//                                                                
4795
 
// You should have received a copy of the GNU General Public      
4796
 
// License along with this program; if not, write to the Free     
4797
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4798
 
// MA  02111-1307  USA                                            
4799
 
 
4800
 
#ifndef __Chain_h__
4801
 
#define __Chain_h__
4802
 
 
4803
 
//
4804
 
// implements a simple chain
4805
 
// 
4806
 
 
4807
 
#ifndef __puma
4808
 
#include <iostream>
4809
 
using namespace std;
4810
 
#endif 
4811
 
 
4812
 
namespace Puma {
4813
 
 
4814
 
 
4815
 
 
4816
 
#line 4817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4817
 
} // closed Puma
4818
 
class WinIfExists;
4819
 
class WinImportHandler;
4820
 
class WinMacros;
4821
 
class CMatchSyntax;
4822
 
class ExtGnu;
4823
 
class ExtAC;
4824
 
class ExtACBuilderCoupling;
4825
 
class ExtACSyntaxCoupling;
4826
 
class ExtACTree;
4827
 
class ExtACKeywords;
4828
 
class WinAsm;
4829
 
class WinDeclSpecs;
4830
 
class WinMemberExplSpec;
4831
 
class WinTypeKeywords;
4832
 
class PragmaOnceUnitState;
4833
 
class PragmaOnce;
4834
 
class CCExprResolve;
4835
 
class CExprResolve;
4836
 
namespace Puma {
4837
 
 
4838
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
4839
 
class Chain {
4840
 
#line 4841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4841
 
  friend class ::WinIfExists;
4842
 
  friend class ::WinImportHandler;
4843
 
  friend class ::WinMacros;
4844
 
  friend class ::CMatchSyntax;
4845
 
  friend class ::ExtGnu;
4846
 
  friend class ::ExtAC;
4847
 
  friend class ::ExtACBuilderCoupling;
4848
 
  friend class ::ExtACSyntaxCoupling;
4849
 
  friend class ::ExtACTree;
4850
 
  friend class ::ExtACKeywords;
4851
 
  friend class ::WinAsm;
4852
 
  friend class ::WinDeclSpecs;
4853
 
  friend class ::WinMemberExplSpec;
4854
 
  friend class ::WinTypeKeywords;
4855
 
  friend class ::PragmaOnceUnitState;
4856
 
  friend class ::PragmaOnce;
4857
 
  friend class ::CCExprResolve;
4858
 
  friend class ::CExprResolve;
4859
 
 
4860
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
4861
 
 
4862
 
  Chain *next;
4863
 
 
4864
 
public:
4865
 
  Chain () { next = 0; }
4866
 
   
4867
 
  void select (Chain *c) { next = c; }
4868
 
  Chain *select () const { return next; }
4869
 
 
4870
 
  Chain *unlink () {
4871
 
    Chain *res = next;
4872
 
    if (next) {
4873
 
      next = next->select ();
4874
 
    }
4875
 
    return res;
4876
 
  }
4877
 
 
4878
 
  void insert (Chain *c) {
4879
 
    c->select (next);
4880
 
    next = c;
4881
 
  }
4882
 
};
4883
 
 
4884
 
#ifndef __puma
4885
 
 
4886
 
 
4887
 
//
4888
 
// Chain with useage/max counter
4889
 
// 
4890
 
 
4891
 
class ChainCnt : public Chain {
4892
 
  const char* name;
4893
 
 
4894
 
public:
4895
 
  long long max, use;
4896
 
  
4897
 
  ChainCnt (const char *n) : name (n) { max = use = 0; }
4898
 
  ~ChainCnt () {
4899
 
    cout << "max list " << name << ": " << max << endl;
4900
 
  }
4901
 
 
4902
 
  Chain *unlink () {
4903
 
    Chain *c = Chain::unlink ();
4904
 
    if (c) 
4905
 
      use--;
4906
 
    return c;
4907
 
  }
4908
 
  
4909
 
  void insert (Chain *c) {
4910
 
    use++;
4911
 
    if(use > max) 
4912
 
      max = use;
4913
 
    Chain::insert (c);
4914
 
  }
4915
 
};
4916
 
 
4917
 
#endif /* __puma */
4918
 
 
4919
 
 
4920
 
} // namespace Puma
4921
 
 
4922
 
#endif /* __Chain_h__ */
4923
 
 
4924
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4925
 
namespace Puma {
4926
 
 
4927
 
 
4928
 
 
4929
 
#line 4930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4930
 
} // closed Puma
4931
 
class WinIfExists;
4932
 
class WinImportHandler;
4933
 
class WinMacros;
4934
 
class CMatchSyntax;
4935
 
class ExtGnu;
4936
 
class ExtAC;
4937
 
class ExtACBuilderCoupling;
4938
 
class ExtACSyntaxCoupling;
4939
 
class ExtACTree;
4940
 
class ExtACKeywords;
4941
 
class WinAsm;
4942
 
class WinDeclSpecs;
4943
 
class WinMemberExplSpec;
4944
 
class WinTypeKeywords;
4945
 
class PragmaOnceUnitState;
4946
 
class PragmaOnce;
4947
 
class CCExprResolve;
4948
 
class CExprResolve;
4949
 
namespace Puma {
4950
 
 
4951
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4952
 
class StrHashKey : public Chain {
4953
 
#line 4954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
4954
 
  friend class ::WinIfExists;
4955
 
  friend class ::WinImportHandler;
4956
 
  friend class ::WinMacros;
4957
 
  friend class ::CMatchSyntax;
4958
 
  friend class ::ExtGnu;
4959
 
  friend class ::ExtAC;
4960
 
  friend class ::ExtACBuilderCoupling;
4961
 
  friend class ::ExtACSyntaxCoupling;
4962
 
  friend class ::ExtACTree;
4963
 
  friend class ::ExtACKeywords;
4964
 
  friend class ::WinAsm;
4965
 
  friend class ::WinDeclSpecs;
4966
 
  friend class ::WinMemberExplSpec;
4967
 
  friend class ::WinTypeKeywords;
4968
 
  friend class ::PragmaOnceUnitState;
4969
 
  friend class ::PragmaOnce;
4970
 
  friend class ::CCExprResolve;
4971
 
  friend class ::CExprResolve;
4972
 
 
4973
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
4974
 
 
4975
 
  unsigned int m_Magic;
4976
 
  unsigned int m_Len;
4977
 
  const char  *m_Str;
4978
 
 
4979
 
  StrHashKey () : m_Len (0), m_Str (0) {}
4980
 
 
4981
 
public:
4982
 
  StrHashKey (int m, const char *s, int l) : 
4983
 
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
4984
 
 
4985
 
  unsigned int getMagic () const { return m_Magic; }
4986
 
  unsigned int length () const { return m_Len; }
4987
 
  const char  *c_str () const { return m_Str; }
4988
 
};
4989
 
 
4990
 
 
4991
 
} // namespace Puma
4992
 
 
4993
 
#endif /* __StrHashKey_h__ */
4994
 
 
4995
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
4996
 
#include <assert.h>
4997
 
 
4998
 
namespace Puma {
4999
 
 
5000
 
 
5001
 
 
5002
 
#line 5003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5003
 
} // closed Puma
5004
 
class WinIfExists;
5005
 
class WinImportHandler;
5006
 
class WinMacros;
5007
 
class CMatchSyntax;
5008
 
class ExtGnu;
5009
 
class ExtAC;
5010
 
class ExtACBuilderCoupling;
5011
 
class ExtACSyntaxCoupling;
5012
 
class ExtACTree;
5013
 
class ExtACKeywords;
5014
 
class WinAsm;
5015
 
class WinDeclSpecs;
5016
 
class WinMemberExplSpec;
5017
 
class WinTypeKeywords;
5018
 
class PragmaOnceUnitState;
5019
 
class PragmaOnce;
5020
 
class CCExprResolve;
5021
 
class CExprResolve;
5022
 
namespace Puma {
5023
 
 
5024
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
5025
 
class StrHashTable {
5026
 
#line 5027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5027
 
  friend class ::WinIfExists;
5028
 
  friend class ::WinImportHandler;
5029
 
  friend class ::WinMacros;
5030
 
  friend class ::CMatchSyntax;
5031
 
  friend class ::ExtGnu;
5032
 
  friend class ::ExtAC;
5033
 
  friend class ::ExtACBuilderCoupling;
5034
 
  friend class ::ExtACSyntaxCoupling;
5035
 
  friend class ::ExtACTree;
5036
 
  friend class ::ExtACKeywords;
5037
 
  friend class ::WinAsm;
5038
 
  friend class ::WinDeclSpecs;
5039
 
  friend class ::WinMemberExplSpec;
5040
 
  friend class ::WinTypeKeywords;
5041
 
  friend class ::PragmaOnceUnitState;
5042
 
  friend class ::PragmaOnce;
5043
 
  friend class ::CCExprResolve;
5044
 
  friend class ::CExprResolve;
5045
 
 
5046
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
5047
 
 
5048
 
  StrHashKey *_emptyKey;
5049
 
 
5050
 
public:
5051
 
  StrHashTable () {
5052
 
    _emptyKey = insert ("");
5053
 
    assert (_emptyKey);
5054
 
  }
5055
 
 
5056
 
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
5057
 
  StrHashKey *insert (const char *);
5058
 
  void remove (StrHashKey *);
5059
 
 
5060
 
  enum { STRHASHTABLE_SIZE=0xffff };
5061
 
  
5062
 
private:
5063
 
  Chain m_Table[STRHASHTABLE_SIZE];
5064
 
 
5065
 
  StrHashKey *find (unsigned int, const char *, unsigned int);
5066
 
  unsigned int hash (const char *, unsigned int);
5067
 
};
5068
 
 
5069
 
 
5070
 
} // namespace Puma
5071
 
 
5072
 
#endif /* __StrHashTable_h__ */
5073
 
 
5074
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
5075
 
#include <assert.h>
5076
 
 
5077
 
namespace Puma {
5078
 
 
5079
 
 
5080
 
extern StrHashTable ___str_dict;
5081
 
 
5082
 
 
5083
 
#line 5084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5084
 
} // closed Puma
5085
 
class WinIfExists;
5086
 
class WinImportHandler;
5087
 
class WinMacros;
5088
 
class CMatchSyntax;
5089
 
class ExtGnu;
5090
 
class ExtAC;
5091
 
class ExtACBuilderCoupling;
5092
 
class ExtACSyntaxCoupling;
5093
 
class ExtACTree;
5094
 
class ExtACKeywords;
5095
 
class WinAsm;
5096
 
class WinDeclSpecs;
5097
 
class WinMemberExplSpec;
5098
 
class WinTypeKeywords;
5099
 
class PragmaOnceUnitState;
5100
 
class PragmaOnce;
5101
 
class CCExprResolve;
5102
 
class CExprResolve;
5103
 
namespace Puma {
5104
 
 
5105
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
5106
 
class DString {
5107
 
#line 5108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5108
 
  friend class ::WinIfExists;
5109
 
  friend class ::WinImportHandler;
5110
 
  friend class ::WinMacros;
5111
 
  friend class ::CMatchSyntax;
5112
 
  friend class ::ExtGnu;
5113
 
  friend class ::ExtAC;
5114
 
  friend class ::ExtACBuilderCoupling;
5115
 
  friend class ::ExtACSyntaxCoupling;
5116
 
  friend class ::ExtACTree;
5117
 
  friend class ::ExtACKeywords;
5118
 
  friend class ::WinAsm;
5119
 
  friend class ::WinDeclSpecs;
5120
 
  friend class ::WinMemberExplSpec;
5121
 
  friend class ::WinTypeKeywords;
5122
 
  friend class ::PragmaOnceUnitState;
5123
 
  friend class ::PragmaOnce;
5124
 
  friend class ::CCExprResolve;
5125
 
  friend class ::CExprResolve;
5126
 
 
5127
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
5128
 
 
5129
 
  StrHashKey *m_Key;
5130
 
 
5131
 
public:
5132
 
  DString () {
5133
 
    m_Key = ___str_dict.empty ();
5134
 
    assert (m_Key);
5135
 
  }
5136
 
  DString (const char *s) {
5137
 
    if(s == 0) {
5138
 
      m_Key = ___str_dict.empty ();
5139
 
    } else {
5140
 
      m_Key = ___str_dict.insert (s);
5141
 
    }
5142
 
    assert (m_Key);
5143
 
  }
5144
 
  DString (const DString &s) : m_Key (s.m_Key) {
5145
 
    assert (s.m_Key);
5146
 
  }
5147
 
  
5148
 
  DString &operator = (const DString &s) {
5149
 
    assert (s.m_Key);
5150
 
    m_Key = s.m_Key;
5151
 
    return *this;
5152
 
  }
5153
 
  
5154
 
  DString &operator = (const char *s) {
5155
 
    if(s == 0) {
5156
 
      m_Key = ___str_dict.empty ();
5157
 
    } else {
5158
 
      m_Key = ___str_dict.insert (s);
5159
 
    }
5160
 
    assert (m_Key);
5161
 
    return *this;
5162
 
  }
5163
 
 
5164
 
  bool operator == (const DString &s) const { 
5165
 
    assert (m_Key && s.m_Key);
5166
 
    return m_Key == s.m_Key; 
5167
 
  }
5168
 
  bool operator != (const DString &s) const { 
5169
 
    assert (m_Key && s.m_Key);
5170
 
    return m_Key != s.m_Key; 
5171
 
  }
5172
 
 
5173
 
  const char *c_str() const { 
5174
 
    assert (m_Key);
5175
 
    return m_Key->c_str (); 
5176
 
  }
5177
 
  unsigned int length () const { 
5178
 
    assert (m_Key);
5179
 
    return m_Key->length (); 
5180
 
  }
5181
 
  bool empty () const {
5182
 
    assert (m_Key);
5183
 
    return m_Key->length () == 0;
5184
 
  }
5185
 
  unsigned int magic () const { 
5186
 
    assert (m_Key);
5187
 
    return m_Key->getMagic (); 
5188
 
  }
5189
 
 
5190
 
  operator const char *() const {
5191
 
    assert (m_Key);
5192
 
    return c_str ();
5193
 
  }
5194
 
};
5195
 
 
5196
 
 
5197
 
} // namespace Puma
5198
 
 
5199
 
#endif /* __DString_h__ */
5200
 
 
5201
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5202
 
namespace Puma {
5203
 
 
5204
 
 
5205
 
 
5206
 
#line 5207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5207
 
} // closed Puma
5208
 
class WinIfExists;
5209
 
class WinImportHandler;
5210
 
class WinMacros;
5211
 
class CMatchSyntax;
5212
 
class ExtGnu;
5213
 
class ExtAC;
5214
 
class ExtACBuilderCoupling;
5215
 
class ExtACSyntaxCoupling;
5216
 
class ExtACTree;
5217
 
class ExtACKeywords;
5218
 
class WinAsm;
5219
 
class WinDeclSpecs;
5220
 
class WinMemberExplSpec;
5221
 
class WinTypeKeywords;
5222
 
class PragmaOnceUnitState;
5223
 
class PragmaOnce;
5224
 
class CCExprResolve;
5225
 
class CExprResolve;
5226
 
namespace Puma {
5227
 
 
5228
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5229
 
class FilenameInfo : public RefCnt {
5230
 
#line 5231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5231
 
  friend class ::WinIfExists;
5232
 
  friend class ::WinImportHandler;
5233
 
  friend class ::WinMacros;
5234
 
  friend class ::CMatchSyntax;
5235
 
  friend class ::ExtGnu;
5236
 
  friend class ::ExtAC;
5237
 
  friend class ::ExtACBuilderCoupling;
5238
 
  friend class ::ExtACSyntaxCoupling;
5239
 
  friend class ::ExtACTree;
5240
 
  friend class ::ExtACKeywords;
5241
 
  friend class ::WinAsm;
5242
 
  friend class ::WinDeclSpecs;
5243
 
  friend class ::WinMemberExplSpec;
5244
 
  friend class ::WinTypeKeywords;
5245
 
  friend class ::PragmaOnceUnitState;
5246
 
  friend class ::PragmaOnce;
5247
 
  friend class ::CCExprResolve;
5248
 
  friend class ::CExprResolve;
5249
 
 
5250
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
5251
 
 
5252
 
  DString _name;
5253
 
  const char *_path;
5254
 
  const char *_root;
5255
 
 
5256
 
public:
5257
 
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
5258
 
  ~FilenameInfo ();
5259
 
  void name (const char *n);
5260
 
  void name (const DString &dsn) { _name = dsn; }
5261
 
  const char *name () const { return _name.c_str (); }
5262
 
  const char *path ();
5263
 
  const char *root ();
5264
 
  bool is_absolute () const;
5265
 
  bool operator == (const FilenameInfo &rc) const {
5266
 
    return _name == rc._name;
5267
 
  }
5268
 
};
5269
 
 
5270
 
 
5271
 
} // namespace Puma
5272
 
 
5273
 
#endif /* __filename_info_h__ */
5274
 
 
5275
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
5276
 
namespace Puma {
5277
 
 
5278
 
 
5279
 
 
5280
 
#line 5281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5281
 
} // closed Puma
5282
 
class WinIfExists;
5283
 
class WinImportHandler;
5284
 
class WinMacros;
5285
 
class CMatchSyntax;
5286
 
class ExtGnu;
5287
 
class ExtAC;
5288
 
class ExtACBuilderCoupling;
5289
 
class ExtACSyntaxCoupling;
5290
 
class ExtACTree;
5291
 
class ExtACKeywords;
5292
 
class WinAsm;
5293
 
class WinDeclSpecs;
5294
 
class WinMemberExplSpec;
5295
 
class WinTypeKeywords;
5296
 
class PragmaOnceUnitState;
5297
 
class PragmaOnce;
5298
 
class CCExprResolve;
5299
 
class CExprResolve;
5300
 
namespace Puma {
5301
 
 
5302
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
5303
 
class Filename : public SmartPtr, public Printable {
5304
 
#line 5305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5305
 
  friend class ::WinIfExists;
5306
 
  friend class ::WinImportHandler;
5307
 
  friend class ::WinMacros;
5308
 
  friend class ::CMatchSyntax;
5309
 
  friend class ::ExtGnu;
5310
 
  friend class ::ExtAC;
5311
 
  friend class ::ExtACBuilderCoupling;
5312
 
  friend class ::ExtACSyntaxCoupling;
5313
 
  friend class ::ExtACTree;
5314
 
  friend class ::ExtACKeywords;
5315
 
  friend class ::WinAsm;
5316
 
  friend class ::WinDeclSpecs;
5317
 
  friend class ::WinMemberExplSpec;
5318
 
  friend class ::WinTypeKeywords;
5319
 
  friend class ::PragmaOnceUnitState;
5320
 
  friend class ::PragmaOnce;
5321
 
  friend class ::CCExprResolve;
5322
 
  friend class ::CExprResolve;
5323
 
 
5324
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
5325
 
 
5326
 
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
5327
 
 
5328
 
public:
5329
 
  Filename () {}
5330
 
  Filename (const char *n) { name (n); }
5331
 
  Filename &operator = (const char *n) { name (n); return *this; }
5332
 
  void name (const char *n);
5333
 
  const char *name () const;
5334
 
  const char *path () const;
5335
 
  const char *root () const;
5336
 
  bool is_absolute () const;
5337
 
  bool operator == (const Filename &f) const;
5338
 
  bool operator != (const Filename &f) const { return !(*this == f); }
5339
 
  virtual void print (ostream &os) const { if (info ()) os << name (); }
5340
 
};
5341
 
 
5342
 
 
5343
 
} // namespace Puma
5344
 
 
5345
 
#endif /* __filename_h__ */
5346
 
 
5347
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
5348
 
namespace Puma {
5349
 
 
5350
 
 
5351
 
 
5352
 
#line 5353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5353
 
} // closed Puma
5354
 
class WinIfExists;
5355
 
class WinImportHandler;
5356
 
class WinMacros;
5357
 
class CMatchSyntax;
5358
 
class ExtGnu;
5359
 
class ExtAC;
5360
 
class ExtACBuilderCoupling;
5361
 
class ExtACSyntaxCoupling;
5362
 
class ExtACTree;
5363
 
class ExtACKeywords;
5364
 
class WinAsm;
5365
 
class WinDeclSpecs;
5366
 
class WinMemberExplSpec;
5367
 
class WinTypeKeywords;
5368
 
class PragmaOnceUnitState;
5369
 
class PragmaOnce;
5370
 
class CCExprResolve;
5371
 
class CExprResolve;
5372
 
namespace Puma {
5373
 
 
5374
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
5375
 
class LocationInfo : public RefCnt {
5376
 
#line 5377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5377
 
  friend class ::WinIfExists;
5378
 
  friend class ::WinImportHandler;
5379
 
  friend class ::WinMacros;
5380
 
  friend class ::CMatchSyntax;
5381
 
  friend class ::ExtGnu;
5382
 
  friend class ::ExtAC;
5383
 
  friend class ::ExtACBuilderCoupling;
5384
 
  friend class ::ExtACSyntaxCoupling;
5385
 
  friend class ::ExtACTree;
5386
 
  friend class ::ExtACKeywords;
5387
 
  friend class ::WinAsm;
5388
 
  friend class ::WinDeclSpecs;
5389
 
  friend class ::WinMemberExplSpec;
5390
 
  friend class ::WinTypeKeywords;
5391
 
  friend class ::PragmaOnceUnitState;
5392
 
  friend class ::PragmaOnce;
5393
 
  friend class ::CCExprResolve;
5394
 
  friend class ::CExprResolve;
5395
 
 
5396
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
5397
 
 
5398
 
  Filename _filename;
5399
 
  int _line;
5400
 
 
5401
 
public:
5402
 
  LocationInfo () : _filename (), _line (0) {}
5403
 
  void setup (Filename f, int l);
5404
 
  const Filename &filename () const { return _filename; }
5405
 
  int line () const { return _line; }
5406
 
  bool operator < (const LocationInfo &l) const;
5407
 
  bool operator == (const LocationInfo &l) const;
5408
 
};
5409
 
 
5410
 
 
5411
 
} // namespace Puma
5412
 
 
5413
 
#endif /* __location_info_h__ */
5414
 
 
5415
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5416
 
namespace Puma {
5417
 
 
5418
 
 
5419
 
 
5420
 
#line 5421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5421
 
} // closed Puma
5422
 
class WinIfExists;
5423
 
class WinImportHandler;
5424
 
class WinMacros;
5425
 
class CMatchSyntax;
5426
 
class ExtGnu;
5427
 
class ExtAC;
5428
 
class ExtACBuilderCoupling;
5429
 
class ExtACSyntaxCoupling;
5430
 
class ExtACTree;
5431
 
class ExtACKeywords;
5432
 
class WinAsm;
5433
 
class WinDeclSpecs;
5434
 
class WinMemberExplSpec;
5435
 
class WinTypeKeywords;
5436
 
class PragmaOnceUnitState;
5437
 
class PragmaOnce;
5438
 
class CCExprResolve;
5439
 
class CExprResolve;
5440
 
namespace Puma {
5441
 
 
5442
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5443
 
class Location : public SmartPtr, public Printable {
5444
 
#line 5445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5445
 
  friend class ::WinIfExists;
5446
 
  friend class ::WinImportHandler;
5447
 
  friend class ::WinMacros;
5448
 
  friend class ::CMatchSyntax;
5449
 
  friend class ::ExtGnu;
5450
 
  friend class ::ExtAC;
5451
 
  friend class ::ExtACBuilderCoupling;
5452
 
  friend class ::ExtACSyntaxCoupling;
5453
 
  friend class ::ExtACTree;
5454
 
  friend class ::ExtACKeywords;
5455
 
  friend class ::WinAsm;
5456
 
  friend class ::WinDeclSpecs;
5457
 
  friend class ::WinMemberExplSpec;
5458
 
  friend class ::WinTypeKeywords;
5459
 
  friend class ::PragmaOnceUnitState;
5460
 
  friend class ::PragmaOnce;
5461
 
  friend class ::CCExprResolve;
5462
 
  friend class ::CExprResolve;
5463
 
 
5464
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
5465
 
 
5466
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
5467
 
 
5468
 
public:
5469
 
  Location () {}
5470
 
  Location (Filename f, int l) { setup (f, l); }
5471
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
5472
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
5473
 
  void setup (Filename f, int l);
5474
 
  const Filename &filename () const   { return info ()->filename (); }
5475
 
  int line () const;
5476
 
  bool operator == (const Location &l) const;
5477
 
  bool operator != (const Location &l) const { return ! (*this == l); }
5478
 
  bool operator < (const Location &l) const;
5479
 
 
5480
 
  virtual void print (ostream &os) const {
5481
 
    if (info ())
5482
 
#ifdef VISUAL_STUDIO
5483
 
      os << filename () << "(" << line () << ")";
5484
 
#else
5485
 
      os << filename () << ":" << line ();
5486
 
#endif
5487
 
  }
5488
 
};
5489
 
 
5490
 
 
5491
 
} // namespace Puma
5492
 
 
5493
 
#endif /* __location_h__ */
5494
 
 
5495
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
5496
 
// This file is part of PUMA.
5497
 
// Copyright (C) 1999-2003  The PUMA developer team.
5498
 
//                                                                
5499
 
// This program is free software;  you can redistribute it and/or 
5500
 
// modify it under the terms of the GNU General Public License as 
5501
 
// published by the Free Software Foundation; either version 2 of 
5502
 
// the License, or (at your option) any later version.            
5503
 
//                                                                
5504
 
// This program is distributed in the hope that it will be useful,
5505
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
5506
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
5507
 
// GNU General Public License for more details.                   
5508
 
//                                                                
5509
 
// You should have received a copy of the GNU General Public      
5510
 
// License along with this program; if not, write to the Free     
5511
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
5512
 
// MA  02111-1307  USA                                            
5513
 
 
5514
 
#ifndef __list_element_h__
5515
 
#define __list_element_h__
5516
 
 
5517
 
// Base class for objects that may be inserted into a List. Lists
5518
 
// autonomously delete or copy list element. So it's necessary to
5519
 
// define a destructor and a duplicate method in the derived
5520
 
// classes.
5521
 
 
5522
 
#include <assert.h>
5523
 
 
5524
 
namespace Puma {
5525
 
 
5526
 
 
5527
 
class List;
5528
 
 
5529
 
 
5530
 
#line 5531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5531
 
} // closed Puma
5532
 
class WinIfExists;
5533
 
class WinImportHandler;
5534
 
class WinMacros;
5535
 
class CMatchSyntax;
5536
 
class ExtGnu;
5537
 
class ExtAC;
5538
 
class ExtACBuilderCoupling;
5539
 
class ExtACSyntaxCoupling;
5540
 
class ExtACTree;
5541
 
class ExtACKeywords;
5542
 
class WinAsm;
5543
 
class WinDeclSpecs;
5544
 
class WinMemberExplSpec;
5545
 
class WinTypeKeywords;
5546
 
class PragmaOnceUnitState;
5547
 
class PragmaOnce;
5548
 
class CCExprResolve;
5549
 
class CExprResolve;
5550
 
namespace Puma {
5551
 
 
5552
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
5553
 
class ListElement {
5554
 
#line 5555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5555
 
  friend class ::WinIfExists;
5556
 
  friend class ::WinImportHandler;
5557
 
  friend class ::WinMacros;
5558
 
  friend class ::CMatchSyntax;
5559
 
  friend class ::ExtGnu;
5560
 
  friend class ::ExtAC;
5561
 
  friend class ::ExtACBuilderCoupling;
5562
 
  friend class ::ExtACSyntaxCoupling;
5563
 
  friend class ::ExtACTree;
5564
 
  friend class ::ExtACKeywords;
5565
 
  friend class ::WinAsm;
5566
 
  friend class ::WinDeclSpecs;
5567
 
  friend class ::WinMemberExplSpec;
5568
 
  friend class ::WinTypeKeywords;
5569
 
  friend class ::PragmaOnceUnitState;
5570
 
  friend class ::PragmaOnce;
5571
 
  friend class ::CCExprResolve;
5572
 
  friend class ::CExprResolve;
5573
 
 
5574
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
5575
 
 
5576
 
  friend class List;
5577
 
 
5578
 
  List        *_belonging_to;
5579
 
  ListElement *_next;
5580
 
  ListElement *_prev;
5581
 
 
5582
 
public:
5583
 
  ListElement () : _belonging_to ((List*)0) {}
5584
 
  virtual ~ListElement () { assert (! _belonging_to); };
5585
 
 
5586
 
  virtual ListElement *duplicate () = 0;
5587
 
  List *belonging_to () const { return _belonging_to; }
5588
 
};
5589
 
 
5590
 
 
5591
 
} // namespace Puma
5592
 
 
5593
 
#endif /* __list_element_h__ */
5594
 
 
5595
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
5596
 
#include <assert.h>
5597
 
 
5598
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
5599
 
namespace Puma {
5600
 
 
5601
 
 
5602
 
 
5603
 
#line 5604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5604
 
} // closed Puma
5605
 
class WinIfExists;
5606
 
class WinImportHandler;
5607
 
class WinMacros;
5608
 
class CMatchSyntax;
5609
 
class ExtGnu;
5610
 
class ExtAC;
5611
 
class ExtACBuilderCoupling;
5612
 
class ExtACSyntaxCoupling;
5613
 
class ExtACTree;
5614
 
class ExtACKeywords;
5615
 
class WinAsm;
5616
 
class WinDeclSpecs;
5617
 
class WinMemberExplSpec;
5618
 
class WinTypeKeywords;
5619
 
class PragmaOnceUnitState;
5620
 
class PragmaOnce;
5621
 
class CCExprResolve;
5622
 
class CExprResolve;
5623
 
namespace Puma {
5624
 
 
5625
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
10461
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
10462
#include <assert.h>
 
10463
 
 
10464
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
 
10465
namespace Puma {
 
10466
 
 
10467
 
 
10468
 
 
10469
#line 10470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10470
} // closed Puma
 
10471
class CCExprResolve;
 
10472
class CExprResolve;
 
10473
class WinIfExists;
 
10474
class WinImportHandler;
 
10475
class WinMacros;
 
10476
class WinAsm;
 
10477
class WinDeclSpecs;
 
10478
class WinMemberExplSpec;
 
10479
class WinTypeKeywords;
 
10480
class WinFriend;
 
10481
class ExtAC;
 
10482
class ExtACBuilderCoupling;
 
10483
class ExtACSyntaxCoupling;
 
10484
class ExtACTree;
 
10485
class ExtACKeywords;
 
10486
class ExtGnu;
 
10487
class PragmaOnceUnitState;
 
10488
class PragmaOnce;
 
10489
class CMatchSyntax;
 
10490
namespace Puma {
 
10491
 
 
10492
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5626
10493
class Token : public ListElement {
5627
 
#line 5628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10494
#line 10495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10495
  friend class ::CCExprResolve;
 
10496
  friend class ::CExprResolve;
5628
10497
  friend class ::WinIfExists;
5629
10498
  friend class ::WinImportHandler;
5630
10499
  friend class ::WinMacros;
5631
 
  friend class ::CMatchSyntax;
5632
 
  friend class ::ExtGnu;
 
10500
  friend class ::WinAsm;
 
10501
  friend class ::WinDeclSpecs;
 
10502
  friend class ::WinMemberExplSpec;
 
10503
  friend class ::WinTypeKeywords;
 
10504
  friend class ::WinFriend;
5633
10505
  friend class ::ExtAC;
5634
10506
  friend class ::ExtACBuilderCoupling;
5635
10507
  friend class ::ExtACSyntaxCoupling;
5636
10508
  friend class ::ExtACTree;
5637
10509
  friend class ::ExtACKeywords;
5638
 
  friend class ::WinAsm;
5639
 
  friend class ::WinDeclSpecs;
5640
 
  friend class ::WinMemberExplSpec;
5641
 
  friend class ::WinTypeKeywords;
 
10510
  friend class ::ExtGnu;
5642
10511
  friend class ::PragmaOnceUnitState;
5643
10512
  friend class ::PragmaOnce;
5644
 
  friend class ::CCExprResolve;
5645
 
  friend class ::CExprResolve;
 
10513
  friend class ::CMatchSyntax;
5646
10514
 
5647
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
10515
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
5648
10516
 
5649
10517
  int _type, _real_type;
5650
10518
 
5651
10519
  Location _location;
5652
10520
  LanguageID _language;
5653
 
  DString _text;
 
10521
  const char *_text;
 
10522
  mutable DString _dtext;
5654
10523
 
5655
10524
  Array<int> *_cont_lines;
5656
10525
   
5691
10560
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
5692
10561
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
5693
10562
  
5694
 
  const DString &text () const     { return _text; }
 
10563
  const char *text () const;
 
10564
  DString &dtext () const;
5695
10565
  char *get_static_text () const;
5696
10566
  int type () const                 { return _type; }
5697
10567
  const Location &location () const { return _location; }
5768
10638
 
5769
10639
#endif /* __Token_h__ */
5770
10640
 
5771
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10641
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5772
10642
using namespace std;
5773
10643
 
5774
10644
namespace Puma {
5784
10654
/*                                                                           */
5785
10655
/*****************************************************************************/
5786
10656
 
5787
 
 
5788
 
#line 5789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
5789
 
} // closed Puma
5790
 
class WinIfExists;
5791
 
class WinImportHandler;
5792
 
class WinMacros;
5793
 
class CMatchSyntax;
5794
 
class ExtGnu;
5795
 
class ExtAC;
5796
 
class ExtACBuilderCoupling;
5797
 
class ExtACSyntaxCoupling;
5798
 
class ExtACTree;
5799
 
class ExtACKeywords;
5800
 
class WinAsm;
5801
 
class WinDeclSpecs;
5802
 
class WinMemberExplSpec;
5803
 
class WinTypeKeywords;
5804
 
class PragmaOnceUnitState;
5805
 
class PragmaOnce;
5806
 
class CCExprResolve;
5807
 
class CExprResolve;
5808
 
namespace Puma {
5809
 
 
5810
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10657
/** \file
 
10658
 *  C/C++ syntax tree classes.
 
10659
 *  \see Puma::CTree */
 
10660
 
 
10661
/** \class CTree CTree.h Puma/CTree.h
 
10662
 *  Base class for all C/C++ syntax tree classes. */
 
10663
 
 
10664
#line 10665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10665
} // closed Puma
 
10666
class CCExprResolve;
 
10667
class CExprResolve;
 
10668
class WinIfExists;
 
10669
class WinImportHandler;
 
10670
class WinMacros;
 
10671
class WinAsm;
 
10672
class WinDeclSpecs;
 
10673
class WinMemberExplSpec;
 
10674
class WinTypeKeywords;
 
10675
class WinFriend;
 
10676
class ExtAC;
 
10677
class ExtACBuilderCoupling;
 
10678
class ExtACSyntaxCoupling;
 
10679
class ExtACTree;
 
10680
class ExtACKeywords;
 
10681
class ExtGnu;
 
10682
class PragmaOnceUnitState;
 
10683
class PragmaOnce;
 
10684
class CMatchSyntax;
 
10685
namespace Puma {
 
10686
 
 
10687
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10688
 
 
10689
#line 10690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10690
} // closed Puma
 
10691
 
 
10692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10694
 
 
10695
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10696
// This file is part of PUMA.
 
10697
// Copyright (C) 1999-2003  The PUMA developer team.
 
10698
//                                                                
 
10699
// This program is free software;  you can redistribute it and/or 
 
10700
// modify it under the terms of the GNU General Public License as 
 
10701
// published by the Free Software Foundation; either version 2 of 
 
10702
// the License, or (at your option) any later version.            
 
10703
//                                                                
 
10704
// This program is distributed in the hope that it will be useful,
 
10705
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
10706
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
10707
// GNU General Public License for more details.                   
 
10708
//                                                                
 
10709
// You should have received a copy of the GNU General Public      
 
10710
// License along with this program; if not, write to the Free     
 
10711
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
10712
// MA  02111-1307  USA                                            
 
10713
 
 
10714
#ifndef __CCExprResolveH_ah__
 
10715
#define __CCExprResolveH_ah__
 
10716
 
 
10717
// This aspect inserts resolve member functions into all syntax tree classes
 
10718
// that represent expressions. As the function is virtual, an efficient
 
10719
// run-time switch over the node type is implemented.
 
10720
 
 
10721
namespace Puma {
 
10722
  class CCSemExpr;
 
10723
}
 
10724
 
 
10725
namespace Puma {
 
10726
  
 
10727
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10728
 
 
10729
  
 
10730
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10731
 
 
10732
}
 
10733
 
 
10734
 
 
10735
#line 10736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10736
class CExprResolve;
 
10737
class WinIfExists;
 
10738
class WinImportHandler;
 
10739
class WinMacros;
 
10740
class WinAsm;
 
10741
class WinDeclSpecs;
 
10742
class WinMemberExplSpec;
 
10743
class WinTypeKeywords;
 
10744
class WinFriend;
 
10745
class ExtAC;
 
10746
class ExtACBuilderCoupling;
 
10747
class ExtACSyntaxCoupling;
 
10748
class ExtACTree;
 
10749
class ExtACKeywords;
 
10750
class ExtGnu;
 
10751
class PragmaOnceUnitState;
 
10752
class PragmaOnce;
 
10753
class CMatchSyntax;
 
10754
 
 
10755
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10756
class CCExprResolve {
 
10757
#line 10758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10758
 
 
10759
public:
 
10760
  static CCExprResolve *aspectof () {
 
10761
    static CCExprResolve __instance;
 
10762
    return &__instance;
 
10763
  }
 
10764
  static CCExprResolve *aspectOf () {
 
10765
    return aspectof ();
 
10766
  }
 
10767
private:
 
10768
 
 
10769
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10770
 
 
10771
#line 10772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10772
  friend class ::CExprResolve;
 
10773
  friend class ::WinIfExists;
 
10774
  friend class ::WinImportHandler;
 
10775
  friend class ::WinMacros;
 
10776
  friend class ::WinAsm;
 
10777
  friend class ::WinDeclSpecs;
 
10778
  friend class ::WinMemberExplSpec;
 
10779
  friend class ::WinTypeKeywords;
 
10780
  friend class ::WinFriend;
 
10781
  friend class ::ExtAC;
 
10782
  friend class ::ExtACBuilderCoupling;
 
10783
  friend class ::ExtACSyntaxCoupling;
 
10784
  friend class ::ExtACTree;
 
10785
  friend class ::ExtACKeywords;
 
10786
  friend class ::ExtGnu;
 
10787
  friend class ::PragmaOnceUnitState;
 
10788
  friend class ::PragmaOnce;
 
10789
  friend class ::CMatchSyntax;
 
10790
 
 
10791
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10792
 
 
10793
  
 
10794
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10795
 
 
10796
  
 
10797
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10798
 
 
10799
};
 
10800
#line 10801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10801
 
 
10802
namespace AC {
 
10803
 
10804
 
 
10805
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10806
 
 
10807
 
 
10808
#endif /* __CCExprResolveH_ah__ */
 
10809
 
 
10810
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10811
#endif
 
10812
namespace Puma {
 
10813
 
 
10814
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10815
 
 
10816
#line 10817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10817
} // closed Puma
 
10818
 
 
10819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10821
 
 
10822
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10823
// This file is part of PUMA.
 
10824
// Copyright (C) 1999-2003  The PUMA developer team.
 
10825
//                                                                
 
10826
// This program is free software;  you can redistribute it and/or 
 
10827
// modify it under the terms of the GNU General Public License as 
 
10828
// published by the Free Software Foundation; either version 2 of 
 
10829
// the License, or (at your option) any later version.            
 
10830
//                                                                
 
10831
// This program is distributed in the hope that it will be useful,
 
10832
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
10833
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
10834
// GNU General Public License for more details.                   
 
10835
//                                                                
 
10836
// You should have received a copy of the GNU General Public      
 
10837
// License along with this program; if not, write to the Free     
 
10838
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
10839
// MA  02111-1307  USA                                            
 
10840
 
 
10841
#ifndef __CExprResolveH_ah__
 
10842
#define __CExprResolveH_ah__
 
10843
 
 
10844
// This aspect inserts resolve member functions into all syntax tree classes
 
10845
// that represent expressions. As the function is virtual, an efficient
 
10846
// run-time switch over the node type is implemented.
 
10847
 
 
10848
namespace Puma {
 
10849
  class CSemExpr;
 
10850
}
 
10851
 
 
10852
namespace Puma {
 
10853
  
 
10854
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10855
 
 
10856
  
 
10857
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10858
 
 
10859
}
 
10860
 
 
10861
 
 
10862
#line 10863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10863
class CCExprResolve;
 
10864
class WinIfExists;
 
10865
class WinImportHandler;
 
10866
class WinMacros;
 
10867
class WinAsm;
 
10868
class WinDeclSpecs;
 
10869
class WinMemberExplSpec;
 
10870
class WinTypeKeywords;
 
10871
class WinFriend;
 
10872
class ExtAC;
 
10873
class ExtACBuilderCoupling;
 
10874
class ExtACSyntaxCoupling;
 
10875
class ExtACTree;
 
10876
class ExtACKeywords;
 
10877
class ExtGnu;
 
10878
class PragmaOnceUnitState;
 
10879
class PragmaOnce;
 
10880
class CMatchSyntax;
 
10881
 
 
10882
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10883
class CExprResolve {
 
10884
#line 10885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10885
 
 
10886
public:
 
10887
  static CExprResolve *aspectof () {
 
10888
    static CExprResolve __instance;
 
10889
    return &__instance;
 
10890
  }
 
10891
  static CExprResolve *aspectOf () {
 
10892
    return aspectof ();
 
10893
  }
 
10894
private:
 
10895
 
 
10896
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10897
 
 
10898
#line 10899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10899
  friend class ::CCExprResolve;
 
10900
  friend class ::WinIfExists;
 
10901
  friend class ::WinImportHandler;
 
10902
  friend class ::WinMacros;
 
10903
  friend class ::WinAsm;
 
10904
  friend class ::WinDeclSpecs;
 
10905
  friend class ::WinMemberExplSpec;
 
10906
  friend class ::WinTypeKeywords;
 
10907
  friend class ::WinFriend;
 
10908
  friend class ::ExtAC;
 
10909
  friend class ::ExtACBuilderCoupling;
 
10910
  friend class ::ExtACSyntaxCoupling;
 
10911
  friend class ::ExtACTree;
 
10912
  friend class ::ExtACKeywords;
 
10913
  friend class ::ExtGnu;
 
10914
  friend class ::PragmaOnceUnitState;
 
10915
  friend class ::PragmaOnce;
 
10916
  friend class ::CMatchSyntax;
 
10917
 
 
10918
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10919
 
 
10920
  
 
10921
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10922
 
 
10923
  
 
10924
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10925
 
 
10926
};
 
10927
#line 10928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10928
 
 
10929
namespace AC {
 
10930
 
10931
 
 
10932
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10933
 
 
10934
 
 
10935
#endif /* __CExprResolveH_ah__ */
 
10936
 
 
10937
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10938
#endif
 
10939
namespace Puma {
 
10940
 
 
10941
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5811
10942
class CTree {
5812
 
#line 5813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
10943
#line 10944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
10944
  friend class ::CCExprResolve;
 
10945
  friend class ::CExprResolve;
5813
10946
  friend class ::WinIfExists;
5814
10947
  friend class ::WinImportHandler;
5815
10948
  friend class ::WinMacros;
5816
 
  friend class ::CMatchSyntax;
5817
 
  friend class ::ExtGnu;
 
10949
  friend class ::WinAsm;
 
10950
  friend class ::WinDeclSpecs;
 
10951
  friend class ::WinMemberExplSpec;
 
10952
  friend class ::WinTypeKeywords;
 
10953
  friend class ::WinFriend;
5818
10954
  friend class ::ExtAC;
5819
10955
  friend class ::ExtACBuilderCoupling;
5820
10956
  friend class ::ExtACSyntaxCoupling;
5821
10957
  friend class ::ExtACTree;
5822
10958
  friend class ::ExtACKeywords;
5823
 
  friend class ::WinAsm;
5824
 
  friend class ::WinDeclSpecs;
5825
 
  friend class ::WinMemberExplSpec;
5826
 
  friend class ::WinTypeKeywords;
 
10959
  friend class ::ExtGnu;
5827
10960
  friend class ::PragmaOnceUnitState;
5828
10961
  friend class ::PragmaOnce;
5829
 
  friend class ::CCExprResolve;
5830
 
  friend class ::CExprResolve;
5831
 
 
5832
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10962
  friend class ::CMatchSyntax;
 
10963
 
 
10964
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10965
 
 
10966
  CTree * _parent;
5833
10967
 
5834
10968
public:
5835
10969
  /*DEBUG*/static int alloc;
5836
10970
  /*DEBUG*/static int release;
5837
10971
 
5838
10972
protected:
5839
 
  CTree *Son (CTree * const *, int, int) const;
5840
 
  int Sons (CTree * const *, int) const;
5841
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
10973
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
10974
   *  \param sons The sons array.
 
10975
   *  \param len Length of the sons array.
 
10976
   *  \param n Index of the son.
 
10977
   *  \return The n-th son or NULL. */
 
10978
  CTree *Son (CTree * const *sons, int len, int n) const;
 
10979
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
10980
   *  \param sons The sons array.
 
10981
   *  \param len Length of the sons array. */
 
10982
  int Sons (CTree * const *sons, int len) const;
 
10983
  /** Replace a son.
 
10984
   *  \param sons The sons array.
 
10985
   *  \param len Length of the sons array.
 
10986
   *  \param old_son The son to replace.
 
10987
   *  \param new_son The new son. */
 
10988
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
10989
  /** Replace a son if it equals the given son.
 
10990
   *  \param son The actual son.
 
10991
   *  \param old_son The son to replace, must match the actual son.
 
10992
   *  \param new_son The new son, overwrites the actual son. */
 
10993
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
10994
  /** Add a new son.
 
10995
   *  \param son The actual son.
 
10996
   *  \param new_son The new son, overwrites the actual son. */
 
10997
  void AddSon (CTree *&son, CTree *new_son);
 
10998
  /** Set the parent tree node.
 
10999
   *  \param parent The new parent tree node. */
 
11000
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
11001
  /** Set the parent tree node of the given tree node.
 
11002
   *  \param node The tree node.
 
11003
   *  \param parent The new parent. */
 
11004
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
5842
11005
  
5843
11006
protected:
5844
 
  CTree () { /*DEBUG*/alloc++; }
 
11007
  /** Default constructor. */
 
11008
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
5845
11009
 
5846
11010
public:
 
11011
  /** Destructor. */
5847
11012
  virtual ~CTree () { /*DEBUG*/release++; }
 
11013
  /** Get the number of sons. */
5848
11014
  virtual int Sons () const = 0;
 
11015
  /** Get the n-th son.
 
11016
   *  \param n The index of the son.
 
11017
   *  \return The n-th son or NULL. */
5849
11018
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
11019
  /** Get the node name (node identifier). */
5850
11020
  virtual const char *NodeName () const = 0;
 
11021
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
11022
   *  \return The token or NULL. */
5851
11023
  virtual Token *token () const;
 
11024
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
11025
   *  \return The token or NULL. */
5852
11026
  virtual Token *end_token () const;
 
11027
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
11028
   *  \return The token node or NULL. */
5853
11029
  virtual CT_Token *token_node () const;
 
11030
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
11031
   *  \return The token node or NULL. */
5854
11032
  virtual CT_Token *end_token_node () const;
5855
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
11033
  /** Replace a son.
 
11034
   *  \param old_son The son to replace.
 
11035
   *  \param new_son The son with which to replace. */
 
11036
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
11037
  /** Get the parent node.
 
11038
   *  \return The parent node or NULL. */
 
11039
  virtual CTree *Parent () const { return (CTree*)_parent; }
5856
11040
 
5857
11041
public: // semantic information
 
11042
  /** Get the semantic type of the node.
 
11043
   *  \return The type object or NULL. */
5858
11044
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
11045
  /** Get the calculated value of the expression.
 
11046
   *  \return The value object or NULL. */
5859
11047
  virtual CExprValue *Value () const { return (CExprValue*)0; }
5860
11048
  
 
11049
  /** Get the semantic scope of the node.
 
11050
   *  \return The scope object or NULL. */
 
11051
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
11052
  /** Get the semantic value of the node.
 
11053
   *  \return The value object or NULL. */
5861
11054
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
11055
  /** Get the semantic object of the node.
 
11056
   *  \return The semantic object or NULL. */
5862
11057
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
5863
11058
  
5864
11059
public: // node classification function
 
11060
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
11061
   *  \return The CT_SimpleName node or NULL. */
5865
11062
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
11063
  /** Get a pointer to CT_String if the current node represents a string.
 
11064
   *  \return The CT_String node or NULL. */
 
11065
  virtual CT_String *IsString () { return 0; }
 
11066
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
11067
   *  \return The CT_Declarator pointer or NULL. */
5866
11068
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
11069
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
11070
   *  \return The CT_Statement pointer or NULL. */
 
11071
  virtual CT_Statement *IsStatement () { return 0; }
 
11072
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
11073
   *  \return The CT_Expression pointer or NULL. */
 
11074
  virtual CT_Expression *IsExpression () { return 0; }
 
11075
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
11076
   *  \return The CT_Decl pointer or NULL. */
 
11077
  virtual CT_Decl *IsDeclaration () { return 0; }
 
11078
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
11079
   *  \return The CT_Call pointer or NULL. */
 
11080
  virtual CT_Call *IsCall () { return 0; }
5867
11081
   private:
5868
11082
  typedef CTree CCExprResolveCTree;
5869
11083
 
5870
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11084
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
5871
11085
 public :
5872
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11086
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
5873
11087
  typedef CTree CExprResolveCTree;
5874
11088
 
5875
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11089
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
5876
11090
 public :
5877
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
5878
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11091
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11092
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5879
11093
};
5880
11094
 
 
11095
/** \class CT_Error CTree.h Puma/CTree.h
 
11096
 *  Error tree node that is inserted into the tree for syntactic constructs
 
11097
 *  that could not be parsed. */
5881
11098
 
5882
 
#line 5883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11099
#line 11100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
5883
11100
} // closed Puma
 
11101
class CCExprResolve;
 
11102
class CExprResolve;
5884
11103
class WinIfExists;
5885
11104
class WinImportHandler;
5886
11105
class WinMacros;
5887
 
class CMatchSyntax;
5888
 
class ExtGnu;
 
11106
class WinAsm;
 
11107
class WinDeclSpecs;
 
11108
class WinMemberExplSpec;
 
11109
class WinTypeKeywords;
 
11110
class WinFriend;
5889
11111
class ExtAC;
5890
11112
class ExtACBuilderCoupling;
5891
11113
class ExtACSyntaxCoupling;
5892
11114
class ExtACTree;
5893
11115
class ExtACKeywords;
5894
 
class WinAsm;
5895
 
class WinDeclSpecs;
5896
 
class WinMemberExplSpec;
5897
 
class WinTypeKeywords;
 
11116
class ExtGnu;
5898
11117
class PragmaOnceUnitState;
5899
11118
class PragmaOnce;
5900
 
class CCExprResolve;
5901
 
class CExprResolve;
 
11119
class CMatchSyntax;
5902
11120
namespace Puma {
5903
11121
 
5904
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11122
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5905
11123
class CT_Error : public CTree {
5906
 
#line 5907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11124
#line 11125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11125
  friend class ::CCExprResolve;
 
11126
  friend class ::CExprResolve;
5907
11127
  friend class ::WinIfExists;
5908
11128
  friend class ::WinImportHandler;
5909
11129
  friend class ::WinMacros;
5910
 
  friend class ::CMatchSyntax;
5911
 
  friend class ::ExtGnu;
 
11130
  friend class ::WinAsm;
 
11131
  friend class ::WinDeclSpecs;
 
11132
  friend class ::WinMemberExplSpec;
 
11133
  friend class ::WinTypeKeywords;
 
11134
  friend class ::WinFriend;
5912
11135
  friend class ::ExtAC;
5913
11136
  friend class ::ExtACBuilderCoupling;
5914
11137
  friend class ::ExtACSyntaxCoupling;
5915
11138
  friend class ::ExtACTree;
5916
11139
  friend class ::ExtACKeywords;
5917
 
  friend class ::WinAsm;
5918
 
  friend class ::WinDeclSpecs;
5919
 
  friend class ::WinMemberExplSpec;
5920
 
  friend class ::WinTypeKeywords;
 
11140
  friend class ::ExtGnu;
5921
11141
  friend class ::PragmaOnceUnitState;
5922
11142
  friend class ::PragmaOnce;
5923
 
  friend class ::CCExprResolve;
5924
 
  friend class ::CExprResolve;
 
11143
  friend class ::CMatchSyntax;
5925
11144
 
5926
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11145
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5927
11146
 
5928
11147
public:
 
11148
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5929
11149
  static const char *NodeId ();
 
11150
  /** Get the name of the node. Can be compared with NodeId(). */
5930
11151
  const char *NodeName () const { return NodeId (); }
 
11152
  /** Get the number of sons. */
5931
11153
  int Sons () const { return 0; }
5932
11154
};
5933
11155
 
 
11156
/** \class CT_Token CTree.h Puma/CTree.h
 
11157
 *  Tree node representing a single token in the source code. */
5934
11158
 
5935
 
#line 5936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11159
#line 11160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
5936
11160
} // closed Puma
 
11161
class CCExprResolve;
 
11162
class CExprResolve;
5937
11163
class WinIfExists;
5938
11164
class WinImportHandler;
5939
11165
class WinMacros;
5940
 
class CMatchSyntax;
5941
 
class ExtGnu;
 
11166
class WinAsm;
 
11167
class WinDeclSpecs;
 
11168
class WinMemberExplSpec;
 
11169
class WinTypeKeywords;
 
11170
class WinFriend;
5942
11171
class ExtAC;
5943
11172
class ExtACBuilderCoupling;
5944
11173
class ExtACSyntaxCoupling;
5945
11174
class ExtACTree;
5946
11175
class ExtACKeywords;
5947
 
class WinAsm;
5948
 
class WinDeclSpecs;
5949
 
class WinMemberExplSpec;
5950
 
class WinTypeKeywords;
 
11176
class ExtGnu;
5951
11177
class PragmaOnceUnitState;
5952
11178
class PragmaOnce;
5953
 
class CCExprResolve;
5954
 
class CExprResolve;
 
11179
class CMatchSyntax;
5955
11180
namespace Puma {
5956
11181
 
5957
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11182
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5958
11183
class CT_Token : public CTree {
5959
 
#line 5960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11184
#line 11185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11185
  friend class ::CCExprResolve;
 
11186
  friend class ::CExprResolve;
5960
11187
  friend class ::WinIfExists;
5961
11188
  friend class ::WinImportHandler;
5962
11189
  friend class ::WinMacros;
5963
 
  friend class ::CMatchSyntax;
5964
 
  friend class ::ExtGnu;
 
11190
  friend class ::WinAsm;
 
11191
  friend class ::WinDeclSpecs;
 
11192
  friend class ::WinMemberExplSpec;
 
11193
  friend class ::WinTypeKeywords;
 
11194
  friend class ::WinFriend;
5965
11195
  friend class ::ExtAC;
5966
11196
  friend class ::ExtACBuilderCoupling;
5967
11197
  friend class ::ExtACSyntaxCoupling;
5968
11198
  friend class ::ExtACTree;
5969
11199
  friend class ::ExtACKeywords;
5970
 
  friend class ::WinAsm;
5971
 
  friend class ::WinDeclSpecs;
5972
 
  friend class ::WinMemberExplSpec;
5973
 
  friend class ::WinTypeKeywords;
 
11200
  friend class ::ExtGnu;
5974
11201
  friend class ::PragmaOnceUnitState;
5975
11202
  friend class ::PragmaOnce;
5976
 
  friend class ::CCExprResolve;
5977
 
  friend class ::CExprResolve;
 
11203
  friend class ::CMatchSyntax;
5978
11204
 
5979
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11205
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
5980
11206
 
5981
11207
  Token *_token;
5982
11208
  unsigned long int _number;
5983
11209
  
5984
11210
public:
5985
 
  CT_Token (Token *t, unsigned long int n = 0) : 
5986
 
    _token (t), _number (n) {}
 
11211
  /** Constructor. 
 
11212
   *  \param token The represented token.
 
11213
   *  \param number The token number (a consecutive number). */
 
11214
  CT_Token (Token *token, unsigned long int number = 0) : 
 
11215
    _token (token), _number (number) {}
 
11216
  /** Get the identifier for this node type. Can be compared with NodeName(). */
5987
11217
  static const char *NodeId ();
 
11218
  /** Get the name of the node. Can be compared with NodeId(). */
5988
11219
  const char *NodeName () const { return NodeId (); }
 
11220
  /** Get the number of sons. */
5989
11221
  int Sons () const { return 0; }
 
11222
  /** Get the represented token. */
5990
11223
  Token *token () const { return _token; }
 
11224
  /** Get the represented token. */
5991
11225
  Token *end_token () const { return _token; }
 
11226
  /** Get this. */
5992
11227
  CT_Token *token_node () const { return (CT_Token*)this; }
 
11228
  /** Get this. */
5993
11229
  CT_Token *end_token_node () const { return (CT_Token*)this; }
5994
 
  void Number (unsigned long int n) { _number = n; }
 
11230
  /** Set the token number. 
 
11231
   *  \param number The token number. */ 
 
11232
  void Number (unsigned long int number) { _number = number; }
 
11233
  /** Get the token number. Can be used to indentify this token. */
5995
11234
  unsigned long int Number () const { return _number; }
5996
 
  // special new / delete with reusing memory
 
11235
  
 
11236
public:
 
11237
  /** Own new operator reusing memory. */
5997
11238
  void *operator new (size_t);
5998
 
  void  operator delete (void *);
 
11239
  /** Own delete operator. */
 
11240
  void operator delete (void *);
5999
11241
};
6000
11242
 
6001
11243
/*****************************************************************************/
6004
11246
/*                                                                           */
6005
11247
/*****************************************************************************/
6006
11248
 
 
11249
/** \class CT_List CTree.h Puma/CTree.h
 
11250
 *  Base class for tree nodes representing lists. */
6007
11251
 
6008
 
#line 6009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11252
#line 11253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6009
11253
} // closed Puma
 
11254
class CCExprResolve;
 
11255
class CExprResolve;
6010
11256
class WinIfExists;
6011
11257
class WinImportHandler;
6012
11258
class WinMacros;
6013
 
class CMatchSyntax;
6014
 
class ExtGnu;
 
11259
class WinAsm;
 
11260
class WinDeclSpecs;
 
11261
class WinMemberExplSpec;
 
11262
class WinTypeKeywords;
 
11263
class WinFriend;
6015
11264
class ExtAC;
6016
11265
class ExtACBuilderCoupling;
6017
11266
class ExtACSyntaxCoupling;
6018
11267
class ExtACTree;
6019
11268
class ExtACKeywords;
6020
 
class WinAsm;
6021
 
class WinDeclSpecs;
6022
 
class WinMemberExplSpec;
6023
 
class WinTypeKeywords;
 
11269
class ExtGnu;
6024
11270
class PragmaOnceUnitState;
6025
11271
class PragmaOnce;
6026
 
class CCExprResolve;
6027
 
class CExprResolve;
 
11272
class CMatchSyntax;
6028
11273
namespace Puma {
6029
11274
 
6030
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11275
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6031
11276
class CT_List : public CTree {
6032
 
#line 6033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11277
#line 11278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11278
  friend class ::CCExprResolve;
 
11279
  friend class ::CExprResolve;
6033
11280
  friend class ::WinIfExists;
6034
11281
  friend class ::WinImportHandler;
6035
11282
  friend class ::WinMacros;
6036
 
  friend class ::CMatchSyntax;
6037
 
  friend class ::ExtGnu;
 
11283
  friend class ::WinAsm;
 
11284
  friend class ::WinDeclSpecs;
 
11285
  friend class ::WinMemberExplSpec;
 
11286
  friend class ::WinTypeKeywords;
 
11287
  friend class ::WinFriend;
6038
11288
  friend class ::ExtAC;
6039
11289
  friend class ::ExtACBuilderCoupling;
6040
11290
  friend class ::ExtACSyntaxCoupling;
6041
11291
  friend class ::ExtACTree;
6042
11292
  friend class ::ExtACKeywords;
6043
 
  friend class ::WinAsm;
6044
 
  friend class ::WinDeclSpecs;
6045
 
  friend class ::WinMemberExplSpec;
6046
 
  friend class ::WinTypeKeywords;
 
11293
  friend class ::ExtGnu;
6047
11294
  friend class ::PragmaOnceUnitState;
6048
11295
  friend class ::PragmaOnce;
6049
 
  friend class ::CCExprResolve;
6050
 
  friend class ::CExprResolve;
 
11296
  friend class ::CMatchSyntax;
6051
11297
 
6052
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11298
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6053
11299
 
6054
11300
  Array<CTree*> _sons;
6055
11301
  int _properties;
6056
11302
 
6057
11303
protected:
 
11304
  /** Constructor.
 
11305
   *  \param size The initial list size.
 
11306
   *  \param incr The initial increment count. 
 
11307
   *  \param props The list properties (bit array). */
6058
11308
  CT_List(int size = 5, int incr = 5, int props = 0) : 
6059
11309
    _sons (size, incr), _properties (props) {}
6060
11310
 
6061
11311
public:
 
11312
  /** List properties. */
6062
11313
  enum {
6063
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
6064
 
    CLOSE = 2,
6065
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
6066
 
    SEPARATORS = 4,   // the list has separators like ','
6067
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
6068
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
6069
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
6070
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
11314
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
11315
    CLOSE = 2,        /** List has an end token */
 
11316
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
11317
    SEPARATORS = 4,   /** List has separators, like ',' */
 
11318
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
11319
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
11320
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
11321
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
6071
11322
  };
6072
11323
 
 
11324
  /** Get the number of list entries. */
6073
11325
  int Entries () const;
6074
 
  CTree *Entry (int no) const;
 
11326
  /** Get the n-th list entry.
 
11327
   *  \param n The index of the entry. 
 
11328
   *  \return The list entry or NULL. */
 
11329
  CTree *Entry (int n) const;
 
11330
  /** Get the number of sons. */
6075
11331
  int Sons () const { return _sons.length (); }
 
11332
  /** Get the n-th son.
 
11333
   *  \param n The index of the son. 
 
11334
   *  \return The n-th son or NULL. */
6076
11335
  CTree *Son (int n) const { return _sons.lookup (n); }
 
11336
  /** Get the list properties. */
6077
11337
  int GetProperties () const { return _properties; }
 
11338
  /** Add a list property.
 
11339
   *  \param p The property to add. */
6078
11340
  void AddProperties (int p) { _properties |= p; }
6079
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
6080
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
6081
 
  void InsertSon (CTree *, CTree *);  // before given son
6082
 
  void ReplaceSon (CTree *, CTree *);
6083
 
  void RemoveSon (CTree *);
 
11341
  /** Add a son.
 
11342
   *  \param s The son to add. */
 
11343
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
11344
  /** Prepend a son.
 
11345
   *  \param s The son to prepend. */
 
11346
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
11347
  /** Insert a son before another son.
 
11348
   *  \param before The son to insert the new son before.
 
11349
   *  \param son The son to insert. */
 
11350
  void InsertSon (CTree *before, CTree *son); 
 
11351
  /** Replace a son.
 
11352
   *  \param old_son The son to replace.
 
11353
   *  \param new_son The new son. */
 
11354
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
11355
  /** Remove a son.
 
11356
   *  \param son The son to remove. */
 
11357
  void RemoveSon (CTree *son);
 
11358
  /** Insert a son at the given index. 
 
11359
   *  \param idx The index at which to insert.
 
11360
   *  \param s The son to insert. */
6084
11361
  void InsertSon (int idx, CTree *s)
6085
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
11362
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
11363
  /** Replace the son at the given index.
 
11364
   *  \param idx The index of the son to replace.
 
11365
   *  \param s The new son. */
6086
11366
  void ReplaceSon (int idx, CTree *s) 
6087
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
11367
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
11368
  /** Remove the son at the given index. 
 
11369
   *  \param idx The index of the son to remove. */
6088
11370
  void RemoveSon (int idx) 
6089
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
11371
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
6090
11372
};
6091
11373
 
 
11374
/** \class CT_ExprList CTree.h Puma/CTree.h
 
11375
 *  Tree node representing an expression list. */
6092
11376
 
6093
 
#line 6094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11377
#line 11378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6094
11378
} // closed Puma
 
11379
class CCExprResolve;
 
11380
class CExprResolve;
6095
11381
class WinIfExists;
6096
11382
class WinImportHandler;
6097
11383
class WinMacros;
6098
 
class CMatchSyntax;
6099
 
class ExtGnu;
 
11384
class WinAsm;
 
11385
class WinDeclSpecs;
 
11386
class WinMemberExplSpec;
 
11387
class WinTypeKeywords;
 
11388
class WinFriend;
6100
11389
class ExtAC;
6101
11390
class ExtACBuilderCoupling;
6102
11391
class ExtACSyntaxCoupling;
6103
11392
class ExtACTree;
6104
11393
class ExtACKeywords;
6105
 
class WinAsm;
6106
 
class WinDeclSpecs;
6107
 
class WinMemberExplSpec;
6108
 
class WinTypeKeywords;
 
11394
class ExtGnu;
6109
11395
class PragmaOnceUnitState;
6110
11396
class PragmaOnce;
6111
 
class CCExprResolve;
6112
 
class CExprResolve;
 
11397
class CMatchSyntax;
6113
11398
namespace Puma {
6114
11399
 
6115
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11400
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6116
11401
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
6117
 
#line 6118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11402
#line 11403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11403
  friend class ::CCExprResolve;
 
11404
  friend class ::CExprResolve;
6118
11405
  friend class ::WinIfExists;
6119
11406
  friend class ::WinImportHandler;
6120
11407
  friend class ::WinMacros;
6121
 
  friend class ::CMatchSyntax;
6122
 
  friend class ::ExtGnu;
 
11408
  friend class ::WinAsm;
 
11409
  friend class ::WinDeclSpecs;
 
11410
  friend class ::WinMemberExplSpec;
 
11411
  friend class ::WinTypeKeywords;
 
11412
  friend class ::WinFriend;
6123
11413
  friend class ::ExtAC;
6124
11414
  friend class ::ExtACBuilderCoupling;
6125
11415
  friend class ::ExtACSyntaxCoupling;
6126
11416
  friend class ::ExtACTree;
6127
11417
  friend class ::ExtACKeywords;
6128
 
  friend class ::WinAsm;
6129
 
  friend class ::WinDeclSpecs;
6130
 
  friend class ::WinMemberExplSpec;
6131
 
  friend class ::WinTypeKeywords;
 
11418
  friend class ::ExtGnu;
6132
11419
  friend class ::PragmaOnceUnitState;
6133
11420
  friend class ::PragmaOnce;
6134
 
  friend class ::CCExprResolve;
6135
 
  friend class ::CExprResolve;
 
11421
  friend class ::CMatchSyntax;
6136
11422
 
6137
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11423
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6138
11424
 
6139
11425
public:
 
11426
  /** Constructor. */
6140
11427
  CT_ExprList () { AddProperties (SEPARATORS); }
 
11428
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6141
11429
  static const char *NodeId ();
 
11430
  /** Get the name of the node. Can be compared with NodeId(). */
6142
11431
  const char *NodeName () const { return NodeId (); }
6143
11432
 
 
11433
  /** Get the type of the last expression in the expression list.
 
11434
   *  \return The type or NULL. */
6144
11435
  CTypeInfo *Type () const { return type; }
 
11436
  /** Get the value of the last expression in the expression list.
 
11437
   *  \return The value of NULL. */
6145
11438
  CExprValue *Value () const { return value; }
 
11439
  /** Get the semantic value of the node. */
6146
11440
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
11441
  /** Get the semantic object of the node. */
6147
11442
  CSemObject *SemObject () const { return (CSemObject*)this; }
6148
11443
};
6149
11444
 
 
11445
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
11446
 *  Tree node representing a list of declarators. */
6150
11447
 
6151
 
#line 6152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11448
#line 11449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6152
11449
} // closed Puma
 
11450
class CCExprResolve;
 
11451
class CExprResolve;
6153
11452
class WinIfExists;
6154
11453
class WinImportHandler;
6155
11454
class WinMacros;
6156
 
class CMatchSyntax;
6157
 
class ExtGnu;
 
11455
class WinAsm;
 
11456
class WinDeclSpecs;
 
11457
class WinMemberExplSpec;
 
11458
class WinTypeKeywords;
 
11459
class WinFriend;
6158
11460
class ExtAC;
6159
11461
class ExtACBuilderCoupling;
6160
11462
class ExtACSyntaxCoupling;
6161
11463
class ExtACTree;
6162
11464
class ExtACKeywords;
6163
 
class WinAsm;
6164
 
class WinDeclSpecs;
6165
 
class WinMemberExplSpec;
6166
 
class WinTypeKeywords;
 
11465
class ExtGnu;
6167
11466
class PragmaOnceUnitState;
6168
11467
class PragmaOnce;
6169
 
class CCExprResolve;
6170
 
class CExprResolve;
 
11468
class CMatchSyntax;
6171
11469
namespace Puma {
6172
11470
 
6173
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11471
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6174
11472
class CT_DeclaratorList : public CT_List {
6175
 
#line 6176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11473
#line 11474 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11474
  friend class ::CCExprResolve;
 
11475
  friend class ::CExprResolve;
6176
11476
  friend class ::WinIfExists;
6177
11477
  friend class ::WinImportHandler;
6178
11478
  friend class ::WinMacros;
6179
 
  friend class ::CMatchSyntax;
6180
 
  friend class ::ExtGnu;
 
11479
  friend class ::WinAsm;
 
11480
  friend class ::WinDeclSpecs;
 
11481
  friend class ::WinMemberExplSpec;
 
11482
  friend class ::WinTypeKeywords;
 
11483
  friend class ::WinFriend;
6181
11484
  friend class ::ExtAC;
6182
11485
  friend class ::ExtACBuilderCoupling;
6183
11486
  friend class ::ExtACSyntaxCoupling;
6184
11487
  friend class ::ExtACTree;
6185
11488
  friend class ::ExtACKeywords;
6186
 
  friend class ::WinAsm;
6187
 
  friend class ::WinDeclSpecs;
6188
 
  friend class ::WinMemberExplSpec;
6189
 
  friend class ::WinTypeKeywords;
 
11489
  friend class ::ExtGnu;
6190
11490
  friend class ::PragmaOnceUnitState;
6191
11491
  friend class ::PragmaOnce;
6192
 
  friend class ::CCExprResolve;
6193
 
  friend class ::CExprResolve;
 
11492
  friend class ::CMatchSyntax;
6194
11493
 
6195
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11494
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6196
11495
 
6197
11496
public:
 
11497
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6198
11498
  static const char *NodeId ();
 
11499
  /** Get the name of the node. Can be compared with NodeId(). */
6199
11500
  const char *NodeName () const { return NodeId (); }
6200
11501
};
6201
11502
 
 
11503
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
11504
 *  Tree node representing a list of enumerator constants. */
6202
11505
 
6203
 
#line 6204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11506
#line 11507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6204
11507
} // closed Puma
 
11508
class CCExprResolve;
 
11509
class CExprResolve;
6205
11510
class WinIfExists;
6206
11511
class WinImportHandler;
6207
11512
class WinMacros;
6208
 
class CMatchSyntax;
6209
 
class ExtGnu;
 
11513
class WinAsm;
 
11514
class WinDeclSpecs;
 
11515
class WinMemberExplSpec;
 
11516
class WinTypeKeywords;
 
11517
class WinFriend;
6210
11518
class ExtAC;
6211
11519
class ExtACBuilderCoupling;
6212
11520
class ExtACSyntaxCoupling;
6213
11521
class ExtACTree;
6214
11522
class ExtACKeywords;
6215
 
class WinAsm;
6216
 
class WinDeclSpecs;
6217
 
class WinMemberExplSpec;
6218
 
class WinTypeKeywords;
 
11523
class ExtGnu;
6219
11524
class PragmaOnceUnitState;
6220
11525
class PragmaOnce;
6221
 
class CCExprResolve;
6222
 
class CExprResolve;
 
11526
class CMatchSyntax;
6223
11527
namespace Puma {
6224
11528
 
6225
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11529
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6226
11530
class CT_EnumeratorList : public CT_List {
6227
 
#line 6228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11531
#line 11532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11532
  friend class ::CCExprResolve;
 
11533
  friend class ::CExprResolve;
6228
11534
  friend class ::WinIfExists;
6229
11535
  friend class ::WinImportHandler;
6230
11536
  friend class ::WinMacros;
6231
 
  friend class ::CMatchSyntax;
6232
 
  friend class ::ExtGnu;
 
11537
  friend class ::WinAsm;
 
11538
  friend class ::WinDeclSpecs;
 
11539
  friend class ::WinMemberExplSpec;
 
11540
  friend class ::WinTypeKeywords;
 
11541
  friend class ::WinFriend;
6233
11542
  friend class ::ExtAC;
6234
11543
  friend class ::ExtACBuilderCoupling;
6235
11544
  friend class ::ExtACSyntaxCoupling;
6236
11545
  friend class ::ExtACTree;
6237
11546
  friend class ::ExtACKeywords;
6238
 
  friend class ::WinAsm;
6239
 
  friend class ::WinDeclSpecs;
6240
 
  friend class ::WinMemberExplSpec;
6241
 
  friend class ::WinTypeKeywords;
 
11547
  friend class ::ExtGnu;
6242
11548
  friend class ::PragmaOnceUnitState;
6243
11549
  friend class ::PragmaOnce;
6244
 
  friend class ::CCExprResolve;
6245
 
  friend class ::CExprResolve;
 
11550
  friend class ::CMatchSyntax;
6246
11551
 
6247
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11552
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6248
11553
 
6249
11554
public:
 
11555
  /** Constructor. */
6250
11556
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
11557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6251
11558
  static const char *NodeId ();
 
11559
  /** Get the name of the node. Can be compared with NodeId(). */
6252
11560
  const char *NodeName () const { return NodeId (); }
6253
11561
};
6254
11562
   
 
11563
/** \class CT_DeclList CTree.h Puma/CTree.h
 
11564
 *  Tree node representing a list of declarations. */
6255
11565
 
6256
 
#line 6257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11566
#line 11567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6257
11567
} // closed Puma
 
11568
class CCExprResolve;
 
11569
class CExprResolve;
6258
11570
class WinIfExists;
6259
11571
class WinImportHandler;
6260
11572
class WinMacros;
6261
 
class CMatchSyntax;
6262
 
class ExtGnu;
 
11573
class WinAsm;
 
11574
class WinDeclSpecs;
 
11575
class WinMemberExplSpec;
 
11576
class WinTypeKeywords;
 
11577
class WinFriend;
6263
11578
class ExtAC;
6264
11579
class ExtACBuilderCoupling;
6265
11580
class ExtACSyntaxCoupling;
6266
11581
class ExtACTree;
6267
11582
class ExtACKeywords;
6268
 
class WinAsm;
6269
 
class WinDeclSpecs;
6270
 
class WinMemberExplSpec;
6271
 
class WinTypeKeywords;
 
11583
class ExtGnu;
6272
11584
class PragmaOnceUnitState;
6273
11585
class PragmaOnce;
6274
 
class CCExprResolve;
6275
 
class CExprResolve;
 
11586
class CMatchSyntax;
6276
11587
namespace Puma {
6277
11588
 
6278
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11589
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6279
11590
class CT_DeclList : public CT_List {
6280
 
#line 6281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11591
#line 11592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11592
  friend class ::CCExprResolve;
 
11593
  friend class ::CExprResolve;
6281
11594
  friend class ::WinIfExists;
6282
11595
  friend class ::WinImportHandler;
6283
11596
  friend class ::WinMacros;
6284
 
  friend class ::CMatchSyntax;
6285
 
  friend class ::ExtGnu;
 
11597
  friend class ::WinAsm;
 
11598
  friend class ::WinDeclSpecs;
 
11599
  friend class ::WinMemberExplSpec;
 
11600
  friend class ::WinTypeKeywords;
 
11601
  friend class ::WinFriend;
6286
11602
  friend class ::ExtAC;
6287
11603
  friend class ::ExtACBuilderCoupling;
6288
11604
  friend class ::ExtACSyntaxCoupling;
6289
11605
  friend class ::ExtACTree;
6290
11606
  friend class ::ExtACKeywords;
6291
 
  friend class ::WinAsm;
6292
 
  friend class ::WinDeclSpecs;
6293
 
  friend class ::WinMemberExplSpec;
6294
 
  friend class ::WinTypeKeywords;
 
11607
  friend class ::ExtGnu;
6295
11608
  friend class ::PragmaOnceUnitState;
6296
11609
  friend class ::PragmaOnce;
6297
 
  friend class ::CCExprResolve;
6298
 
  friend class ::CExprResolve;
 
11610
  friend class ::CMatchSyntax;
6299
11611
 
6300
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11612
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6301
11613
 
6302
11614
public:
 
11615
  /** Constructor. 
 
11616
   *  \param size The initial size of the list.
 
11617
   *  \param incr The initial increment count of the list. */
6303
11618
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
11619
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6304
11620
  static const char *NodeId ();
 
11621
  /** Get the name of the node. Can be compared with NodeId(). */
6305
11622
  const char *NodeName () const { return NodeId (); }
 
11623
  /** Set the linkage specifiers to each declaration in the list.
 
11624
   *  \param l The linkage specifiers node. */
6306
11625
  void Linkage (CT_LinkageSpec *l);
6307
11626
};
6308
11627
 
 
11628
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
11629
 *  Tree node representing a sequence of declaration specifiers. */
6309
11630
 
6310
 
#line 6311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11631
#line 11632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6311
11632
} // closed Puma
 
11633
class CCExprResolve;
 
11634
class CExprResolve;
6312
11635
class WinIfExists;
6313
11636
class WinImportHandler;
6314
11637
class WinMacros;
6315
 
class CMatchSyntax;
6316
 
class ExtGnu;
 
11638
class WinAsm;
 
11639
class WinDeclSpecs;
 
11640
class WinMemberExplSpec;
 
11641
class WinTypeKeywords;
 
11642
class WinFriend;
6317
11643
class ExtAC;
6318
11644
class ExtACBuilderCoupling;
6319
11645
class ExtACSyntaxCoupling;
6320
11646
class ExtACTree;
6321
11647
class ExtACKeywords;
6322
 
class WinAsm;
6323
 
class WinDeclSpecs;
6324
 
class WinMemberExplSpec;
6325
 
class WinTypeKeywords;
 
11648
class ExtGnu;
6326
11649
class PragmaOnceUnitState;
6327
11650
class PragmaOnce;
6328
 
class CCExprResolve;
6329
 
class CExprResolve;
 
11651
class CMatchSyntax;
6330
11652
namespace Puma {
6331
11653
 
6332
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11654
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6333
11655
class CT_DeclSpecSeq : public CT_List {
6334
 
#line 6335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11656
#line 11657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11657
  friend class ::CCExprResolve;
 
11658
  friend class ::CExprResolve;
6335
11659
  friend class ::WinIfExists;
6336
11660
  friend class ::WinImportHandler;
6337
11661
  friend class ::WinMacros;
6338
 
  friend class ::CMatchSyntax;
6339
 
  friend class ::ExtGnu;
 
11662
  friend class ::WinAsm;
 
11663
  friend class ::WinDeclSpecs;
 
11664
  friend class ::WinMemberExplSpec;
 
11665
  friend class ::WinTypeKeywords;
 
11666
  friend class ::WinFriend;
6340
11667
  friend class ::ExtAC;
6341
11668
  friend class ::ExtACBuilderCoupling;
6342
11669
  friend class ::ExtACSyntaxCoupling;
6343
11670
  friend class ::ExtACTree;
6344
11671
  friend class ::ExtACKeywords;
6345
 
  friend class ::WinAsm;
6346
 
  friend class ::WinDeclSpecs;
6347
 
  friend class ::WinMemberExplSpec;
6348
 
  friend class ::WinTypeKeywords;
 
11672
  friend class ::ExtGnu;
6349
11673
  friend class ::PragmaOnceUnitState;
6350
11674
  friend class ::PragmaOnce;
6351
 
  friend class ::CCExprResolve;
6352
 
  friend class ::CExprResolve;
 
11675
  friend class ::CMatchSyntax;
6353
11676
 
6354
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11677
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6355
11678
 
6356
11679
public:
 
11680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6357
11681
  static const char *NodeId ();
 
11682
  /** Get the name of the node. Can be compared with NodeId(). */
6358
11683
  const char *NodeName () const { return NodeId (); }
6359
11684
};
6360
11685
 
 
11686
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
11687
 *  Tree node representing a compound statement. */
6361
11688
 
6362
 
#line 6363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11689
#line 11690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6363
11690
} // closed Puma
 
11691
class CCExprResolve;
 
11692
class CExprResolve;
6364
11693
class WinIfExists;
6365
11694
class WinImportHandler;
6366
11695
class WinMacros;
6367
 
class CMatchSyntax;
6368
 
class ExtGnu;
 
11696
class WinAsm;
 
11697
class WinDeclSpecs;
 
11698
class WinMemberExplSpec;
 
11699
class WinTypeKeywords;
 
11700
class WinFriend;
6369
11701
class ExtAC;
6370
11702
class ExtACBuilderCoupling;
6371
11703
class ExtACSyntaxCoupling;
6372
11704
class ExtACTree;
6373
11705
class ExtACKeywords;
6374
 
class WinAsm;
6375
 
class WinDeclSpecs;
6376
 
class WinMemberExplSpec;
6377
 
class WinTypeKeywords;
 
11706
class ExtGnu;
6378
11707
class PragmaOnceUnitState;
6379
11708
class PragmaOnce;
6380
 
class CCExprResolve;
6381
 
class CExprResolve;
 
11709
class CMatchSyntax;
6382
11710
namespace Puma {
6383
11711
 
6384
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11712
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6385
11713
class CT_CmpdStmt : public CT_List, public CSemScope {
6386
 
#line 6387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11714
#line 11715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11715
  friend class ::CCExprResolve;
 
11716
  friend class ::CExprResolve;
6387
11717
  friend class ::WinIfExists;
6388
11718
  friend class ::WinImportHandler;
6389
11719
  friend class ::WinMacros;
6390
 
  friend class ::CMatchSyntax;
6391
 
  friend class ::ExtGnu;
 
11720
  friend class ::WinAsm;
 
11721
  friend class ::WinDeclSpecs;
 
11722
  friend class ::WinMemberExplSpec;
 
11723
  friend class ::WinTypeKeywords;
 
11724
  friend class ::WinFriend;
6392
11725
  friend class ::ExtAC;
6393
11726
  friend class ::ExtACBuilderCoupling;
6394
11727
  friend class ::ExtACSyntaxCoupling;
6395
11728
  friend class ::ExtACTree;
6396
11729
  friend class ::ExtACKeywords;
6397
 
  friend class ::WinAsm;
6398
 
  friend class ::WinDeclSpecs;
6399
 
  friend class ::WinMemberExplSpec;
6400
 
  friend class ::WinTypeKeywords;
 
11730
  friend class ::ExtGnu;
6401
11731
  friend class ::PragmaOnceUnitState;
6402
11732
  friend class ::PragmaOnce;
6403
 
  friend class ::CCExprResolve;
6404
 
  friend class ::CExprResolve;
 
11733
  friend class ::CMatchSyntax;
6405
11734
 
6406
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11735
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6407
11736
 
6408
11737
public:
 
11738
  /* Constructor. */
6409
11739
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
11740
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6410
11741
  static const char *NodeId ();
 
11742
  /** Get the name of the node. Can be compared with NodeId(). */
6411
11743
  const char *NodeName () const { return NodeId (); }
 
11744
  /** Get the local scope of the compound statement. */
 
11745
  CSemScope *SemScope () const { return (CSemScope*)this; }
6412
11746
};
6413
11747
 
 
11748
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
11749
 *  Tree node representing an exception handler sequence. */
6414
11750
 
6415
 
#line 6416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11751
#line 11752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6416
11752
} // closed Puma
 
11753
class CCExprResolve;
 
11754
class CExprResolve;
6417
11755
class WinIfExists;
6418
11756
class WinImportHandler;
6419
11757
class WinMacros;
6420
 
class CMatchSyntax;
6421
 
class ExtGnu;
 
11758
class WinAsm;
 
11759
class WinDeclSpecs;
 
11760
class WinMemberExplSpec;
 
11761
class WinTypeKeywords;
 
11762
class WinFriend;
6422
11763
class ExtAC;
6423
11764
class ExtACBuilderCoupling;
6424
11765
class ExtACSyntaxCoupling;
6425
11766
class ExtACTree;
6426
11767
class ExtACKeywords;
6427
 
class WinAsm;
6428
 
class WinDeclSpecs;
6429
 
class WinMemberExplSpec;
6430
 
class WinTypeKeywords;
 
11768
class ExtGnu;
6431
11769
class PragmaOnceUnitState;
6432
11770
class PragmaOnce;
6433
 
class CCExprResolve;
6434
 
class CExprResolve;
 
11771
class CMatchSyntax;
6435
11772
namespace Puma {
6436
11773
 
6437
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11774
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6438
11775
class CT_HandlerSeq : public CT_List {
6439
 
#line 6440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11776
#line 11777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11777
  friend class ::CCExprResolve;
 
11778
  friend class ::CExprResolve;
6440
11779
  friend class ::WinIfExists;
6441
11780
  friend class ::WinImportHandler;
6442
11781
  friend class ::WinMacros;
6443
 
  friend class ::CMatchSyntax;
6444
 
  friend class ::ExtGnu;
 
11782
  friend class ::WinAsm;
 
11783
  friend class ::WinDeclSpecs;
 
11784
  friend class ::WinMemberExplSpec;
 
11785
  friend class ::WinTypeKeywords;
 
11786
  friend class ::WinFriend;
6445
11787
  friend class ::ExtAC;
6446
11788
  friend class ::ExtACBuilderCoupling;
6447
11789
  friend class ::ExtACSyntaxCoupling;
6448
11790
  friend class ::ExtACTree;
6449
11791
  friend class ::ExtACKeywords;
6450
 
  friend class ::WinAsm;
6451
 
  friend class ::WinDeclSpecs;
6452
 
  friend class ::WinMemberExplSpec;
6453
 
  friend class ::WinTypeKeywords;
 
11792
  friend class ::ExtGnu;
6454
11793
  friend class ::PragmaOnceUnitState;
6455
11794
  friend class ::PragmaOnce;
6456
 
  friend class ::CCExprResolve;
6457
 
  friend class ::CExprResolve;
 
11795
  friend class ::CMatchSyntax;
6458
11796
 
6459
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11797
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6460
11798
 
6461
11799
public:
 
11800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6462
11801
  static const char *NodeId ();
 
11802
  /** Get the name of the node. Can be compared with NodeId(). */
6463
11803
  const char *NodeName () const { return NodeId (); }
6464
11804
};
6465
11805
 
 
11806
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
11807
 *  Tree node representing a template parameter list. */
6466
11808
 
6467
 
#line 6468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11809
#line 11810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6468
11810
} // closed Puma
 
11811
class CCExprResolve;
 
11812
class CExprResolve;
6469
11813
class WinIfExists;
6470
11814
class WinImportHandler;
6471
11815
class WinMacros;
6472
 
class CMatchSyntax;
6473
 
class ExtGnu;
 
11816
class WinAsm;
 
11817
class WinDeclSpecs;
 
11818
class WinMemberExplSpec;
 
11819
class WinTypeKeywords;
 
11820
class WinFriend;
6474
11821
class ExtAC;
6475
11822
class ExtACBuilderCoupling;
6476
11823
class ExtACSyntaxCoupling;
6477
11824
class ExtACTree;
6478
11825
class ExtACKeywords;
6479
 
class WinAsm;
6480
 
class WinDeclSpecs;
6481
 
class WinMemberExplSpec;
6482
 
class WinTypeKeywords;
 
11826
class ExtGnu;
6483
11827
class PragmaOnceUnitState;
6484
11828
class PragmaOnce;
6485
 
class CCExprResolve;
6486
 
class CExprResolve;
 
11829
class CMatchSyntax;
6487
11830
namespace Puma {
6488
11831
 
6489
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11832
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6490
11833
class CT_TemplateParamList : public CT_List, public CSemScope {
6491
 
#line 6492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11834
#line 11835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11835
  friend class ::CCExprResolve;
 
11836
  friend class ::CExprResolve;
6492
11837
  friend class ::WinIfExists;
6493
11838
  friend class ::WinImportHandler;
6494
11839
  friend class ::WinMacros;
6495
 
  friend class ::CMatchSyntax;
6496
 
  friend class ::ExtGnu;
 
11840
  friend class ::WinAsm;
 
11841
  friend class ::WinDeclSpecs;
 
11842
  friend class ::WinMemberExplSpec;
 
11843
  friend class ::WinTypeKeywords;
 
11844
  friend class ::WinFriend;
6497
11845
  friend class ::ExtAC;
6498
11846
  friend class ::ExtACBuilderCoupling;
6499
11847
  friend class ::ExtACSyntaxCoupling;
6500
11848
  friend class ::ExtACTree;
6501
11849
  friend class ::ExtACKeywords;
6502
 
  friend class ::WinAsm;
6503
 
  friend class ::WinDeclSpecs;
6504
 
  friend class ::WinMemberExplSpec;
6505
 
  friend class ::WinTypeKeywords;
 
11850
  friend class ::ExtGnu;
6506
11851
  friend class ::PragmaOnceUnitState;
6507
11852
  friend class ::PragmaOnce;
6508
 
  friend class ::CCExprResolve;
6509
 
  friend class ::CExprResolve;
 
11853
  friend class ::CMatchSyntax;
6510
11854
 
6511
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11855
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6512
11856
 
6513
11857
public:
6514
11858
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
11859
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6515
11860
  static const char *NodeId ();
 
11861
  /** Get the name of the node. Can be compared with NodeId(). */
6516
11862
  const char *NodeName () const { return NodeId (); }
 
11863
  /** Get the scope of the template parameter list. */
 
11864
  CSemScope *SemScope () const { return (CSemScope*)this; }
6517
11865
};
6518
11866
 
 
11867
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
11868
 *  Tree node representing a template argument list. */
6519
11869
 
6520
 
#line 6521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11870
#line 11871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6521
11871
} // closed Puma
 
11872
class CCExprResolve;
 
11873
class CExprResolve;
6522
11874
class WinIfExists;
6523
11875
class WinImportHandler;
6524
11876
class WinMacros;
6525
 
class CMatchSyntax;
6526
 
class ExtGnu;
 
11877
class WinAsm;
 
11878
class WinDeclSpecs;
 
11879
class WinMemberExplSpec;
 
11880
class WinTypeKeywords;
 
11881
class WinFriend;
6527
11882
class ExtAC;
6528
11883
class ExtACBuilderCoupling;
6529
11884
class ExtACSyntaxCoupling;
6530
11885
class ExtACTree;
6531
11886
class ExtACKeywords;
6532
 
class WinAsm;
6533
 
class WinDeclSpecs;
6534
 
class WinMemberExplSpec;
6535
 
class WinTypeKeywords;
 
11887
class ExtGnu;
6536
11888
class PragmaOnceUnitState;
6537
11889
class PragmaOnce;
6538
 
class CCExprResolve;
6539
 
class CExprResolve;
 
11890
class CMatchSyntax;
6540
11891
namespace Puma {
6541
11892
 
6542
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11893
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6543
11894
class CT_TemplateArgList : public CT_List {
6544
 
#line 6545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11895
#line 11896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11896
  friend class ::CCExprResolve;
 
11897
  friend class ::CExprResolve;
6545
11898
  friend class ::WinIfExists;
6546
11899
  friend class ::WinImportHandler;
6547
11900
  friend class ::WinMacros;
6548
 
  friend class ::CMatchSyntax;
6549
 
  friend class ::ExtGnu;
 
11901
  friend class ::WinAsm;
 
11902
  friend class ::WinDeclSpecs;
 
11903
  friend class ::WinMemberExplSpec;
 
11904
  friend class ::WinTypeKeywords;
 
11905
  friend class ::WinFriend;
6550
11906
  friend class ::ExtAC;
6551
11907
  friend class ::ExtACBuilderCoupling;
6552
11908
  friend class ::ExtACSyntaxCoupling;
6553
11909
  friend class ::ExtACTree;
6554
11910
  friend class ::ExtACKeywords;
6555
 
  friend class ::WinAsm;
6556
 
  friend class ::WinDeclSpecs;
6557
 
  friend class ::WinMemberExplSpec;
6558
 
  friend class ::WinTypeKeywords;
 
11911
  friend class ::ExtGnu;
6559
11912
  friend class ::PragmaOnceUnitState;
6560
11913
  friend class ::PragmaOnce;
6561
 
  friend class ::CCExprResolve;
6562
 
  friend class ::CExprResolve;
 
11914
  friend class ::CMatchSyntax;
6563
11915
 
6564
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11916
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6565
11917
 
6566
11918
public:
 
11919
  /** Constructor. */
6567
11920
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
11921
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6568
11922
  static const char *NodeId ();
 
11923
  /** Get the name of the node. Can be compared with NodeId(). */
6569
11924
  const char *NodeName () const { return NodeId (); }
6570
11925
};
6571
11926
 
6575
11930
/*                                                                           */
6576
11931
/*****************************************************************************/
6577
11932
 
 
11933
/** \class CT_Expression CTree.h Puma/CTree.h
 
11934
 *  Base class for all expression tree nodes. */
6578
11935
 
6579
 
#line 6580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11936
#line 11937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6580
11937
} // closed Puma
 
11938
class CCExprResolve;
 
11939
class CExprResolve;
6581
11940
class WinIfExists;
6582
11941
class WinImportHandler;
6583
11942
class WinMacros;
6584
 
class CMatchSyntax;
6585
 
class ExtGnu;
 
11943
class WinAsm;
 
11944
class WinDeclSpecs;
 
11945
class WinMemberExplSpec;
 
11946
class WinTypeKeywords;
 
11947
class WinFriend;
6586
11948
class ExtAC;
6587
11949
class ExtACBuilderCoupling;
6588
11950
class ExtACSyntaxCoupling;
6589
11951
class ExtACTree;
6590
11952
class ExtACKeywords;
6591
 
class WinAsm;
6592
 
class WinDeclSpecs;
6593
 
class WinMemberExplSpec;
6594
 
class WinTypeKeywords;
 
11953
class ExtGnu;
6595
11954
class PragmaOnceUnitState;
6596
11955
class PragmaOnce;
6597
 
class CCExprResolve;
6598
 
class CExprResolve;
6599
 
namespace Puma {
6600
 
 
6601
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11956
class CMatchSyntax;
 
11957
namespace Puma {
 
11958
 
 
11959
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11960
 
 
11961
#line 11962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11962
} // closed Puma
 
11963
 
 
11964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11966
#include "CCExprResolveH.ah"
 
11967
#endif
 
11968
namespace Puma {
 
11969
 
 
11970
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11971
 
 
11972
#line 11973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11973
} // closed Puma
 
11974
 
 
11975
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11976
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11977
#include "CExprResolveH.ah"
 
11978
#endif
 
11979
namespace Puma {
 
11980
 
 
11981
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6602
11982
class CT_Expression : public CTree, public CSemValue {
6603
 
#line 6604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
11983
#line 11984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
11984
  friend class ::CCExprResolve;
 
11985
  friend class ::CExprResolve;
6604
11986
  friend class ::WinIfExists;
6605
11987
  friend class ::WinImportHandler;
6606
11988
  friend class ::WinMacros;
6607
 
  friend class ::CMatchSyntax;
6608
 
  friend class ::ExtGnu;
 
11989
  friend class ::WinAsm;
 
11990
  friend class ::WinDeclSpecs;
 
11991
  friend class ::WinMemberExplSpec;
 
11992
  friend class ::WinTypeKeywords;
 
11993
  friend class ::WinFriend;
6609
11994
  friend class ::ExtAC;
6610
11995
  friend class ::ExtACBuilderCoupling;
6611
11996
  friend class ::ExtACSyntaxCoupling;
6612
11997
  friend class ::ExtACTree;
6613
11998
  friend class ::ExtACKeywords;
6614
 
  friend class ::WinAsm;
6615
 
  friend class ::WinDeclSpecs;
6616
 
  friend class ::WinMemberExplSpec;
6617
 
  friend class ::WinTypeKeywords;
 
11999
  friend class ::ExtGnu;
6618
12000
  friend class ::PragmaOnceUnitState;
6619
12001
  friend class ::PragmaOnce;
6620
 
  friend class ::CCExprResolve;
6621
 
  friend class ::CExprResolve;
 
12002
  friend class ::CMatchSyntax;
6622
12003
 
6623
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12004
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6624
12005
 
6625
12006
protected:
 
12007
  /** Constructor. */
6626
12008
  CT_Expression () {}
6627
12009
 
6628
12010
public:
 
12011
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6629
12012
  static const char *NodeId ();
 
12013
  /** Get the name of the node. Can be compared with NodeId(). */
6630
12014
  const char *NodeName () const { return NodeId (); }
 
12015
  /** Get the type of the expression.
 
12016
   *  \return The type information object or NULL. */
6631
12017
  CTypeInfo *Type () const { return type; }
 
12018
  /** Get the value of the expression.
 
12019
   *  \return The value object or NULL. */
6632
12020
  CExprValue *Value () const { return value; }
 
12021
  /** Get the semantic value information of the expression.
 
12022
   *  \return The value object or NULL. */
6633
12023
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
12024
  /** Get this. */
 
12025
  virtual CT_Expression *IsExpression () { return this; }
6634
12026
   private:
6635
12027
  typedef CT_Expression CCExprResolveExpr;
6636
12028
 
6637
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12029
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6638
12030
 public :
6639
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12031
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6640
12032
  typedef CT_Expression CExprResolveExpr;
6641
12033
 
6642
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6643
 
 public :
6644
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6645
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6646
 
};
6647
 
 
6648
 
 
6649
 
#line 6650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
6650
 
} // closed Puma
6651
 
class WinIfExists;
6652
 
class WinImportHandler;
6653
 
class WinMacros;
6654
 
class CMatchSyntax;
6655
 
class ExtGnu;
6656
 
class ExtAC;
6657
 
class ExtACBuilderCoupling;
6658
 
class ExtACSyntaxCoupling;
6659
 
class ExtACTree;
6660
 
class ExtACKeywords;
6661
 
class WinAsm;
6662
 
class WinDeclSpecs;
6663
 
class WinMemberExplSpec;
6664
 
class WinTypeKeywords;
6665
 
class PragmaOnceUnitState;
6666
 
class PragmaOnce;
6667
 
class CCExprResolve;
6668
 
class CExprResolve;
6669
 
namespace Puma {
6670
 
 
6671
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12034
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12035
 public :
 
12036
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12037
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12038
};
 
12039
 
 
12040
/** \class CT_Call CTree.h Puma/CTree.h
 
12041
 *  Tree node representing explicit or implicit function calls 
 
12042
 *  including built-in or user-defined functions and overloaded
 
12043
 *  operators. */
 
12044
 
 
12045
#line 12046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12046
} // closed Puma
 
12047
class CCExprResolve;
 
12048
class CExprResolve;
 
12049
class WinIfExists;
 
12050
class WinImportHandler;
 
12051
class WinMacros;
 
12052
class WinAsm;
 
12053
class WinDeclSpecs;
 
12054
class WinMemberExplSpec;
 
12055
class WinTypeKeywords;
 
12056
class WinFriend;
 
12057
class ExtAC;
 
12058
class ExtACBuilderCoupling;
 
12059
class ExtACSyntaxCoupling;
 
12060
class ExtACTree;
 
12061
class ExtACKeywords;
 
12062
class ExtGnu;
 
12063
class PragmaOnceUnitState;
 
12064
class PragmaOnce;
 
12065
class CMatchSyntax;
 
12066
namespace Puma {
 
12067
 
 
12068
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12069
 
 
12070
#line 12071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12071
} // closed Puma
 
12072
 
 
12073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12075
#include "CCExprResolveH.ah"
 
12076
#endif
 
12077
namespace Puma {
 
12078
 
 
12079
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12080
 
 
12081
#line 12082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12082
} // closed Puma
 
12083
 
 
12084
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12085
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12086
#include "CExprResolveH.ah"
 
12087
#endif
 
12088
namespace Puma {
 
12089
 
 
12090
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12091
class CT_Call : public CT_Expression, public CSemObject {
 
12092
#line 12093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12093
  friend class ::CCExprResolve;
 
12094
  friend class ::CExprResolve;
 
12095
  friend class ::WinIfExists;
 
12096
  friend class ::WinImportHandler;
 
12097
  friend class ::WinMacros;
 
12098
  friend class ::WinAsm;
 
12099
  friend class ::WinDeclSpecs;
 
12100
  friend class ::WinMemberExplSpec;
 
12101
  friend class ::WinTypeKeywords;
 
12102
  friend class ::WinFriend;
 
12103
  friend class ::ExtAC;
 
12104
  friend class ::ExtACBuilderCoupling;
 
12105
  friend class ::ExtACSyntaxCoupling;
 
12106
  friend class ::ExtACTree;
 
12107
  friend class ::ExtACKeywords;
 
12108
  friend class ::ExtGnu;
 
12109
  friend class ::PragmaOnceUnitState;
 
12110
  friend class ::PragmaOnce;
 
12111
  friend class ::CMatchSyntax;
 
12112
 
 
12113
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12114
 
 
12115
protected:
 
12116
  /** Constructor. */
 
12117
  CT_Call () {}
 
12118
  
 
12119
public:
 
12120
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12121
  static const char *NodeId ();
 
12122
  /** Get the name of the node. Can be compared with NodeId(). */
 
12123
  const char *NodeName () const { return NodeId (); }
 
12124
  /** Get the semantic information of the call.
 
12125
   *  \return The semantic information or NULL. */
 
12126
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
12127
  /** Get this. */
 
12128
  CT_Call *IsCall () { return this; }
 
12129
   private:
 
12130
  typedef CT_Call CCExprResolveExpr;
 
12131
 
 
12132
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12133
 public :
 
12134
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
12135
  typedef CT_Call CExprResolveExpr;
 
12136
 
 
12137
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12138
 public :
 
12139
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12140
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12141
};
 
12142
 
 
12143
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
12144
 *  Tree node representing implicit function calls detected by
 
12145
 *  the semantic analysis. */
 
12146
 
 
12147
#line 12148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12148
} // closed Puma
 
12149
class CCExprResolve;
 
12150
class CExprResolve;
 
12151
class WinIfExists;
 
12152
class WinImportHandler;
 
12153
class WinMacros;
 
12154
class WinAsm;
 
12155
class WinDeclSpecs;
 
12156
class WinMemberExplSpec;
 
12157
class WinTypeKeywords;
 
12158
class WinFriend;
 
12159
class ExtAC;
 
12160
class ExtACBuilderCoupling;
 
12161
class ExtACSyntaxCoupling;
 
12162
class ExtACTree;
 
12163
class ExtACKeywords;
 
12164
class ExtGnu;
 
12165
class PragmaOnceUnitState;
 
12166
class PragmaOnce;
 
12167
class CMatchSyntax;
 
12168
namespace Puma {
 
12169
 
 
12170
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12171
 
 
12172
#line 12173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12173
} // closed Puma
 
12174
 
 
12175
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12176
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12177
#include "CCExprResolveH.ah"
 
12178
#endif
 
12179
namespace Puma {
 
12180
 
 
12181
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12182
 
 
12183
#line 12184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12184
} // closed Puma
 
12185
 
 
12186
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12187
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12188
#include "CExprResolveH.ah"
 
12189
#endif
 
12190
namespace Puma {
 
12191
 
 
12192
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12193
class CT_ImplicitCall : public CT_Call {
 
12194
#line 12195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12195
  friend class ::CCExprResolve;
 
12196
  friend class ::CExprResolve;
 
12197
  friend class ::WinIfExists;
 
12198
  friend class ::WinImportHandler;
 
12199
  friend class ::WinMacros;
 
12200
  friend class ::WinAsm;
 
12201
  friend class ::WinDeclSpecs;
 
12202
  friend class ::WinMemberExplSpec;
 
12203
  friend class ::WinTypeKeywords;
 
12204
  friend class ::WinFriend;
 
12205
  friend class ::ExtAC;
 
12206
  friend class ::ExtACBuilderCoupling;
 
12207
  friend class ::ExtACSyntaxCoupling;
 
12208
  friend class ::ExtACTree;
 
12209
  friend class ::ExtACKeywords;
 
12210
  friend class ::ExtGnu;
 
12211
  friend class ::PragmaOnceUnitState;
 
12212
  friend class ::PragmaOnce;
 
12213
  friend class ::CMatchSyntax;
 
12214
 
 
12215
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12216
 
 
12217
  CTree *_arg;
 
12218
 
 
12219
public:
 
12220
  /** Constructor.
 
12221
   *  \param arg The call argument. */
 
12222
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
12223
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
12224
  static const char *NodeId ();
 
12225
  /** Get the name of the node. Can be compared with NodeId(). */
 
12226
  const char *NodeName () const { return NodeId (); }
 
12227
  /** Get the number of sons. */
 
12228
  int Sons () const { return 1; }
 
12229
  /** Get the n-th son.
 
12230
   *  \param n The index of the son.
 
12231
   *  \return The n-th son or NULL. */
 
12232
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
12233
  /** Replace a son.
 
12234
   *  \param old_son The son to replace.
 
12235
   *  \param new_son The new son. */
 
12236
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
12237
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
12238
   private:
 
12239
  typedef CT_ImplicitCall CCExprResolveExpr;
 
12240
 
 
12241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12242
 public :
 
12243
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
12244
  typedef CT_ImplicitCall CExprResolveExpr;
 
12245
 
 
12246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12247
 public :
 
12248
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12249
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12250
};
 
12251
 
 
12252
/** \class CT_String CTree.h Puma/CTree.h
 
12253
 *  Tree node representing a string literal. */
 
12254
 
 
12255
#line 12256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12256
} // closed Puma
 
12257
class CCExprResolve;
 
12258
class CExprResolve;
 
12259
class WinIfExists;
 
12260
class WinImportHandler;
 
12261
class WinMacros;
 
12262
class WinAsm;
 
12263
class WinDeclSpecs;
 
12264
class WinMemberExplSpec;
 
12265
class WinTypeKeywords;
 
12266
class WinFriend;
 
12267
class ExtAC;
 
12268
class ExtACBuilderCoupling;
 
12269
class ExtACSyntaxCoupling;
 
12270
class ExtACTree;
 
12271
class ExtACKeywords;
 
12272
class ExtGnu;
 
12273
class PragmaOnceUnitState;
 
12274
class PragmaOnce;
 
12275
class CMatchSyntax;
 
12276
namespace Puma {
 
12277
 
 
12278
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12279
 
 
12280
#line 12281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12281
} // closed Puma
 
12282
 
 
12283
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12284
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12285
#include "CCExprResolveH.ah"
 
12286
#endif
 
12287
namespace Puma {
 
12288
 
 
12289
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12290
 
 
12291
#line 12292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12292
} // closed Puma
 
12293
 
 
12294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12296
#include "CExprResolveH.ah"
 
12297
#endif
 
12298
namespace Puma {
 
12299
 
 
12300
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6672
12301
class CT_String : public CT_List, public CSemValue {
6673
 
#line 6674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12302
#line 12303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12303
  friend class ::CCExprResolve;
 
12304
  friend class ::CExprResolve;
6674
12305
  friend class ::WinIfExists;
6675
12306
  friend class ::WinImportHandler;
6676
12307
  friend class ::WinMacros;
6677
 
  friend class ::CMatchSyntax;
6678
 
  friend class ::ExtGnu;
 
12308
  friend class ::WinAsm;
 
12309
  friend class ::WinDeclSpecs;
 
12310
  friend class ::WinMemberExplSpec;
 
12311
  friend class ::WinTypeKeywords;
 
12312
  friend class ::WinFriend;
6679
12313
  friend class ::ExtAC;
6680
12314
  friend class ::ExtACBuilderCoupling;
6681
12315
  friend class ::ExtACSyntaxCoupling;
6682
12316
  friend class ::ExtACTree;
6683
12317
  friend class ::ExtACKeywords;
6684
 
  friend class ::WinAsm;
6685
 
  friend class ::WinDeclSpecs;
6686
 
  friend class ::WinMemberExplSpec;
6687
 
  friend class ::WinTypeKeywords;
 
12318
  friend class ::ExtGnu;
6688
12319
  friend class ::PragmaOnceUnitState;
6689
12320
  friend class ::PragmaOnce;
6690
 
  friend class ::CCExprResolve;
6691
 
  friend class ::CExprResolve;
 
12321
  friend class ::CMatchSyntax;
6692
12322
 
6693
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12323
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6694
12324
 
6695
12325
public:
 
12326
  /** Constructor. 
 
12327
   *  \param size The number of sub-strings. */
6696
12328
  CT_String (int size) : CT_List (size, 1) {}
 
12329
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6697
12330
  static const char *NodeId ();
 
12331
  /** Get the name of the node. Can be compared with NodeId(). */
6698
12332
  const char *NodeName () const { return NodeId (); }
6699
12333
 
 
12334
  /** Get the type of the string. 
 
12335
   *  \return The type or NULL. */
6700
12336
  CTypeInfo *Type () const { return type; }
 
12337
  /** Get the string value.
 
12338
   *  \return The value or NULL. */
6701
12339
  CExprValue *Value () const { return value; }
 
12340
  /** Get the semantic value info object.
 
12341
   *  \return The semantic value object or NULL. */
6702
12342
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
12343
  /** Get this. */
 
12344
  virtual CT_String *IsString () { return this; }
6703
12345
   private:
6704
12346
  typedef CT_String CCExprResolveExpr;
6705
12347
 
6706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12348
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6707
12349
 public :
6708
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12350
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6709
12351
  typedef CT_String CExprResolveExpr;
6710
12352
 
6711
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12353
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6712
12354
 public :
6713
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6714
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12355
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12356
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6715
12357
};
6716
12358
 
 
12359
/** \class CT_WideString CTree.h Puma/CTree.h
 
12360
 *  Tree node representing a wide string literal. */
6717
12361
 
6718
 
#line 6719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12362
#line 12363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6719
12363
} // closed Puma
 
12364
class CCExprResolve;
 
12365
class CExprResolve;
6720
12366
class WinIfExists;
6721
12367
class WinImportHandler;
6722
12368
class WinMacros;
6723
 
class CMatchSyntax;
6724
 
class ExtGnu;
 
12369
class WinAsm;
 
12370
class WinDeclSpecs;
 
12371
class WinMemberExplSpec;
 
12372
class WinTypeKeywords;
 
12373
class WinFriend;
6725
12374
class ExtAC;
6726
12375
class ExtACBuilderCoupling;
6727
12376
class ExtACSyntaxCoupling;
6728
12377
class ExtACTree;
6729
12378
class ExtACKeywords;
6730
 
class WinAsm;
6731
 
class WinDeclSpecs;
6732
 
class WinMemberExplSpec;
6733
 
class WinTypeKeywords;
 
12379
class ExtGnu;
6734
12380
class PragmaOnceUnitState;
6735
12381
class PragmaOnce;
6736
 
class CCExprResolve;
6737
 
class CExprResolve;
6738
 
namespace Puma {
6739
 
 
6740
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12382
class CMatchSyntax;
 
12383
namespace Puma {
 
12384
 
 
12385
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12386
 
 
12387
#line 12388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12388
} // closed Puma
 
12389
 
 
12390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12392
#include "CCExprResolveH.ah"
 
12393
#endif
 
12394
namespace Puma {
 
12395
 
 
12396
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12397
 
 
12398
#line 12399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12399
} // closed Puma
 
12400
 
 
12401
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12402
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12403
#include "CExprResolveH.ah"
 
12404
#endif
 
12405
namespace Puma {
 
12406
 
 
12407
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6741
12408
class CT_WideString : public CT_String {
6742
 
#line 6743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12409
#line 12410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12410
  friend class ::CCExprResolve;
 
12411
  friend class ::CExprResolve;
6743
12412
  friend class ::WinIfExists;
6744
12413
  friend class ::WinImportHandler;
6745
12414
  friend class ::WinMacros;
6746
 
  friend class ::CMatchSyntax;
6747
 
  friend class ::ExtGnu;
 
12415
  friend class ::WinAsm;
 
12416
  friend class ::WinDeclSpecs;
 
12417
  friend class ::WinMemberExplSpec;
 
12418
  friend class ::WinTypeKeywords;
 
12419
  friend class ::WinFriend;
6748
12420
  friend class ::ExtAC;
6749
12421
  friend class ::ExtACBuilderCoupling;
6750
12422
  friend class ::ExtACSyntaxCoupling;
6751
12423
  friend class ::ExtACTree;
6752
12424
  friend class ::ExtACKeywords;
6753
 
  friend class ::WinAsm;
6754
 
  friend class ::WinDeclSpecs;
6755
 
  friend class ::WinMemberExplSpec;
6756
 
  friend class ::WinTypeKeywords;
 
12425
  friend class ::ExtGnu;
6757
12426
  friend class ::PragmaOnceUnitState;
6758
12427
  friend class ::PragmaOnce;
6759
 
  friend class ::CCExprResolve;
6760
 
  friend class ::CExprResolve;
 
12428
  friend class ::CMatchSyntax;
6761
12429
 
6762
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12430
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6763
12431
 
6764
12432
public:
 
12433
  /** Constructor.
 
12434
   *  \param size The number of sub-strings. */
6765
12435
  CT_WideString (int size) : CT_String (size) {}
 
12436
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6766
12437
  static const char *NodeId ();
 
12438
  /** Get the name of the node. Can be compared with NodeId(). */
6767
12439
  const char *NodeName () const { return NodeId (); }
6768
12440
   private:
6769
12441
  typedef CT_WideString CCExprResolveExpr;
6770
12442
 
6771
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12443
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6772
12444
 public :
6773
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12445
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6774
12446
  typedef CT_WideString CExprResolveExpr;
6775
12447
 
6776
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12448
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6777
12449
 public :
6778
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6779
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12450
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12451
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6780
12452
};
6781
12453
 
 
12454
/** \class CT_Integer CTree.h Puma/CTree.h
 
12455
 *  Tree node representing an integer constant. */
6782
12456
 
6783
 
#line 6784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12457
#line 12458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6784
12458
} // closed Puma
 
12459
class CCExprResolve;
 
12460
class CExprResolve;
6785
12461
class WinIfExists;
6786
12462
class WinImportHandler;
6787
12463
class WinMacros;
6788
 
class CMatchSyntax;
6789
 
class ExtGnu;
 
12464
class WinAsm;
 
12465
class WinDeclSpecs;
 
12466
class WinMemberExplSpec;
 
12467
class WinTypeKeywords;
 
12468
class WinFriend;
6790
12469
class ExtAC;
6791
12470
class ExtACBuilderCoupling;
6792
12471
class ExtACSyntaxCoupling;
6793
12472
class ExtACTree;
6794
12473
class ExtACKeywords;
6795
 
class WinAsm;
6796
 
class WinDeclSpecs;
6797
 
class WinMemberExplSpec;
6798
 
class WinTypeKeywords;
 
12474
class ExtGnu;
6799
12475
class PragmaOnceUnitState;
6800
12476
class PragmaOnce;
6801
 
class CCExprResolve;
6802
 
class CExprResolve;
6803
 
namespace Puma {
6804
 
 
6805
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12477
class CMatchSyntax;
 
12478
namespace Puma {
 
12479
 
 
12480
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12481
 
 
12482
#line 12483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12483
} // closed Puma
 
12484
 
 
12485
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12486
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12487
#include "CCExprResolveH.ah"
 
12488
#endif
 
12489
namespace Puma {
 
12490
 
 
12491
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12492
 
 
12493
#line 12494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12494
} // closed Puma
 
12495
 
 
12496
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12497
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12498
#include "CExprResolveH.ah"
 
12499
#endif
 
12500
namespace Puma {
 
12501
 
 
12502
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6806
12503
class CT_Integer : public CT_Expression {
6807
 
#line 6808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12504
#line 12505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12505
  friend class ::CCExprResolve;
 
12506
  friend class ::CExprResolve;
6808
12507
  friend class ::WinIfExists;
6809
12508
  friend class ::WinImportHandler;
6810
12509
  friend class ::WinMacros;
6811
 
  friend class ::CMatchSyntax;
6812
 
  friend class ::ExtGnu;
 
12510
  friend class ::WinAsm;
 
12511
  friend class ::WinDeclSpecs;
 
12512
  friend class ::WinMemberExplSpec;
 
12513
  friend class ::WinTypeKeywords;
 
12514
  friend class ::WinFriend;
6813
12515
  friend class ::ExtAC;
6814
12516
  friend class ::ExtACBuilderCoupling;
6815
12517
  friend class ::ExtACSyntaxCoupling;
6816
12518
  friend class ::ExtACTree;
6817
12519
  friend class ::ExtACKeywords;
6818
 
  friend class ::WinAsm;
6819
 
  friend class ::WinDeclSpecs;
6820
 
  friend class ::WinMemberExplSpec;
6821
 
  friend class ::WinTypeKeywords;
 
12520
  friend class ::ExtGnu;
6822
12521
  friend class ::PragmaOnceUnitState;
6823
12522
  friend class ::PragmaOnce;
6824
 
  friend class ::CCExprResolve;
6825
 
  friend class ::CExprResolve;
 
12523
  friend class ::CMatchSyntax;
6826
12524
 
6827
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12525
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6828
12526
 
6829
12527
  CTree *_value;  // CT_Token
6830
12528
 
6831
12529
public:
6832
 
  CT_Integer (CTree *t) : _value (t) {}
 
12530
  /** Constructor.
 
12531
   *  \param token The token containing the integer value. */
 
12532
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
12533
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6833
12534
  static const char *NodeId ();
 
12535
  /** Get the name of the node. Can be compared with NodeId(). */
6834
12536
  const char *NodeName () const { return NodeId (); }
 
12537
  /** Get the number of sons. */
6835
12538
  int Sons () const { return _value ? 1 : 0; }
 
12539
  /** Get the n-th son.
 
12540
   *  \param n The index of the son.
 
12541
   *  \return The n-th son or NULL. */
6836
12542
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
12543
  /** Replace a son.
 
12544
   *  \param old_son The son to replace.
 
12545
   *  \param new_son The new son. */
6837
12546
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6838
 
   { if (old_son == _value) _value = new_son; }
 
12547
   { CTree::ReplaceSon (_value, old_son, new_son); }
6839
12548
   private:
6840
12549
  typedef CT_Integer CCExprResolveExpr;
6841
12550
 
6842
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6843
12552
 public :
6844
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12553
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6845
12554
  typedef CT_Integer CExprResolveExpr;
6846
12555
 
6847
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12556
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6848
12557
 public :
6849
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6850
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12558
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12559
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6851
12560
};
6852
12561
 
 
12562
/** \class CT_Character CTree.h Puma/CTree.h
 
12563
 *  Tree node representing a single character constant. */
6853
12564
 
6854
 
#line 6855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12565
#line 12566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6855
12566
} // closed Puma
 
12567
class CCExprResolve;
 
12568
class CExprResolve;
6856
12569
class WinIfExists;
6857
12570
class WinImportHandler;
6858
12571
class WinMacros;
6859
 
class CMatchSyntax;
6860
 
class ExtGnu;
 
12572
class WinAsm;
 
12573
class WinDeclSpecs;
 
12574
class WinMemberExplSpec;
 
12575
class WinTypeKeywords;
 
12576
class WinFriend;
6861
12577
class ExtAC;
6862
12578
class ExtACBuilderCoupling;
6863
12579
class ExtACSyntaxCoupling;
6864
12580
class ExtACTree;
6865
12581
class ExtACKeywords;
6866
 
class WinAsm;
6867
 
class WinDeclSpecs;
6868
 
class WinMemberExplSpec;
6869
 
class WinTypeKeywords;
 
12582
class ExtGnu;
6870
12583
class PragmaOnceUnitState;
6871
12584
class PragmaOnce;
6872
 
class CCExprResolve;
6873
 
class CExprResolve;
6874
 
namespace Puma {
6875
 
 
6876
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12585
class CMatchSyntax;
 
12586
namespace Puma {
 
12587
 
 
12588
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12589
 
 
12590
#line 12591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12591
} // closed Puma
 
12592
 
 
12593
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12594
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12595
#include "CCExprResolveH.ah"
 
12596
#endif
 
12597
namespace Puma {
 
12598
 
 
12599
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12600
 
 
12601
#line 12602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12602
} // closed Puma
 
12603
 
 
12604
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12605
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12606
#include "CExprResolveH.ah"
 
12607
#endif
 
12608
namespace Puma {
 
12609
 
 
12610
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6877
12611
class CT_Character : public CT_Expression {
6878
 
#line 6879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12612
#line 12613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12613
  friend class ::CCExprResolve;
 
12614
  friend class ::CExprResolve;
6879
12615
  friend class ::WinIfExists;
6880
12616
  friend class ::WinImportHandler;
6881
12617
  friend class ::WinMacros;
6882
 
  friend class ::CMatchSyntax;
6883
 
  friend class ::ExtGnu;
 
12618
  friend class ::WinAsm;
 
12619
  friend class ::WinDeclSpecs;
 
12620
  friend class ::WinMemberExplSpec;
 
12621
  friend class ::WinTypeKeywords;
 
12622
  friend class ::WinFriend;
6884
12623
  friend class ::ExtAC;
6885
12624
  friend class ::ExtACBuilderCoupling;
6886
12625
  friend class ::ExtACSyntaxCoupling;
6887
12626
  friend class ::ExtACTree;
6888
12627
  friend class ::ExtACKeywords;
6889
 
  friend class ::WinAsm;
6890
 
  friend class ::WinDeclSpecs;
6891
 
  friend class ::WinMemberExplSpec;
6892
 
  friend class ::WinTypeKeywords;
 
12628
  friend class ::ExtGnu;
6893
12629
  friend class ::PragmaOnceUnitState;
6894
12630
  friend class ::PragmaOnce;
6895
 
  friend class ::CCExprResolve;
6896
 
  friend class ::CExprResolve;
 
12631
  friend class ::CMatchSyntax;
6897
12632
 
6898
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12633
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6899
12634
 
6900
12635
  CTree *_value;  // CT_Token
6901
12636
 
6902
12637
public:
6903
 
  CT_Character (CTree *t) : _value (t) {}
 
12638
  /** Constructor.
 
12639
   *  \param token The token containing the character value. */
 
12640
  CT_Character (CTree *token) { AddSon (_value, token); }
 
12641
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6904
12642
  static const char *NodeId ();
 
12643
  /** Get the name of the node. Can be compared with NodeId(). */
6905
12644
  const char *NodeName () const { return NodeId (); }
 
12645
  /** Get the number of sons. */
6906
12646
  int Sons () const { return 1; }
 
12647
  /** Get the n-th son.
 
12648
   *  \param n The index of the son.
 
12649
   *  \return The n-th son or NULL. */
6907
12650
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
12651
  /** Replace a son.
 
12652
   *  \param old_son The son to replace.
 
12653
   *  \param new_son The new son. */
6908
12654
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6909
 
   { if (old_son == _value) _value = new_son; }
 
12655
   { CTree::ReplaceSon (_value, old_son, new_son); }
6910
12656
   private:
6911
12657
  typedef CT_Character CCExprResolveExpr;
6912
12658
 
6913
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12659
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6914
12660
 public :
6915
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12661
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6916
12662
  typedef CT_Character CExprResolveExpr;
6917
12663
 
6918
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12664
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6919
12665
 public :
6920
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6921
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12666
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12667
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6922
12668
};
6923
12669
 
 
12670
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
12671
 *  Tree node representing a wide character constant. */
6924
12672
 
6925
 
#line 6926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12673
#line 12674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6926
12674
} // closed Puma
 
12675
class CCExprResolve;
 
12676
class CExprResolve;
6927
12677
class WinIfExists;
6928
12678
class WinImportHandler;
6929
12679
class WinMacros;
6930
 
class CMatchSyntax;
6931
 
class ExtGnu;
 
12680
class WinAsm;
 
12681
class WinDeclSpecs;
 
12682
class WinMemberExplSpec;
 
12683
class WinTypeKeywords;
 
12684
class WinFriend;
6932
12685
class ExtAC;
6933
12686
class ExtACBuilderCoupling;
6934
12687
class ExtACSyntaxCoupling;
6935
12688
class ExtACTree;
6936
12689
class ExtACKeywords;
6937
 
class WinAsm;
6938
 
class WinDeclSpecs;
6939
 
class WinMemberExplSpec;
6940
 
class WinTypeKeywords;
 
12690
class ExtGnu;
6941
12691
class PragmaOnceUnitState;
6942
12692
class PragmaOnce;
6943
 
class CCExprResolve;
6944
 
class CExprResolve;
6945
 
namespace Puma {
6946
 
 
6947
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12693
class CMatchSyntax;
 
12694
namespace Puma {
 
12695
 
 
12696
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12697
 
 
12698
#line 12699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12699
} // closed Puma
 
12700
 
 
12701
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12702
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12703
#include "CCExprResolveH.ah"
 
12704
#endif
 
12705
namespace Puma {
 
12706
 
 
12707
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12708
 
 
12709
#line 12710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12710
} // closed Puma
 
12711
 
 
12712
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12713
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12714
#include "CExprResolveH.ah"
 
12715
#endif
 
12716
namespace Puma {
 
12717
 
 
12718
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6948
12719
class CT_WideCharacter : public CT_Character {
6949
 
#line 6950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12720
#line 12721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12721
  friend class ::CCExprResolve;
 
12722
  friend class ::CExprResolve;
6950
12723
  friend class ::WinIfExists;
6951
12724
  friend class ::WinImportHandler;
6952
12725
  friend class ::WinMacros;
6953
 
  friend class ::CMatchSyntax;
6954
 
  friend class ::ExtGnu;
 
12726
  friend class ::WinAsm;
 
12727
  friend class ::WinDeclSpecs;
 
12728
  friend class ::WinMemberExplSpec;
 
12729
  friend class ::WinTypeKeywords;
 
12730
  friend class ::WinFriend;
6955
12731
  friend class ::ExtAC;
6956
12732
  friend class ::ExtACBuilderCoupling;
6957
12733
  friend class ::ExtACSyntaxCoupling;
6958
12734
  friend class ::ExtACTree;
6959
12735
  friend class ::ExtACKeywords;
6960
 
  friend class ::WinAsm;
6961
 
  friend class ::WinDeclSpecs;
6962
 
  friend class ::WinMemberExplSpec;
6963
 
  friend class ::WinTypeKeywords;
 
12736
  friend class ::ExtGnu;
6964
12737
  friend class ::PragmaOnceUnitState;
6965
12738
  friend class ::PragmaOnce;
6966
 
  friend class ::CCExprResolve;
6967
 
  friend class ::CExprResolve;
6968
 
 
6969
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
6970
 
 
6971
 
  CTree *_value;  // CT_Token
 
12739
  friend class ::CMatchSyntax;
 
12740
 
 
12741
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6972
12742
 
6973
12743
public:
6974
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
12744
  /** Constructor.
 
12745
   *  \param token The token containing the wide character value. */
 
12746
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
12747
  /** Get the identifier for this node type. Can be compared with NodeName(). */
6975
12748
  static const char *NodeId ();
 
12749
  /** Get the name of the node. Can be compared with NodeId(). */
6976
12750
  const char *NodeName () const { return NodeId (); }
6977
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
6978
 
   { if (old_son == _value) _value = new_son; }
6979
12751
   private:
6980
12752
  typedef CT_WideCharacter CCExprResolveExpr;
6981
12753
 
6982
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12754
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
6983
12755
 public :
6984
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12756
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
6985
12757
  typedef CT_WideCharacter CExprResolveExpr;
6986
12758
 
6987
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12759
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
6988
12760
 public :
6989
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
6990
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12761
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12762
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
6991
12763
};
6992
12764
 
 
12765
/** \class CT_Float CTree.h Puma/CTree.h
 
12766
 *  Tree node representing a floating point constant. */
6993
12767
 
6994
 
#line 6995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12768
#line 12769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
6995
12769
} // closed Puma
 
12770
class CCExprResolve;
 
12771
class CExprResolve;
6996
12772
class WinIfExists;
6997
12773
class WinImportHandler;
6998
12774
class WinMacros;
6999
 
class CMatchSyntax;
7000
 
class ExtGnu;
 
12775
class WinAsm;
 
12776
class WinDeclSpecs;
 
12777
class WinMemberExplSpec;
 
12778
class WinTypeKeywords;
 
12779
class WinFriend;
7001
12780
class ExtAC;
7002
12781
class ExtACBuilderCoupling;
7003
12782
class ExtACSyntaxCoupling;
7004
12783
class ExtACTree;
7005
12784
class ExtACKeywords;
7006
 
class WinAsm;
7007
 
class WinDeclSpecs;
7008
 
class WinMemberExplSpec;
7009
 
class WinTypeKeywords;
 
12785
class ExtGnu;
7010
12786
class PragmaOnceUnitState;
7011
12787
class PragmaOnce;
7012
 
class CCExprResolve;
7013
 
class CExprResolve;
7014
 
namespace Puma {
7015
 
 
7016
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12788
class CMatchSyntax;
 
12789
namespace Puma {
 
12790
 
 
12791
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12792
 
 
12793
#line 12794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12794
} // closed Puma
 
12795
 
 
12796
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12797
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12798
#include "CCExprResolveH.ah"
 
12799
#endif
 
12800
namespace Puma {
 
12801
 
 
12802
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12803
 
 
12804
#line 12805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12805
} // closed Puma
 
12806
 
 
12807
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12808
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12809
#include "CExprResolveH.ah"
 
12810
#endif
 
12811
namespace Puma {
 
12812
 
 
12813
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7017
12814
class CT_Float : public CT_Expression {
7018
 
#line 7019 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12815
#line 12816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12816
  friend class ::CCExprResolve;
 
12817
  friend class ::CExprResolve;
7019
12818
  friend class ::WinIfExists;
7020
12819
  friend class ::WinImportHandler;
7021
12820
  friend class ::WinMacros;
7022
 
  friend class ::CMatchSyntax;
7023
 
  friend class ::ExtGnu;
 
12821
  friend class ::WinAsm;
 
12822
  friend class ::WinDeclSpecs;
 
12823
  friend class ::WinMemberExplSpec;
 
12824
  friend class ::WinTypeKeywords;
 
12825
  friend class ::WinFriend;
7024
12826
  friend class ::ExtAC;
7025
12827
  friend class ::ExtACBuilderCoupling;
7026
12828
  friend class ::ExtACSyntaxCoupling;
7027
12829
  friend class ::ExtACTree;
7028
12830
  friend class ::ExtACKeywords;
7029
 
  friend class ::WinAsm;
7030
 
  friend class ::WinDeclSpecs;
7031
 
  friend class ::WinMemberExplSpec;
7032
 
  friend class ::WinTypeKeywords;
 
12831
  friend class ::ExtGnu;
7033
12832
  friend class ::PragmaOnceUnitState;
7034
12833
  friend class ::PragmaOnce;
7035
 
  friend class ::CCExprResolve;
7036
 
  friend class ::CExprResolve;
 
12834
  friend class ::CMatchSyntax;
7037
12835
 
7038
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12836
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7039
12837
 
7040
12838
  CTree *_value;  // CT_Token
7041
12839
 
7042
12840
public:
7043
 
  CT_Float (CTree *t) : _value (t) {}
 
12841
  /** Constructor.
 
12842
   *  \param token The token containing the floating point value. */
 
12843
  CT_Float (CTree *token) { AddSon (_value, token); }
 
12844
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7044
12845
  static const char *NodeId ();
 
12846
  /** Get the name of the node. Can be compared with NodeId(). */
7045
12847
  const char *NodeName () const { return NodeId (); }
 
12848
  /** Get the number of sons. */
7046
12849
  int Sons () const { return 1; }
 
12850
  /** Get the n-th son.
 
12851
   *  \param n The index of the son.
 
12852
   *  \return The n-th son or NULL. */
7047
12853
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
12854
  /** Replace a son.
 
12855
   *  \param old_son The son to replace.
 
12856
   *  \param new_son The new son. */
7048
12857
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7049
 
   { if (old_son == _value) _value = new_son; }
 
12858
   { CTree::ReplaceSon (_value, old_son, new_son); }
7050
12859
   private:
7051
12860
  typedef CT_Float CCExprResolveExpr;
7052
12861
 
7053
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12862
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7054
12863
 public :
7055
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12864
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7056
12865
  typedef CT_Float CExprResolveExpr;
7057
12866
 
7058
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12867
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7059
12868
 public :
7060
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7061
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12869
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12870
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7062
12871
};
7063
12872
 
 
12873
/** \class CT_Bool CTree.h Puma/CTree.h
 
12874
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
7064
12875
 
7065
 
#line 7066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12876
#line 12877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7066
12877
} // closed Puma
 
12878
class CCExprResolve;
 
12879
class CExprResolve;
7067
12880
class WinIfExists;
7068
12881
class WinImportHandler;
7069
12882
class WinMacros;
7070
 
class CMatchSyntax;
7071
 
class ExtGnu;
 
12883
class WinAsm;
 
12884
class WinDeclSpecs;
 
12885
class WinMemberExplSpec;
 
12886
class WinTypeKeywords;
 
12887
class WinFriend;
7072
12888
class ExtAC;
7073
12889
class ExtACBuilderCoupling;
7074
12890
class ExtACSyntaxCoupling;
7075
12891
class ExtACTree;
7076
12892
class ExtACKeywords;
7077
 
class WinAsm;
7078
 
class WinDeclSpecs;
7079
 
class WinMemberExplSpec;
7080
 
class WinTypeKeywords;
 
12893
class ExtGnu;
7081
12894
class PragmaOnceUnitState;
7082
12895
class PragmaOnce;
7083
 
class CCExprResolve;
7084
 
class CExprResolve;
7085
 
namespace Puma {
7086
 
 
7087
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12896
class CMatchSyntax;
 
12897
namespace Puma {
 
12898
 
 
12899
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12900
 
 
12901
#line 12902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12902
} // closed Puma
 
12903
 
 
12904
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12905
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12906
#include "CCExprResolveH.ah"
 
12907
#endif
 
12908
namespace Puma {
 
12909
 
 
12910
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12911
 
 
12912
#line 12913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12913
} // closed Puma
 
12914
 
 
12915
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12916
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12917
#include "CExprResolveH.ah"
 
12918
#endif
 
12919
namespace Puma {
 
12920
 
 
12921
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7088
12922
class CT_Bool : public CT_Expression {
7089
 
#line 7090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12923
#line 12924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
12924
  friend class ::CCExprResolve;
 
12925
  friend class ::CExprResolve;
7090
12926
  friend class ::WinIfExists;
7091
12927
  friend class ::WinImportHandler;
7092
12928
  friend class ::WinMacros;
7093
 
  friend class ::CMatchSyntax;
7094
 
  friend class ::ExtGnu;
 
12929
  friend class ::WinAsm;
 
12930
  friend class ::WinDeclSpecs;
 
12931
  friend class ::WinMemberExplSpec;
 
12932
  friend class ::WinTypeKeywords;
 
12933
  friend class ::WinFriend;
7095
12934
  friend class ::ExtAC;
7096
12935
  friend class ::ExtACBuilderCoupling;
7097
12936
  friend class ::ExtACSyntaxCoupling;
7098
12937
  friend class ::ExtACTree;
7099
12938
  friend class ::ExtACKeywords;
7100
 
  friend class ::WinAsm;
7101
 
  friend class ::WinDeclSpecs;
7102
 
  friend class ::WinMemberExplSpec;
7103
 
  friend class ::WinTypeKeywords;
 
12939
  friend class ::ExtGnu;
7104
12940
  friend class ::PragmaOnceUnitState;
7105
12941
  friend class ::PragmaOnce;
7106
 
  friend class ::CCExprResolve;
7107
 
  friend class ::CExprResolve;
 
12942
  friend class ::CMatchSyntax;
7108
12943
 
7109
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12944
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7110
12945
 
7111
12946
  CTree *_value;  // CT_Token
7112
12947
 
7113
12948
public:
7114
 
  CT_Bool (CTree *t) : _value (t) {}
 
12949
  /** Constructor.
 
12950
   *  \param token The token containing the boolean value. */
 
12951
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
12952
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7115
12953
  static const char *NodeId ();
 
12954
  /** Get the name of the node. Can be compared with NodeId(). */
7116
12955
  const char *NodeName () const { return NodeId (); }
 
12956
  /** Get the number of sons. */
7117
12957
  int Sons () const { return 1; }
 
12958
  /** Get the n-th son.
 
12959
   *  \param n The index of the son.
 
12960
   *  \return The n-th son or NULL. */
7118
12961
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
12962
  /** Replace a son.
 
12963
   *  \param old_son The son to replace.
 
12964
   *  \param new_son The new son. */
7119
12965
  void ReplaceSon (CTree *old_son, CTree *new_son) 
7120
 
   { if (old_son == _value) _value = new_son; }
 
12966
   { CTree::ReplaceSon (_value, old_son, new_son); }
7121
12967
   private:
7122
12968
  typedef CT_Bool CCExprResolveExpr;
7123
12969
 
7124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12970
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7125
12971
 public :
7126
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12972
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7127
12973
  typedef CT_Bool CExprResolveExpr;
7128
12974
 
7129
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12975
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7130
12976
 public :
7131
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7132
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12977
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12978
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7133
12979
};
7134
12980
 
 
12981
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
12982
 *  Tree node representing a braced expression, e.g. (a+b). */
7135
12983
 
7136
 
#line 7137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
12984
#line 12985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7137
12985
} // closed Puma
 
12986
class CCExprResolve;
 
12987
class CExprResolve;
7138
12988
class WinIfExists;
7139
12989
class WinImportHandler;
7140
12990
class WinMacros;
7141
 
class CMatchSyntax;
7142
 
class ExtGnu;
 
12991
class WinAsm;
 
12992
class WinDeclSpecs;
 
12993
class WinMemberExplSpec;
 
12994
class WinTypeKeywords;
 
12995
class WinFriend;
7143
12996
class ExtAC;
7144
12997
class ExtACBuilderCoupling;
7145
12998
class ExtACSyntaxCoupling;
7146
12999
class ExtACTree;
7147
13000
class ExtACKeywords;
7148
 
class WinAsm;
7149
 
class WinDeclSpecs;
7150
 
class WinMemberExplSpec;
7151
 
class WinTypeKeywords;
 
13001
class ExtGnu;
7152
13002
class PragmaOnceUnitState;
7153
13003
class PragmaOnce;
7154
 
class CCExprResolve;
7155
 
class CExprResolve;
7156
 
namespace Puma {
7157
 
 
7158
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13004
class CMatchSyntax;
 
13005
namespace Puma {
 
13006
 
 
13007
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13008
 
 
13009
#line 13010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13010
} // closed Puma
 
13011
 
 
13012
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13013
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13014
#include "CCExprResolveH.ah"
 
13015
#endif
 
13016
namespace Puma {
 
13017
 
 
13018
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13019
 
 
13020
#line 13021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13021
} // closed Puma
 
13022
 
 
13023
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13024
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13025
#include "CExprResolveH.ah"
 
13026
#endif
 
13027
namespace Puma {
 
13028
 
 
13029
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7159
13030
class CT_BracedExpr : public CT_Expression {
7160
 
#line 7161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13031
#line 13032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13032
  friend class ::CCExprResolve;
 
13033
  friend class ::CExprResolve;
7161
13034
  friend class ::WinIfExists;
7162
13035
  friend class ::WinImportHandler;
7163
13036
  friend class ::WinMacros;
7164
 
  friend class ::CMatchSyntax;
7165
 
  friend class ::ExtGnu;
 
13037
  friend class ::WinAsm;
 
13038
  friend class ::WinDeclSpecs;
 
13039
  friend class ::WinMemberExplSpec;
 
13040
  friend class ::WinTypeKeywords;
 
13041
  friend class ::WinFriend;
7166
13042
  friend class ::ExtAC;
7167
13043
  friend class ::ExtACBuilderCoupling;
7168
13044
  friend class ::ExtACSyntaxCoupling;
7169
13045
  friend class ::ExtACTree;
7170
13046
  friend class ::ExtACKeywords;
7171
 
  friend class ::WinAsm;
7172
 
  friend class ::WinDeclSpecs;
7173
 
  friend class ::WinMemberExplSpec;
7174
 
  friend class ::WinTypeKeywords;
 
13047
  friend class ::ExtGnu;
7175
13048
  friend class ::PragmaOnceUnitState;
7176
13049
  friend class ::PragmaOnce;
7177
 
  friend class ::CCExprResolve;
7178
 
  friend class ::CExprResolve;
 
13050
  friend class ::CMatchSyntax;
7179
13051
 
7180
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13052
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7181
13053
 
7182
13054
  CTree *sons[3]; // open, expr, close
7183
13055
 
7184
13056
public:
 
13057
  /** Constructor.
 
13058
   *  \param o The opening brace.
 
13059
   *  \param e The enclosed expression.
 
13060
   *  \param c The closing brace. */
7185
13061
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
7186
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
13062
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
7187
13063
  }
 
13064
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7188
13065
  static const char *NodeId ();
 
13066
  /** Get the name of the node. Can be compared with NodeId(). */
7189
13067
  const char *NodeName () const { return NodeId (); }
 
13068
  /** Get the number of sons. */
7190
13069
  int Sons () const { return 3; }
 
13070
  /** Get the n-th son.
 
13071
   *  \param n The index of the son.
 
13072
   *  \return The n-th son or NULL. */
7191
13073
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13074
  /** Get the enclosed expression. */
7192
13075
  CTree *Expr () const { return sons[1]; }
 
13076
  /** Get the type of the enclosed expression. */
7193
13077
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
13078
  /** Get the value of the enclosed expression. */
7194
13079
  CExprValue *Value () const { return Expr ()->Value (); }
 
13080
  /** Get the semantic value object. */
7195
13081
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
13082
  /** Replace a son.
 
13083
   *  \param old_son The son to replace.
 
13084
   *  \param new_son The new son. */
7196
13085
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7197
13086
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7198
13087
  }
7199
13088
   private:
7200
13089
  typedef CT_BracedExpr CCExprResolveExpr;
7201
13090
 
7202
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13091
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7203
13092
 public :
7204
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13093
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7205
13094
  typedef CT_BracedExpr CExprResolveExpr;
7206
13095
 
7207
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13096
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7208
13097
 public :
7209
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7210
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13098
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13099
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7211
13100
};
7212
13101
 
 
13102
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
13103
 *  Base class for all tree nodes representing a name. */
7213
13104
 
7214
 
#line 7215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13105
#line 13106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7215
13106
} // closed Puma
 
13107
class CCExprResolve;
 
13108
class CExprResolve;
7216
13109
class WinIfExists;
7217
13110
class WinImportHandler;
7218
13111
class WinMacros;
7219
 
class CMatchSyntax;
7220
 
class ExtGnu;
 
13112
class WinAsm;
 
13113
class WinDeclSpecs;
 
13114
class WinMemberExplSpec;
 
13115
class WinTypeKeywords;
 
13116
class WinFriend;
7221
13117
class ExtAC;
7222
13118
class ExtACBuilderCoupling;
7223
13119
class ExtACSyntaxCoupling;
7224
13120
class ExtACTree;
7225
13121
class ExtACKeywords;
7226
 
class WinAsm;
7227
 
class WinDeclSpecs;
7228
 
class WinMemberExplSpec;
7229
 
class WinTypeKeywords;
 
13122
class ExtGnu;
7230
13123
class PragmaOnceUnitState;
7231
13124
class PragmaOnce;
7232
 
class CCExprResolve;
7233
 
class CExprResolve;
7234
 
namespace Puma {
7235
 
 
7236
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13125
class CMatchSyntax;
 
13126
namespace Puma {
 
13127
 
 
13128
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13129
 
 
13130
#line 13131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13131
} // closed Puma
 
13132
 
 
13133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13135
#include "CCExprResolveH.ah"
 
13136
#endif
 
13137
namespace Puma {
 
13138
 
 
13139
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13140
 
 
13141
#line 13142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13142
} // closed Puma
 
13143
 
 
13144
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13145
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13146
#include "CExprResolveH.ah"
 
13147
#endif
 
13148
namespace Puma {
 
13149
 
 
13150
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7237
13151
class CT_SimpleName : public CT_List, public Printable, 
7238
13152
                      public CSemValue, public CSemObject {
7239
 
#line 7240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13153
#line 13154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13154
  friend class ::CCExprResolve;
 
13155
  friend class ::CExprResolve;
7240
13156
  friend class ::WinIfExists;
7241
13157
  friend class ::WinImportHandler;
7242
13158
  friend class ::WinMacros;
7243
 
  friend class ::CMatchSyntax;
7244
 
  friend class ::ExtGnu;
 
13159
  friend class ::WinAsm;
 
13160
  friend class ::WinDeclSpecs;
 
13161
  friend class ::WinMemberExplSpec;
 
13162
  friend class ::WinTypeKeywords;
 
13163
  friend class ::WinFriend;
7245
13164
  friend class ::ExtAC;
7246
13165
  friend class ::ExtACBuilderCoupling;
7247
13166
  friend class ::ExtACSyntaxCoupling;
7248
13167
  friend class ::ExtACTree;
7249
13168
  friend class ::ExtACKeywords;
7250
 
  friend class ::WinAsm;
7251
 
  friend class ::WinDeclSpecs;
7252
 
  friend class ::WinMemberExplSpec;
7253
 
  friend class ::WinTypeKeywords;
 
13169
  friend class ::ExtGnu;
7254
13170
  friend class ::PragmaOnceUnitState;
7255
13171
  friend class ::PragmaOnce;
7256
 
  friend class ::CCExprResolve;
7257
 
  friend class ::CExprResolve;
 
13172
  friend class ::CMatchSyntax;
7258
13173
 
7259
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13174
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7260
13175
 
7261
13176
protected:
 
13177
  /** Constructor.
 
13178
   *  \param size The number of sub-names (for qualified names). */
7262
13179
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
13180
  /** Constructor.
 
13181
   *  \param size The number of sub-names (for qualified names). 
 
13182
   *  \param properties Additional name list properties (for root qualified names). */
7263
13183
  CT_SimpleName (int size, int properties) : 
7264
13184
    CT_List (size, 2, properties) {}
7265
13185
  
7266
13186
public:
 
13187
  /** Constructor.
 
13188
   *  \param n The sub-tree containing the name. */
7267
13189
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
13190
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7268
13191
  static const char *NodeId ();
 
13192
  /** Get the name of the node. Can be compared with NodeId(). */
7269
13193
  const char *NodeName () const { return NodeId (); }
 
13194
  /** Get the string containing the name. */
7270
13195
  virtual const char *Text () const 
7271
13196
   { return Son (Sons ()-1)->token ()->text (); }
 
13197
  /** Print the name on the given stream. 
 
13198
   *  \param os The output stream. */
7272
13199
  virtual void print (ostream &os) const { os << Text (); }
 
13200
  /** Get this. */
7273
13201
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
13202
  /** Get the type of the entity represented by the name. */
7274
13203
  CTypeInfo *Type () const { return type; }
 
13204
  /** Get the value of the entity represented by the name. */ 
7275
13205
  CExprValue *Value () const { return value; }
 
13206
  /** Get the sematic value information object. */
7276
13207
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
13208
  /** Get the sematic information object. */
7277
13209
  CSemObject *SemObject () const { return (CSemObject*)this; }
7278
 
  // special new / delete with reusing memory
7279
 
  void *operator new (size_t);
7280
 
  void  operator delete (void *);
7281
 
  // classification function
 
13210
  /** Get this. */
7282
13211
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
13212
 
 
13213
public:
 
13214
  /** Own new operator reusing memory. */
 
13215
  void *operator new (size_t);
 
13216
  /** Own delete operator. */
 
13217
  void operator delete (void *);
7283
13218
   private:
7284
13219
  typedef CT_SimpleName CCExprResolveExpr;
7285
13220
 
7286
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13221
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7287
13222
 public :
7288
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13223
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7289
13224
  typedef CT_SimpleName CExprResolveExpr;
7290
13225
 
7291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13226
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7292
13227
 public :
7293
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7294
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13228
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13229
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7295
13230
};
7296
13231
 
 
13232
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
13233
 *  Base class for tree nodes representing a special name, like destructor names. */
7297
13234
 
7298
 
#line 7299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13235
#line 13236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7299
13236
} // closed Puma
 
13237
class CCExprResolve;
 
13238
class CExprResolve;
7300
13239
class WinIfExists;
7301
13240
class WinImportHandler;
7302
13241
class WinMacros;
7303
 
class CMatchSyntax;
7304
 
class ExtGnu;
 
13242
class WinAsm;
 
13243
class WinDeclSpecs;
 
13244
class WinMemberExplSpec;
 
13245
class WinTypeKeywords;
 
13246
class WinFriend;
7305
13247
class ExtAC;
7306
13248
class ExtACBuilderCoupling;
7307
13249
class ExtACSyntaxCoupling;
7308
13250
class ExtACTree;
7309
13251
class ExtACKeywords;
7310
 
class WinAsm;
7311
 
class WinDeclSpecs;
7312
 
class WinMemberExplSpec;
7313
 
class WinTypeKeywords;
 
13252
class ExtGnu;
7314
13253
class PragmaOnceUnitState;
7315
13254
class PragmaOnce;
7316
 
class CCExprResolve;
7317
 
class CExprResolve;
7318
 
namespace Puma {
7319
 
 
7320
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13255
class CMatchSyntax;
 
13256
namespace Puma {
 
13257
 
 
13258
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13259
 
 
13260
#line 13261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13261
} // closed Puma
 
13262
 
 
13263
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13264
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13265
#include "CCExprResolveH.ah"
 
13266
#endif
 
13267
namespace Puma {
 
13268
 
 
13269
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13270
 
 
13271
#line 13272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13272
} // closed Puma
 
13273
 
 
13274
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13275
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13276
#include "CExprResolveH.ah"
 
13277
#endif
 
13278
namespace Puma {
 
13279
 
 
13280
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7321
13281
class CT_SpecialName : public CT_SimpleName {
7322
 
#line 7323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13282
#line 13283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13283
  friend class ::CCExprResolve;
 
13284
  friend class ::CExprResolve;
7323
13285
  friend class ::WinIfExists;
7324
13286
  friend class ::WinImportHandler;
7325
13287
  friend class ::WinMacros;
7326
 
  friend class ::CMatchSyntax;
7327
 
  friend class ::ExtGnu;
 
13288
  friend class ::WinAsm;
 
13289
  friend class ::WinDeclSpecs;
 
13290
  friend class ::WinMemberExplSpec;
 
13291
  friend class ::WinTypeKeywords;
 
13292
  friend class ::WinFriend;
7328
13293
  friend class ::ExtAC;
7329
13294
  friend class ::ExtACBuilderCoupling;
7330
13295
  friend class ::ExtACSyntaxCoupling;
7331
13296
  friend class ::ExtACTree;
7332
13297
  friend class ::ExtACKeywords;
7333
 
  friend class ::WinAsm;
7334
 
  friend class ::WinDeclSpecs;
7335
 
  friend class ::WinMemberExplSpec;
7336
 
  friend class ::WinTypeKeywords;
 
13298
  friend class ::ExtGnu;
7337
13299
  friend class ::PragmaOnceUnitState;
7338
13300
  friend class ::PragmaOnce;
7339
 
  friend class ::CCExprResolve;
7340
 
  friend class ::CExprResolve;
 
13301
  friend class ::CMatchSyntax;
7341
13302
 
7342
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13303
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7343
13304
 
7344
13305
  char *_name;
7345
13306
  
7346
13307
protected:
 
13308
  /** Constructor.
 
13309
   *  \param size The number of sub-names (for qualified names). */
7347
13310
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
7348
13311
  
7349
13312
public:
 
13313
  /** Destructor. Deletes the name string. */
7350
13314
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
13315
  /** Get the string containing the name. */
7351
13316
  const char *Text () const { return _name; }
 
13317
  /** Set the name. The name is copied.
 
13318
   *  \param n The name. */
7352
13319
  void Name (const char *n) { 
7353
13320
    if (n) { 
7354
13321
      _name = new char[strlen(n) + 1];
7355
13322
      strcpy (_name,n);
7356
13323
    }
7357
13324
  }
7358
 
  // special new / delete with reusing memory
 
13325
 
 
13326
public:
 
13327
  /** Own new operator reusing memory. */
7359
13328
  void *operator new (size_t);
7360
 
  void  operator delete (void *);
 
13329
  /** Own delete operator. */
 
13330
  void operator delete (void *);
7361
13331
   private:
7362
13332
  typedef CT_SpecialName CCExprResolveExpr;
7363
13333
 
7364
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13334
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7365
13335
 public :
7366
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13336
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7367
13337
  typedef CT_SpecialName CExprResolveExpr;
7368
13338
 
7369
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13339
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7370
13340
 public :
7371
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7372
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13341
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13342
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7373
13343
};
7374
13344
 
 
13345
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
13346
 *  Tree node representing a private name. Private names 
 
13347
 *  are generated names for abstract declarators etc. */
7375
13348
 
7376
 
#line 7377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13349
#line 13350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7377
13350
} // closed Puma
 
13351
class CCExprResolve;
 
13352
class CExprResolve;
7378
13353
class WinIfExists;
7379
13354
class WinImportHandler;
7380
13355
class WinMacros;
7381
 
class CMatchSyntax;
7382
 
class ExtGnu;
 
13356
class WinAsm;
 
13357
class WinDeclSpecs;
 
13358
class WinMemberExplSpec;
 
13359
class WinTypeKeywords;
 
13360
class WinFriend;
7383
13361
class ExtAC;
7384
13362
class ExtACBuilderCoupling;
7385
13363
class ExtACSyntaxCoupling;
7386
13364
class ExtACTree;
7387
13365
class ExtACKeywords;
7388
 
class WinAsm;
7389
 
class WinDeclSpecs;
7390
 
class WinMemberExplSpec;
7391
 
class WinTypeKeywords;
 
13366
class ExtGnu;
7392
13367
class PragmaOnceUnitState;
7393
13368
class PragmaOnce;
7394
 
class CCExprResolve;
7395
 
class CExprResolve;
7396
 
namespace Puma {
7397
 
 
7398
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13369
class CMatchSyntax;
 
13370
namespace Puma {
 
13371
 
 
13372
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13373
 
 
13374
#line 13375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13375
} // closed Puma
 
13376
 
 
13377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13379
#include "CCExprResolveH.ah"
 
13380
#endif
 
13381
namespace Puma {
 
13382
 
 
13383
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13384
 
 
13385
#line 13386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13386
} // closed Puma
 
13387
 
 
13388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13390
#include "CExprResolveH.ah"
 
13391
#endif
 
13392
namespace Puma {
 
13393
 
 
13394
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7399
13395
class CT_PrivateName : public CT_SpecialName {
7400
 
#line 7401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13396
#line 13397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13397
  friend class ::CCExprResolve;
 
13398
  friend class ::CExprResolve;
7401
13399
  friend class ::WinIfExists;
7402
13400
  friend class ::WinImportHandler;
7403
13401
  friend class ::WinMacros;
7404
 
  friend class ::CMatchSyntax;
7405
 
  friend class ::ExtGnu;
 
13402
  friend class ::WinAsm;
 
13403
  friend class ::WinDeclSpecs;
 
13404
  friend class ::WinMemberExplSpec;
 
13405
  friend class ::WinTypeKeywords;
 
13406
  friend class ::WinFriend;
7406
13407
  friend class ::ExtAC;
7407
13408
  friend class ::ExtACBuilderCoupling;
7408
13409
  friend class ::ExtACSyntaxCoupling;
7409
13410
  friend class ::ExtACTree;
7410
13411
  friend class ::ExtACKeywords;
7411
 
  friend class ::WinAsm;
7412
 
  friend class ::WinDeclSpecs;
7413
 
  friend class ::WinMemberExplSpec;
7414
 
  friend class ::WinTypeKeywords;
 
13412
  friend class ::ExtGnu;
7415
13413
  friend class ::PragmaOnceUnitState;
7416
13414
  friend class ::PragmaOnce;
7417
 
  friend class ::CCExprResolve;
7418
 
  friend class ::CExprResolve;
 
13415
  friend class ::CMatchSyntax;
7419
13416
 
7420
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13417
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7421
13418
 
7422
13419
public:
 
13420
  /** Constructor.
 
13421
   *  \param n The private (generated) name. */
7423
13422
  CT_PrivateName (const char *n) { Name (n); }
 
13423
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7424
13424
  static const char *NodeId ();
 
13425
  /** Get the name of the node. Can be compared with NodeId(). */
7425
13426
  const char *NodeName () const { return NodeId (); }
 
13427
  /** Get the number of sons. */
7426
13428
  int Sons () const { return 0; }
 
13429
  /** Get the n-th son.
 
13430
   *  \param n The index of the son.
 
13431
   *  \return The n-th son or NULL. */
7427
13432
  CTree *Son (int n) const { return (CTree*)0; }
7428
 
  // special new / delete with reusing memory
 
13433
 
 
13434
public:
 
13435
  /** Own new operator reusing memory. */
7429
13436
  void *operator new (size_t);
7430
 
  void  operator delete (void *);
 
13437
  /** Own delete operator. */
 
13438
  void operator delete (void *);
7431
13439
   private:
7432
13440
  typedef CT_PrivateName CCExprResolveExpr;
7433
13441
 
7434
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13442
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7435
13443
 public :
7436
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13444
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7437
13445
  typedef CT_PrivateName CExprResolveExpr;
7438
13446
 
7439
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13447
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7440
13448
 public :
7441
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7442
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13449
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13450
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7443
13451
};
7444
13452
 
 
13453
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
13454
 *  Tree node representing a destructor name. */
7445
13455
 
7446
 
#line 7447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13456
#line 13457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7447
13457
} // closed Puma
 
13458
class CCExprResolve;
 
13459
class CExprResolve;
7448
13460
class WinIfExists;
7449
13461
class WinImportHandler;
7450
13462
class WinMacros;
7451
 
class CMatchSyntax;
7452
 
class ExtGnu;
 
13463
class WinAsm;
 
13464
class WinDeclSpecs;
 
13465
class WinMemberExplSpec;
 
13466
class WinTypeKeywords;
 
13467
class WinFriend;
7453
13468
class ExtAC;
7454
13469
class ExtACBuilderCoupling;
7455
13470
class ExtACSyntaxCoupling;
7456
13471
class ExtACTree;
7457
13472
class ExtACKeywords;
7458
 
class WinAsm;
7459
 
class WinDeclSpecs;
7460
 
class WinMemberExplSpec;
7461
 
class WinTypeKeywords;
 
13473
class ExtGnu;
7462
13474
class PragmaOnceUnitState;
7463
13475
class PragmaOnce;
7464
 
class CCExprResolve;
7465
 
class CExprResolve;
7466
 
namespace Puma {
7467
 
 
7468
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13476
class CMatchSyntax;
 
13477
namespace Puma {
 
13478
 
 
13479
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13480
 
 
13481
#line 13482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13482
} // closed Puma
 
13483
 
 
13484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13486
#include "CCExprResolveH.ah"
 
13487
#endif
 
13488
namespace Puma {
 
13489
 
 
13490
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13491
 
 
13492
#line 13493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13493
} // closed Puma
 
13494
 
 
13495
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13496
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13497
#include "CExprResolveH.ah"
 
13498
#endif
 
13499
namespace Puma {
 
13500
 
 
13501
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7469
13502
class CT_DestructorName : public CT_SpecialName {
7470
 
#line 7471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13503
#line 13504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13504
  friend class ::CCExprResolve;
 
13505
  friend class ::CExprResolve;
7471
13506
  friend class ::WinIfExists;
7472
13507
  friend class ::WinImportHandler;
7473
13508
  friend class ::WinMacros;
7474
 
  friend class ::CMatchSyntax;
7475
 
  friend class ::ExtGnu;
 
13509
  friend class ::WinAsm;
 
13510
  friend class ::WinDeclSpecs;
 
13511
  friend class ::WinMemberExplSpec;
 
13512
  friend class ::WinTypeKeywords;
 
13513
  friend class ::WinFriend;
7476
13514
  friend class ::ExtAC;
7477
13515
  friend class ::ExtACBuilderCoupling;
7478
13516
  friend class ::ExtACSyntaxCoupling;
7479
13517
  friend class ::ExtACTree;
7480
13518
  friend class ::ExtACKeywords;
7481
 
  friend class ::WinAsm;
7482
 
  friend class ::WinDeclSpecs;
7483
 
  friend class ::WinMemberExplSpec;
7484
 
  friend class ::WinTypeKeywords;
 
13519
  friend class ::ExtGnu;
7485
13520
  friend class ::PragmaOnceUnitState;
7486
13521
  friend class ::PragmaOnce;
7487
 
  friend class ::CCExprResolve;
7488
 
  friend class ::CExprResolve;
 
13522
  friend class ::CMatchSyntax;
7489
13523
 
7490
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13524
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7491
13525
 
7492
13526
public:
7493
 
  CT_DestructorName (CTree *, CTree *);
 
13527
  /** Constructor.
 
13528
   *  \param t The tilde operator.
 
13529
   *  \param n The class name. */
 
13530
  CT_DestructorName (CTree *t, CTree *n);
 
13531
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7494
13532
  static const char *NodeId ();
 
13533
  /** Get the name of the node. Can be compared with NodeId(). */
7495
13534
  const char *NodeName () const { return NodeId (); }
7496
 
  // special new / delete with reusing memory
 
13535
 
 
13536
public:
 
13537
  /** Own new operator reusing memory. */
7497
13538
  void *operator new (size_t);
7498
 
  void  operator delete (void *);
 
13539
  /** Own delete operator. */
 
13540
  void operator delete (void *);
7499
13541
   private:
7500
13542
  typedef CT_DestructorName CCExprResolveExpr;
7501
13543
 
7502
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7503
13545
 public :
7504
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13546
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7505
13547
  typedef CT_DestructorName CExprResolveExpr;
7506
13548
 
7507
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7508
13550
 public :
7509
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7510
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13551
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13552
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7511
13553
};
7512
13554
 
 
13555
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
13556
 *  Tree node representing a template name. */
7513
13557
 
7514
 
#line 7515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13558
#line 13559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7515
13559
} // closed Puma
 
13560
class CCExprResolve;
 
13561
class CExprResolve;
7516
13562
class WinIfExists;
7517
13563
class WinImportHandler;
7518
13564
class WinMacros;
7519
 
class CMatchSyntax;
7520
 
class ExtGnu;
 
13565
class WinAsm;
 
13566
class WinDeclSpecs;
 
13567
class WinMemberExplSpec;
 
13568
class WinTypeKeywords;
 
13569
class WinFriend;
7521
13570
class ExtAC;
7522
13571
class ExtACBuilderCoupling;
7523
13572
class ExtACSyntaxCoupling;
7524
13573
class ExtACTree;
7525
13574
class ExtACKeywords;
7526
 
class WinAsm;
7527
 
class WinDeclSpecs;
7528
 
class WinMemberExplSpec;
7529
 
class WinTypeKeywords;
 
13575
class ExtGnu;
7530
13576
class PragmaOnceUnitState;
7531
13577
class PragmaOnce;
7532
 
class CCExprResolve;
7533
 
class CExprResolve;
7534
 
namespace Puma {
7535
 
 
7536
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13578
class CMatchSyntax;
 
13579
namespace Puma {
 
13580
 
 
13581
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13582
 
 
13583
#line 13584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13584
} // closed Puma
 
13585
 
 
13586
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13587
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13588
#include "CCExprResolveH.ah"
 
13589
#endif
 
13590
namespace Puma {
 
13591
 
 
13592
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13593
 
 
13594
#line 13595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13595
} // closed Puma
 
13596
 
 
13597
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13598
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13599
#include "CExprResolveH.ah"
 
13600
#endif
 
13601
namespace Puma {
 
13602
 
 
13603
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7537
13604
class CT_TemplateName : public CT_SpecialName {
7538
 
#line 7539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13605
#line 13606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13606
  friend class ::CCExprResolve;
 
13607
  friend class ::CExprResolve;
7539
13608
  friend class ::WinIfExists;
7540
13609
  friend class ::WinImportHandler;
7541
13610
  friend class ::WinMacros;
7542
 
  friend class ::CMatchSyntax;
7543
 
  friend class ::ExtGnu;
 
13611
  friend class ::WinAsm;
 
13612
  friend class ::WinDeclSpecs;
 
13613
  friend class ::WinMemberExplSpec;
 
13614
  friend class ::WinTypeKeywords;
 
13615
  friend class ::WinFriend;
7544
13616
  friend class ::ExtAC;
7545
13617
  friend class ::ExtACBuilderCoupling;
7546
13618
  friend class ::ExtACSyntaxCoupling;
7547
13619
  friend class ::ExtACTree;
7548
13620
  friend class ::ExtACKeywords;
7549
 
  friend class ::WinAsm;
7550
 
  friend class ::WinDeclSpecs;
7551
 
  friend class ::WinMemberExplSpec;
7552
 
  friend class ::WinTypeKeywords;
 
13621
  friend class ::ExtGnu;
7553
13622
  friend class ::PragmaOnceUnitState;
7554
13623
  friend class ::PragmaOnce;
7555
 
  friend class ::CCExprResolve;
7556
 
  friend class ::CExprResolve;
 
13624
  friend class ::CMatchSyntax;
7557
13625
 
7558
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13626
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7559
13627
 
7560
13628
public:
 
13629
  /** Constructor.
 
13630
   *  \param n The template class or function name.
 
13631
   *  \param a The template argument list. */
7561
13632
  CT_TemplateName (CTree *n, CTree *a) 
7562
13633
   { AddSon (n); AddSon (a); }
 
13634
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7563
13635
  static const char *NodeId ();
 
13636
  /** Get the name of the node. Can be compared with NodeId(). */
7564
13637
  const char *NodeName () const { return NodeId (); }
 
13638
  /** Get the template argument list. */
7565
13639
  CT_TemplateArgList *Arguments () const 
7566
13640
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
13641
  /** Get the template class or function name. */
7567
13642
  CT_SimpleName *TemplateName () const 
7568
13643
   { return (CT_SimpleName*)Son (Sons ()-2); }
7569
13644
  // may change in the future
7570
13645
  const char *Text () const { return TemplateName ()->Text (); }
7571
 
  // special new / delete with reusing memory
 
13646
 
 
13647
public:
 
13648
  /** Own new operator reusing memory. */
7572
13649
  void *operator new (size_t);
7573
 
  void  operator delete (void *);
 
13650
  /** Own delete operator. */
 
13651
  void operator delete (void *);
7574
13652
   private:
7575
13653
  typedef CT_TemplateName CCExprResolveExpr;
7576
13654
 
7577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13655
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7578
13656
 public :
7579
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13657
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7580
13658
  typedef CT_TemplateName CExprResolveExpr;
7581
13659
 
7582
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13660
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7583
13661
 public :
7584
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7585
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13662
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13663
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7586
13664
};
7587
13665
 
 
13666
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
13667
 *  Tree node representing the name of an overloaded operator. */
7588
13668
 
7589
 
#line 7590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13669
#line 13670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7590
13670
} // closed Puma
 
13671
class CCExprResolve;
 
13672
class CExprResolve;
7591
13673
class WinIfExists;
7592
13674
class WinImportHandler;
7593
13675
class WinMacros;
7594
 
class CMatchSyntax;
7595
 
class ExtGnu;
 
13676
class WinAsm;
 
13677
class WinDeclSpecs;
 
13678
class WinMemberExplSpec;
 
13679
class WinTypeKeywords;
 
13680
class WinFriend;
7596
13681
class ExtAC;
7597
13682
class ExtACBuilderCoupling;
7598
13683
class ExtACSyntaxCoupling;
7599
13684
class ExtACTree;
7600
13685
class ExtACKeywords;
7601
 
class WinAsm;
7602
 
class WinDeclSpecs;
7603
 
class WinMemberExplSpec;
7604
 
class WinTypeKeywords;
 
13686
class ExtGnu;
7605
13687
class PragmaOnceUnitState;
7606
13688
class PragmaOnce;
7607
 
class CCExprResolve;
7608
 
class CExprResolve;
7609
 
namespace Puma {
7610
 
 
7611
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13689
class CMatchSyntax;
 
13690
namespace Puma {
 
13691
 
 
13692
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13693
 
 
13694
#line 13695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13695
} // closed Puma
 
13696
 
 
13697
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13698
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13699
#include "CCExprResolveH.ah"
 
13700
#endif
 
13701
namespace Puma {
 
13702
 
 
13703
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13704
 
 
13705
#line 13706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13706
} // closed Puma
 
13707
 
 
13708
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13709
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13710
#include "CExprResolveH.ah"
 
13711
#endif
 
13712
namespace Puma {
 
13713
 
 
13714
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7612
13715
class CT_OperatorName : public CT_SpecialName {
7613
 
#line 7614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13716
#line 13717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13717
  friend class ::CCExprResolve;
 
13718
  friend class ::CExprResolve;
7614
13719
  friend class ::WinIfExists;
7615
13720
  friend class ::WinImportHandler;
7616
13721
  friend class ::WinMacros;
7617
 
  friend class ::CMatchSyntax;
7618
 
  friend class ::ExtGnu;
 
13722
  friend class ::WinAsm;
 
13723
  friend class ::WinDeclSpecs;
 
13724
  friend class ::WinMemberExplSpec;
 
13725
  friend class ::WinTypeKeywords;
 
13726
  friend class ::WinFriend;
7619
13727
  friend class ::ExtAC;
7620
13728
  friend class ::ExtACBuilderCoupling;
7621
13729
  friend class ::ExtACSyntaxCoupling;
7622
13730
  friend class ::ExtACTree;
7623
13731
  friend class ::ExtACKeywords;
7624
 
  friend class ::WinAsm;
7625
 
  friend class ::WinDeclSpecs;
7626
 
  friend class ::WinMemberExplSpec;
7627
 
  friend class ::WinTypeKeywords;
 
13732
  friend class ::ExtGnu;
7628
13733
  friend class ::PragmaOnceUnitState;
7629
13734
  friend class ::PragmaOnce;
7630
 
  friend class ::CCExprResolve;
7631
 
  friend class ::CExprResolve;
 
13735
  friend class ::CMatchSyntax;
7632
13736
 
7633
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13737
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7634
13738
 
7635
13739
  int _oper;
7636
13740
 
7637
13741
public:
7638
 
  enum { // complex operators
7639
 
    FCT_CALL = -100,
7640
 
    SUBSCRIPT,
7641
 
    NEW_ARRAY,
7642
 
    DEL_ARRAY
 
13742
  /** Complex operator types. */
 
13743
  enum { 
 
13744
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
13745
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
13746
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
13747
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
7643
13748
  };
7644
13749
 
7645
13750
public:
7646
 
  CT_OperatorName (CTree *);
7647
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
13751
  /** Constructor.
 
13752
   *  \param op The token containing the operator. */
 
13753
  CT_OperatorName (CTree *op);
 
13754
  /** Constructor.
 
13755
   *  \param f The operator function keyword 'operator'.
 
13756
   *  \param op The token containing the operator. 
 
13757
   *  \param o The token of '[' or '('.
 
13758
   *  \param c The token of ']' or ')'. */
 
13759
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
13760
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7648
13761
  static const char *NodeId ();
 
13762
  /** Get the name of the node. Can be compared with NodeId(). */
7649
13763
  const char *NodeName () const { return NodeId (); }
 
13764
  /** Get the operator type (either the token type or one of 
 
13765
   *  the complex operator types). */
7650
13766
  int Operator () const { return _oper; }
7651
 
  // special new / delete with reusing memory
 
13767
 
 
13768
public:
 
13769
  /** Own new operator reusing memory. */
7652
13770
  void *operator new (size_t);
7653
 
  void  operator delete (void *);
 
13771
  /** Own delete operator. */
 
13772
  void operator delete (void *);
7654
13773
   private:
7655
13774
  typedef CT_OperatorName CCExprResolveExpr;
7656
13775
 
7657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13776
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7658
13777
 public :
7659
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13778
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7660
13779
  typedef CT_OperatorName CExprResolveExpr;
7661
13780
 
7662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13781
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7663
13782
 public :
7664
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7665
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13783
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13784
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7666
13785
};
7667
13786
 
 
13787
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
13788
 *  Tree node representing the name of a conversion function. */
7668
13789
 
7669
 
#line 7670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13790
#line 13791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7670
13791
} // closed Puma
 
13792
class CCExprResolve;
 
13793
class CExprResolve;
7671
13794
class WinIfExists;
7672
13795
class WinImportHandler;
7673
13796
class WinMacros;
7674
 
class CMatchSyntax;
7675
 
class ExtGnu;
 
13797
class WinAsm;
 
13798
class WinDeclSpecs;
 
13799
class WinMemberExplSpec;
 
13800
class WinTypeKeywords;
 
13801
class WinFriend;
7676
13802
class ExtAC;
7677
13803
class ExtACBuilderCoupling;
7678
13804
class ExtACSyntaxCoupling;
7679
13805
class ExtACTree;
7680
13806
class ExtACKeywords;
7681
 
class WinAsm;
7682
 
class WinDeclSpecs;
7683
 
class WinMemberExplSpec;
7684
 
class WinTypeKeywords;
 
13807
class ExtGnu;
7685
13808
class PragmaOnceUnitState;
7686
13809
class PragmaOnce;
7687
 
class CCExprResolve;
7688
 
class CExprResolve;
7689
 
namespace Puma {
7690
 
 
7691
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13810
class CMatchSyntax;
 
13811
namespace Puma {
 
13812
 
 
13813
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13814
 
 
13815
#line 13816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13816
} // closed Puma
 
13817
 
 
13818
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13819
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13820
#include "CCExprResolveH.ah"
 
13821
#endif
 
13822
namespace Puma {
 
13823
 
 
13824
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13825
 
 
13826
#line 13827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13827
} // closed Puma
 
13828
 
 
13829
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13830
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13831
#include "CExprResolveH.ah"
 
13832
#endif
 
13833
namespace Puma {
 
13834
 
 
13835
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7692
13836
class CT_ConversionName : public CT_SpecialName {
7693
 
#line 7694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13837
#line 13838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13838
  friend class ::CCExprResolve;
 
13839
  friend class ::CExprResolve;
7694
13840
  friend class ::WinIfExists;
7695
13841
  friend class ::WinImportHandler;
7696
13842
  friend class ::WinMacros;
7697
 
  friend class ::CMatchSyntax;
7698
 
  friend class ::ExtGnu;
 
13843
  friend class ::WinAsm;
 
13844
  friend class ::WinDeclSpecs;
 
13845
  friend class ::WinMemberExplSpec;
 
13846
  friend class ::WinTypeKeywords;
 
13847
  friend class ::WinFriend;
7699
13848
  friend class ::ExtAC;
7700
13849
  friend class ::ExtACBuilderCoupling;
7701
13850
  friend class ::ExtACSyntaxCoupling;
7702
13851
  friend class ::ExtACTree;
7703
13852
  friend class ::ExtACKeywords;
7704
 
  friend class ::WinAsm;
7705
 
  friend class ::WinDeclSpecs;
7706
 
  friend class ::WinMemberExplSpec;
7707
 
  friend class ::WinTypeKeywords;
 
13853
  friend class ::ExtGnu;
7708
13854
  friend class ::PragmaOnceUnitState;
7709
13855
  friend class ::PragmaOnce;
7710
 
  friend class ::CCExprResolve;
7711
 
  friend class ::CExprResolve;
 
13856
  friend class ::CMatchSyntax;
7712
13857
 
7713
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13858
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7714
13859
 
7715
13860
public:
7716
 
  CT_ConversionName (CTree *, CTree *);
 
13861
  /** Constructor.
 
13862
   *  \param f The operator function keyword 'operator'.
 
13863
   *  \param t The sub-tree containing the conversion type. */
 
13864
  CT_ConversionName (CTree *f, CTree *t);
 
13865
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7717
13866
  static const char *NodeId ();
 
13867
  /** Get the name of the node. Can be compared with NodeId(). */
7718
13868
  const char *NodeName () const { return NodeId (); }
 
13869
  /** Get the conversion type. */
7719
13870
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
7720
 
  // special new / delete with reusing memory
 
13871
 
 
13872
public:
 
13873
  /** Own new operator reusing memory. */
7721
13874
  void *operator new (size_t);
7722
 
  void  operator delete (void *);
 
13875
  /** Own delete operator. */
 
13876
  void operator delete (void *);
7723
13877
   private:
7724
13878
  typedef CT_ConversionName CCExprResolveExpr;
7725
13879
 
7726
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13880
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7727
13881
 public :
7728
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13882
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7729
13883
  typedef CT_ConversionName CExprResolveExpr;
7730
13884
 
7731
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13885
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7732
13886
 public :
7733
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7734
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13887
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13888
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7735
13889
};
7736
13890
 
 
13891
/** \class CT_QualName CTree.h Puma/CTree.h
 
13892
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
7737
13893
 
7738
 
#line 7739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13894
#line 13895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7739
13895
} // closed Puma
 
13896
class CCExprResolve;
 
13897
class CExprResolve;
7740
13898
class WinIfExists;
7741
13899
class WinImportHandler;
7742
13900
class WinMacros;
7743
 
class CMatchSyntax;
7744
 
class ExtGnu;
 
13901
class WinAsm;
 
13902
class WinDeclSpecs;
 
13903
class WinMemberExplSpec;
 
13904
class WinTypeKeywords;
 
13905
class WinFriend;
7745
13906
class ExtAC;
7746
13907
class ExtACBuilderCoupling;
7747
13908
class ExtACSyntaxCoupling;
7748
13909
class ExtACTree;
7749
13910
class ExtACKeywords;
7750
 
class WinAsm;
7751
 
class WinDeclSpecs;
7752
 
class WinMemberExplSpec;
7753
 
class WinTypeKeywords;
 
13911
class ExtGnu;
7754
13912
class PragmaOnceUnitState;
7755
13913
class PragmaOnce;
7756
 
class CCExprResolve;
7757
 
class CExprResolve;
7758
 
namespace Puma {
7759
 
 
7760
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13914
class CMatchSyntax;
 
13915
namespace Puma {
 
13916
 
 
13917
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13918
 
 
13919
#line 13920 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13920
} // closed Puma
 
13921
 
 
13922
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13923
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
13924
#include "CCExprResolveH.ah"
 
13925
#endif
 
13926
namespace Puma {
 
13927
 
 
13928
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13929
 
 
13930
#line 13931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13931
} // closed Puma
 
13932
 
 
13933
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13934
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
13935
#include "CExprResolveH.ah"
 
13936
#endif
 
13937
namespace Puma {
 
13938
 
 
13939
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7761
13940
class CT_QualName : public CT_SimpleName {
7762
 
#line 7763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
13941
#line 13942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
13942
  friend class ::CCExprResolve;
 
13943
  friend class ::CExprResolve;
7763
13944
  friend class ::WinIfExists;
7764
13945
  friend class ::WinImportHandler;
7765
13946
  friend class ::WinMacros;
7766
 
  friend class ::CMatchSyntax;
7767
 
  friend class ::ExtGnu;
 
13947
  friend class ::WinAsm;
 
13948
  friend class ::WinDeclSpecs;
 
13949
  friend class ::WinMemberExplSpec;
 
13950
  friend class ::WinTypeKeywords;
 
13951
  friend class ::WinFriend;
7768
13952
  friend class ::ExtAC;
7769
13953
  friend class ::ExtACBuilderCoupling;
7770
13954
  friend class ::ExtACSyntaxCoupling;
7771
13955
  friend class ::ExtACTree;
7772
13956
  friend class ::ExtACKeywords;
7773
 
  friend class ::WinAsm;
7774
 
  friend class ::WinDeclSpecs;
7775
 
  friend class ::WinMemberExplSpec;
7776
 
  friend class ::WinTypeKeywords;
 
13957
  friend class ::ExtGnu;
7777
13958
  friend class ::PragmaOnceUnitState;
7778
13959
  friend class ::PragmaOnce;
7779
 
  friend class ::CCExprResolve;
7780
 
  friend class ::CExprResolve;
 
13960
  friend class ::CMatchSyntax;
7781
13961
 
7782
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13962
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7783
13963
 
7784
13964
public:
 
13965
  /** Constructor.
 
13966
   *  \param size The initial number sub-names plus separators. */
7785
13967
  CT_QualName (int size = 3) : 
7786
13968
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
13969
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7787
13970
  static const char *NodeId ();
 
13971
  /** Get the name of the node. Can be compared with NodeId(). */
7788
13972
  const char *NodeName () const { return NodeId (); }
7789
 
  void print (ostream &) const;
 
13973
  /** Print the qualified name on the given stream. 
 
13974
   *  \param os The output stream. */
 
13975
  void print (ostream &os) const;
 
13976
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
7790
13977
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
13978
  /** Get the string containing the last name of the qualified name. */
7791
13979
  const char *Text () const { return Name ()->Text (); }
 
13980
  /** Get the type of the last name. */
7792
13981
  CTypeInfo *Type () const { return Name ()->Type (); }
 
13982
  /** Get the value of the last name. */
7793
13983
  CExprValue *Value () const { return Name ()->Value (); }
 
13984
  /** Get the semantic value object of the last name. */
7794
13985
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
13986
  /** Get the semantic information object of the last name. */
7795
13987
  CSemObject *SemObject () const { return Name ()->SemObject (); }
7796
 
  // special new / delete with reusing memory
 
13988
 
 
13989
public:
 
13990
  /** Own new operator reusing memory. */
7797
13991
  void *operator new (size_t);
7798
 
  void  operator delete (void *);
 
13992
  /** Own delete operator. */
 
13993
  void operator delete (void *);
7799
13994
   private:
7800
13995
  typedef CT_QualName CCExprResolveExpr;
7801
13996
 
7802
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13997
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7803
13998
 public :
7804
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13999
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7805
14000
  typedef CT_QualName CExprResolveExpr;
7806
14001
 
7807
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14002
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7808
14003
 public :
7809
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7810
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14004
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14005
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7811
14006
};
7812
14007
 
 
14008
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
14009
 *  Tree node representing a qualified name with introducing name separator,
 
14010
 *  e.g. ::X::Y::Z. */
7813
14011
 
7814
 
#line 7815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14012
#line 14013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7815
14013
} // closed Puma
 
14014
class CCExprResolve;
 
14015
class CExprResolve;
7816
14016
class WinIfExists;
7817
14017
class WinImportHandler;
7818
14018
class WinMacros;
7819
 
class CMatchSyntax;
7820
 
class ExtGnu;
 
14019
class WinAsm;
 
14020
class WinDeclSpecs;
 
14021
class WinMemberExplSpec;
 
14022
class WinTypeKeywords;
 
14023
class WinFriend;
7821
14024
class ExtAC;
7822
14025
class ExtACBuilderCoupling;
7823
14026
class ExtACSyntaxCoupling;
7824
14027
class ExtACTree;
7825
14028
class ExtACKeywords;
7826
 
class WinAsm;
7827
 
class WinDeclSpecs;
7828
 
class WinMemberExplSpec;
7829
 
class WinTypeKeywords;
 
14029
class ExtGnu;
7830
14030
class PragmaOnceUnitState;
7831
14031
class PragmaOnce;
7832
 
class CCExprResolve;
7833
 
class CExprResolve;
7834
 
namespace Puma {
7835
 
 
7836
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14032
class CMatchSyntax;
 
14033
namespace Puma {
 
14034
 
 
14035
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14036
 
 
14037
#line 14038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14038
} // closed Puma
 
14039
 
 
14040
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14041
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14042
#include "CCExprResolveH.ah"
 
14043
#endif
 
14044
namespace Puma {
 
14045
 
 
14046
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14047
 
 
14048
#line 14049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14049
} // closed Puma
 
14050
 
 
14051
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14052
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14053
#include "CExprResolveH.ah"
 
14054
#endif
 
14055
namespace Puma {
 
14056
 
 
14057
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7837
14058
class CT_RootQualName : public CT_QualName {
7838
 
#line 7839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14059
#line 14060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14060
  friend class ::CCExprResolve;
 
14061
  friend class ::CExprResolve;
7839
14062
  friend class ::WinIfExists;
7840
14063
  friend class ::WinImportHandler;
7841
14064
  friend class ::WinMacros;
7842
 
  friend class ::CMatchSyntax;
7843
 
  friend class ::ExtGnu;
 
14065
  friend class ::WinAsm;
 
14066
  friend class ::WinDeclSpecs;
 
14067
  friend class ::WinMemberExplSpec;
 
14068
  friend class ::WinTypeKeywords;
 
14069
  friend class ::WinFriend;
7844
14070
  friend class ::ExtAC;
7845
14071
  friend class ::ExtACBuilderCoupling;
7846
14072
  friend class ::ExtACSyntaxCoupling;
7847
14073
  friend class ::ExtACTree;
7848
14074
  friend class ::ExtACKeywords;
7849
 
  friend class ::WinAsm;
7850
 
  friend class ::WinDeclSpecs;
7851
 
  friend class ::WinMemberExplSpec;
7852
 
  friend class ::WinTypeKeywords;
 
14075
  friend class ::ExtGnu;
7853
14076
  friend class ::PragmaOnceUnitState;
7854
14077
  friend class ::PragmaOnce;
7855
 
  friend class ::CCExprResolve;
7856
 
  friend class ::CExprResolve;
 
14078
  friend class ::CMatchSyntax;
7857
14079
 
7858
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14080
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7859
14081
 
7860
14082
public:
 
14083
  /** Constructor.
 
14084
   *  \param size Initial number of sub-name plus separator. */
7861
14085
  CT_RootQualName (int size = 2) : 
7862
14086
    CT_QualName (size) { AddProperties (INTRO); }
 
14087
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7863
14088
  static const char *NodeId ();
 
14089
  /** Get the name of the node. Can be compared with NodeId(). */
7864
14090
  const char *NodeName () const { return NodeId (); }
7865
 
  // special new / delete with reusing memory
 
14091
 
 
14092
public:
 
14093
  /** Own new operator reusing memory. */
7866
14094
  void *operator new (size_t);
7867
 
  void  operator delete (void *);
 
14095
  /** Own delete operator. */
 
14096
  void operator delete (void *);
7868
14097
   private:
7869
14098
  typedef CT_RootQualName CCExprResolveExpr;
7870
14099
 
7871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14100
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7872
14101
 public :
7873
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14102
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7874
14103
  typedef CT_RootQualName CExprResolveExpr;
7875
14104
 
7876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14105
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7877
14106
 public :
7878
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7879
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14107
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14108
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7880
14109
};
7881
14110
 
 
14111
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
14112
 *  Tree node representing a binary expression, e.g. a+b. */
7882
14113
 
7883
 
#line 7884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14114
#line 14115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7884
14115
} // closed Puma
 
14116
class CCExprResolve;
 
14117
class CExprResolve;
7885
14118
class WinIfExists;
7886
14119
class WinImportHandler;
7887
14120
class WinMacros;
7888
 
class CMatchSyntax;
7889
 
class ExtGnu;
 
14121
class WinAsm;
 
14122
class WinDeclSpecs;
 
14123
class WinMemberExplSpec;
 
14124
class WinTypeKeywords;
 
14125
class WinFriend;
7890
14126
class ExtAC;
7891
14127
class ExtACBuilderCoupling;
7892
14128
class ExtACSyntaxCoupling;
7893
14129
class ExtACTree;
7894
14130
class ExtACKeywords;
7895
 
class WinAsm;
7896
 
class WinDeclSpecs;
7897
 
class WinMemberExplSpec;
7898
 
class WinTypeKeywords;
 
14131
class ExtGnu;
7899
14132
class PragmaOnceUnitState;
7900
14133
class PragmaOnce;
7901
 
class CCExprResolve;
7902
 
class CExprResolve;
7903
 
namespace Puma {
7904
 
 
7905
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7906
 
class CT_BinaryExpr : public CT_Expression {
7907
 
#line 7908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14134
class CMatchSyntax;
 
14135
namespace Puma {
 
14136
 
 
14137
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14138
 
 
14139
#line 14140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14140
} // closed Puma
 
14141
 
 
14142
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14143
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14144
#include "CCExprResolveH.ah"
 
14145
#endif
 
14146
namespace Puma {
 
14147
 
 
14148
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14149
 
 
14150
#line 14151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14151
} // closed Puma
 
14152
 
 
14153
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14154
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14155
#include "CExprResolveH.ah"
 
14156
#endif
 
14157
namespace Puma {
 
14158
 
 
14159
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14160
class CT_BinaryExpr : public CT_Call {
 
14161
#line 14162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14162
  friend class ::CCExprResolve;
 
14163
  friend class ::CExprResolve;
7908
14164
  friend class ::WinIfExists;
7909
14165
  friend class ::WinImportHandler;
7910
14166
  friend class ::WinMacros;
7911
 
  friend class ::CMatchSyntax;
7912
 
  friend class ::ExtGnu;
 
14167
  friend class ::WinAsm;
 
14168
  friend class ::WinDeclSpecs;
 
14169
  friend class ::WinMemberExplSpec;
 
14170
  friend class ::WinTypeKeywords;
 
14171
  friend class ::WinFriend;
7913
14172
  friend class ::ExtAC;
7914
14173
  friend class ::ExtACBuilderCoupling;
7915
14174
  friend class ::ExtACSyntaxCoupling;
7916
14175
  friend class ::ExtACTree;
7917
14176
  friend class ::ExtACKeywords;
7918
 
  friend class ::WinAsm;
7919
 
  friend class ::WinDeclSpecs;
7920
 
  friend class ::WinMemberExplSpec;
7921
 
  friend class ::WinTypeKeywords;
 
14177
  friend class ::ExtGnu;
7922
14178
  friend class ::PragmaOnceUnitState;
7923
14179
  friend class ::PragmaOnce;
7924
 
  friend class ::CCExprResolve;
7925
 
  friend class ::CExprResolve;
 
14180
  friend class ::CMatchSyntax;
7926
14181
 
7927
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14182
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7928
14183
 
7929
14184
  CTree *sons[3]; // expr, oper, expr
7930
14185
 
7931
14186
public:
 
14187
  /** Constructor. 
 
14188
   *  \param l Left hand side of the expression. 
 
14189
   *  \param o The operator token. 
 
14190
   *  \param r Right hand side of the expression. */
7932
14191
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
7933
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
14192
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
7934
14193
  }
 
14194
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7935
14195
  static const char *NodeId ();
 
14196
  /** Get the name of the node. Can be compared with NodeId(). */
7936
14197
  const char *NodeName () const { return NodeId (); }
 
14198
  /** Get the number of sons. */
7937
14199
  int Sons () const { return 3; }
 
14200
  /** Get the n-th son.
 
14201
   *  \param n The index of the son.
 
14202
   *  \return The n-th son or NULL. */
7938
14203
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14204
  /** Replace a son.
 
14205
   *  \param old_son The son to replace.
 
14206
   *  \param new_son The new son. */
7939
14207
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
7940
14208
    CTree::ReplaceSon (sons, 3, old_son, new_son);
7941
14209
  }
7942
14210
   private:
7943
14211
  typedef CT_BinaryExpr CCExprResolveExpr;
7944
14212
 
7945
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14213
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7946
14214
 public :
7947
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14215
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7948
14216
  typedef CT_BinaryExpr CExprResolveExpr;
7949
14217
 
7950
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14218
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7951
14219
 public :
7952
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7953
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14220
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14221
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7954
14222
};
7955
14223
 
 
14224
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
14225
 *  Tree node representing a member pointer expression, e.g. a->b. */
7956
14226
 
7957
 
#line 7958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14227
#line 14228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
7958
14228
} // closed Puma
 
14229
class CCExprResolve;
 
14230
class CExprResolve;
7959
14231
class WinIfExists;
7960
14232
class WinImportHandler;
7961
14233
class WinMacros;
7962
 
class CMatchSyntax;
7963
 
class ExtGnu;
 
14234
class WinAsm;
 
14235
class WinDeclSpecs;
 
14236
class WinMemberExplSpec;
 
14237
class WinTypeKeywords;
 
14238
class WinFriend;
7964
14239
class ExtAC;
7965
14240
class ExtACBuilderCoupling;
7966
14241
class ExtACSyntaxCoupling;
7967
14242
class ExtACTree;
7968
14243
class ExtACKeywords;
7969
 
class WinAsm;
7970
 
class WinDeclSpecs;
7971
 
class WinMemberExplSpec;
7972
 
class WinTypeKeywords;
 
14244
class ExtGnu;
7973
14245
class PragmaOnceUnitState;
7974
14246
class PragmaOnce;
7975
 
class CCExprResolve;
7976
 
class CExprResolve;
7977
 
namespace Puma {
7978
 
 
7979
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
7980
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
7981
 
#line 7982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14247
class CMatchSyntax;
 
14248
namespace Puma {
 
14249
 
 
14250
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14251
 
 
14252
#line 14253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14253
} // closed Puma
 
14254
 
 
14255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14257
#include "CCExprResolveH.ah"
 
14258
#endif
 
14259
namespace Puma {
 
14260
 
 
14261
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14262
 
 
14263
#line 14264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14264
} // closed Puma
 
14265
 
 
14266
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14267
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14268
#include "CExprResolveH.ah"
 
14269
#endif
 
14270
namespace Puma {
 
14271
 
 
14272
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14273
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
14274
#line 14275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14275
  friend class ::CCExprResolve;
 
14276
  friend class ::CExprResolve;
7982
14277
  friend class ::WinIfExists;
7983
14278
  friend class ::WinImportHandler;
7984
14279
  friend class ::WinMacros;
7985
 
  friend class ::CMatchSyntax;
7986
 
  friend class ::ExtGnu;
 
14280
  friend class ::WinAsm;
 
14281
  friend class ::WinDeclSpecs;
 
14282
  friend class ::WinMemberExplSpec;
 
14283
  friend class ::WinTypeKeywords;
 
14284
  friend class ::WinFriend;
7987
14285
  friend class ::ExtAC;
7988
14286
  friend class ::ExtACBuilderCoupling;
7989
14287
  friend class ::ExtACSyntaxCoupling;
7990
14288
  friend class ::ExtACTree;
7991
14289
  friend class ::ExtACKeywords;
7992
 
  friend class ::WinAsm;
7993
 
  friend class ::WinDeclSpecs;
7994
 
  friend class ::WinMemberExplSpec;
7995
 
  friend class ::WinTypeKeywords;
 
14290
  friend class ::ExtGnu;
7996
14291
  friend class ::PragmaOnceUnitState;
7997
14292
  friend class ::PragmaOnce;
7998
 
  friend class ::CCExprResolve;
7999
 
  friend class ::CExprResolve;
8000
 
 
8001
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8002
 
 
 
14293
  friend class ::CMatchSyntax;
 
14294
 
 
14295
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14296
 
 
14297
  CTree *sons[3]; // expr, oper, expr
 
14298
  
8003
14299
public:
8004
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
8005
 
    CT_BinaryExpr (e, o, i) {}
 
14300
  /** Constructor.
 
14301
   *  \param e Expression on which to call the member.
 
14302
   *  \param o The arrow operator token.
 
14303
   *  \param i The member name. */
 
14304
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
14305
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
14306
  }
 
14307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8006
14308
  static const char *NodeId ();
 
14309
  /** Get the name of the node. Can be compared with NodeId(). */
8007
14310
  const char *NodeName () const { return NodeId (); }
8008
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14311
  /** Get the number of sons. */
 
14312
  int Sons () const { return 3; }
 
14313
  /** Get the n-th son.
 
14314
   *  \param n The index of the son.
 
14315
   *  \return The n-th son or NULL. */
 
14316
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
14317
  /** Replace a son.
 
14318
   *  \param old_son The son to replace.
 
14319
   *  \param new_son The new son. */
 
14320
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
14321
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
14322
  }
8009
14323
   private:
8010
14324
  typedef CT_MembPtrExpr CCExprResolveExpr;
8011
14325
 
8012
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14326
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8013
14327
 public :
8014
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14328
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8015
14329
  typedef CT_MembPtrExpr CExprResolveExpr;
8016
14330
 
8017
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14331
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8018
14332
 public :
8019
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8020
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14333
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14334
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8021
14335
};
8022
14336
 
 
14337
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
14338
 *  Tree node representing a member reference expression, e.g. a.b. */
8023
14339
 
8024
 
#line 8025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14340
#line 14341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8025
14341
} // closed Puma
 
14342
class CCExprResolve;
 
14343
class CExprResolve;
8026
14344
class WinIfExists;
8027
14345
class WinImportHandler;
8028
14346
class WinMacros;
8029
 
class CMatchSyntax;
8030
 
class ExtGnu;
 
14347
class WinAsm;
 
14348
class WinDeclSpecs;
 
14349
class WinMemberExplSpec;
 
14350
class WinTypeKeywords;
 
14351
class WinFriend;
8031
14352
class ExtAC;
8032
14353
class ExtACBuilderCoupling;
8033
14354
class ExtACSyntaxCoupling;
8034
14355
class ExtACTree;
8035
14356
class ExtACKeywords;
8036
 
class WinAsm;
8037
 
class WinDeclSpecs;
8038
 
class WinMemberExplSpec;
8039
 
class WinTypeKeywords;
 
14357
class ExtGnu;
8040
14358
class PragmaOnceUnitState;
8041
14359
class PragmaOnce;
8042
 
class CCExprResolve;
8043
 
class CExprResolve;
8044
 
namespace Puma {
8045
 
 
8046
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14360
class CMatchSyntax;
 
14361
namespace Puma {
 
14362
 
 
14363
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14364
 
 
14365
#line 14366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14366
} // closed Puma
 
14367
 
 
14368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14370
#include "CCExprResolveH.ah"
 
14371
#endif
 
14372
namespace Puma {
 
14373
 
 
14374
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14375
 
 
14376
#line 14377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14377
} // closed Puma
 
14378
 
 
14379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14381
#include "CExprResolveH.ah"
 
14382
#endif
 
14383
namespace Puma {
 
14384
 
 
14385
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8047
14386
class CT_MembRefExpr : public CT_MembPtrExpr {
8048
 
#line 8049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14387
#line 14388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14388
  friend class ::CCExprResolve;
 
14389
  friend class ::CExprResolve;
8049
14390
  friend class ::WinIfExists;
8050
14391
  friend class ::WinImportHandler;
8051
14392
  friend class ::WinMacros;
8052
 
  friend class ::CMatchSyntax;
8053
 
  friend class ::ExtGnu;
 
14393
  friend class ::WinAsm;
 
14394
  friend class ::WinDeclSpecs;
 
14395
  friend class ::WinMemberExplSpec;
 
14396
  friend class ::WinTypeKeywords;
 
14397
  friend class ::WinFriend;
8054
14398
  friend class ::ExtAC;
8055
14399
  friend class ::ExtACBuilderCoupling;
8056
14400
  friend class ::ExtACSyntaxCoupling;
8057
14401
  friend class ::ExtACTree;
8058
14402
  friend class ::ExtACKeywords;
8059
 
  friend class ::WinAsm;
8060
 
  friend class ::WinDeclSpecs;
8061
 
  friend class ::WinMemberExplSpec;
8062
 
  friend class ::WinTypeKeywords;
 
14403
  friend class ::ExtGnu;
8063
14404
  friend class ::PragmaOnceUnitState;
8064
14405
  friend class ::PragmaOnce;
8065
 
  friend class ::CCExprResolve;
8066
 
  friend class ::CExprResolve;
 
14406
  friend class ::CMatchSyntax;
8067
14407
 
8068
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14408
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8069
14409
 
8070
14410
public:
 
14411
  /** Constructor.
 
14412
   *  \param e Expression on which to call the member.
 
14413
   *  \param o The dot operator.
 
14414
   *  \param i The member name. */
8071
14415
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
8072
14416
    CT_MembPtrExpr (e, o, i) {}
 
14417
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8073
14418
  static const char *NodeId ();
 
14419
  /** Get the name of the node. Can be compared with NodeId(). */
8074
14420
  const char *NodeName () const { return NodeId (); }
8075
14421
   private:
8076
14422
  typedef CT_MembRefExpr CCExprResolveExpr;
8077
14423
 
8078
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14424
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8079
14425
 public :
8080
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14426
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8081
14427
  typedef CT_MembRefExpr CExprResolveExpr;
8082
14428
 
8083
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14429
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8084
14430
 public :
8085
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8086
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14431
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14432
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8087
14433
};
8088
14434
 
 
14435
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
14436
 *  Base class for tree nodes representing unary expressions. */
8089
14437
 
8090
 
#line 8091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14438
#line 14439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8091
14439
} // closed Puma
 
14440
class CCExprResolve;
 
14441
class CExprResolve;
8092
14442
class WinIfExists;
8093
14443
class WinImportHandler;
8094
14444
class WinMacros;
8095
 
class CMatchSyntax;
8096
 
class ExtGnu;
 
14445
class WinAsm;
 
14446
class WinDeclSpecs;
 
14447
class WinMemberExplSpec;
 
14448
class WinTypeKeywords;
 
14449
class WinFriend;
8097
14450
class ExtAC;
8098
14451
class ExtACBuilderCoupling;
8099
14452
class ExtACSyntaxCoupling;
8100
14453
class ExtACTree;
8101
14454
class ExtACKeywords;
8102
 
class WinAsm;
8103
 
class WinDeclSpecs;
8104
 
class WinMemberExplSpec;
8105
 
class WinTypeKeywords;
 
14455
class ExtGnu;
8106
14456
class PragmaOnceUnitState;
8107
14457
class PragmaOnce;
8108
 
class CCExprResolve;
8109
 
class CExprResolve;
8110
 
namespace Puma {
8111
 
 
8112
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8113
 
class CT_UnaryExpr : public CT_Expression {
8114
 
#line 8115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14458
class CMatchSyntax;
 
14459
namespace Puma {
 
14460
 
 
14461
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14462
 
 
14463
#line 14464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14464
} // closed Puma
 
14465
 
 
14466
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14467
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14468
#include "CCExprResolveH.ah"
 
14469
#endif
 
14470
namespace Puma {
 
14471
 
 
14472
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14473
 
 
14474
#line 14475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14475
} // closed Puma
 
14476
 
 
14477
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14478
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14479
#include "CExprResolveH.ah"
 
14480
#endif
 
14481
namespace Puma {
 
14482
 
 
14483
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14484
class CT_UnaryExpr : public CT_Call {
 
14485
#line 14486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14486
  friend class ::CCExprResolve;
 
14487
  friend class ::CExprResolve;
8115
14488
  friend class ::WinIfExists;
8116
14489
  friend class ::WinImportHandler;
8117
14490
  friend class ::WinMacros;
8118
 
  friend class ::CMatchSyntax;
8119
 
  friend class ::ExtGnu;
 
14491
  friend class ::WinAsm;
 
14492
  friend class ::WinDeclSpecs;
 
14493
  friend class ::WinMemberExplSpec;
 
14494
  friend class ::WinTypeKeywords;
 
14495
  friend class ::WinFriend;
8120
14496
  friend class ::ExtAC;
8121
14497
  friend class ::ExtACBuilderCoupling;
8122
14498
  friend class ::ExtACSyntaxCoupling;
8123
14499
  friend class ::ExtACTree;
8124
14500
  friend class ::ExtACKeywords;
8125
 
  friend class ::WinAsm;
8126
 
  friend class ::WinDeclSpecs;
8127
 
  friend class ::WinMemberExplSpec;
8128
 
  friend class ::WinTypeKeywords;
 
14501
  friend class ::ExtGnu;
8129
14502
  friend class ::PragmaOnceUnitState;
8130
14503
  friend class ::PragmaOnce;
8131
 
  friend class ::CCExprResolve;
8132
 
  friend class ::CExprResolve;
 
14504
  friend class ::CMatchSyntax;
8133
14505
 
8134
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14506
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8135
14507
 
8136
14508
  CTree *sons[2]; // oper, expr
8137
14509
 
8138
14510
public:
8139
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
14511
  /** Constructor.
 
14512
   *  \param o The unary operator.
 
14513
   *  \param e The expression on which the operator is invoked. */
 
14514
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
14515
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8140
14516
  static const char *NodeId ();
 
14517
  /** Get the name of the node. Can be compared with NodeId(). */
8141
14518
  const char *NodeName () const { return NodeId (); }
 
14519
  /** Get the number of sons. */
8142
14520
  int Sons () const { return 2; }
 
14521
  /** Get the n-th son.
 
14522
   *  \param n The index of the son.
 
14523
   *  \return The n-th son or NULL. */
8143
14524
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14525
  /** Replace a son.
 
14526
   *  \param old_son The son to replace.
 
14527
   *  \param new_son The new son. */
8144
14528
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8145
14529
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8146
14530
  }
 
14531
  /** Get the expression node. */
8147
14532
  CTree *Expr () const { return sons[1]; }
8148
14533
   private:
8149
14534
  typedef CT_UnaryExpr CCExprResolveExpr;
8150
14535
 
8151
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14536
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8152
14537
 public :
8153
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14538
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8154
14539
  typedef CT_UnaryExpr CExprResolveExpr;
8155
14540
 
8156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14541
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8157
14542
 public :
8158
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8159
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14543
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14544
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8160
14545
};
8161
14546
 
 
14547
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
14548
 *  Tree node representing a postfix expression, e.g. a++. */
8162
14549
 
8163
 
#line 8164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14550
#line 14551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8164
14551
} // closed Puma
 
14552
class CCExprResolve;
 
14553
class CExprResolve;
8165
14554
class WinIfExists;
8166
14555
class WinImportHandler;
8167
14556
class WinMacros;
8168
 
class CMatchSyntax;
8169
 
class ExtGnu;
 
14557
class WinAsm;
 
14558
class WinDeclSpecs;
 
14559
class WinMemberExplSpec;
 
14560
class WinTypeKeywords;
 
14561
class WinFriend;
8170
14562
class ExtAC;
8171
14563
class ExtACBuilderCoupling;
8172
14564
class ExtACSyntaxCoupling;
8173
14565
class ExtACTree;
8174
14566
class ExtACKeywords;
8175
 
class WinAsm;
8176
 
class WinDeclSpecs;
8177
 
class WinMemberExplSpec;
8178
 
class WinTypeKeywords;
 
14567
class ExtGnu;
8179
14568
class PragmaOnceUnitState;
8180
14569
class PragmaOnce;
8181
 
class CCExprResolve;
8182
 
class CExprResolve;
8183
 
namespace Puma {
8184
 
 
8185
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14570
class CMatchSyntax;
 
14571
namespace Puma {
 
14572
 
 
14573
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14574
 
 
14575
#line 14576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14576
} // closed Puma
 
14577
 
 
14578
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14579
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14580
#include "CCExprResolveH.ah"
 
14581
#endif
 
14582
namespace Puma {
 
14583
 
 
14584
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14585
 
 
14586
#line 14587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14587
} // closed Puma
 
14588
 
 
14589
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14590
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14591
#include "CExprResolveH.ah"
 
14592
#endif
 
14593
namespace Puma {
 
14594
 
 
14595
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8186
14596
class CT_PostfixExpr : public CT_UnaryExpr {
8187
 
#line 8188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14597
#line 14598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14598
  friend class ::CCExprResolve;
 
14599
  friend class ::CExprResolve;
8188
14600
  friend class ::WinIfExists;
8189
14601
  friend class ::WinImportHandler;
8190
14602
  friend class ::WinMacros;
8191
 
  friend class ::CMatchSyntax;
8192
 
  friend class ::ExtGnu;
 
14603
  friend class ::WinAsm;
 
14604
  friend class ::WinDeclSpecs;
 
14605
  friend class ::WinMemberExplSpec;
 
14606
  friend class ::WinTypeKeywords;
 
14607
  friend class ::WinFriend;
8193
14608
  friend class ::ExtAC;
8194
14609
  friend class ::ExtACBuilderCoupling;
8195
14610
  friend class ::ExtACSyntaxCoupling;
8196
14611
  friend class ::ExtACTree;
8197
14612
  friend class ::ExtACKeywords;
8198
 
  friend class ::WinAsm;
8199
 
  friend class ::WinDeclSpecs;
8200
 
  friend class ::WinMemberExplSpec;
8201
 
  friend class ::WinTypeKeywords;
 
14613
  friend class ::ExtGnu;
8202
14614
  friend class ::PragmaOnceUnitState;
8203
14615
  friend class ::PragmaOnce;
8204
 
  friend class ::CCExprResolve;
8205
 
  friend class ::CExprResolve;
 
14616
  friend class ::CMatchSyntax;
8206
14617
 
8207
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14618
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8208
14619
 
8209
14620
public:
 
14621
  /** Constructor.
 
14622
   *  \param e The expression on which to invoke the operator. 
 
14623
   *  \param o The postfix operator. */
8210
14624
  CT_PostfixExpr (CTree *e, CTree *o) :
8211
14625
    CT_UnaryExpr (e, o) {}
 
14626
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8212
14627
  static const char *NodeId ();
 
14628
  /** Get the name of the node. Can be compared with NodeId(). */
8213
14629
  const char *NodeName () const { return NodeId (); }
8214
14630
   private:
8215
14631
  typedef CT_PostfixExpr CCExprResolveExpr;
8216
14632
 
8217
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14633
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8218
14634
 public :
8219
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14635
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8220
14636
  typedef CT_PostfixExpr CExprResolveExpr;
8221
14637
 
8222
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8223
14639
 public :
8224
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8225
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14640
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14641
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8226
14642
};
8227
14643
 
 
14644
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
14645
 *  Tree node representing an address expression, e.g. &a. */
8228
14646
 
8229
 
#line 8230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14647
#line 14648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8230
14648
} // closed Puma
 
14649
class CCExprResolve;
 
14650
class CExprResolve;
8231
14651
class WinIfExists;
8232
14652
class WinImportHandler;
8233
14653
class WinMacros;
8234
 
class CMatchSyntax;
8235
 
class ExtGnu;
 
14654
class WinAsm;
 
14655
class WinDeclSpecs;
 
14656
class WinMemberExplSpec;
 
14657
class WinTypeKeywords;
 
14658
class WinFriend;
8236
14659
class ExtAC;
8237
14660
class ExtACBuilderCoupling;
8238
14661
class ExtACSyntaxCoupling;
8239
14662
class ExtACTree;
8240
14663
class ExtACKeywords;
8241
 
class WinAsm;
8242
 
class WinDeclSpecs;
8243
 
class WinMemberExplSpec;
8244
 
class WinTypeKeywords;
 
14664
class ExtGnu;
8245
14665
class PragmaOnceUnitState;
8246
14666
class PragmaOnce;
8247
 
class CCExprResolve;
8248
 
class CExprResolve;
8249
 
namespace Puma {
8250
 
 
8251
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14667
class CMatchSyntax;
 
14668
namespace Puma {
 
14669
 
 
14670
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14671
 
 
14672
#line 14673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14673
} // closed Puma
 
14674
 
 
14675
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14676
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14677
#include "CCExprResolveH.ah"
 
14678
#endif
 
14679
namespace Puma {
 
14680
 
 
14681
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14682
 
 
14683
#line 14684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14684
} // closed Puma
 
14685
 
 
14686
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14687
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14688
#include "CExprResolveH.ah"
 
14689
#endif
 
14690
namespace Puma {
 
14691
 
 
14692
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8252
14693
class CT_AddrExpr : public CT_UnaryExpr {
8253
 
#line 8254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14694
#line 14695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14695
  friend class ::CCExprResolve;
 
14696
  friend class ::CExprResolve;
8254
14697
  friend class ::WinIfExists;
8255
14698
  friend class ::WinImportHandler;
8256
14699
  friend class ::WinMacros;
8257
 
  friend class ::CMatchSyntax;
8258
 
  friend class ::ExtGnu;
 
14700
  friend class ::WinAsm;
 
14701
  friend class ::WinDeclSpecs;
 
14702
  friend class ::WinMemberExplSpec;
 
14703
  friend class ::WinTypeKeywords;
 
14704
  friend class ::WinFriend;
8259
14705
  friend class ::ExtAC;
8260
14706
  friend class ::ExtACBuilderCoupling;
8261
14707
  friend class ::ExtACSyntaxCoupling;
8262
14708
  friend class ::ExtACTree;
8263
14709
  friend class ::ExtACKeywords;
8264
 
  friend class ::WinAsm;
8265
 
  friend class ::WinDeclSpecs;
8266
 
  friend class ::WinMemberExplSpec;
8267
 
  friend class ::WinTypeKeywords;
 
14710
  friend class ::ExtGnu;
8268
14711
  friend class ::PragmaOnceUnitState;
8269
14712
  friend class ::PragmaOnce;
8270
 
  friend class ::CCExprResolve;
8271
 
  friend class ::CExprResolve;
 
14713
  friend class ::CMatchSyntax;
8272
14714
 
8273
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14715
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8274
14716
 
8275
14717
public:
 
14718
  /** Constructor.
 
14719
   *  \param o The address operator, i.e. '&'.
 
14720
   *  \param e The expression from which to take the address. */
8276
14721
  CT_AddrExpr (CTree *o, CTree *e) :
8277
14722
    CT_UnaryExpr (o, e) {}
 
14723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8278
14724
  static const char *NodeId ();
 
14725
  /** Get the name of the node. Can be compared with NodeId(). */
8279
14726
  const char *NodeName () const { return NodeId (); }
8280
14727
   private:
8281
14728
  typedef CT_AddrExpr CCExprResolveExpr;
8282
14729
 
8283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14730
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8284
14731
 public :
8285
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14732
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8286
14733
  typedef CT_AddrExpr CExprResolveExpr;
8287
14734
 
8288
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14735
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8289
14736
 public :
8290
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8291
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14737
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14738
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8292
14739
};
8293
14740
 
 
14741
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
14742
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
8294
14743
 
8295
 
#line 8296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14744
#line 14745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8296
14745
} // closed Puma
 
14746
class CCExprResolve;
 
14747
class CExprResolve;
8297
14748
class WinIfExists;
8298
14749
class WinImportHandler;
8299
14750
class WinMacros;
8300
 
class CMatchSyntax;
8301
 
class ExtGnu;
 
14751
class WinAsm;
 
14752
class WinDeclSpecs;
 
14753
class WinMemberExplSpec;
 
14754
class WinTypeKeywords;
 
14755
class WinFriend;
8302
14756
class ExtAC;
8303
14757
class ExtACBuilderCoupling;
8304
14758
class ExtACSyntaxCoupling;
8305
14759
class ExtACTree;
8306
14760
class ExtACKeywords;
8307
 
class WinAsm;
8308
 
class WinDeclSpecs;
8309
 
class WinMemberExplSpec;
8310
 
class WinTypeKeywords;
 
14761
class ExtGnu;
8311
14762
class PragmaOnceUnitState;
8312
14763
class PragmaOnce;
8313
 
class CCExprResolve;
8314
 
class CExprResolve;
8315
 
namespace Puma {
8316
 
 
8317
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14764
class CMatchSyntax;
 
14765
namespace Puma {
 
14766
 
 
14767
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14768
 
 
14769
#line 14770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14770
} // closed Puma
 
14771
 
 
14772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14774
#include "CCExprResolveH.ah"
 
14775
#endif
 
14776
namespace Puma {
 
14777
 
 
14778
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14779
 
 
14780
#line 14781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14781
} // closed Puma
 
14782
 
 
14783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14785
#include "CExprResolveH.ah"
 
14786
#endif
 
14787
namespace Puma {
 
14788
 
 
14789
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8318
14790
class CT_DerefExpr : public CT_UnaryExpr {
8319
 
#line 8320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14791
#line 14792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14792
  friend class ::CCExprResolve;
 
14793
  friend class ::CExprResolve;
8320
14794
  friend class ::WinIfExists;
8321
14795
  friend class ::WinImportHandler;
8322
14796
  friend class ::WinMacros;
8323
 
  friend class ::CMatchSyntax;
8324
 
  friend class ::ExtGnu;
 
14797
  friend class ::WinAsm;
 
14798
  friend class ::WinDeclSpecs;
 
14799
  friend class ::WinMemberExplSpec;
 
14800
  friend class ::WinTypeKeywords;
 
14801
  friend class ::WinFriend;
8325
14802
  friend class ::ExtAC;
8326
14803
  friend class ::ExtACBuilderCoupling;
8327
14804
  friend class ::ExtACSyntaxCoupling;
8328
14805
  friend class ::ExtACTree;
8329
14806
  friend class ::ExtACKeywords;
8330
 
  friend class ::WinAsm;
8331
 
  friend class ::WinDeclSpecs;
8332
 
  friend class ::WinMemberExplSpec;
8333
 
  friend class ::WinTypeKeywords;
 
14807
  friend class ::ExtGnu;
8334
14808
  friend class ::PragmaOnceUnitState;
8335
14809
  friend class ::PragmaOnce;
8336
 
  friend class ::CCExprResolve;
8337
 
  friend class ::CExprResolve;
 
14810
  friend class ::CMatchSyntax;
8338
14811
 
8339
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14812
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8340
14813
 
8341
14814
public:
 
14815
  /** Constructor.
 
14816
   *  \param o The dereferencing operator, i.e. '*'.
 
14817
   *  \param e The expression to dereference. */
8342
14818
  CT_DerefExpr (CTree *o, CTree *e) :
8343
14819
    CT_UnaryExpr (o, e) {}
 
14820
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8344
14821
  static const char *NodeId ();
 
14822
  /** Get the name of the node. Can be compared with NodeId(). */
8345
14823
  const char *NodeName () const { return NodeId (); }
8346
14824
   private:
8347
14825
  typedef CT_DerefExpr CCExprResolveExpr;
8348
14826
 
8349
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14827
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8350
14828
 public :
8351
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14829
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8352
14830
  typedef CT_DerefExpr CExprResolveExpr;
8353
14831
 
8354
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14832
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8355
14833
 public :
8356
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8357
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14834
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14835
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8358
14836
};
8359
14837
 
 
14838
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
14839
 *  Tree node representing a delete expression, e.g. delete a. */
8360
14840
 
8361
 
#line 8362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14841
#line 14842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8362
14842
} // closed Puma
 
14843
class CCExprResolve;
 
14844
class CExprResolve;
8363
14845
class WinIfExists;
8364
14846
class WinImportHandler;
8365
14847
class WinMacros;
8366
 
class CMatchSyntax;
8367
 
class ExtGnu;
 
14848
class WinAsm;
 
14849
class WinDeclSpecs;
 
14850
class WinMemberExplSpec;
 
14851
class WinTypeKeywords;
 
14852
class WinFriend;
8368
14853
class ExtAC;
8369
14854
class ExtACBuilderCoupling;
8370
14855
class ExtACSyntaxCoupling;
8371
14856
class ExtACTree;
8372
14857
class ExtACKeywords;
8373
 
class WinAsm;
8374
 
class WinDeclSpecs;
8375
 
class WinMemberExplSpec;
8376
 
class WinTypeKeywords;
 
14858
class ExtGnu;
8377
14859
class PragmaOnceUnitState;
8378
14860
class PragmaOnce;
8379
 
class CCExprResolve;
8380
 
class CExprResolve;
8381
 
namespace Puma {
8382
 
 
8383
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14861
class CMatchSyntax;
 
14862
namespace Puma {
 
14863
 
 
14864
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14865
 
 
14866
#line 14867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14867
} // closed Puma
 
14868
 
 
14869
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14870
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14871
#include "CCExprResolveH.ah"
 
14872
#endif
 
14873
namespace Puma {
 
14874
 
 
14875
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14876
 
 
14877
#line 14878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14878
} // closed Puma
 
14879
 
 
14880
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14881
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14882
#include "CExprResolveH.ah"
 
14883
#endif
 
14884
namespace Puma {
 
14885
 
 
14886
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8384
14887
class CT_DeleteExpr : public CT_Expression, public CSemObject {
8385
 
#line 8386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14888
#line 14889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14889
  friend class ::CCExprResolve;
 
14890
  friend class ::CExprResolve;
8386
14891
  friend class ::WinIfExists;
8387
14892
  friend class ::WinImportHandler;
8388
14893
  friend class ::WinMacros;
8389
 
  friend class ::CMatchSyntax;
8390
 
  friend class ::ExtGnu;
 
14894
  friend class ::WinAsm;
 
14895
  friend class ::WinDeclSpecs;
 
14896
  friend class ::WinMemberExplSpec;
 
14897
  friend class ::WinTypeKeywords;
 
14898
  friend class ::WinFriend;
8391
14899
  friend class ::ExtAC;
8392
14900
  friend class ::ExtACBuilderCoupling;
8393
14901
  friend class ::ExtACSyntaxCoupling;
8394
14902
  friend class ::ExtACTree;
8395
14903
  friend class ::ExtACKeywords;
8396
 
  friend class ::WinAsm;
8397
 
  friend class ::WinDeclSpecs;
8398
 
  friend class ::WinMemberExplSpec;
8399
 
  friend class ::WinTypeKeywords;
 
14904
  friend class ::ExtGnu;
8400
14905
  friend class ::PragmaOnceUnitState;
8401
14906
  friend class ::PragmaOnce;
8402
 
  friend class ::CCExprResolve;
8403
 
  friend class ::CExprResolve;
 
14907
  friend class ::CMatchSyntax;
8404
14908
 
8405
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14909
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8406
14910
 
8407
14911
  CTree *sons[2]; // oper, expr
8408
14912
 
8409
14913
public:
8410
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
14914
  /** Constructor.
 
14915
   *  \param op The delete operator.
 
14916
   *  \param e The expression representing the object to delete. */
 
14917
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
14918
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8411
14919
  static const char *NodeId ();
 
14920
  /** Get the name of the node. Can be compared with NodeId(). */
8412
14921
  const char *NodeName () const { return NodeId (); }
 
14922
  /** Get the number of sons. */
8413
14923
  int Sons () const { return 2; }
 
14924
  /** Get the n-th son.
 
14925
   *  \param n The index of the son.
 
14926
   *  \return The n-th son or NULL. */
8414
14927
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
14928
  /** Replace a son.
 
14929
   *  \param old_son The son to replace.
 
14930
   *  \param new_son The new son. */
8415
14931
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8416
14932
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8417
14933
  }
 
14934
  /** Get the expression. */
8418
14935
  CTree *Expr () const { return sons[1]; }
 
14936
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
8419
14937
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
14938
  /** Get the semantic information object. */
8420
14939
  CSemObject *SemObject () const { return (CSemObject*)this; }
8421
14940
   private:
8422
14941
  typedef CT_DeleteExpr CCExprResolveExpr;
8423
14942
 
8424
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
14943
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8425
14944
 public :
8426
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
14945
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8427
14946
  typedef CT_DeleteExpr CExprResolveExpr;
8428
14947
 
8429
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
14948
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8430
14949
 public :
8431
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8432
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14950
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
14951
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8433
14952
};
8434
14953
 
 
14954
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
14955
 *  Tree node representing a new expression, e.g. new A(). */
8435
14956
 
8436
 
#line 8437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
14957
#line 14958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8437
14958
} // closed Puma
 
14959
class CCExprResolve;
 
14960
class CExprResolve;
8438
14961
class WinIfExists;
8439
14962
class WinImportHandler;
8440
14963
class WinMacros;
8441
 
class CMatchSyntax;
8442
 
class ExtGnu;
 
14964
class WinAsm;
 
14965
class WinDeclSpecs;
 
14966
class WinMemberExplSpec;
 
14967
class WinTypeKeywords;
 
14968
class WinFriend;
8443
14969
class ExtAC;
8444
14970
class ExtACBuilderCoupling;
8445
14971
class ExtACSyntaxCoupling;
8446
14972
class ExtACTree;
8447
14973
class ExtACKeywords;
8448
 
class WinAsm;
8449
 
class WinDeclSpecs;
8450
 
class WinMemberExplSpec;
8451
 
class WinTypeKeywords;
 
14974
class ExtGnu;
8452
14975
class PragmaOnceUnitState;
8453
14976
class PragmaOnce;
8454
 
class CCExprResolve;
8455
 
class CExprResolve;
8456
 
namespace Puma {
8457
 
 
8458
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14977
class CMatchSyntax;
 
14978
namespace Puma {
 
14979
 
 
14980
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14981
 
 
14982
#line 14983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14983
} // closed Puma
 
14984
 
 
14985
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14986
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
14987
#include "CCExprResolveH.ah"
 
14988
#endif
 
14989
namespace Puma {
 
14990
 
 
14991
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14992
 
 
14993
#line 14994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
14994
} // closed Puma
 
14995
 
 
14996
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14997
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
14998
#include "CExprResolveH.ah"
 
14999
#endif
 
15000
namespace Puma {
 
15001
 
 
15002
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8459
15003
class CT_NewExpr : public CT_Expression, public CSemObject {
8460
 
#line 8461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15004
#line 15005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15005
  friend class ::CCExprResolve;
 
15006
  friend class ::CExprResolve;
8461
15007
  friend class ::WinIfExists;
8462
15008
  friend class ::WinImportHandler;
8463
15009
  friend class ::WinMacros;
8464
 
  friend class ::CMatchSyntax;
8465
 
  friend class ::ExtGnu;
 
15010
  friend class ::WinAsm;
 
15011
  friend class ::WinDeclSpecs;
 
15012
  friend class ::WinMemberExplSpec;
 
15013
  friend class ::WinTypeKeywords;
 
15014
  friend class ::WinFriend;
8466
15015
  friend class ::ExtAC;
8467
15016
  friend class ::ExtACBuilderCoupling;
8468
15017
  friend class ::ExtACSyntaxCoupling;
8469
15018
  friend class ::ExtACTree;
8470
15019
  friend class ::ExtACKeywords;
8471
 
  friend class ::WinAsm;
8472
 
  friend class ::WinDeclSpecs;
8473
 
  friend class ::WinMemberExplSpec;
8474
 
  friend class ::WinTypeKeywords;
 
15020
  friend class ::ExtGnu;
8475
15021
  friend class ::PragmaOnceUnitState;
8476
15022
  friend class ::PragmaOnce;
8477
 
  friend class ::CCExprResolve;
8478
 
  friend class ::CExprResolve;
 
15023
  friend class ::CMatchSyntax;
8479
15024
 
8480
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15025
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8481
15026
 
8482
15027
  CTree *sons[6]; // oper, placement, open, type, close, init
8483
15028
 
8484
15029
public:
 
15030
  /** Constructor.
 
15031
   *  \param op The new operator.
 
15032
   *  \param p The optional placement expression.
 
15033
   *  \param o The optional left parenthesis around the type identifier.
 
15034
   *  \param t The type identifier specifying the type of the object to create.
 
15035
   *  \param c The optional right parenthesis around the type identifier.
 
15036
   *  \param i The optional initializer. */
8485
15037
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
8486
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
15038
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
15039
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
8487
15040
  }
 
15041
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8488
15042
  static const char *NodeId ();
 
15043
  /** Get the name of the node. Can be compared with NodeId(). */
8489
15044
  const char *NodeName () const { return NodeId (); }
 
15045
  /** Get the number of sons. */
8490
15046
  int Sons () const { return CTree::Sons (sons, 6); }
 
15047
  /** Get the n-th son.
 
15048
   *  \param n The index of the son.
 
15049
   *  \return The n-th son or NULL. */
8491
15050
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
15051
  /** Replace a son.
 
15052
   *  \param old_son The son to replace.
 
15053
   *  \param new_son The new son. */
8492
15054
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8493
15055
    CTree::ReplaceSon (sons, 6, old_son, new_son);
8494
15056
  }
 
15057
  /** Get the operator name. */
8495
15058
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
15059
  /** Get the placement expression. */
8496
15060
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
15061
  /** Get the initializer. */
8497
15062
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
15063
  /** Get the type of the object to create. */
8498
15064
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
15065
  /** Get the semantic information object. */
8499
15066
  CSemObject *SemObject () const { return (CSemObject*)this; }
8500
15067
   private:
8501
15068
  typedef CT_NewExpr CCExprResolveExpr;
8502
15069
 
8503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15070
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8504
15071
 public :
8505
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15072
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8506
15073
  typedef CT_NewExpr CExprResolveExpr;
8507
15074
 
8508
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15075
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8509
15076
 public :
8510
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8511
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15077
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15078
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8512
15079
};
8513
15080
 
 
15081
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
15082
 *  Tree node representing an if-then expression, 
 
15083
 *  e.g. a>0?a:b or a?:b. */
8514
15084
 
8515
 
#line 8516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15085
#line 15086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8516
15086
} // closed Puma
 
15087
class CCExprResolve;
 
15088
class CExprResolve;
8517
15089
class WinIfExists;
8518
15090
class WinImportHandler;
8519
15091
class WinMacros;
8520
 
class CMatchSyntax;
8521
 
class ExtGnu;
 
15092
class WinAsm;
 
15093
class WinDeclSpecs;
 
15094
class WinMemberExplSpec;
 
15095
class WinTypeKeywords;
 
15096
class WinFriend;
8522
15097
class ExtAC;
8523
15098
class ExtACBuilderCoupling;
8524
15099
class ExtACSyntaxCoupling;
8525
15100
class ExtACTree;
8526
15101
class ExtACKeywords;
8527
 
class WinAsm;
8528
 
class WinDeclSpecs;
8529
 
class WinMemberExplSpec;
8530
 
class WinTypeKeywords;
 
15102
class ExtGnu;
8531
15103
class PragmaOnceUnitState;
8532
15104
class PragmaOnce;
8533
 
class CCExprResolve;
8534
 
class CExprResolve;
8535
 
namespace Puma {
8536
 
 
8537
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15105
class CMatchSyntax;
 
15106
namespace Puma {
 
15107
 
 
15108
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15109
 
 
15110
#line 15111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15111
} // closed Puma
 
15112
 
 
15113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15115
#include "CCExprResolveH.ah"
 
15116
#endif
 
15117
namespace Puma {
 
15118
 
 
15119
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15120
 
 
15121
#line 15122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15122
} // closed Puma
 
15123
 
 
15124
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15125
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15126
#include "CExprResolveH.ah"
 
15127
#endif
 
15128
namespace Puma {
 
15129
 
 
15130
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8538
15131
class CT_IfThenExpr : public CT_Expression {
8539
 
#line 8540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15132
#line 15133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15133
  friend class ::CCExprResolve;
 
15134
  friend class ::CExprResolve;
8540
15135
  friend class ::WinIfExists;
8541
15136
  friend class ::WinImportHandler;
8542
15137
  friend class ::WinMacros;
8543
 
  friend class ::CMatchSyntax;
8544
 
  friend class ::ExtGnu;
 
15138
  friend class ::WinAsm;
 
15139
  friend class ::WinDeclSpecs;
 
15140
  friend class ::WinMemberExplSpec;
 
15141
  friend class ::WinTypeKeywords;
 
15142
  friend class ::WinFriend;
8545
15143
  friend class ::ExtAC;
8546
15144
  friend class ::ExtACBuilderCoupling;
8547
15145
  friend class ::ExtACSyntaxCoupling;
8548
15146
  friend class ::ExtACTree;
8549
15147
  friend class ::ExtACKeywords;
8550
 
  friend class ::WinAsm;
8551
 
  friend class ::WinDeclSpecs;
8552
 
  friend class ::WinMemberExplSpec;
8553
 
  friend class ::WinTypeKeywords;
 
15148
  friend class ::ExtGnu;
8554
15149
  friend class ::PragmaOnceUnitState;
8555
15150
  friend class ::PragmaOnce;
8556
 
  friend class ::CCExprResolve;
8557
 
  friend class ::CExprResolve;
 
15151
  friend class ::CMatchSyntax;
8558
15152
 
8559
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15153
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8560
15154
 
8561
15155
  CTree *sons[5]; // cond, oper, left, colon, right
8562
15156
 
8563
15157
public:
 
15158
  /** Constructor.
 
15159
   *  \param c1 The condition expression.
 
15160
   *  \param o The question mark operator. 
 
15161
   *  \param l The expression to the left of the colon.
 
15162
   *  \param c2 The colon operator.
 
15163
   *  \param r The expression to the right of the colon. */ 
8564
15164
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
8565
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
15165
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
15166
    AddSon (sons[3], c2); AddSon (sons[4], r);
8566
15167
  }
 
15168
  /** Constructor.
 
15169
   *  \param c1 The condition expression.
 
15170
   *  \param o The question mark operator. 
 
15171
   *  \param c2 The colon operator.
 
15172
   *  \param r The expression to the right of the colon. */ 
8567
15173
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
8568
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
15174
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
15175
    AddSon (sons[3], c2); AddSon (sons[4], r);
8569
15176
  }
 
15177
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8570
15178
  static const char *NodeId ();
 
15179
  /** Get the name of the node. Can be compared with NodeId(). */
8571
15180
  const char *NodeName () const { return NodeId (); }
 
15181
  /** Get the number of sons. */
8572
15182
  int Sons () const { return CTree::Sons (sons, 5); }
 
15183
  /** Get the n-th son.
 
15184
   *  \param n The index of the son.
 
15185
   *  \return The n-th son or NULL. */
8573
15186
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
15187
  /** Get the condition expression. */
8574
15188
  CTree *Condition () const { return sons[0]; }
 
15189
  /** Get the left expression (condition=true). */
8575
15190
  CTree *LeftOperand () const { return sons[2]; }
 
15191
  /** Get the right expression (condition=false). */
8576
15192
  CTree *RightOperand () const { return sons[4]; }
 
15193
  /** Replace a son.
 
15194
   *  \param old_son The son to replace.
 
15195
   *  \param new_son The new son. */
8577
15196
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8578
15197
    CTree::ReplaceSon (sons, 5, old_son, new_son);
8579
15198
  }
8580
15199
   private:
8581
15200
  typedef CT_IfThenExpr CCExprResolveExpr;
8582
15201
 
8583
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8584
15203
 public :
8585
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15204
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8586
15205
  typedef CT_IfThenExpr CExprResolveExpr;
8587
15206
 
8588
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15207
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8589
15208
 public :
8590
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8591
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15209
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15210
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8592
15211
};
8593
15212
 
 
15213
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
15214
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
8594
15215
 
8595
 
#line 8596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15216
#line 15217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8596
15217
} // closed Puma
 
15218
class CCExprResolve;
 
15219
class CExprResolve;
8597
15220
class WinIfExists;
8598
15221
class WinImportHandler;
8599
15222
class WinMacros;
8600
 
class CMatchSyntax;
8601
 
class ExtGnu;
 
15223
class WinAsm;
 
15224
class WinDeclSpecs;
 
15225
class WinMemberExplSpec;
 
15226
class WinTypeKeywords;
 
15227
class WinFriend;
8602
15228
class ExtAC;
8603
15229
class ExtACBuilderCoupling;
8604
15230
class ExtACSyntaxCoupling;
8605
15231
class ExtACTree;
8606
15232
class ExtACKeywords;
8607
 
class WinAsm;
8608
 
class WinDeclSpecs;
8609
 
class WinMemberExplSpec;
8610
 
class WinTypeKeywords;
 
15233
class ExtGnu;
8611
15234
class PragmaOnceUnitState;
8612
15235
class PragmaOnce;
8613
 
class CCExprResolve;
8614
 
class CExprResolve;
8615
 
namespace Puma {
8616
 
 
8617
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15236
class CMatchSyntax;
 
15237
namespace Puma {
 
15238
 
 
15239
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15240
 
 
15241
#line 15242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15242
} // closed Puma
 
15243
 
 
15244
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15245
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15246
#include "CCExprResolveH.ah"
 
15247
#endif
 
15248
namespace Puma {
 
15249
 
 
15250
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15251
 
 
15252
#line 15253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15253
} // closed Puma
 
15254
 
 
15255
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15256
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15257
#include "CExprResolveH.ah"
 
15258
#endif
 
15259
namespace Puma {
 
15260
 
 
15261
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8618
15262
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
8619
 
#line 8620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15263
#line 15264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15264
  friend class ::CCExprResolve;
 
15265
  friend class ::CExprResolve;
8620
15266
  friend class ::WinIfExists;
8621
15267
  friend class ::WinImportHandler;
8622
15268
  friend class ::WinMacros;
8623
 
  friend class ::CMatchSyntax;
8624
 
  friend class ::ExtGnu;
 
15269
  friend class ::WinAsm;
 
15270
  friend class ::WinDeclSpecs;
 
15271
  friend class ::WinMemberExplSpec;
 
15272
  friend class ::WinTypeKeywords;
 
15273
  friend class ::WinFriend;
8625
15274
  friend class ::ExtAC;
8626
15275
  friend class ::ExtACBuilderCoupling;
8627
15276
  friend class ::ExtACSyntaxCoupling;
8628
15277
  friend class ::ExtACTree;
8629
15278
  friend class ::ExtACKeywords;
8630
 
  friend class ::WinAsm;
8631
 
  friend class ::WinDeclSpecs;
8632
 
  friend class ::WinMemberExplSpec;
8633
 
  friend class ::WinTypeKeywords;
 
15279
  friend class ::ExtGnu;
8634
15280
  friend class ::PragmaOnceUnitState;
8635
15281
  friend class ::PragmaOnce;
8636
 
  friend class ::CCExprResolve;
8637
 
  friend class ::CExprResolve;
 
15282
  friend class ::CMatchSyntax;
8638
15283
 
8639
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15284
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8640
15285
 
8641
15286
  CTree *sons[4]; // open, type, close, init
8642
15287
 
8643
15288
public:
 
15289
  /** Constructor.
 
15290
   *  \param r Left parenthesis of the type name.
 
15291
   *  \param t The type name.
 
15292
   *  \param cr Right parenthesis of the type name.
 
15293
   *  \param i The initializer list. */
8644
15294
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
8645
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
15295
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
15296
    AddSon (sons[2], cr); AddSon (sons[3], i);
8646
15297
  }
 
15298
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8647
15299
  static const char *NodeId ();
 
15300
  /** Get the name of the node. Can be compared with NodeId(). */
8648
15301
  const char *NodeName () const { return NodeId (); }
 
15302
  /** Get the number of sons. */
8649
15303
  int Sons () const { return 4; }
 
15304
  /** Get the n-th son.
 
15305
   *  \param n The index of the son.
 
15306
   *  \return The n-th son or NULL. */
8650
15307
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
15308
  /** Replace a son.
 
15309
   *  \param old_son The son to replace.
 
15310
   *  \param new_son The new son. */
8651
15311
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8652
15312
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8653
15313
  }
 
15314
  /** Get the type name. */
8654
15315
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
15316
  /** Get the initializer list. */
8655
15317
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
15318
  /** Get the semantic information object. */
8656
15319
  CSemObject *SemObject () const { return (CSemObject*)this; }
8657
15320
   private:
8658
15321
  typedef CT_CmpdLiteral CCExprResolveExpr;
8659
15322
 
8660
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8661
15324
 public :
8662
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15325
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8663
15326
  typedef CT_CmpdLiteral CExprResolveExpr;
8664
15327
 
8665
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8666
15329
 public :
8667
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8668
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15330
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15331
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8669
15332
};
8670
15333
 
 
15334
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
15335
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
8671
15336
 
8672
 
#line 8673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15337
#line 15338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8673
15338
} // closed Puma
 
15339
class CCExprResolve;
 
15340
class CExprResolve;
8674
15341
class WinIfExists;
8675
15342
class WinImportHandler;
8676
15343
class WinMacros;
8677
 
class CMatchSyntax;
8678
 
class ExtGnu;
 
15344
class WinAsm;
 
15345
class WinDeclSpecs;
 
15346
class WinMemberExplSpec;
 
15347
class WinTypeKeywords;
 
15348
class WinFriend;
8679
15349
class ExtAC;
8680
15350
class ExtACBuilderCoupling;
8681
15351
class ExtACSyntaxCoupling;
8682
15352
class ExtACTree;
8683
15353
class ExtACKeywords;
8684
 
class WinAsm;
8685
 
class WinDeclSpecs;
8686
 
class WinMemberExplSpec;
8687
 
class WinTypeKeywords;
 
15354
class ExtGnu;
8688
15355
class PragmaOnceUnitState;
8689
15356
class PragmaOnce;
8690
 
class CCExprResolve;
8691
 
class CExprResolve;
8692
 
namespace Puma {
8693
 
 
8694
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15357
class CMatchSyntax;
 
15358
namespace Puma {
 
15359
 
 
15360
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15361
 
 
15362
#line 15363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15363
} // closed Puma
 
15364
 
 
15365
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15366
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15367
#include "CCExprResolveH.ah"
 
15368
#endif
 
15369
namespace Puma {
 
15370
 
 
15371
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15372
 
 
15373
#line 15374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15374
} // closed Puma
 
15375
 
 
15376
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15377
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15378
#include "CExprResolveH.ah"
 
15379
#endif
 
15380
namespace Puma {
 
15381
 
 
15382
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8695
15383
class CT_ConstructExpr : public CT_Expression, public CSemObject {
8696
 
#line 8697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15384
#line 15385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15385
  friend class ::CCExprResolve;
 
15386
  friend class ::CExprResolve;
8697
15387
  friend class ::WinIfExists;
8698
15388
  friend class ::WinImportHandler;
8699
15389
  friend class ::WinMacros;
8700
 
  friend class ::CMatchSyntax;
8701
 
  friend class ::ExtGnu;
 
15390
  friend class ::WinAsm;
 
15391
  friend class ::WinDeclSpecs;
 
15392
  friend class ::WinMemberExplSpec;
 
15393
  friend class ::WinTypeKeywords;
 
15394
  friend class ::WinFriend;
8702
15395
  friend class ::ExtAC;
8703
15396
  friend class ::ExtACBuilderCoupling;
8704
15397
  friend class ::ExtACSyntaxCoupling;
8705
15398
  friend class ::ExtACTree;
8706
15399
  friend class ::ExtACKeywords;
8707
 
  friend class ::WinAsm;
8708
 
  friend class ::WinDeclSpecs;
8709
 
  friend class ::WinMemberExplSpec;
8710
 
  friend class ::WinTypeKeywords;
 
15400
  friend class ::ExtGnu;
8711
15401
  friend class ::PragmaOnceUnitState;
8712
15402
  friend class ::PragmaOnce;
8713
 
  friend class ::CCExprResolve;
8714
 
  friend class ::CExprResolve;
 
15403
  friend class ::CMatchSyntax;
8715
15404
 
8716
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15405
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8717
15406
 
8718
15407
  CTree *sons[2]; // type, init
8719
15408
 
8720
15409
public:
8721
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
15410
  /** Constructor.
 
15411
   *  \param t The type name.
 
15412
   *  \param i The initializer list. */
 
15413
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
15414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8722
15415
  static const char *NodeId ();
 
15416
  /** Get the name of the node. Can be compared with NodeId(). */
8723
15417
  const char *NodeName () const { return NodeId (); }
 
15418
  /** Get the number of sons. */
8724
15419
  int Sons () const { return 2; }
 
15420
  /** Get the n-th son.
 
15421
   *  \param n The index of the son.
 
15422
   *  \return The n-th son or NULL. */
8725
15423
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15424
  /** Replace a son.
 
15425
   *  \param old_son The son to replace.
 
15426
   *  \param new_son The new son. */
8726
15427
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8727
15428
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8728
15429
  }
 
15430
  /** Get the type name. */
8729
15431
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
15432
  /** Get the initializer. */
8730
15433
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
15434
  /** Get the semantic information object. */
8731
15435
  CSemObject *SemObject () const { return (CSemObject*)this; }
8732
15436
   private:
8733
15437
  typedef CT_ConstructExpr CCExprResolveExpr;
8734
15438
 
8735
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15439
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8736
15440
 public :
8737
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15441
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8738
15442
  typedef CT_ConstructExpr CExprResolveExpr;
8739
15443
 
8740
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15444
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8741
15445
 public :
8742
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8743
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15446
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15447
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8744
15448
};
8745
15449
 
 
15450
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
15451
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
8746
15452
 
8747
 
#line 8748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15453
#line 15454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8748
15454
} // closed Puma
 
15455
class CCExprResolve;
 
15456
class CExprResolve;
8749
15457
class WinIfExists;
8750
15458
class WinImportHandler;
8751
15459
class WinMacros;
8752
 
class CMatchSyntax;
8753
 
class ExtGnu;
 
15460
class WinAsm;
 
15461
class WinDeclSpecs;
 
15462
class WinMemberExplSpec;
 
15463
class WinTypeKeywords;
 
15464
class WinFriend;
8754
15465
class ExtAC;
8755
15466
class ExtACBuilderCoupling;
8756
15467
class ExtACSyntaxCoupling;
8757
15468
class ExtACTree;
8758
15469
class ExtACKeywords;
8759
 
class WinAsm;
8760
 
class WinDeclSpecs;
8761
 
class WinMemberExplSpec;
8762
 
class WinTypeKeywords;
 
15470
class ExtGnu;
8763
15471
class PragmaOnceUnitState;
8764
15472
class PragmaOnce;
8765
 
class CCExprResolve;
8766
 
class CExprResolve;
8767
 
namespace Puma {
8768
 
 
8769
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15473
class CMatchSyntax;
 
15474
namespace Puma {
 
15475
 
 
15476
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15477
 
 
15478
#line 15479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15479
} // closed Puma
 
15480
 
 
15481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15483
#include "CCExprResolveH.ah"
 
15484
#endif
 
15485
namespace Puma {
 
15486
 
 
15487
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15488
 
 
15489
#line 15490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15490
} // closed Puma
 
15491
 
 
15492
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15493
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15494
#include "CExprResolveH.ah"
 
15495
#endif
 
15496
namespace Puma {
 
15497
 
 
15498
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8770
15499
class CT_ThrowExpr : public CT_Expression {
8771
 
#line 8772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15500
#line 15501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15501
  friend class ::CCExprResolve;
 
15502
  friend class ::CExprResolve;
8772
15503
  friend class ::WinIfExists;
8773
15504
  friend class ::WinImportHandler;
8774
15505
  friend class ::WinMacros;
8775
 
  friend class ::CMatchSyntax;
8776
 
  friend class ::ExtGnu;
 
15506
  friend class ::WinAsm;
 
15507
  friend class ::WinDeclSpecs;
 
15508
  friend class ::WinMemberExplSpec;
 
15509
  friend class ::WinTypeKeywords;
 
15510
  friend class ::WinFriend;
8777
15511
  friend class ::ExtAC;
8778
15512
  friend class ::ExtACBuilderCoupling;
8779
15513
  friend class ::ExtACSyntaxCoupling;
8780
15514
  friend class ::ExtACTree;
8781
15515
  friend class ::ExtACKeywords;
8782
 
  friend class ::WinAsm;
8783
 
  friend class ::WinDeclSpecs;
8784
 
  friend class ::WinMemberExplSpec;
8785
 
  friend class ::WinTypeKeywords;
 
15516
  friend class ::ExtGnu;
8786
15517
  friend class ::PragmaOnceUnitState;
8787
15518
  friend class ::PragmaOnce;
8788
 
  friend class ::CCExprResolve;
8789
 
  friend class ::CExprResolve;
 
15519
  friend class ::CMatchSyntax;
8790
15520
 
8791
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15521
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8792
15522
 
8793
15523
  CTree *sons[2]; // throw, expr
8794
15524
 
8795
15525
public:
8796
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
15526
  /** Constructor.
 
15527
   *  \param t The 'throw' keyword.
 
15528
   *  \param e The expression. */
 
15529
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
15530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8797
15531
  static const char *NodeId ();
 
15532
  /** Get the name of the node. Can be compared with NodeId(). */
8798
15533
  const char *NodeName () const { return NodeId (); }
 
15534
  /** Get the number of sons. */
8799
15535
  int Sons () const { return CTree::Sons (sons, 2); }
 
15536
  /** Get the n-th son.
 
15537
   *  \param n The index of the son.
 
15538
   *  \return The n-th son or NULL. */
8800
15539
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15540
  /** Replace a son.
 
15541
   *  \param old_son The son to replace.
 
15542
   *  \param new_son The new son. */
8801
15543
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8802
15544
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8803
15545
  }
 
15546
  /** Get the expression. */
8804
15547
  CTree *Expr () const { return sons[1]; }
8805
15548
   private:
8806
15549
  typedef CT_ThrowExpr CCExprResolveExpr;
8807
15550
 
8808
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8809
15552
 public :
8810
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15553
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8811
15554
  typedef CT_ThrowExpr CExprResolveExpr;
8812
15555
 
8813
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15556
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8814
15557
 public :
8815
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8816
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15558
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15559
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8817
15560
};
8818
15561
 
 
15562
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
15563
 *  Tree node representing an index expression. */
8819
15564
 
8820
 
#line 8821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15565
#line 15566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8821
15566
} // closed Puma
 
15567
class CCExprResolve;
 
15568
class CExprResolve;
8822
15569
class WinIfExists;
8823
15570
class WinImportHandler;
8824
15571
class WinMacros;
8825
 
class CMatchSyntax;
8826
 
class ExtGnu;
 
15572
class WinAsm;
 
15573
class WinDeclSpecs;
 
15574
class WinMemberExplSpec;
 
15575
class WinTypeKeywords;
 
15576
class WinFriend;
8827
15577
class ExtAC;
8828
15578
class ExtACBuilderCoupling;
8829
15579
class ExtACSyntaxCoupling;
8830
15580
class ExtACTree;
8831
15581
class ExtACKeywords;
8832
 
class WinAsm;
8833
 
class WinDeclSpecs;
8834
 
class WinMemberExplSpec;
8835
 
class WinTypeKeywords;
 
15582
class ExtGnu;
8836
15583
class PragmaOnceUnitState;
8837
15584
class PragmaOnce;
8838
 
class CCExprResolve;
8839
 
class CExprResolve;
8840
 
namespace Puma {
8841
 
 
8842
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8843
 
class CT_IndexExpr : public CT_Expression {
8844
 
#line 8845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15585
class CMatchSyntax;
 
15586
namespace Puma {
 
15587
 
 
15588
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15589
 
 
15590
#line 15591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15591
} // closed Puma
 
15592
 
 
15593
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15594
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15595
#include "CCExprResolveH.ah"
 
15596
#endif
 
15597
namespace Puma {
 
15598
 
 
15599
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15600
 
 
15601
#line 15602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15602
} // closed Puma
 
15603
 
 
15604
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15605
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15606
#include "CExprResolveH.ah"
 
15607
#endif
 
15608
namespace Puma {
 
15609
 
 
15610
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15611
class CT_IndexExpr : public CT_Call {
 
15612
#line 15613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15613
  friend class ::CCExprResolve;
 
15614
  friend class ::CExprResolve;
8845
15615
  friend class ::WinIfExists;
8846
15616
  friend class ::WinImportHandler;
8847
15617
  friend class ::WinMacros;
8848
 
  friend class ::CMatchSyntax;
8849
 
  friend class ::ExtGnu;
 
15618
  friend class ::WinAsm;
 
15619
  friend class ::WinDeclSpecs;
 
15620
  friend class ::WinMemberExplSpec;
 
15621
  friend class ::WinTypeKeywords;
 
15622
  friend class ::WinFriend;
8850
15623
  friend class ::ExtAC;
8851
15624
  friend class ::ExtACBuilderCoupling;
8852
15625
  friend class ::ExtACSyntaxCoupling;
8853
15626
  friend class ::ExtACTree;
8854
15627
  friend class ::ExtACKeywords;
8855
 
  friend class ::WinAsm;
8856
 
  friend class ::WinDeclSpecs;
8857
 
  friend class ::WinMemberExplSpec;
8858
 
  friend class ::WinTypeKeywords;
 
15628
  friend class ::ExtGnu;
8859
15629
  friend class ::PragmaOnceUnitState;
8860
15630
  friend class ::PragmaOnce;
8861
 
  friend class ::CCExprResolve;
8862
 
  friend class ::CExprResolve;
 
15631
  friend class ::CMatchSyntax;
8863
15632
 
8864
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15633
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8865
15634
 
8866
15635
  CTree *sons[4]; // expr, open, index, close
8867
15636
 
8868
15637
public:
 
15638
  /** Constructor.
 
15639
   *  \param e The expression on which to invoke the index operator.
 
15640
   *  \param o Left parenthesis of the index expression.
 
15641
   *  \param i The index expression. 
 
15642
   *  \param c Right parenthesis of the index expression. */
8869
15643
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
8870
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
15644
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
15645
    AddSon (sons[2], i); AddSon (sons[3], c);
8871
15646
  }
 
15647
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8872
15648
  static const char *NodeId ();
 
15649
  /** Get the name of the node. Can be compared with NodeId(). */
8873
15650
  const char *NodeName () const { return NodeId (); }
 
15651
  /** Get the number of sons. */
8874
15652
  int Sons () const { return 4; }
 
15653
  /** Get the n-th son.
 
15654
   *  \param n The index of the son.
 
15655
   *  \return The n-th son or NULL. */
8875
15656
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
15657
  /** Replace a son.
 
15658
   *  \param old_son The son to replace.
 
15659
   *  \param new_son The new son. */
8876
15660
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8877
15661
    CTree::ReplaceSon (sons, 4, old_son, new_son);
8878
15662
  }
8879
15663
   private:
8880
15664
  typedef CT_IndexExpr CCExprResolveExpr;
8881
15665
 
8882
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8883
15667
 public :
8884
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15668
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8885
15669
  typedef CT_IndexExpr CExprResolveExpr;
8886
15670
 
8887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15671
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8888
15672
 public :
8889
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8890
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15673
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15674
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8891
15675
};
8892
15676
 
 
15677
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
15678
 *  Tree node representing a function call expression, e.g. f(i). */
8893
15679
 
8894
 
#line 8895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15680
#line 15681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8895
15681
} // closed Puma
 
15682
class CCExprResolve;
 
15683
class CExprResolve;
8896
15684
class WinIfExists;
8897
15685
class WinImportHandler;
8898
15686
class WinMacros;
8899
 
class CMatchSyntax;
8900
 
class ExtGnu;
 
15687
class WinAsm;
 
15688
class WinDeclSpecs;
 
15689
class WinMemberExplSpec;
 
15690
class WinTypeKeywords;
 
15691
class WinFriend;
8901
15692
class ExtAC;
8902
15693
class ExtACBuilderCoupling;
8903
15694
class ExtACSyntaxCoupling;
8904
15695
class ExtACTree;
8905
15696
class ExtACKeywords;
8906
 
class WinAsm;
8907
 
class WinDeclSpecs;
8908
 
class WinMemberExplSpec;
8909
 
class WinTypeKeywords;
 
15697
class ExtGnu;
8910
15698
class PragmaOnceUnitState;
8911
15699
class PragmaOnce;
8912
 
class CCExprResolve;
8913
 
class CExprResolve;
8914
 
namespace Puma {
8915
 
 
8916
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8917
 
class CT_CallExpr : public CT_Expression, public CSemObject {
8918
 
#line 8919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15700
class CMatchSyntax;
 
15701
namespace Puma {
 
15702
 
 
15703
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15704
 
 
15705
#line 15706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15706
} // closed Puma
 
15707
 
 
15708
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15709
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15710
#include "CCExprResolveH.ah"
 
15711
#endif
 
15712
namespace Puma {
 
15713
 
 
15714
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15715
 
 
15716
#line 15717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15717
} // closed Puma
 
15718
 
 
15719
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15720
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15721
#include "CExprResolveH.ah"
 
15722
#endif
 
15723
namespace Puma {
 
15724
 
 
15725
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15726
class CT_CallExpr : public CT_Call {
 
15727
#line 15728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15728
  friend class ::CCExprResolve;
 
15729
  friend class ::CExprResolve;
8919
15730
  friend class ::WinIfExists;
8920
15731
  friend class ::WinImportHandler;
8921
15732
  friend class ::WinMacros;
8922
 
  friend class ::CMatchSyntax;
8923
 
  friend class ::ExtGnu;
 
15733
  friend class ::WinAsm;
 
15734
  friend class ::WinDeclSpecs;
 
15735
  friend class ::WinMemberExplSpec;
 
15736
  friend class ::WinTypeKeywords;
 
15737
  friend class ::WinFriend;
8924
15738
  friend class ::ExtAC;
8925
15739
  friend class ::ExtACBuilderCoupling;
8926
15740
  friend class ::ExtACSyntaxCoupling;
8927
15741
  friend class ::ExtACTree;
8928
15742
  friend class ::ExtACKeywords;
8929
 
  friend class ::WinAsm;
8930
 
  friend class ::WinDeclSpecs;
8931
 
  friend class ::WinMemberExplSpec;
8932
 
  friend class ::WinTypeKeywords;
 
15743
  friend class ::ExtGnu;
8933
15744
  friend class ::PragmaOnceUnitState;
8934
15745
  friend class ::PragmaOnce;
8935
 
  friend class ::CCExprResolve;
8936
 
  friend class ::CExprResolve;
 
15746
  friend class ::CMatchSyntax;
8937
15747
 
8938
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15748
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8939
15749
 
8940
15750
  CTree *sons[2]; // expr, args
8941
15751
 
8942
15752
public:
8943
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
8944
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
15753
  /** Constructor.
 
15754
   *  \param e The expression on which the call is invoked. */
 
15755
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
15756
  /** Constructor.
 
15757
   *  \param e The expression on which the call is invoked.
 
15758
   *  \param l The argument list of the call. */
 
15759
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
15760
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8945
15761
  static const char *NodeId ();
 
15762
  /** Get the name of the node. Can be compared with NodeId(). */
8946
15763
  const char *NodeName () const { return NodeId (); }
 
15764
  /** Get the number of sons. */
8947
15765
  int Sons () const { return CTree::Sons (sons, 2); }
 
15766
  /** Get the n-th son.
 
15767
   *  \param n The index of the son.
 
15768
   *  \return The n-th son or NULL. */
8948
15769
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
15770
  /** Replace a son.
 
15771
   *  \param old_son The son to replace.
 
15772
   *  \param new_son The new son. */
8949
15773
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8950
15774
    CTree::ReplaceSon (sons, 2, old_son, new_son);
8951
15775
  }
8952
15776
  CTree *Expr () const { return sons[0]; }
8953
15777
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
8954
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
8955
15778
   private:
8956
15779
  typedef CT_CallExpr CCExprResolveExpr;
8957
15780
 
8958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15781
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8959
15782
 public :
8960
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15783
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8961
15784
  typedef CT_CallExpr CExprResolveExpr;
8962
15785
 
8963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15786
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8964
15787
 public :
8965
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8966
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15788
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15789
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8967
15790
};
8968
15791
 
 
15792
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
15793
 *  Tree node representing a cast expression, e.g. (int)a. */
8969
15794
 
8970
 
#line 8971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15795
#line 15796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
8971
15796
} // closed Puma
 
15797
class CCExprResolve;
 
15798
class CExprResolve;
8972
15799
class WinIfExists;
8973
15800
class WinImportHandler;
8974
15801
class WinMacros;
8975
 
class CMatchSyntax;
8976
 
class ExtGnu;
 
15802
class WinAsm;
 
15803
class WinDeclSpecs;
 
15804
class WinMemberExplSpec;
 
15805
class WinTypeKeywords;
 
15806
class WinFriend;
8977
15807
class ExtAC;
8978
15808
class ExtACBuilderCoupling;
8979
15809
class ExtACSyntaxCoupling;
8980
15810
class ExtACTree;
8981
15811
class ExtACKeywords;
8982
 
class WinAsm;
8983
 
class WinDeclSpecs;
8984
 
class WinMemberExplSpec;
8985
 
class WinTypeKeywords;
 
15812
class ExtGnu;
8986
15813
class PragmaOnceUnitState;
8987
15814
class PragmaOnce;
8988
 
class CCExprResolve;
8989
 
class CExprResolve;
8990
 
namespace Puma {
8991
 
 
8992
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15815
class CMatchSyntax;
 
15816
namespace Puma {
 
15817
 
 
15818
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15819
 
 
15820
#line 15821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15821
} // closed Puma
 
15822
 
 
15823
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15824
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15825
#include "CCExprResolveH.ah"
 
15826
#endif
 
15827
namespace Puma {
 
15828
 
 
15829
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15830
 
 
15831
#line 15832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15832
} // closed Puma
 
15833
 
 
15834
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15835
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15836
#include "CExprResolveH.ah"
 
15837
#endif
 
15838
namespace Puma {
 
15839
 
 
15840
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8993
15841
class CT_CastExpr : public CT_Expression {
8994
 
#line 8995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15842
#line 15843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15843
  friend class ::CCExprResolve;
 
15844
  friend class ::CExprResolve;
8995
15845
  friend class ::WinIfExists;
8996
15846
  friend class ::WinImportHandler;
8997
15847
  friend class ::WinMacros;
8998
 
  friend class ::CMatchSyntax;
8999
 
  friend class ::ExtGnu;
 
15848
  friend class ::WinAsm;
 
15849
  friend class ::WinDeclSpecs;
 
15850
  friend class ::WinMemberExplSpec;
 
15851
  friend class ::WinTypeKeywords;
 
15852
  friend class ::WinFriend;
9000
15853
  friend class ::ExtAC;
9001
15854
  friend class ::ExtACBuilderCoupling;
9002
15855
  friend class ::ExtACSyntaxCoupling;
9003
15856
  friend class ::ExtACTree;
9004
15857
  friend class ::ExtACKeywords;
9005
 
  friend class ::WinAsm;
9006
 
  friend class ::WinDeclSpecs;
9007
 
  friend class ::WinMemberExplSpec;
9008
 
  friend class ::WinTypeKeywords;
 
15858
  friend class ::ExtGnu;
9009
15859
  friend class ::PragmaOnceUnitState;
9010
15860
  friend class ::PragmaOnce;
9011
 
  friend class ::CCExprResolve;
9012
 
  friend class ::CExprResolve;
 
15861
  friend class ::CMatchSyntax;
9013
15862
 
9014
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15863
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9015
15864
 
9016
15865
  CTree *sons[4]; // open, type, close, expr
9017
15866
 
9018
15867
public:
 
15868
  /** Constructor.
 
15869
   *  \param o Left parenthesis of the type name.
 
15870
   *  \param t The type to cast to.
 
15871
   *  \param c Right parenthesis of the type name. 
 
15872
   *  \param e The expression to cast. */
9019
15873
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
9020
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
15874
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
15875
    AddSon (sons[2], c); AddSon (sons[3], e);
9021
15876
  }
 
15877
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9022
15878
  static const char *NodeId ();
 
15879
  /** Get the name of the node. Can be compared with NodeId(). */
9023
15880
  const char *NodeName () const { return NodeId (); }
 
15881
  /** Get the number of sons. */
9024
15882
  int Sons () const { return 4; }
 
15883
  /** Get the n-th son.
 
15884
   *  \param n The index of the son.
 
15885
   *  \return The n-th son or NULL. */
9025
15886
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
15887
  /** Replace a son.
 
15888
   *  \param old_son The son to replace.
 
15889
   *  \param new_son The new son. */
9026
15890
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9027
15891
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9028
15892
  }
 
15893
  /** Get the casted expression. */
9029
15894
  CTree *Expr () const { return sons[3]; }
 
15895
  /** Get the type to cast to. */
9030
15896
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
9031
15897
   private:
9032
15898
  typedef CT_CastExpr CCExprResolveExpr;
9033
15899
 
9034
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
15900
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9035
15901
 public :
9036
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
15902
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9037
15903
  typedef CT_CastExpr CExprResolveExpr;
9038
15904
 
9039
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
15905
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9040
15906
 public :
9041
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9042
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15907
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
15908
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9043
15909
};
9044
15910
 
 
15911
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
15912
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
9045
15913
 
9046
 
#line 9047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15914
#line 15915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9047
15915
} // closed Puma
 
15916
class CCExprResolve;
 
15917
class CExprResolve;
9048
15918
class WinIfExists;
9049
15919
class WinImportHandler;
9050
15920
class WinMacros;
9051
 
class CMatchSyntax;
9052
 
class ExtGnu;
 
15921
class WinAsm;
 
15922
class WinDeclSpecs;
 
15923
class WinMemberExplSpec;
 
15924
class WinTypeKeywords;
 
15925
class WinFriend;
9053
15926
class ExtAC;
9054
15927
class ExtACBuilderCoupling;
9055
15928
class ExtACSyntaxCoupling;
9056
15929
class ExtACTree;
9057
15930
class ExtACKeywords;
9058
 
class WinAsm;
9059
 
class WinDeclSpecs;
9060
 
class WinMemberExplSpec;
9061
 
class WinTypeKeywords;
 
15931
class ExtGnu;
9062
15932
class PragmaOnceUnitState;
9063
15933
class PragmaOnce;
9064
 
class CCExprResolve;
9065
 
class CExprResolve;
9066
 
namespace Puma {
9067
 
 
9068
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15934
class CMatchSyntax;
 
15935
namespace Puma {
 
15936
 
 
15937
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15938
 
 
15939
#line 15940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15940
} // closed Puma
 
15941
 
 
15942
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15943
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
15944
#include "CCExprResolveH.ah"
 
15945
#endif
 
15946
namespace Puma {
 
15947
 
 
15948
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15949
 
 
15950
#line 15951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15951
} // closed Puma
 
15952
 
 
15953
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15954
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
15955
#include "CExprResolveH.ah"
 
15956
#endif
 
15957
namespace Puma {
 
15958
 
 
15959
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9069
15960
class CT_StaticCast : public CT_Expression {
9070
 
#line 9071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
15961
#line 15962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
15962
  friend class ::CCExprResolve;
 
15963
  friend class ::CExprResolve;
9071
15964
  friend class ::WinIfExists;
9072
15965
  friend class ::WinImportHandler;
9073
15966
  friend class ::WinMacros;
9074
 
  friend class ::CMatchSyntax;
9075
 
  friend class ::ExtGnu;
 
15967
  friend class ::WinAsm;
 
15968
  friend class ::WinDeclSpecs;
 
15969
  friend class ::WinMemberExplSpec;
 
15970
  friend class ::WinTypeKeywords;
 
15971
  friend class ::WinFriend;
9076
15972
  friend class ::ExtAC;
9077
15973
  friend class ::ExtACBuilderCoupling;
9078
15974
  friend class ::ExtACSyntaxCoupling;
9079
15975
  friend class ::ExtACTree;
9080
15976
  friend class ::ExtACKeywords;
9081
 
  friend class ::WinAsm;
9082
 
  friend class ::WinDeclSpecs;
9083
 
  friend class ::WinMemberExplSpec;
9084
 
  friend class ::WinTypeKeywords;
 
15977
  friend class ::ExtGnu;
9085
15978
  friend class ::PragmaOnceUnitState;
9086
15979
  friend class ::PragmaOnce;
9087
 
  friend class ::CCExprResolve;
9088
 
  friend class ::CExprResolve;
 
15980
  friend class ::CMatchSyntax;
9089
15981
 
9090
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15982
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9091
15983
 
9092
15984
  CTree *sons[5]; // cast, open, type, close, expr
9093
15985
 
9094
15986
public:
 
15987
  /** Constructor.
 
15988
   *  \param cst The cast operator, i.e. 'static_cast'.
 
15989
   *  \param o Left arrow bracket of the type name.
 
15990
   *  \param t The type to cast to.
 
15991
   *  \param c Right array bracket of the type name.
 
15992
   *  \param e The expression to cast. */
9095
15993
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
9096
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
15994
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
15995
    AddSon (sons[3], c); AddSon (sons[4], e);
9097
15996
  }
 
15997
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9098
15998
  static const char *NodeId ();
 
15999
  /** Get the name of the node. Can be compared with NodeId(). */
9099
16000
  const char *NodeName () const { return NodeId (); }
 
16001
  /** Get the number of sons. */
9100
16002
  int Sons () const { return 5; }
 
16003
  /** Get the n-th son.
 
16004
   *  \param n The index of the son.
 
16005
   *  \return The n-th son or NULL. */
9101
16006
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
16007
  /** Replace a son.
 
16008
   *  \param old_son The son to replace.
 
16009
   *  \param new_son The new son. */
9102
16010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9103
16011
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9104
16012
  }
 
16013
  /** Get the casted expression. */
9105
16014
  CTree *Expr () const { return sons[4]; }
 
16015
  /** Get the type to cast to. */
9106
16016
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9107
16017
   private:
9108
16018
  typedef CT_StaticCast CCExprResolveExpr;
9109
16019
 
9110
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9111
16021
 public :
9112
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16022
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9113
16023
  typedef CT_StaticCast CExprResolveExpr;
9114
16024
 
9115
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9116
16026
 public :
9117
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9118
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16027
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16028
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9119
16029
};
9120
16030
 
 
16031
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
16032
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
9121
16033
 
9122
 
#line 9123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16034
#line 16035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9123
16035
} // closed Puma
 
16036
class CCExprResolve;
 
16037
class CExprResolve;
9124
16038
class WinIfExists;
9125
16039
class WinImportHandler;
9126
16040
class WinMacros;
9127
 
class CMatchSyntax;
9128
 
class ExtGnu;
 
16041
class WinAsm;
 
16042
class WinDeclSpecs;
 
16043
class WinMemberExplSpec;
 
16044
class WinTypeKeywords;
 
16045
class WinFriend;
9129
16046
class ExtAC;
9130
16047
class ExtACBuilderCoupling;
9131
16048
class ExtACSyntaxCoupling;
9132
16049
class ExtACTree;
9133
16050
class ExtACKeywords;
9134
 
class WinAsm;
9135
 
class WinDeclSpecs;
9136
 
class WinMemberExplSpec;
9137
 
class WinTypeKeywords;
 
16051
class ExtGnu;
9138
16052
class PragmaOnceUnitState;
9139
16053
class PragmaOnce;
9140
 
class CCExprResolve;
9141
 
class CExprResolve;
9142
 
namespace Puma {
9143
 
 
9144
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16054
class CMatchSyntax;
 
16055
namespace Puma {
 
16056
 
 
16057
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16058
 
 
16059
#line 16060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16060
} // closed Puma
 
16061
 
 
16062
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16063
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16064
#include "CCExprResolveH.ah"
 
16065
#endif
 
16066
namespace Puma {
 
16067
 
 
16068
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16069
 
 
16070
#line 16071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16071
} // closed Puma
 
16072
 
 
16073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16075
#include "CExprResolveH.ah"
 
16076
#endif
 
16077
namespace Puma {
 
16078
 
 
16079
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9145
16080
class CT_ConstCast : public CT_StaticCast {
9146
 
#line 9147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16081
#line 16082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16082
  friend class ::CCExprResolve;
 
16083
  friend class ::CExprResolve;
9147
16084
  friend class ::WinIfExists;
9148
16085
  friend class ::WinImportHandler;
9149
16086
  friend class ::WinMacros;
9150
 
  friend class ::CMatchSyntax;
9151
 
  friend class ::ExtGnu;
 
16087
  friend class ::WinAsm;
 
16088
  friend class ::WinDeclSpecs;
 
16089
  friend class ::WinMemberExplSpec;
 
16090
  friend class ::WinTypeKeywords;
 
16091
  friend class ::WinFriend;
9152
16092
  friend class ::ExtAC;
9153
16093
  friend class ::ExtACBuilderCoupling;
9154
16094
  friend class ::ExtACSyntaxCoupling;
9155
16095
  friend class ::ExtACTree;
9156
16096
  friend class ::ExtACKeywords;
9157
 
  friend class ::WinAsm;
9158
 
  friend class ::WinDeclSpecs;
9159
 
  friend class ::WinMemberExplSpec;
9160
 
  friend class ::WinTypeKeywords;
 
16097
  friend class ::ExtGnu;
9161
16098
  friend class ::PragmaOnceUnitState;
9162
16099
  friend class ::PragmaOnce;
9163
 
  friend class ::CCExprResolve;
9164
 
  friend class ::CExprResolve;
 
16100
  friend class ::CMatchSyntax;
9165
16101
 
9166
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16102
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9167
16103
 
9168
16104
public:
 
16105
  /** Constructor.
 
16106
   *  \param cst The cast operator, i.e. 'const_cast'.
 
16107
   *  \param o Left arrow bracket of the type name.
 
16108
   *  \param t The type to cast to.
 
16109
   *  \param c Right array bracket of the type name.
 
16110
   *  \param e The expression to cast. */
9169
16111
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9170
16112
    CT_StaticCast (cst, o, t, c, e) {}
 
16113
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9171
16114
  static const char *NodeId ();
 
16115
  /** Get the name of the node. Can be compared with NodeId(). */
9172
16116
  const char *NodeName () const { return NodeId (); }
9173
16117
   private:
9174
16118
  typedef CT_ConstCast CCExprResolveExpr;
9175
16119
 
9176
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16120
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9177
16121
 public :
9178
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16122
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9179
16123
  typedef CT_ConstCast CExprResolveExpr;
9180
16124
 
9181
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9182
16126
 public :
9183
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9184
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16127
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16128
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9185
16129
};
9186
16130
 
 
16131
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
16132
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
9187
16133
 
9188
 
#line 9189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16134
#line 16135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9189
16135
} // closed Puma
 
16136
class CCExprResolve;
 
16137
class CExprResolve;
9190
16138
class WinIfExists;
9191
16139
class WinImportHandler;
9192
16140
class WinMacros;
9193
 
class CMatchSyntax;
9194
 
class ExtGnu;
 
16141
class WinAsm;
 
16142
class WinDeclSpecs;
 
16143
class WinMemberExplSpec;
 
16144
class WinTypeKeywords;
 
16145
class WinFriend;
9195
16146
class ExtAC;
9196
16147
class ExtACBuilderCoupling;
9197
16148
class ExtACSyntaxCoupling;
9198
16149
class ExtACTree;
9199
16150
class ExtACKeywords;
9200
 
class WinAsm;
9201
 
class WinDeclSpecs;
9202
 
class WinMemberExplSpec;
9203
 
class WinTypeKeywords;
 
16151
class ExtGnu;
9204
16152
class PragmaOnceUnitState;
9205
16153
class PragmaOnce;
9206
 
class CCExprResolve;
9207
 
class CExprResolve;
9208
 
namespace Puma {
9209
 
 
9210
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16154
class CMatchSyntax;
 
16155
namespace Puma {
 
16156
 
 
16157
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16158
 
 
16159
#line 16160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16160
} // closed Puma
 
16161
 
 
16162
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16163
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16164
#include "CCExprResolveH.ah"
 
16165
#endif
 
16166
namespace Puma {
 
16167
 
 
16168
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16169
 
 
16170
#line 16171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16171
} // closed Puma
 
16172
 
 
16173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16175
#include "CExprResolveH.ah"
 
16176
#endif
 
16177
namespace Puma {
 
16178
 
 
16179
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9211
16180
class CT_ReintCast : public CT_StaticCast {
9212
 
#line 9213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16181
#line 16182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16182
  friend class ::CCExprResolve;
 
16183
  friend class ::CExprResolve;
9213
16184
  friend class ::WinIfExists;
9214
16185
  friend class ::WinImportHandler;
9215
16186
  friend class ::WinMacros;
9216
 
  friend class ::CMatchSyntax;
9217
 
  friend class ::ExtGnu;
 
16187
  friend class ::WinAsm;
 
16188
  friend class ::WinDeclSpecs;
 
16189
  friend class ::WinMemberExplSpec;
 
16190
  friend class ::WinTypeKeywords;
 
16191
  friend class ::WinFriend;
9218
16192
  friend class ::ExtAC;
9219
16193
  friend class ::ExtACBuilderCoupling;
9220
16194
  friend class ::ExtACSyntaxCoupling;
9221
16195
  friend class ::ExtACTree;
9222
16196
  friend class ::ExtACKeywords;
9223
 
  friend class ::WinAsm;
9224
 
  friend class ::WinDeclSpecs;
9225
 
  friend class ::WinMemberExplSpec;
9226
 
  friend class ::WinTypeKeywords;
 
16197
  friend class ::ExtGnu;
9227
16198
  friend class ::PragmaOnceUnitState;
9228
16199
  friend class ::PragmaOnce;
9229
 
  friend class ::CCExprResolve;
9230
 
  friend class ::CExprResolve;
 
16200
  friend class ::CMatchSyntax;
9231
16201
 
9232
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16202
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9233
16203
 
9234
16204
public:
 
16205
  /** Constructor.
 
16206
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
16207
   *  \param o Left arrow bracket of the type name.
 
16208
   *  \param t The type to cast to.
 
16209
   *  \param c Right array bracket of the type name.
 
16210
   *  \param e The expression to cast. */
9235
16211
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9236
16212
    CT_StaticCast (cst, o, t, c, e) {}
 
16213
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9237
16214
  static const char *NodeId ();
 
16215
  /** Get the name of the node. Can be compared with NodeId(). */
9238
16216
  const char *NodeName () const { return NodeId (); }
9239
16217
   private:
9240
16218
  typedef CT_ReintCast CCExprResolveExpr;
9241
16219
 
9242
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16220
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9243
16221
 public :
9244
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16222
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9245
16223
  typedef CT_ReintCast CExprResolveExpr;
9246
16224
 
9247
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16225
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9248
16226
 public :
9249
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9250
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16227
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16228
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9251
16229
};
9252
16230
 
 
16231
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
16232
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
9253
16233
 
9254
 
#line 9255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16234
#line 16235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9255
16235
} // closed Puma
 
16236
class CCExprResolve;
 
16237
class CExprResolve;
9256
16238
class WinIfExists;
9257
16239
class WinImportHandler;
9258
16240
class WinMacros;
9259
 
class CMatchSyntax;
9260
 
class ExtGnu;
 
16241
class WinAsm;
 
16242
class WinDeclSpecs;
 
16243
class WinMemberExplSpec;
 
16244
class WinTypeKeywords;
 
16245
class WinFriend;
9261
16246
class ExtAC;
9262
16247
class ExtACBuilderCoupling;
9263
16248
class ExtACSyntaxCoupling;
9264
16249
class ExtACTree;
9265
16250
class ExtACKeywords;
9266
 
class WinAsm;
9267
 
class WinDeclSpecs;
9268
 
class WinMemberExplSpec;
9269
 
class WinTypeKeywords;
 
16251
class ExtGnu;
9270
16252
class PragmaOnceUnitState;
9271
16253
class PragmaOnce;
9272
 
class CCExprResolve;
9273
 
class CExprResolve;
9274
 
namespace Puma {
9275
 
 
9276
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16254
class CMatchSyntax;
 
16255
namespace Puma {
 
16256
 
 
16257
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16258
 
 
16259
#line 16260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16260
} // closed Puma
 
16261
 
 
16262
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16263
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16264
#include "CCExprResolveH.ah"
 
16265
#endif
 
16266
namespace Puma {
 
16267
 
 
16268
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16269
 
 
16270
#line 16271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16271
} // closed Puma
 
16272
 
 
16273
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16274
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16275
#include "CExprResolveH.ah"
 
16276
#endif
 
16277
namespace Puma {
 
16278
 
 
16279
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9277
16280
class CT_DynamicCast : public CT_StaticCast {
9278
 
#line 9279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16281
#line 16282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16282
  friend class ::CCExprResolve;
 
16283
  friend class ::CExprResolve;
9279
16284
  friend class ::WinIfExists;
9280
16285
  friend class ::WinImportHandler;
9281
16286
  friend class ::WinMacros;
9282
 
  friend class ::CMatchSyntax;
9283
 
  friend class ::ExtGnu;
 
16287
  friend class ::WinAsm;
 
16288
  friend class ::WinDeclSpecs;
 
16289
  friend class ::WinMemberExplSpec;
 
16290
  friend class ::WinTypeKeywords;
 
16291
  friend class ::WinFriend;
9284
16292
  friend class ::ExtAC;
9285
16293
  friend class ::ExtACBuilderCoupling;
9286
16294
  friend class ::ExtACSyntaxCoupling;
9287
16295
  friend class ::ExtACTree;
9288
16296
  friend class ::ExtACKeywords;
9289
 
  friend class ::WinAsm;
9290
 
  friend class ::WinDeclSpecs;
9291
 
  friend class ::WinMemberExplSpec;
9292
 
  friend class ::WinTypeKeywords;
 
16297
  friend class ::ExtGnu;
9293
16298
  friend class ::PragmaOnceUnitState;
9294
16299
  friend class ::PragmaOnce;
9295
 
  friend class ::CCExprResolve;
9296
 
  friend class ::CExprResolve;
 
16300
  friend class ::CMatchSyntax;
9297
16301
 
9298
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16302
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9299
16303
 
9300
16304
public:
 
16305
  /** Constructor.
 
16306
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
16307
   *  \param o Left arrow bracket of the type name.
 
16308
   *  \param t The type to cast to.
 
16309
   *  \param c Right array bracket of the type name.
 
16310
   *  \param e The expression to cast. */
9301
16311
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
9302
16312
    CT_StaticCast (cst, o, t, c, e) {}
 
16313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9303
16314
  static const char *NodeId ();
 
16315
  /** Get the name of the node. Can be compared with NodeId(). */
9304
16316
  const char *NodeName () const { return NodeId (); }
9305
16317
   private:
9306
16318
  typedef CT_DynamicCast CCExprResolveExpr;
9307
16319
 
9308
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16320
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9309
16321
 public :
9310
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16322
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9311
16323
  typedef CT_DynamicCast CExprResolveExpr;
9312
16324
 
9313
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16325
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9314
16326
 public :
9315
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9316
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16327
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16328
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9317
16329
};
9318
16330
 
 
16331
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
16332
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
16333
 *  where 1.2 is implicitely casted from float to int. */
9319
16334
 
9320
 
#line 9321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16335
#line 16336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9321
16336
} // closed Puma
 
16337
class CCExprResolve;
 
16338
class CExprResolve;
9322
16339
class WinIfExists;
9323
16340
class WinImportHandler;
9324
16341
class WinMacros;
9325
 
class CMatchSyntax;
9326
 
class ExtGnu;
 
16342
class WinAsm;
 
16343
class WinDeclSpecs;
 
16344
class WinMemberExplSpec;
 
16345
class WinTypeKeywords;
 
16346
class WinFriend;
9327
16347
class ExtAC;
9328
16348
class ExtACBuilderCoupling;
9329
16349
class ExtACSyntaxCoupling;
9330
16350
class ExtACTree;
9331
16351
class ExtACKeywords;
9332
 
class WinAsm;
9333
 
class WinDeclSpecs;
9334
 
class WinMemberExplSpec;
9335
 
class WinTypeKeywords;
 
16352
class ExtGnu;
9336
16353
class PragmaOnceUnitState;
9337
16354
class PragmaOnce;
9338
 
class CCExprResolve;
9339
 
class CExprResolve;
9340
 
namespace Puma {
9341
 
 
9342
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16355
class CMatchSyntax;
 
16356
namespace Puma {
 
16357
 
 
16358
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16359
 
 
16360
#line 16361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16361
} // closed Puma
 
16362
 
 
16363
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16364
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16365
#include "CCExprResolveH.ah"
 
16366
#endif
 
16367
namespace Puma {
 
16368
 
 
16369
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16370
 
 
16371
#line 16372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16372
} // closed Puma
 
16373
 
 
16374
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16375
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16376
#include "CExprResolveH.ah"
 
16377
#endif
 
16378
namespace Puma {
 
16379
 
 
16380
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9343
16381
class CT_ImplicitCast : public CT_Expression {
9344
 
#line 9345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16382
#line 16383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16383
  friend class ::CCExprResolve;
 
16384
  friend class ::CExprResolve;
9345
16385
  friend class ::WinIfExists;
9346
16386
  friend class ::WinImportHandler;
9347
16387
  friend class ::WinMacros;
9348
 
  friend class ::CMatchSyntax;
9349
 
  friend class ::ExtGnu;
 
16388
  friend class ::WinAsm;
 
16389
  friend class ::WinDeclSpecs;
 
16390
  friend class ::WinMemberExplSpec;
 
16391
  friend class ::WinTypeKeywords;
 
16392
  friend class ::WinFriend;
9350
16393
  friend class ::ExtAC;
9351
16394
  friend class ::ExtACBuilderCoupling;
9352
16395
  friend class ::ExtACSyntaxCoupling;
9353
16396
  friend class ::ExtACTree;
9354
16397
  friend class ::ExtACKeywords;
9355
 
  friend class ::WinAsm;
9356
 
  friend class ::WinDeclSpecs;
9357
 
  friend class ::WinMemberExplSpec;
9358
 
  friend class ::WinTypeKeywords;
 
16398
  friend class ::ExtGnu;
9359
16399
  friend class ::PragmaOnceUnitState;
9360
16400
  friend class ::PragmaOnce;
9361
 
  friend class ::CCExprResolve;
9362
 
  friend class ::CExprResolve;
 
16401
  friend class ::CMatchSyntax;
9363
16402
 
9364
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16403
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9365
16404
 
9366
16405
  CTree *_expr; // casted expression
9367
16406
 
9368
16407
public:
9369
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
16408
  /** Constructor.
 
16409
   *  \param e The expression that is implicitely casted. */
 
16410
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
16411
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9370
16412
  static const char *NodeId ();
 
16413
  /** Get the name of the node. Can be compared with NodeId(). */
9371
16414
  const char *NodeName () const { return NodeId (); }
 
16415
  /** Get the number of sons. */
9372
16416
  int Sons () const { return 1; }
 
16417
  /** Get the n-th son.
 
16418
   *  \param n The index of the son.
 
16419
   *  \return The n-th son or NULL. */
9373
16420
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
16421
  /** Get the casted expression. */
9374
16422
  CTree *Expr () const { return _expr; }
 
16423
  /** Replace a son.
 
16424
   *  \param old_son The son to replace.
 
16425
   *  \param new_son The new son. */
9375
16426
  void ReplaceSon (CTree *old_son, CTree *new_son) 
9376
 
   { if (old_son == _expr) _expr = new_son; }
 
16427
   { CTree::ReplaceSon (_expr, old_son, new_son); }
9377
16428
   private:
9378
16429
  typedef CT_ImplicitCast CCExprResolveExpr;
9379
16430
 
9380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16431
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9381
16432
 public :
9382
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16433
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9383
16434
  typedef CT_ImplicitCast CExprResolveExpr;
9384
16435
 
9385
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16436
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9386
16437
 public :
9387
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9388
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16438
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16439
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9389
16440
};
9390
16441
 
 
16442
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
16443
 *  Tree node representing a typeid expression, e.g. typeid(X). */
9391
16444
 
9392
 
#line 9393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16445
#line 16446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9393
16446
} // closed Puma
 
16447
class CCExprResolve;
 
16448
class CExprResolve;
9394
16449
class WinIfExists;
9395
16450
class WinImportHandler;
9396
16451
class WinMacros;
9397
 
class CMatchSyntax;
9398
 
class ExtGnu;
 
16452
class WinAsm;
 
16453
class WinDeclSpecs;
 
16454
class WinMemberExplSpec;
 
16455
class WinTypeKeywords;
 
16456
class WinFriend;
9399
16457
class ExtAC;
9400
16458
class ExtACBuilderCoupling;
9401
16459
class ExtACSyntaxCoupling;
9402
16460
class ExtACTree;
9403
16461
class ExtACKeywords;
9404
 
class WinAsm;
9405
 
class WinDeclSpecs;
9406
 
class WinMemberExplSpec;
9407
 
class WinTypeKeywords;
 
16462
class ExtGnu;
9408
16463
class PragmaOnceUnitState;
9409
16464
class PragmaOnce;
9410
 
class CCExprResolve;
9411
 
class CExprResolve;
9412
 
namespace Puma {
9413
 
 
9414
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16465
class CMatchSyntax;
 
16466
namespace Puma {
 
16467
 
 
16468
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16469
 
 
16470
#line 16471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16471
} // closed Puma
 
16472
 
 
16473
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16474
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16475
#include "CCExprResolveH.ah"
 
16476
#endif
 
16477
namespace Puma {
 
16478
 
 
16479
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16480
 
 
16481
#line 16482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16482
} // closed Puma
 
16483
 
 
16484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16486
#include "CExprResolveH.ah"
 
16487
#endif
 
16488
namespace Puma {
 
16489
 
 
16490
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9415
16491
class CT_TypeidExpr : public CT_Expression {
9416
 
#line 9417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16492
#line 16493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16493
  friend class ::CCExprResolve;
 
16494
  friend class ::CExprResolve;
9417
16495
  friend class ::WinIfExists;
9418
16496
  friend class ::WinImportHandler;
9419
16497
  friend class ::WinMacros;
9420
 
  friend class ::CMatchSyntax;
9421
 
  friend class ::ExtGnu;
 
16498
  friend class ::WinAsm;
 
16499
  friend class ::WinDeclSpecs;
 
16500
  friend class ::WinMemberExplSpec;
 
16501
  friend class ::WinTypeKeywords;
 
16502
  friend class ::WinFriend;
9422
16503
  friend class ::ExtAC;
9423
16504
  friend class ::ExtACBuilderCoupling;
9424
16505
  friend class ::ExtACSyntaxCoupling;
9425
16506
  friend class ::ExtACTree;
9426
16507
  friend class ::ExtACKeywords;
9427
 
  friend class ::WinAsm;
9428
 
  friend class ::WinDeclSpecs;
9429
 
  friend class ::WinMemberExplSpec;
9430
 
  friend class ::WinTypeKeywords;
 
16508
  friend class ::ExtGnu;
9431
16509
  friend class ::PragmaOnceUnitState;
9432
16510
  friend class ::PragmaOnce;
9433
 
  friend class ::CCExprResolve;
9434
 
  friend class ::CExprResolve;
 
16511
  friend class ::CMatchSyntax;
9435
16512
 
9436
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16513
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9437
16514
 
9438
16515
  CTree *sons[4]; // typeid, open, type_id/expr, close
9439
16516
 
9440
16517
public:
 
16518
  /** Constructor.
 
16519
   *  \param tid The 'typeid' operator.
 
16520
   *  \param o The left parenthesis of the type name or expression.
 
16521
   *  \param e The expression or type name for which to get the type identifier.
 
16522
   *  \param c The right parenthesis of the type name or expression. */
9441
16523
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
9442
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
16524
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
16525
    AddSon (sons[2], e); AddSon (sons[3], c);
9443
16526
  }
 
16527
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9444
16528
  static const char *NodeId ();
 
16529
  /** Get the name of the node. Can be compared with NodeId(). */
9445
16530
  const char *NodeName () const { return NodeId (); }
 
16531
  /** Get the number of sons. */
9446
16532
  int Sons () const { return 4; }
 
16533
  /** Get the n-th son.
 
16534
   *  \param n The index of the son.
 
16535
   *  \return The n-th son or NULL. */
9447
16536
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
16537
  /** Replace a son.
 
16538
   *  \param old_son The son to replace.
 
16539
   *  \param new_son The new son. */
9448
16540
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9449
16541
    CTree::ReplaceSon (sons, 4, old_son, new_son);
9450
16542
  }
 
16543
  /** Get the typeid argument, i.e. the expression or type name for
 
16544
   *  which to get the type identifier. */
9451
16545
  CTree *Arg () const { return sons[2]; }
9452
16546
   private:
9453
16547
  typedef CT_TypeidExpr CCExprResolveExpr;
9454
16548
 
9455
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9456
16550
 public :
9457
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16551
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9458
16552
  typedef CT_TypeidExpr CExprResolveExpr;
9459
16553
 
9460
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16554
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9461
16555
 public :
9462
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9463
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16556
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16557
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9464
16558
};
9465
16559
 
 
16560
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
16561
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
9466
16562
 
9467
 
#line 9468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16563
#line 16564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9468
16564
} // closed Puma
 
16565
class CCExprResolve;
 
16566
class CExprResolve;
9469
16567
class WinIfExists;
9470
16568
class WinImportHandler;
9471
16569
class WinMacros;
9472
 
class CMatchSyntax;
9473
 
class ExtGnu;
 
16570
class WinAsm;
 
16571
class WinDeclSpecs;
 
16572
class WinMemberExplSpec;
 
16573
class WinTypeKeywords;
 
16574
class WinFriend;
9474
16575
class ExtAC;
9475
16576
class ExtACBuilderCoupling;
9476
16577
class ExtACSyntaxCoupling;
9477
16578
class ExtACTree;
9478
16579
class ExtACKeywords;
9479
 
class WinAsm;
9480
 
class WinDeclSpecs;
9481
 
class WinMemberExplSpec;
9482
 
class WinTypeKeywords;
 
16580
class ExtGnu;
9483
16581
class PragmaOnceUnitState;
9484
16582
class PragmaOnce;
9485
 
class CCExprResolve;
9486
 
class CExprResolve;
9487
 
namespace Puma {
9488
 
 
9489
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16583
class CMatchSyntax;
 
16584
namespace Puma {
 
16585
 
 
16586
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16587
 
 
16588
#line 16589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16589
} // closed Puma
 
16590
 
 
16591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16593
#include "CCExprResolveH.ah"
 
16594
#endif
 
16595
namespace Puma {
 
16596
 
 
16597
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16598
 
 
16599
#line 16600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16600
} // closed Puma
 
16601
 
 
16602
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16603
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16604
#include "CExprResolveH.ah"
 
16605
#endif
 
16606
namespace Puma {
 
16607
 
 
16608
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9490
16609
class CT_SizeofExpr : public CT_Expression {
9491
 
#line 9492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16610
#line 16611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16611
  friend class ::CCExprResolve;
 
16612
  friend class ::CExprResolve;
9492
16613
  friend class ::WinIfExists;
9493
16614
  friend class ::WinImportHandler;
9494
16615
  friend class ::WinMacros;
9495
 
  friend class ::CMatchSyntax;
9496
 
  friend class ::ExtGnu;
 
16616
  friend class ::WinAsm;
 
16617
  friend class ::WinDeclSpecs;
 
16618
  friend class ::WinMemberExplSpec;
 
16619
  friend class ::WinTypeKeywords;
 
16620
  friend class ::WinFriend;
9497
16621
  friend class ::ExtAC;
9498
16622
  friend class ::ExtACBuilderCoupling;
9499
16623
  friend class ::ExtACSyntaxCoupling;
9500
16624
  friend class ::ExtACTree;
9501
16625
  friend class ::ExtACKeywords;
9502
 
  friend class ::WinAsm;
9503
 
  friend class ::WinDeclSpecs;
9504
 
  friend class ::WinMemberExplSpec;
9505
 
  friend class ::WinTypeKeywords;
 
16626
  friend class ::ExtGnu;
9506
16627
  friend class ::PragmaOnceUnitState;
9507
16628
  friend class ::PragmaOnce;
9508
 
  friend class ::CCExprResolve;
9509
 
  friend class ::CExprResolve;
 
16629
  friend class ::CMatchSyntax;
9510
16630
 
9511
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16631
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9512
16632
 
9513
16633
  CTree *sons[5]; // key, open, type, close, expr
9514
16634
 
9515
16635
public:
 
16636
  /** Constructor.
 
16637
   *  \param k The 'sizeof' keyword.
 
16638
   *  \param o Left parenthesis around the type name.
 
16639
   *  \param t The type from which to get the size.
 
16640
   *  \param c Right parenthesis around the type name. */
9516
16641
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
9517
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
16642
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
16643
    AddSon (sons[3], c); AddSon (sons[4], 0);
9518
16644
  }
 
16645
  /** Constructor.
 
16646
   *  \param k The 'sizeof' keyword.
 
16647
   *  \param e The expression from which to get the size. */
9519
16648
  CT_SizeofExpr (CTree *k, CTree *e) {
9520
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
16649
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
16650
    AddSon (sons[3], 0); AddSon (sons[4], e);
9521
16651
  }
 
16652
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9522
16653
  static const char *NodeId ();
 
16654
  /** Get the name of the node. Can be compared with NodeId(). */
9523
16655
  const char *NodeName () const { return NodeId (); }
 
16656
  /** Get the number of sons. */
9524
16657
  int Sons () const { return CTree::Sons (sons, 5); }
 
16658
  /** Get the n-th son.
 
16659
   *  \param n The index of the son.
 
16660
   *  \return The n-th son or NULL. */
9525
16661
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
16662
  /** Replace a son.
 
16663
   *  \param old_son The son to replace.
 
16664
   *  \param new_son The new son. */
9526
16665
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9527
16666
    CTree::ReplaceSon (sons, 5, old_son, new_son);
9528
16667
  }
 
16668
  /** Get the expression. */
9529
16669
  CTree *Expr () const { return sons[4]; }
 
16670
  /** Get the type name. */
9530
16671
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
9531
16672
   private:
9532
16673
  typedef CT_SizeofExpr CCExprResolveExpr;
9533
16674
 
9534
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16675
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9535
16676
 public :
9536
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16677
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9537
16678
  typedef CT_SizeofExpr CExprResolveExpr;
9538
16679
 
9539
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16680
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9540
16681
 public :
9541
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9542
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16682
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16683
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9543
16684
};
9544
16685
 
 
16686
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
16687
 *  Tree node representing an index designator, i.e. [1]. */
9545
16688
 
9546
 
#line 9547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16689
#line 16690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9547
16690
} // closed Puma
 
16691
class CCExprResolve;
 
16692
class CExprResolve;
9548
16693
class WinIfExists;
9549
16694
class WinImportHandler;
9550
16695
class WinMacros;
9551
 
class CMatchSyntax;
9552
 
class ExtGnu;
 
16696
class WinAsm;
 
16697
class WinDeclSpecs;
 
16698
class WinMemberExplSpec;
 
16699
class WinTypeKeywords;
 
16700
class WinFriend;
9553
16701
class ExtAC;
9554
16702
class ExtACBuilderCoupling;
9555
16703
class ExtACSyntaxCoupling;
9556
16704
class ExtACTree;
9557
16705
class ExtACKeywords;
9558
 
class WinAsm;
9559
 
class WinDeclSpecs;
9560
 
class WinMemberExplSpec;
9561
 
class WinTypeKeywords;
 
16706
class ExtGnu;
9562
16707
class PragmaOnceUnitState;
9563
16708
class PragmaOnce;
9564
 
class CCExprResolve;
9565
 
class CExprResolve;
9566
 
namespace Puma {
9567
 
 
9568
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16709
class CMatchSyntax;
 
16710
namespace Puma {
 
16711
 
 
16712
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16713
 
 
16714
#line 16715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16715
} // closed Puma
 
16716
 
 
16717
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16718
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16719
#include "CCExprResolveH.ah"
 
16720
#endif
 
16721
namespace Puma {
 
16722
 
 
16723
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16724
 
 
16725
#line 16726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16726
} // closed Puma
 
16727
 
 
16728
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16729
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16730
#include "CExprResolveH.ah"
 
16731
#endif
 
16732
namespace Puma {
 
16733
 
 
16734
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9569
16735
class CT_IndexDesignator : public CT_Expression {
9570
 
#line 9571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16736
#line 16737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16737
  friend class ::CCExprResolve;
 
16738
  friend class ::CExprResolve;
9571
16739
  friend class ::WinIfExists;
9572
16740
  friend class ::WinImportHandler;
9573
16741
  friend class ::WinMacros;
9574
 
  friend class ::CMatchSyntax;
9575
 
  friend class ::ExtGnu;
 
16742
  friend class ::WinAsm;
 
16743
  friend class ::WinDeclSpecs;
 
16744
  friend class ::WinMemberExplSpec;
 
16745
  friend class ::WinTypeKeywords;
 
16746
  friend class ::WinFriend;
9576
16747
  friend class ::ExtAC;
9577
16748
  friend class ::ExtACBuilderCoupling;
9578
16749
  friend class ::ExtACSyntaxCoupling;
9579
16750
  friend class ::ExtACTree;
9580
16751
  friend class ::ExtACKeywords;
9581
 
  friend class ::WinAsm;
9582
 
  friend class ::WinDeclSpecs;
9583
 
  friend class ::WinMemberExplSpec;
9584
 
  friend class ::WinTypeKeywords;
 
16752
  friend class ::ExtGnu;
9585
16753
  friend class ::PragmaOnceUnitState;
9586
16754
  friend class ::PragmaOnce;
9587
 
  friend class ::CCExprResolve;
9588
 
  friend class ::CExprResolve;
 
16755
  friend class ::CMatchSyntax;
9589
16756
 
9590
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16757
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9591
16758
 
9592
16759
  CTree *sons[3]; // open, index, close
9593
16760
 
9594
16761
public:
 
16762
  /** Constructor.
 
16763
   *  \param o Left bracket of the index designator.
 
16764
   *  \param i The index expression.
 
16765
   *  \param c Right bracket of the index designator. */
9595
16766
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
9596
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
16767
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
9597
16768
  }
 
16769
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9598
16770
  static const char *NodeId ();
 
16771
  /** Get the name of the node. Can be compared with NodeId(). */
9599
16772
  const char *NodeName () const { return NodeId (); }
 
16773
  /** Get the number of sons. */
9600
16774
  int Sons () const { return 3; }
 
16775
  /** Get the n-th son.
 
16776
   *  \param n The index of the son.
 
16777
   *  \return The n-th son or NULL. */
9601
16778
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
16779
  /** Replace a son.
 
16780
   *  \param old_son The son to replace.
 
16781
   *  \param new_son The new son. */
9602
16782
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9603
16783
    CTree::ReplaceSon (sons, 3, old_son, new_son);
9604
16784
  }
9605
16785
   private:
9606
16786
  typedef CT_IndexDesignator CCExprResolveExpr;
9607
16787
 
9608
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16788
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9609
16789
 public :
9610
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16790
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9611
16791
  typedef CT_IndexDesignator CExprResolveExpr;
9612
16792
 
9613
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16793
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9614
16794
 public :
9615
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9616
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16795
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16796
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9617
16797
};
9618
16798
 
 
16799
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
16800
 *  Tree node representing a member designator, e.g. .a. */
9619
16801
 
9620
 
#line 9621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16802
#line 16803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9621
16803
} // closed Puma
 
16804
class CCExprResolve;
 
16805
class CExprResolve;
9622
16806
class WinIfExists;
9623
16807
class WinImportHandler;
9624
16808
class WinMacros;
9625
 
class CMatchSyntax;
9626
 
class ExtGnu;
 
16809
class WinAsm;
 
16810
class WinDeclSpecs;
 
16811
class WinMemberExplSpec;
 
16812
class WinTypeKeywords;
 
16813
class WinFriend;
9627
16814
class ExtAC;
9628
16815
class ExtACBuilderCoupling;
9629
16816
class ExtACSyntaxCoupling;
9630
16817
class ExtACTree;
9631
16818
class ExtACKeywords;
9632
 
class WinAsm;
9633
 
class WinDeclSpecs;
9634
 
class WinMemberExplSpec;
9635
 
class WinTypeKeywords;
 
16819
class ExtGnu;
9636
16820
class PragmaOnceUnitState;
9637
16821
class PragmaOnce;
9638
 
class CCExprResolve;
9639
 
class CExprResolve;
9640
 
namespace Puma {
9641
 
 
9642
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16822
class CMatchSyntax;
 
16823
namespace Puma {
 
16824
 
 
16825
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16826
 
 
16827
#line 16828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16828
} // closed Puma
 
16829
 
 
16830
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16831
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
16832
#include "CCExprResolveH.ah"
 
16833
#endif
 
16834
namespace Puma {
 
16835
 
 
16836
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16837
 
 
16838
#line 16839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16839
} // closed Puma
 
16840
 
 
16841
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16842
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
16843
#include "CExprResolveH.ah"
 
16844
#endif
 
16845
namespace Puma {
 
16846
 
 
16847
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9643
16848
class CT_MembDesignator : public CT_Expression {
9644
 
#line 9645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16849
#line 16850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16850
  friend class ::CCExprResolve;
 
16851
  friend class ::CExprResolve;
9645
16852
  friend class ::WinIfExists;
9646
16853
  friend class ::WinImportHandler;
9647
16854
  friend class ::WinMacros;
9648
 
  friend class ::CMatchSyntax;
9649
 
  friend class ::ExtGnu;
 
16855
  friend class ::WinAsm;
 
16856
  friend class ::WinDeclSpecs;
 
16857
  friend class ::WinMemberExplSpec;
 
16858
  friend class ::WinTypeKeywords;
 
16859
  friend class ::WinFriend;
9650
16860
  friend class ::ExtAC;
9651
16861
  friend class ::ExtACBuilderCoupling;
9652
16862
  friend class ::ExtACSyntaxCoupling;
9653
16863
  friend class ::ExtACTree;
9654
16864
  friend class ::ExtACKeywords;
9655
 
  friend class ::WinAsm;
9656
 
  friend class ::WinDeclSpecs;
9657
 
  friend class ::WinMemberExplSpec;
9658
 
  friend class ::WinTypeKeywords;
 
16865
  friend class ::ExtGnu;
9659
16866
  friend class ::PragmaOnceUnitState;
9660
16867
  friend class ::PragmaOnce;
9661
 
  friend class ::CCExprResolve;
9662
 
  friend class ::CExprResolve;
 
16868
  friend class ::CMatchSyntax;
9663
16869
 
9664
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16870
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9665
16871
 
9666
16872
  CTree *sons[2]; // dot, member
9667
16873
 
9668
16874
public:
9669
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
16875
  /** Constructor.
 
16876
   *  \param d The dot before the member name.
 
16877
   *  \param m The member name. */
 
16878
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
16879
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9670
16880
  static const char *NodeId ();
 
16881
  /** Get the name of the node. Can be compared with NodeId(). */
9671
16882
  const char *NodeName () const { return NodeId (); }
 
16883
  /** Get the number of sons. */
9672
16884
  int Sons () const { return 2; }
 
16885
  /** Get the n-th son.
 
16886
   *  \param n The index of the son.
 
16887
   *  \return The n-th son or NULL. */
9673
16888
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16889
  /** Replace a son.
 
16890
   *  \param old_son The son to replace.
 
16891
   *  \param new_son The new son. */
9674
16892
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9675
16893
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9676
16894
  }
9677
16895
   private:
9678
16896
  typedef CT_MembDesignator CCExprResolveExpr;
9679
16897
 
9680
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
16898
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9681
16899
 public :
9682
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
16900
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9683
16901
  typedef CT_MembDesignator CExprResolveExpr;
9684
16902
 
9685
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
16903
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9686
16904
 public :
9687
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9688
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16905
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
16906
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9689
16907
};
9690
16908
 
 
16909
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
16910
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
9691
16911
 
9692
 
#line 9693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16912
#line 16913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9693
16913
} // closed Puma
 
16914
class CCExprResolve;
 
16915
class CExprResolve;
9694
16916
class WinIfExists;
9695
16917
class WinImportHandler;
9696
16918
class WinMacros;
9697
 
class CMatchSyntax;
9698
 
class ExtGnu;
 
16919
class WinAsm;
 
16920
class WinDeclSpecs;
 
16921
class WinMemberExplSpec;
 
16922
class WinTypeKeywords;
 
16923
class WinFriend;
9699
16924
class ExtAC;
9700
16925
class ExtACBuilderCoupling;
9701
16926
class ExtACSyntaxCoupling;
9702
16927
class ExtACTree;
9703
16928
class ExtACKeywords;
9704
 
class WinAsm;
9705
 
class WinDeclSpecs;
9706
 
class WinMemberExplSpec;
9707
 
class WinTypeKeywords;
 
16929
class ExtGnu;
9708
16930
class PragmaOnceUnitState;
9709
16931
class PragmaOnce;
9710
 
class CCExprResolve;
9711
 
class CExprResolve;
 
16932
class CMatchSyntax;
9712
16933
namespace Puma {
9713
16934
 
9714
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16935
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9715
16936
class CT_DesignatorSeq : public CT_List, public CSemValue {
9716
 
#line 9717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16937
#line 16938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
16938
  friend class ::CCExprResolve;
 
16939
  friend class ::CExprResolve;
9717
16940
  friend class ::WinIfExists;
9718
16941
  friend class ::WinImportHandler;
9719
16942
  friend class ::WinMacros;
9720
 
  friend class ::CMatchSyntax;
9721
 
  friend class ::ExtGnu;
 
16943
  friend class ::WinAsm;
 
16944
  friend class ::WinDeclSpecs;
 
16945
  friend class ::WinMemberExplSpec;
 
16946
  friend class ::WinTypeKeywords;
 
16947
  friend class ::WinFriend;
9722
16948
  friend class ::ExtAC;
9723
16949
  friend class ::ExtACBuilderCoupling;
9724
16950
  friend class ::ExtACSyntaxCoupling;
9725
16951
  friend class ::ExtACTree;
9726
16952
  friend class ::ExtACKeywords;
9727
 
  friend class ::WinAsm;
9728
 
  friend class ::WinDeclSpecs;
9729
 
  friend class ::WinMemberExplSpec;
9730
 
  friend class ::WinTypeKeywords;
 
16953
  friend class ::ExtGnu;
9731
16954
  friend class ::PragmaOnceUnitState;
9732
16955
  friend class ::PragmaOnce;
9733
 
  friend class ::CCExprResolve;
9734
 
  friend class ::CExprResolve;
 
16956
  friend class ::CMatchSyntax;
9735
16957
 
9736
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16958
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9737
16959
 
9738
16960
public:
 
16961
  /** Constructor.
 
16962
   *  \param size Initial number of designators. */
9739
16963
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
16964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9740
16965
  static const char *NodeId ();
 
16966
  /** Get the name of the node. Can be compared with NodeId(). */
9741
16967
  const char *NodeName () const { return NodeId (); }
9742
16968
 
 
16969
  /** Get the type of the entity to initialize. */
9743
16970
  CTypeInfo *Type () const { return type; }
 
16971
  /** Get the value of the entity to initialize. */
9744
16972
  CExprValue *Value () const { return value; }
 
16973
  /** Get the semantic value object. */
9745
16974
  CSemValue *SemValue () const { return (CSemValue*)this; }
9746
16975
};
9747
16976
 
9751
16980
/*                                                                           */
9752
16981
/*****************************************************************************/
9753
16982
 
 
16983
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
16984
 *  Base class for all tree nodes representing declaration specifiers. */
9754
16985
 
9755
 
#line 9756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
16986
#line 16987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9756
16987
} // closed Puma
 
16988
class CCExprResolve;
 
16989
class CExprResolve;
9757
16990
class WinIfExists;
9758
16991
class WinImportHandler;
9759
16992
class WinMacros;
9760
 
class CMatchSyntax;
9761
 
class ExtGnu;
 
16993
class WinAsm;
 
16994
class WinDeclSpecs;
 
16995
class WinMemberExplSpec;
 
16996
class WinTypeKeywords;
 
16997
class WinFriend;
9762
16998
class ExtAC;
9763
16999
class ExtACBuilderCoupling;
9764
17000
class ExtACSyntaxCoupling;
9765
17001
class ExtACTree;
9766
17002
class ExtACKeywords;
9767
 
class WinAsm;
9768
 
class WinDeclSpecs;
9769
 
class WinMemberExplSpec;
9770
 
class WinTypeKeywords;
 
17003
class ExtGnu;
9771
17004
class PragmaOnceUnitState;
9772
17005
class PragmaOnce;
9773
 
class CCExprResolve;
9774
 
class CExprResolve;
 
17006
class CMatchSyntax;
9775
17007
namespace Puma {
9776
17008
 
9777
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17009
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9778
17010
class CT_DeclSpec : public CTree {
9779
 
#line 9780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17011
#line 17012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17012
  friend class ::CCExprResolve;
 
17013
  friend class ::CExprResolve;
9780
17014
  friend class ::WinIfExists;
9781
17015
  friend class ::WinImportHandler;
9782
17016
  friend class ::WinMacros;
9783
 
  friend class ::CMatchSyntax;
9784
 
  friend class ::ExtGnu;
 
17017
  friend class ::WinAsm;
 
17018
  friend class ::WinDeclSpecs;
 
17019
  friend class ::WinMemberExplSpec;
 
17020
  friend class ::WinTypeKeywords;
 
17021
  friend class ::WinFriend;
9785
17022
  friend class ::ExtAC;
9786
17023
  friend class ::ExtACBuilderCoupling;
9787
17024
  friend class ::ExtACSyntaxCoupling;
9788
17025
  friend class ::ExtACTree;
9789
17026
  friend class ::ExtACKeywords;
9790
 
  friend class ::WinAsm;
9791
 
  friend class ::WinDeclSpecs;
9792
 
  friend class ::WinMemberExplSpec;
9793
 
  friend class ::WinTypeKeywords;
 
17027
  friend class ::ExtGnu;
9794
17028
  friend class ::PragmaOnceUnitState;
9795
17029
  friend class ::PragmaOnce;
9796
 
  friend class ::CCExprResolve;
9797
 
  friend class ::CExprResolve;
 
17030
  friend class ::CMatchSyntax;
9798
17031
 
9799
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17032
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9800
17033
 
9801
17034
protected:
 
17035
  /** Constructor. */
9802
17036
  CT_DeclSpec () {}
9803
17037
};
9804
17038
 
 
17039
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
17040
 *  Tree node representing a primitive declaration specifier. */
9805
17041
 
9806
 
#line 9807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17042
#line 17043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9807
17043
} // closed Puma
 
17044
class CCExprResolve;
 
17045
class CExprResolve;
9808
17046
class WinIfExists;
9809
17047
class WinImportHandler;
9810
17048
class WinMacros;
9811
 
class CMatchSyntax;
9812
 
class ExtGnu;
 
17049
class WinAsm;
 
17050
class WinDeclSpecs;
 
17051
class WinMemberExplSpec;
 
17052
class WinTypeKeywords;
 
17053
class WinFriend;
9813
17054
class ExtAC;
9814
17055
class ExtACBuilderCoupling;
9815
17056
class ExtACSyntaxCoupling;
9816
17057
class ExtACTree;
9817
17058
class ExtACKeywords;
9818
 
class WinAsm;
9819
 
class WinDeclSpecs;
9820
 
class WinMemberExplSpec;
9821
 
class WinTypeKeywords;
 
17059
class ExtGnu;
9822
17060
class PragmaOnceUnitState;
9823
17061
class PragmaOnce;
9824
 
class CCExprResolve;
9825
 
class CExprResolve;
 
17062
class CMatchSyntax;
9826
17063
namespace Puma {
9827
17064
 
9828
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17065
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9829
17066
class CT_PrimDeclSpec : public CT_DeclSpec {
9830
 
#line 9831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17067
#line 17068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17068
  friend class ::CCExprResolve;
 
17069
  friend class ::CExprResolve;
9831
17070
  friend class ::WinIfExists;
9832
17071
  friend class ::WinImportHandler;
9833
17072
  friend class ::WinMacros;
9834
 
  friend class ::CMatchSyntax;
9835
 
  friend class ::ExtGnu;
 
17073
  friend class ::WinAsm;
 
17074
  friend class ::WinDeclSpecs;
 
17075
  friend class ::WinMemberExplSpec;
 
17076
  friend class ::WinTypeKeywords;
 
17077
  friend class ::WinFriend;
9836
17078
  friend class ::ExtAC;
9837
17079
  friend class ::ExtACBuilderCoupling;
9838
17080
  friend class ::ExtACSyntaxCoupling;
9839
17081
  friend class ::ExtACTree;
9840
17082
  friend class ::ExtACKeywords;
9841
 
  friend class ::WinAsm;
9842
 
  friend class ::WinDeclSpecs;
9843
 
  friend class ::WinMemberExplSpec;
9844
 
  friend class ::WinTypeKeywords;
 
17083
  friend class ::ExtGnu;
9845
17084
  friend class ::PragmaOnceUnitState;
9846
17085
  friend class ::PragmaOnce;
9847
 
  friend class ::CCExprResolve;
9848
 
  friend class ::CExprResolve;
 
17086
  friend class ::CMatchSyntax;
9849
17087
 
9850
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17088
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9851
17089
 
9852
17090
public:
9853
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
9854
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
9855
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
9856
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
9857
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
9858
 
              // AspectC++ specific type specifier
9859
 
              PDS_UNKNOWN_T,
9860
 
              // Win specific declaration specifiers
9861
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
9862
 
              PDS_UNKNOWN, PDS_NUM };
 
17091
  /** Declaration specifier types. */
 
17092
  enum Type { 
 
17093
    PDS_FRIEND,    /** friend */
 
17094
    PDS_TYPEDEF,   /** typedef */
 
17095
    PDS_AUTO,      /** auto */
 
17096
    PDS_REGISTER,  /** register */
 
17097
    PDS_STATIC,    /** static */
 
17098
    PDS_EXTERN,    /** extern */
 
17099
    PDS_MUTABLE,   /** mutable */
 
17100
    PDS_INLINE,    /** inline */
 
17101
    PDS_VIRTUAL,   /** virtual */
 
17102
    PDS_EXPLICIT,  /** explicit */
 
17103
    PDS_CONST,     /** const */
 
17104
    PDS_VOLATILE,  /** volatile */
 
17105
    PDS_RESTRICT,  /** restrict */
 
17106
    PDS_CHAR,      /** char */
 
17107
    PDS_WCHAR_T,   /** wchar_t */
 
17108
    PDS_BOOL,      /** bool */
 
17109
    PDS_SHORT,     /** short */
 
17110
    PDS_INT,       /** int */
 
17111
    PDS_LONG,      /** long */
 
17112
    PDS_SIGNED,    /** signed */
 
17113
    PDS_UNSIGNED,  /** unsigned */
 
17114
    PDS_FLOAT,     /** float */
 
17115
    PDS_DOUBLE,    /** double */
 
17116
    PDS_VOID,      /** void */
 
17117
    // AspectC++ specific type specifier
 
17118
    PDS_UNKNOWN_T, /** unknown_t */
 
17119
    // Win specific declaration specifiers
 
17120
    PDS_CDECL,     /** __cdecl */
 
17121
    PDS_STDCALL,   /** __stdcall */
 
17122
    PDS_FASTCALL,  /** __fastcall */
 
17123
    PDS_INT64,     /** __int64 */
 
17124
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
17125
    PDS_NUM        /** Number of declaration specifier types. */
 
17126
  };
9863
17127
 
9864
17128
private:
9865
17129
  Type _type;
9866
 
  CT_Token *_token;
 
17130
  CTree *_token; // has to be a CT_Token
9867
17131
 
9868
17132
  void determine_type ();
9869
17133
 
9870
17134
public:
9871
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
17135
  /** Constructor.
 
17136
   *  \param t The token containing the declaration specifier. */
 
17137
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
17138
  /** Constructor.
 
17139
   *  \param t The declaration specifier type. */
9872
17140
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
17141
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9873
17142
  static const char *NodeId ();
 
17143
  /** Get the name of the node. Can be compared with NodeId(). */
9874
17144
  const char *NodeName () const { return NodeId (); }
 
17145
  /** Get the number of sons. */
9875
17146
  int Sons () const { return _token ? 1 : 0; }
 
17147
  /** Get the n-th son.
 
17148
   *  \param n The index of the son.
 
17149
   *  \return The n-th son or NULL. */
9876
17150
  CTree *Son (int n) const 
9877
17151
   { return (n == 0) ? _token : (CTree*)0; }
 
17152
  /** Get the textual representation of the declaration specifier.
 
17153
   *  \return The string representation or " ". */
9878
17154
  const char *SpecText () const 
9879
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
17155
   { return _token ? _token->token ()->text () : " "; }
 
17156
  /** Get the declaration specifier type. */
9880
17157
  Type SpecType () const { return _type; }
 
17158
  /** Number of declaration specifier types. */
9881
17159
  static const int NumTypes = PDS_NUM;
 
17160
  /** Replace a son.
 
17161
   *  \param old_son The son to replace.
 
17162
   *  \param new_son The new son. */
 
17163
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
17164
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
17165
    determine_type ();
 
17166
  }
9882
17167
};
9883
17168
 
 
17169
/** \class CT_NamedType CTree.h Puma/CTree.h
 
17170
 *  Tree node representing a named type, e.g. (int*)a. 
 
17171
 *  where int* is a type with a generated name. */
9884
17172
 
9885
 
#line 9886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17173
#line 17174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9886
17174
} // closed Puma
 
17175
class CCExprResolve;
 
17176
class CExprResolve;
9887
17177
class WinIfExists;
9888
17178
class WinImportHandler;
9889
17179
class WinMacros;
9890
 
class CMatchSyntax;
9891
 
class ExtGnu;
 
17180
class WinAsm;
 
17181
class WinDeclSpecs;
 
17182
class WinMemberExplSpec;
 
17183
class WinTypeKeywords;
 
17184
class WinFriend;
9892
17185
class ExtAC;
9893
17186
class ExtACBuilderCoupling;
9894
17187
class ExtACSyntaxCoupling;
9895
17188
class ExtACTree;
9896
17189
class ExtACKeywords;
9897
 
class WinAsm;
9898
 
class WinDeclSpecs;
9899
 
class WinMemberExplSpec;
9900
 
class WinTypeKeywords;
 
17190
class ExtGnu;
9901
17191
class PragmaOnceUnitState;
9902
17192
class PragmaOnce;
9903
 
class CCExprResolve;
9904
 
class CExprResolve;
 
17193
class CMatchSyntax;
9905
17194
namespace Puma {
9906
17195
 
9907
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17196
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9908
17197
class CT_NamedType : public CT_DeclSpec, public CSemObject {
9909
 
#line 9910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17198
#line 17199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17199
  friend class ::CCExprResolve;
 
17200
  friend class ::CExprResolve;
9910
17201
  friend class ::WinIfExists;
9911
17202
  friend class ::WinImportHandler;
9912
17203
  friend class ::WinMacros;
9913
 
  friend class ::CMatchSyntax;
9914
 
  friend class ::ExtGnu;
 
17204
  friend class ::WinAsm;
 
17205
  friend class ::WinDeclSpecs;
 
17206
  friend class ::WinMemberExplSpec;
 
17207
  friend class ::WinTypeKeywords;
 
17208
  friend class ::WinFriend;
9915
17209
  friend class ::ExtAC;
9916
17210
  friend class ::ExtACBuilderCoupling;
9917
17211
  friend class ::ExtACSyntaxCoupling;
9918
17212
  friend class ::ExtACTree;
9919
17213
  friend class ::ExtACKeywords;
9920
 
  friend class ::WinAsm;
9921
 
  friend class ::WinDeclSpecs;
9922
 
  friend class ::WinMemberExplSpec;
9923
 
  friend class ::WinTypeKeywords;
 
17214
  friend class ::ExtGnu;
9924
17215
  friend class ::PragmaOnceUnitState;
9925
17216
  friend class ::PragmaOnce;
9926
 
  friend class ::CCExprResolve;
9927
 
  friend class ::CExprResolve;
 
17217
  friend class ::CMatchSyntax;
9928
17218
 
9929
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17219
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9930
17220
 
9931
17221
  CTree *sons[2]; // declspecs, declarator
9932
17222
 
9933
17223
public:
9934
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
17224
  /** Constructor.
 
17225
   *  \param dss The declaration specifier sequence of the type.
 
17226
   *  \param d The type declarator. */
 
17227
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
17228
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9935
17229
  static const char *NodeId ();
 
17230
  /** Get the name of the node. Can be compared with NodeId(). */
9936
17231
  const char *NodeName () const { return NodeId (); }
 
17232
  /** Get the number of sons. */
9937
17233
  int Sons () const { return CTree::Sons (sons, 2); }
 
17234
  /** Get the n-th son.
 
17235
   *  \param n The index of the son.
 
17236
   *  \return The n-th son or NULL. */
9938
17237
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
17238
  /** Get the declarator. */
9939
17239
  CTree *Declarator () const { return sons[1]; }
 
17240
  /** Replace a son.
 
17241
   *  \param old_son The son to replace.
 
17242
   *  \param new_son The new son. */
9940
17243
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9941
17244
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9942
17245
  }
 
17246
  /** Get the semantic information object. */
9943
17247
  CSemObject *SemObject () const { return (CSemObject*)this; }
9944
17248
};
9945
17249
      
 
17250
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
17251
 *  Tree node representing a class specifier, e.g. class X. */
9946
17252
 
9947
 
#line 9948 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17253
#line 17254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
9948
17254
} // closed Puma
 
17255
class CCExprResolve;
 
17256
class CExprResolve;
9949
17257
class WinIfExists;
9950
17258
class WinImportHandler;
9951
17259
class WinMacros;
9952
 
class CMatchSyntax;
9953
 
class ExtGnu;
 
17260
class WinAsm;
 
17261
class WinDeclSpecs;
 
17262
class WinMemberExplSpec;
 
17263
class WinTypeKeywords;
 
17264
class WinFriend;
9954
17265
class ExtAC;
9955
17266
class ExtACBuilderCoupling;
9956
17267
class ExtACSyntaxCoupling;
9957
17268
class ExtACTree;
9958
17269
class ExtACKeywords;
9959
 
class WinAsm;
9960
 
class WinDeclSpecs;
9961
 
class WinMemberExplSpec;
9962
 
class WinTypeKeywords;
 
17270
class ExtGnu;
9963
17271
class PragmaOnceUnitState;
9964
17272
class PragmaOnce;
9965
 
class CCExprResolve;
9966
 
class CExprResolve;
 
17273
class CMatchSyntax;
9967
17274
namespace Puma {
9968
17275
 
9969
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17276
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9970
17277
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
9971
 
#line 9972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17278
#line 17279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17279
  friend class ::CCExprResolve;
 
17280
  friend class ::CExprResolve;
9972
17281
  friend class ::WinIfExists;
9973
17282
  friend class ::WinImportHandler;
9974
17283
  friend class ::WinMacros;
9975
 
  friend class ::CMatchSyntax;
9976
 
  friend class ::ExtGnu;
 
17284
  friend class ::WinAsm;
 
17285
  friend class ::WinDeclSpecs;
 
17286
  friend class ::WinMemberExplSpec;
 
17287
  friend class ::WinTypeKeywords;
 
17288
  friend class ::WinFriend;
9977
17289
  friend class ::ExtAC;
9978
17290
  friend class ::ExtACBuilderCoupling;
9979
17291
  friend class ::ExtACSyntaxCoupling;
9980
17292
  friend class ::ExtACTree;
9981
17293
  friend class ::ExtACKeywords;
9982
 
  friend class ::WinAsm;
9983
 
  friend class ::WinDeclSpecs;
9984
 
  friend class ::WinMemberExplSpec;
9985
 
  friend class ::WinTypeKeywords;
 
17294
  friend class ::ExtGnu;
9986
17295
  friend class ::PragmaOnceUnitState;
9987
17296
  friend class ::PragmaOnce;
9988
 
  friend class ::CCExprResolve;
9989
 
  friend class ::CExprResolve;
 
17297
  friend class ::CMatchSyntax;
9990
17298
 
9991
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17299
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9992
17300
 
9993
17301
  CTree *sons[2]; // key, name
9994
17302
  
9995
17303
public:
9996
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
17304
  /** Constructor.
 
17305
   *  \param k The 'class' or 'struct' keyword.
 
17306
   *  \param n The class name. */
 
17307
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
17308
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9997
17309
  static const char *NodeId ();
 
17310
  /** Get the name of the node. Can be compared with NodeId(). */
9998
17311
  const char *NodeName () const { return NodeId (); }
 
17312
  /** Get the number of sons. */
9999
17313
  int Sons () const { return 2; }
 
17314
  /** Get the n-th son.
 
17315
   *  \param n The index of the son.
 
17316
   *  \return The n-th son or NULL. */
10000
17317
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
17318
  /** Get the class name. */
10001
17319
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
17320
  /** Get the semantic information object. */
10002
17321
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
17322
  /** Replace a son.
 
17323
   *  \param old_son The son to replace.
 
17324
   *  \param new_son The new son. */
10003
17325
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10004
17326
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10005
17327
  }
10006
17328
};
10007
17329
 
 
17330
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
17331
 *  Tree node representing a union specifier, e.g. union X. */
10008
17332
 
10009
 
#line 10010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17333
#line 17334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10010
17334
} // closed Puma
 
17335
class CCExprResolve;
 
17336
class CExprResolve;
10011
17337
class WinIfExists;
10012
17338
class WinImportHandler;
10013
17339
class WinMacros;
10014
 
class CMatchSyntax;
10015
 
class ExtGnu;
 
17340
class WinAsm;
 
17341
class WinDeclSpecs;
 
17342
class WinMemberExplSpec;
 
17343
class WinTypeKeywords;
 
17344
class WinFriend;
10016
17345
class ExtAC;
10017
17346
class ExtACBuilderCoupling;
10018
17347
class ExtACSyntaxCoupling;
10019
17348
class ExtACTree;
10020
17349
class ExtACKeywords;
10021
 
class WinAsm;
10022
 
class WinDeclSpecs;
10023
 
class WinMemberExplSpec;
10024
 
class WinTypeKeywords;
 
17350
class ExtGnu;
10025
17351
class PragmaOnceUnitState;
10026
17352
class PragmaOnce;
10027
 
class CCExprResolve;
10028
 
class CExprResolve;
 
17353
class CMatchSyntax;
10029
17354
namespace Puma {
10030
17355
 
10031
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17356
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10032
17357
class CT_UnionSpec : public CT_ClassSpec {
10033
 
#line 10034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17358
#line 17359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17359
  friend class ::CCExprResolve;
 
17360
  friend class ::CExprResolve;
10034
17361
  friend class ::WinIfExists;
10035
17362
  friend class ::WinImportHandler;
10036
17363
  friend class ::WinMacros;
10037
 
  friend class ::CMatchSyntax;
10038
 
  friend class ::ExtGnu;
 
17364
  friend class ::WinAsm;
 
17365
  friend class ::WinDeclSpecs;
 
17366
  friend class ::WinMemberExplSpec;
 
17367
  friend class ::WinTypeKeywords;
 
17368
  friend class ::WinFriend;
10039
17369
  friend class ::ExtAC;
10040
17370
  friend class ::ExtACBuilderCoupling;
10041
17371
  friend class ::ExtACSyntaxCoupling;
10042
17372
  friend class ::ExtACTree;
10043
17373
  friend class ::ExtACKeywords;
10044
 
  friend class ::WinAsm;
10045
 
  friend class ::WinDeclSpecs;
10046
 
  friend class ::WinMemberExplSpec;
10047
 
  friend class ::WinTypeKeywords;
 
17374
  friend class ::ExtGnu;
10048
17375
  friend class ::PragmaOnceUnitState;
10049
17376
  friend class ::PragmaOnce;
10050
 
  friend class ::CCExprResolve;
10051
 
  friend class ::CExprResolve;
 
17377
  friend class ::CMatchSyntax;
10052
17378
 
10053
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17379
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10054
17380
 
10055
17381
public:
 
17382
  /** Constructor.
 
17383
   *  \param k The 'union' keyword.
 
17384
   *  \param n The name of the union. */
10056
17385
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
17386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10057
17387
  static const char *NodeId ();
 
17388
  /** Get the name of the node. Can be compared with NodeId(). */
10058
17389
  const char *NodeName () const { return NodeId (); }
10059
17390
};
10060
17391
 
 
17392
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
17393
 *  Tree node representing an enumeration specifier, e.g. enum X. */
10061
17394
 
10062
 
#line 10063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17395
#line 17396 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10063
17396
} // closed Puma
 
17397
class CCExprResolve;
 
17398
class CExprResolve;
10064
17399
class WinIfExists;
10065
17400
class WinImportHandler;
10066
17401
class WinMacros;
10067
 
class CMatchSyntax;
10068
 
class ExtGnu;
 
17402
class WinAsm;
 
17403
class WinDeclSpecs;
 
17404
class WinMemberExplSpec;
 
17405
class WinTypeKeywords;
 
17406
class WinFriend;
10069
17407
class ExtAC;
10070
17408
class ExtACBuilderCoupling;
10071
17409
class ExtACSyntaxCoupling;
10072
17410
class ExtACTree;
10073
17411
class ExtACKeywords;
10074
 
class WinAsm;
10075
 
class WinDeclSpecs;
10076
 
class WinMemberExplSpec;
10077
 
class WinTypeKeywords;
 
17412
class ExtGnu;
10078
17413
class PragmaOnceUnitState;
10079
17414
class PragmaOnce;
10080
 
class CCExprResolve;
10081
 
class CExprResolve;
 
17415
class CMatchSyntax;
10082
17416
namespace Puma {
10083
17417
 
10084
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17418
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10085
17419
class CT_EnumSpec : public CT_ClassSpec {
10086
 
#line 10087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17420
#line 17421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17421
  friend class ::CCExprResolve;
 
17422
  friend class ::CExprResolve;
10087
17423
  friend class ::WinIfExists;
10088
17424
  friend class ::WinImportHandler;
10089
17425
  friend class ::WinMacros;
10090
 
  friend class ::CMatchSyntax;
10091
 
  friend class ::ExtGnu;
 
17426
  friend class ::WinAsm;
 
17427
  friend class ::WinDeclSpecs;
 
17428
  friend class ::WinMemberExplSpec;
 
17429
  friend class ::WinTypeKeywords;
 
17430
  friend class ::WinFriend;
10092
17431
  friend class ::ExtAC;
10093
17432
  friend class ::ExtACBuilderCoupling;
10094
17433
  friend class ::ExtACSyntaxCoupling;
10095
17434
  friend class ::ExtACTree;
10096
17435
  friend class ::ExtACKeywords;
10097
 
  friend class ::WinAsm;
10098
 
  friend class ::WinDeclSpecs;
10099
 
  friend class ::WinMemberExplSpec;
10100
 
  friend class ::WinTypeKeywords;
 
17436
  friend class ::ExtGnu;
10101
17437
  friend class ::PragmaOnceUnitState;
10102
17438
  friend class ::PragmaOnce;
10103
 
  friend class ::CCExprResolve;
10104
 
  friend class ::CExprResolve;
 
17439
  friend class ::CMatchSyntax;
10105
17440
 
10106
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17441
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10107
17442
 
10108
17443
public:
 
17444
  /** Constructor.
 
17445
   *  \param k The 'enum' keyword. 
 
17446
   *  \param n The name of the enumeration. */
10109
17447
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
17448
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10110
17449
  static const char *NodeId ();
 
17450
  /** Get the name of the node. Can be compared with NodeId(). */
10111
17451
  const char *NodeName () const { return NodeId (); }
10112
17452
};
10113
17453
 
 
17454
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
17455
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
10114
17456
 
10115
 
#line 10116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17457
#line 17458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10116
17458
} // closed Puma
 
17459
class CCExprResolve;
 
17460
class CExprResolve;
10117
17461
class WinIfExists;
10118
17462
class WinImportHandler;
10119
17463
class WinMacros;
10120
 
class CMatchSyntax;
10121
 
class ExtGnu;
 
17464
class WinAsm;
 
17465
class WinDeclSpecs;
 
17466
class WinMemberExplSpec;
 
17467
class WinTypeKeywords;
 
17468
class WinFriend;
10122
17469
class ExtAC;
10123
17470
class ExtACBuilderCoupling;
10124
17471
class ExtACSyntaxCoupling;
10125
17472
class ExtACTree;
10126
17473
class ExtACKeywords;
10127
 
class WinAsm;
10128
 
class WinDeclSpecs;
10129
 
class WinMemberExplSpec;
10130
 
class WinTypeKeywords;
 
17474
class ExtGnu;
10131
17475
class PragmaOnceUnitState;
10132
17476
class PragmaOnce;
10133
 
class CCExprResolve;
10134
 
class CExprResolve;
 
17477
class CMatchSyntax;
10135
17478
namespace Puma {
10136
17479
 
10137
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17480
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10138
17481
class CT_ExceptionSpec : public CT_DeclSpec {
10139
 
#line 10140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17482
#line 17483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17483
  friend class ::CCExprResolve;
 
17484
  friend class ::CExprResolve;
10140
17485
  friend class ::WinIfExists;
10141
17486
  friend class ::WinImportHandler;
10142
17487
  friend class ::WinMacros;
10143
 
  friend class ::CMatchSyntax;
10144
 
  friend class ::ExtGnu;
 
17488
  friend class ::WinAsm;
 
17489
  friend class ::WinDeclSpecs;
 
17490
  friend class ::WinMemberExplSpec;
 
17491
  friend class ::WinTypeKeywords;
 
17492
  friend class ::WinFriend;
10145
17493
  friend class ::ExtAC;
10146
17494
  friend class ::ExtACBuilderCoupling;
10147
17495
  friend class ::ExtACSyntaxCoupling;
10148
17496
  friend class ::ExtACTree;
10149
17497
  friend class ::ExtACKeywords;
10150
 
  friend class ::WinAsm;
10151
 
  friend class ::WinDeclSpecs;
10152
 
  friend class ::WinMemberExplSpec;
10153
 
  friend class ::WinTypeKeywords;
 
17498
  friend class ::ExtGnu;
10154
17499
  friend class ::PragmaOnceUnitState;
10155
17500
  friend class ::PragmaOnce;
10156
 
  friend class ::CCExprResolve;
10157
 
  friend class ::CExprResolve;
 
17501
  friend class ::CMatchSyntax;
10158
17502
 
10159
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17503
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10160
17504
 
10161
17505
  CTree *sons[2]; // throw, type_id_list
10162
17506
  
10163
17507
public:
10164
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
17508
  /** Constructor.
 
17509
   *  \param k The 'throw' keyword.
 
17510
   *  \param l The type list for the exception type to throw. */
 
17511
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
17512
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10165
17513
  static const char *NodeId ();
 
17514
  /** Get the name of the node. Can be compared with NodeId(). */
10166
17515
  const char *NodeName () const { return NodeId (); }
 
17516
  /** Get the number of sons. */
10167
17517
  int Sons () const { return 2; }
 
17518
  /** Get the n-th son.
 
17519
   *  \param n The index of the son.
 
17520
   *  \return The n-th son or NULL. */
10168
17521
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
17522
  /** Get the exception type list. */
10169
17523
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
17524
  /** Replace a son.
 
17525
   *  \param old_son The son to replace.
 
17526
   *  \param new_son The new son. */
10170
17527
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10171
17528
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10172
17529
  }
10178
17535
/*                                                                           */
10179
17536
/*****************************************************************************/
10180
17537
 
 
17538
/** \class CT_Decl CTree.h Puma/CTree.h
 
17539
 *  Base class for all tree nodes representing declarations. */
10181
17540
 
10182
 
#line 10183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17541
#line 17542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10183
17542
} // closed Puma
 
17543
class CCExprResolve;
 
17544
class CExprResolve;
10184
17545
class WinIfExists;
10185
17546
class WinImportHandler;
10186
17547
class WinMacros;
10187
 
class CMatchSyntax;
10188
 
class ExtGnu;
 
17548
class WinAsm;
 
17549
class WinDeclSpecs;
 
17550
class WinMemberExplSpec;
 
17551
class WinTypeKeywords;
 
17552
class WinFriend;
10189
17553
class ExtAC;
10190
17554
class ExtACBuilderCoupling;
10191
17555
class ExtACSyntaxCoupling;
10192
17556
class ExtACTree;
10193
17557
class ExtACKeywords;
10194
 
class WinAsm;
10195
 
class WinDeclSpecs;
10196
 
class WinMemberExplSpec;
10197
 
class WinTypeKeywords;
 
17558
class ExtGnu;
10198
17559
class PragmaOnceUnitState;
10199
17560
class PragmaOnce;
10200
 
class CCExprResolve;
10201
 
class CExprResolve;
 
17561
class CMatchSyntax;
10202
17562
namespace Puma {
10203
17563
 
10204
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17564
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10205
17565
class CT_Decl : public CTree {
10206
 
#line 10207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17566
#line 17567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17567
  friend class ::CCExprResolve;
 
17568
  friend class ::CExprResolve;
10207
17569
  friend class ::WinIfExists;
10208
17570
  friend class ::WinImportHandler;
10209
17571
  friend class ::WinMacros;
10210
 
  friend class ::CMatchSyntax;
10211
 
  friend class ::ExtGnu;
 
17572
  friend class ::WinAsm;
 
17573
  friend class ::WinDeclSpecs;
 
17574
  friend class ::WinMemberExplSpec;
 
17575
  friend class ::WinTypeKeywords;
 
17576
  friend class ::WinFriend;
10212
17577
  friend class ::ExtAC;
10213
17578
  friend class ::ExtACBuilderCoupling;
10214
17579
  friend class ::ExtACSyntaxCoupling;
10215
17580
  friend class ::ExtACTree;
10216
17581
  friend class ::ExtACKeywords;
10217
 
  friend class ::WinAsm;
10218
 
  friend class ::WinDeclSpecs;
10219
 
  friend class ::WinMemberExplSpec;
10220
 
  friend class ::WinTypeKeywords;
 
17582
  friend class ::ExtGnu;
10221
17583
  friend class ::PragmaOnceUnitState;
10222
17584
  friend class ::PragmaOnce;
10223
 
  friend class ::CCExprResolve;
10224
 
  friend class ::CExprResolve;
 
17585
  friend class ::CMatchSyntax;
10225
17586
 
10226
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17587
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10227
17588
 
10228
17589
  CT_LinkageSpec *_linkage;
 
17590
  
10229
17591
protected:
 
17592
  /** Constructor. */
10230
17593
  CT_Decl () : _linkage (0) {}
 
17594
  
10231
17595
public:
 
17596
  /** Set the linkage of the declared entity.
 
17597
   *  \param l The linkage specifiers. */
10232
17598
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
17599
  /** Get the linkage specifiers. */
10233
17600
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
17601
  /** Get this. */
 
17602
  virtual CT_Decl *IsDeclaration () { return this; }
10234
17603
};
10235
17604
 
 
17605
/** \class CT_Program CTree.h Puma/CTree.h
 
17606
 *  Root node of C/C++ syntax tree. */
10236
17607
 
10237
 
#line 10238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17608
#line 17609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10238
17609
} // closed Puma
 
17610
class CCExprResolve;
 
17611
class CExprResolve;
10239
17612
class WinIfExists;
10240
17613
class WinImportHandler;
10241
17614
class WinMacros;
10242
 
class CMatchSyntax;
10243
 
class ExtGnu;
 
17615
class WinAsm;
 
17616
class WinDeclSpecs;
 
17617
class WinMemberExplSpec;
 
17618
class WinTypeKeywords;
 
17619
class WinFriend;
10244
17620
class ExtAC;
10245
17621
class ExtACBuilderCoupling;
10246
17622
class ExtACSyntaxCoupling;
10247
17623
class ExtACTree;
10248
17624
class ExtACKeywords;
10249
 
class WinAsm;
10250
 
class WinDeclSpecs;
10251
 
class WinMemberExplSpec;
10252
 
class WinTypeKeywords;
 
17625
class ExtGnu;
10253
17626
class PragmaOnceUnitState;
10254
17627
class PragmaOnce;
10255
 
class CCExprResolve;
10256
 
class CExprResolve;
 
17628
class CMatchSyntax;
10257
17629
namespace Puma {
10258
17630
 
10259
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17631
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10260
17632
class CT_Program : public CT_DeclList, public CSemScope {
10261
 
#line 10262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17633
#line 17634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17634
  friend class ::CCExprResolve;
 
17635
  friend class ::CExprResolve;
10262
17636
  friend class ::WinIfExists;
10263
17637
  friend class ::WinImportHandler;
10264
17638
  friend class ::WinMacros;
10265
 
  friend class ::CMatchSyntax;
10266
 
  friend class ::ExtGnu;
 
17639
  friend class ::WinAsm;
 
17640
  friend class ::WinDeclSpecs;
 
17641
  friend class ::WinMemberExplSpec;
 
17642
  friend class ::WinTypeKeywords;
 
17643
  friend class ::WinFriend;
10267
17644
  friend class ::ExtAC;
10268
17645
  friend class ::ExtACBuilderCoupling;
10269
17646
  friend class ::ExtACSyntaxCoupling;
10270
17647
  friend class ::ExtACTree;
10271
17648
  friend class ::ExtACKeywords;
10272
 
  friend class ::WinAsm;
10273
 
  friend class ::WinDeclSpecs;
10274
 
  friend class ::WinMemberExplSpec;
10275
 
  friend class ::WinTypeKeywords;
 
17649
  friend class ::ExtGnu;
10276
17650
  friend class ::PragmaOnceUnitState;
10277
17651
  friend class ::PragmaOnce;
10278
 
  friend class ::CCExprResolve;
10279
 
  friend class ::CExprResolve;
 
17652
  friend class ::CMatchSyntax;
10280
17653
 
10281
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17654
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10282
17655
 
10283
17656
public:
 
17657
  /** Constructor.
 
17658
   *  \param size The initial number of declarations in the program.
 
17659
   *  \param incr The initial increment count. */
10284
17660
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
17661
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10285
17662
  static const char *NodeId ();
 
17663
  /** Get the name of the node. Can be compared with NodeId(). */
10286
17664
  const char *NodeName () const { return NodeId (); }
 
17665
  /** Get the semantic scope object. */
 
17666
  CSemScope *SemScope () const { return (CSemScope*)this; }
10287
17667
};
10288
17668
   
 
17669
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
17670
 *  Tree node representing an object declaration, e.g. int *i. */
10289
17671
 
10290
 
#line 10291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17672
#line 17673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10291
17673
} // closed Puma
 
17674
class CCExprResolve;
 
17675
class CExprResolve;
10292
17676
class WinIfExists;
10293
17677
class WinImportHandler;
10294
17678
class WinMacros;
10295
 
class CMatchSyntax;
10296
 
class ExtGnu;
 
17679
class WinAsm;
 
17680
class WinDeclSpecs;
 
17681
class WinMemberExplSpec;
 
17682
class WinTypeKeywords;
 
17683
class WinFriend;
10297
17684
class ExtAC;
10298
17685
class ExtACBuilderCoupling;
10299
17686
class ExtACSyntaxCoupling;
10300
17687
class ExtACTree;
10301
17688
class ExtACKeywords;
10302
 
class WinAsm;
10303
 
class WinDeclSpecs;
10304
 
class WinMemberExplSpec;
10305
 
class WinTypeKeywords;
 
17689
class ExtGnu;
10306
17690
class PragmaOnceUnitState;
10307
17691
class PragmaOnce;
10308
 
class CCExprResolve;
10309
 
class CExprResolve;
 
17692
class CMatchSyntax;
10310
17693
namespace Puma {
10311
17694
 
10312
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17695
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10313
17696
class CT_ObjDecl : public CT_Decl {
10314
 
#line 10315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17697
#line 17698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17698
  friend class ::CCExprResolve;
 
17699
  friend class ::CExprResolve;
10315
17700
  friend class ::WinIfExists;
10316
17701
  friend class ::WinImportHandler;
10317
17702
  friend class ::WinMacros;
10318
 
  friend class ::CMatchSyntax;
10319
 
  friend class ::ExtGnu;
 
17703
  friend class ::WinAsm;
 
17704
  friend class ::WinDeclSpecs;
 
17705
  friend class ::WinMemberExplSpec;
 
17706
  friend class ::WinTypeKeywords;
 
17707
  friend class ::WinFriend;
10320
17708
  friend class ::ExtAC;
10321
17709
  friend class ::ExtACBuilderCoupling;
10322
17710
  friend class ::ExtACSyntaxCoupling;
10323
17711
  friend class ::ExtACTree;
10324
17712
  friend class ::ExtACKeywords;
10325
 
  friend class ::WinAsm;
10326
 
  friend class ::WinDeclSpecs;
10327
 
  friend class ::WinMemberExplSpec;
10328
 
  friend class ::WinTypeKeywords;
 
17713
  friend class ::ExtGnu;
10329
17714
  friend class ::PragmaOnceUnitState;
10330
17715
  friend class ::PragmaOnce;
10331
 
  friend class ::CCExprResolve;
10332
 
  friend class ::CExprResolve;
 
17716
  friend class ::CMatchSyntax;
10333
17717
 
10334
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17718
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10335
17719
 
10336
17720
  CTree *sons[3]; // declspecs, declarators, colon
10337
17721
 
10338
17722
public:
 
17723
  /** Constructor.
 
17724
   *  \param dsl The declaration specifier sequence.
 
17725
   *  \param dl The declarator list.
 
17726
   *  \param c Optional colon. */
10339
17727
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
10340
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
17728
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
10341
17729
  }
 
17730
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10342
17731
  static const char *NodeId ();
 
17732
  /** Get the name of the node. Can be compared with NodeId(). */
10343
17733
  const char *NodeName () const { return NodeId (); }
 
17734
  /** Get the number of sons. */
10344
17735
  int Sons () const { return 3; }
 
17736
  /** Get the n-th son.
 
17737
   *  \param n The index of the son.
 
17738
   *  \return The n-th son or NULL. */
10345
17739
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
17740
  /** Get the declaration specifier sequence. */
10346
17741
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
17742
  /** Get the declarator list. */
10347
17743
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
17744
  /** Replace a son.
 
17745
   *  \param old_son The son to replace.
 
17746
   *  \param new_son The new son. */
10348
17747
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10349
17748
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10350
17749
  }
10351
17750
};
10352
17751
 
 
17752
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
17753
 *  Tree node representing a template declaration. */
10353
17754
 
10354
 
#line 10355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17755
#line 17756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10355
17756
} // closed Puma
 
17757
class CCExprResolve;
 
17758
class CExprResolve;
10356
17759
class WinIfExists;
10357
17760
class WinImportHandler;
10358
17761
class WinMacros;
10359
 
class CMatchSyntax;
10360
 
class ExtGnu;
 
17762
class WinAsm;
 
17763
class WinDeclSpecs;
 
17764
class WinMemberExplSpec;
 
17765
class WinTypeKeywords;
 
17766
class WinFriend;
10361
17767
class ExtAC;
10362
17768
class ExtACBuilderCoupling;
10363
17769
class ExtACSyntaxCoupling;
10364
17770
class ExtACTree;
10365
17771
class ExtACKeywords;
10366
 
class WinAsm;
10367
 
class WinDeclSpecs;
10368
 
class WinMemberExplSpec;
10369
 
class WinTypeKeywords;
 
17772
class ExtGnu;
10370
17773
class PragmaOnceUnitState;
10371
17774
class PragmaOnce;
10372
 
class CCExprResolve;
10373
 
class CExprResolve;
 
17775
class CMatchSyntax;
10374
17776
namespace Puma {
10375
17777
 
10376
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17778
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10377
17779
class CT_TemplateDecl : public CT_Decl, public CSemScope {
10378
 
#line 10379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17780
#line 17781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17781
  friend class ::CCExprResolve;
 
17782
  friend class ::CExprResolve;
10379
17783
  friend class ::WinIfExists;
10380
17784
  friend class ::WinImportHandler;
10381
17785
  friend class ::WinMacros;
10382
 
  friend class ::CMatchSyntax;
10383
 
  friend class ::ExtGnu;
 
17786
  friend class ::WinAsm;
 
17787
  friend class ::WinDeclSpecs;
 
17788
  friend class ::WinMemberExplSpec;
 
17789
  friend class ::WinTypeKeywords;
 
17790
  friend class ::WinFriend;
10384
17791
  friend class ::ExtAC;
10385
17792
  friend class ::ExtACBuilderCoupling;
10386
17793
  friend class ::ExtACSyntaxCoupling;
10387
17794
  friend class ::ExtACTree;
10388
17795
  friend class ::ExtACKeywords;
10389
 
  friend class ::WinAsm;
10390
 
  friend class ::WinDeclSpecs;
10391
 
  friend class ::WinMemberExplSpec;
10392
 
  friend class ::WinTypeKeywords;
 
17796
  friend class ::ExtGnu;
10393
17797
  friend class ::PragmaOnceUnitState;
10394
17798
  friend class ::PragmaOnce;
10395
 
  friend class ::CCExprResolve;
10396
 
  friend class ::CExprResolve;
 
17799
  friend class ::CMatchSyntax;
10397
17800
 
10398
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17801
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10399
17802
 
10400
17803
  CTree *sons[3]; // export, param_list, decl
10401
17804
 
10402
17805
public:
 
17806
  /** Constructor.
 
17807
   *  \param e Optional 'export' keyword. 
 
17808
   *  \param p The template parameter list.
 
17809
   *  \param d The class or function declaration. */
10403
17810
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
10404
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
17811
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
10405
17812
  }
 
17813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10406
17814
  static const char *NodeId ();
 
17815
  /** Get the name of the node. Can be compared with NodeId(). */
10407
17816
  const char *NodeName () const { return NodeId (); }
 
17817
  /** Get the number of sons. */
10408
17818
  int Sons () const { return CTree::Sons (sons, 3); }
 
17819
  /** Get the n-th son.
 
17820
   *  \param n The index of the son.
 
17821
   *  \return The n-th son or NULL. */
10409
17822
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
17823
  /** Replace a son.
 
17824
   *  \param old_son The son to replace.
 
17825
   *  \param new_son The new son. */
10410
17826
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10411
17827
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
10412
17828
  }
 
17829
  /** Get the 'export' keyword. */
10413
17830
  CTree *Export () const { return sons[0]; }
 
17831
  /** Get the template parameter list. */
10414
17832
  CT_TemplateParamList *Parameters () const { 
10415
17833
    return (CT_TemplateParamList*)sons[1]; 
10416
17834
  }
 
17835
  /** Get the class or function declaration. */
10417
17836
  CTree *Declaration () const { return sons[2]; }
 
17837
  /** Get the semantic scope object. */
 
17838
  CSemScope *SemScope () const { return (CSemScope*)this; }
10418
17839
};
10419
17840
 
 
17841
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
17842
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
10420
17843
 
10421
 
#line 10422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17844
#line 17845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10422
17845
} // closed Puma
 
17846
class CCExprResolve;
 
17847
class CExprResolve;
10423
17848
class WinIfExists;
10424
17849
class WinImportHandler;
10425
17850
class WinMacros;
10426
 
class CMatchSyntax;
10427
 
class ExtGnu;
 
17851
class WinAsm;
 
17852
class WinDeclSpecs;
 
17853
class WinMemberExplSpec;
 
17854
class WinTypeKeywords;
 
17855
class WinFriend;
10428
17856
class ExtAC;
10429
17857
class ExtACBuilderCoupling;
10430
17858
class ExtACSyntaxCoupling;
10431
17859
class ExtACTree;
10432
17860
class ExtACKeywords;
10433
 
class WinAsm;
10434
 
class WinDeclSpecs;
10435
 
class WinMemberExplSpec;
10436
 
class WinTypeKeywords;
 
17861
class ExtGnu;
10437
17862
class PragmaOnceUnitState;
10438
17863
class PragmaOnce;
10439
 
class CCExprResolve;
10440
 
class CExprResolve;
 
17864
class CMatchSyntax;
10441
17865
namespace Puma {
10442
17866
 
10443
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17867
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10444
17868
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
10445
 
#line 10446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17869
#line 17870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17870
  friend class ::CCExprResolve;
 
17871
  friend class ::CExprResolve;
10446
17872
  friend class ::WinIfExists;
10447
17873
  friend class ::WinImportHandler;
10448
17874
  friend class ::WinMacros;
10449
 
  friend class ::CMatchSyntax;
10450
 
  friend class ::ExtGnu;
 
17875
  friend class ::WinAsm;
 
17876
  friend class ::WinDeclSpecs;
 
17877
  friend class ::WinMemberExplSpec;
 
17878
  friend class ::WinTypeKeywords;
 
17879
  friend class ::WinFriend;
10451
17880
  friend class ::ExtAC;
10452
17881
  friend class ::ExtACBuilderCoupling;
10453
17882
  friend class ::ExtACSyntaxCoupling;
10454
17883
  friend class ::ExtACTree;
10455
17884
  friend class ::ExtACKeywords;
10456
 
  friend class ::WinAsm;
10457
 
  friend class ::WinDeclSpecs;
10458
 
  friend class ::WinMemberExplSpec;
10459
 
  friend class ::WinTypeKeywords;
 
17885
  friend class ::ExtGnu;
10460
17886
  friend class ::PragmaOnceUnitState;
10461
17887
  friend class ::PragmaOnce;
10462
 
  friend class ::CCExprResolve;
10463
 
  friend class ::CExprResolve;
 
17888
  friend class ::CMatchSyntax;
10464
17889
 
10465
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17890
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10466
17891
 
10467
17892
protected:
 
17893
  /** Constructor. */
10468
17894
  CT_TemplateParamDecl () {}
10469
17895
  
10470
17896
public:
 
17897
  /** Get the template default argument. */
10471
17898
  virtual CT_ExprList *DefaultArgument () const = 0;
 
17899
  /** Get the semantic information object. */
10472
17900
  CSemObject *SemObject () const { return (CSemObject*)this; }
10473
17901
};
10474
17902
 
10475
17903
 
10476
 
#line 10477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17904
#line 17905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10477
17905
} // closed Puma
 
17906
class CCExprResolve;
 
17907
class CExprResolve;
10478
17908
class WinIfExists;
10479
17909
class WinImportHandler;
10480
17910
class WinMacros;
10481
 
class CMatchSyntax;
10482
 
class ExtGnu;
 
17911
class WinAsm;
 
17912
class WinDeclSpecs;
 
17913
class WinMemberExplSpec;
 
17914
class WinTypeKeywords;
 
17915
class WinFriend;
10483
17916
class ExtAC;
10484
17917
class ExtACBuilderCoupling;
10485
17918
class ExtACSyntaxCoupling;
10486
17919
class ExtACTree;
10487
17920
class ExtACKeywords;
10488
 
class WinAsm;
10489
 
class WinDeclSpecs;
10490
 
class WinMemberExplSpec;
10491
 
class WinTypeKeywords;
 
17921
class ExtGnu;
10492
17922
class PragmaOnceUnitState;
10493
17923
class PragmaOnce;
10494
 
class CCExprResolve;
10495
 
class CExprResolve;
 
17924
class CMatchSyntax;
10496
17925
namespace Puma {
10497
17926
 
10498
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17927
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10499
17928
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
10500
 
#line 10501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17929
#line 17930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
17930
  friend class ::CCExprResolve;
 
17931
  friend class ::CExprResolve;
10501
17932
  friend class ::WinIfExists;
10502
17933
  friend class ::WinImportHandler;
10503
17934
  friend class ::WinMacros;
10504
 
  friend class ::CMatchSyntax;
10505
 
  friend class ::ExtGnu;
 
17935
  friend class ::WinAsm;
 
17936
  friend class ::WinDeclSpecs;
 
17937
  friend class ::WinMemberExplSpec;
 
17938
  friend class ::WinTypeKeywords;
 
17939
  friend class ::WinFriend;
10506
17940
  friend class ::ExtAC;
10507
17941
  friend class ::ExtACBuilderCoupling;
10508
17942
  friend class ::ExtACSyntaxCoupling;
10509
17943
  friend class ::ExtACTree;
10510
17944
  friend class ::ExtACKeywords;
10511
 
  friend class ::WinAsm;
10512
 
  friend class ::WinDeclSpecs;
10513
 
  friend class ::WinMemberExplSpec;
10514
 
  friend class ::WinTypeKeywords;
 
17945
  friend class ::ExtGnu;
10515
17946
  friend class ::PragmaOnceUnitState;
10516
17947
  friend class ::PragmaOnce;
10517
 
  friend class ::CCExprResolve;
10518
 
  friend class ::CExprResolve;
 
17948
  friend class ::CMatchSyntax;
10519
17949
 
10520
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17950
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10521
17951
 
10522
17952
  CTree *sons[3]; // declspecs, declarator, init
10523
17953
 
10524
17954
public:
10525
17955
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
10526
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
17956
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
10527
17957
  }
 
17958
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10528
17959
  static const char *NodeId ();
 
17960
  /** Get the name of the node. Can be compared with NodeId(). */
10529
17961
  const char *NodeName () const { return NodeId (); }
 
17962
  /** Get the number of sons. */
10530
17963
  int Sons () const { return CTree::Sons (sons, 3); }
 
17964
  /** Get the n-th son.
 
17965
   *  \param n The index of the son.
 
17966
   *  \return The n-th son or NULL. */
10531
17967
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10532
17968
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10533
17969
  CTree *Declarator () const { return sons[1]; }
10534
17970
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
10535
17971
  CSemObject *SemObject () const { return (CSemObject*)this; }
10536
 
  void Initializer (CTree *i) { sons[2] = i; }
 
17972
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
17973
  /** Replace a son.
 
17974
   *  \param old_son The son to replace.
 
17975
   *  \param new_son The new son. */
10537
17976
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10538
17977
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10539
17978
  }
10540
17979
};
10541
17980
 
10542
17981
 
10543
 
#line 10544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
17982
#line 17983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10544
17983
} // closed Puma
 
17984
class CCExprResolve;
 
17985
class CExprResolve;
10545
17986
class WinIfExists;
10546
17987
class WinImportHandler;
10547
17988
class WinMacros;
10548
 
class CMatchSyntax;
10549
 
class ExtGnu;
 
17989
class WinAsm;
 
17990
class WinDeclSpecs;
 
17991
class WinMemberExplSpec;
 
17992
class WinTypeKeywords;
 
17993
class WinFriend;
10550
17994
class ExtAC;
10551
17995
class ExtACBuilderCoupling;
10552
17996
class ExtACSyntaxCoupling;
10553
17997
class ExtACTree;
10554
17998
class ExtACKeywords;
10555
 
class WinAsm;
10556
 
class WinDeclSpecs;
10557
 
class WinMemberExplSpec;
10558
 
class WinTypeKeywords;
 
17999
class ExtGnu;
10559
18000
class PragmaOnceUnitState;
10560
18001
class PragmaOnce;
10561
 
class CCExprResolve;
10562
 
class CExprResolve;
 
18002
class CMatchSyntax;
10563
18003
namespace Puma {
10564
18004
 
10565
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18005
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10566
18006
class CT_TypeParamDecl : public CT_TemplateParamDecl {
10567
 
#line 10568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18007
#line 18008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18008
  friend class ::CCExprResolve;
 
18009
  friend class ::CExprResolve;
10568
18010
  friend class ::WinIfExists;
10569
18011
  friend class ::WinImportHandler;
10570
18012
  friend class ::WinMacros;
10571
 
  friend class ::CMatchSyntax;
10572
 
  friend class ::ExtGnu;
 
18013
  friend class ::WinAsm;
 
18014
  friend class ::WinDeclSpecs;
 
18015
  friend class ::WinMemberExplSpec;
 
18016
  friend class ::WinTypeKeywords;
 
18017
  friend class ::WinFriend;
10573
18018
  friend class ::ExtAC;
10574
18019
  friend class ::ExtACBuilderCoupling;
10575
18020
  friend class ::ExtACSyntaxCoupling;
10576
18021
  friend class ::ExtACTree;
10577
18022
  friend class ::ExtACKeywords;
10578
 
  friend class ::WinAsm;
10579
 
  friend class ::WinDeclSpecs;
10580
 
  friend class ::WinMemberExplSpec;
10581
 
  friend class ::WinTypeKeywords;
 
18023
  friend class ::ExtGnu;
10582
18024
  friend class ::PragmaOnceUnitState;
10583
18025
  friend class ::PragmaOnce;
10584
 
  friend class ::CCExprResolve;
10585
 
  friend class ::CExprResolve;
 
18026
  friend class ::CMatchSyntax;
10586
18027
 
10587
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18028
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10588
18029
 
10589
18030
  CTree *sons[4]; // params, key, id, init
10590
18031
 
10591
18032
public:
10592
18033
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
10593
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
18034
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
18035
    AddSon (sons[2], id); AddSon (sons[3], i);
10594
18036
  }
 
18037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10595
18038
  static const char *NodeId ();
 
18039
  /** Get the name of the node. Can be compared with NodeId(). */
10596
18040
  const char *NodeName () const { return NodeId (); }
 
18041
  /** Get the number of sons. */
10597
18042
  int Sons () const { return CTree::Sons (sons, 4); }
 
18043
  /** Get the n-th son.
 
18044
   *  \param n The index of the son.
 
18045
   *  \return The n-th son or NULL. */
10598
18046
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
10599
18047
  CT_TemplateParamList *Parameters () const { 
10600
18048
    return (CT_TemplateParamList*)sons[0]; 
10601
18049
  }
10602
18050
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
10603
18051
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
10604
 
  void Initializer (CTree *i) { sons[3] = i; }
 
18052
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
18053
  /** Replace a son.
 
18054
   *  \param old_son The son to replace.
 
18055
   *  \param new_son The new son. */
10605
18056
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10606
18057
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10607
18058
  }
10608
18059
};
10609
18060
 
10610
18061
 
10611
 
#line 10612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18062
#line 18063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10612
18063
} // closed Puma
 
18064
class CCExprResolve;
 
18065
class CExprResolve;
10613
18066
class WinIfExists;
10614
18067
class WinImportHandler;
10615
18068
class WinMacros;
10616
 
class CMatchSyntax;
10617
 
class ExtGnu;
 
18069
class WinAsm;
 
18070
class WinDeclSpecs;
 
18071
class WinMemberExplSpec;
 
18072
class WinTypeKeywords;
 
18073
class WinFriend;
10618
18074
class ExtAC;
10619
18075
class ExtACBuilderCoupling;
10620
18076
class ExtACSyntaxCoupling;
10621
18077
class ExtACTree;
10622
18078
class ExtACKeywords;
10623
 
class WinAsm;
10624
 
class WinDeclSpecs;
10625
 
class WinMemberExplSpec;
10626
 
class WinTypeKeywords;
 
18079
class ExtGnu;
10627
18080
class PragmaOnceUnitState;
10628
18081
class PragmaOnce;
10629
 
class CCExprResolve;
10630
 
class CExprResolve;
 
18082
class CMatchSyntax;
10631
18083
namespace Puma {
10632
18084
 
10633
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18085
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10634
18086
class CT_EnumDef : public CT_Decl, public CSemObject {
10635
 
#line 10636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18087
#line 18088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18088
  friend class ::CCExprResolve;
 
18089
  friend class ::CExprResolve;
10636
18090
  friend class ::WinIfExists;
10637
18091
  friend class ::WinImportHandler;
10638
18092
  friend class ::WinMacros;
10639
 
  friend class ::CMatchSyntax;
10640
 
  friend class ::ExtGnu;
 
18093
  friend class ::WinAsm;
 
18094
  friend class ::WinDeclSpecs;
 
18095
  friend class ::WinMemberExplSpec;
 
18096
  friend class ::WinTypeKeywords;
 
18097
  friend class ::WinFriend;
10641
18098
  friend class ::ExtAC;
10642
18099
  friend class ::ExtACBuilderCoupling;
10643
18100
  friend class ::ExtACSyntaxCoupling;
10644
18101
  friend class ::ExtACTree;
10645
18102
  friend class ::ExtACKeywords;
10646
 
  friend class ::WinAsm;
10647
 
  friend class ::WinDeclSpecs;
10648
 
  friend class ::WinMemberExplSpec;
10649
 
  friend class ::WinTypeKeywords;
 
18103
  friend class ::ExtGnu;
10650
18104
  friend class ::PragmaOnceUnitState;
10651
18105
  friend class ::PragmaOnce;
10652
 
  friend class ::CCExprResolve;
10653
 
  friend class ::CExprResolve;
 
18106
  friend class ::CMatchSyntax;
10654
18107
 
10655
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18108
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10656
18109
 
10657
18110
  CTree *sons[3]; // key, name, enumerators
10658
18111
 
10659
18112
public:
10660
18113
  CT_EnumDef (CTree *k, CTree *n) {
10661
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
18114
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
10662
18115
  }
 
18116
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10663
18117
  static const char *NodeId ();
 
18118
  /** Get the name of the node. Can be compared with NodeId(). */
10664
18119
  const char *NodeName () const { return NodeId (); }
 
18120
  /** Get the number of sons. */
10665
18121
  int Sons () const { return CTree::Sons (sons, 3); }
 
18122
  /** Get the n-th son.
 
18123
   *  \param n The index of the son.
 
18124
   *  \return The n-th son or NULL. */
10666
18125
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10667
18126
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
10668
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
18127
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
10669
18128
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
18129
  /** Replace a son.
 
18130
   *  \param old_son The son to replace.
 
18131
   *  \param new_son The new son. */
10670
18132
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10671
18133
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10672
18134
  }
10674
18136
};
10675
18137
 
10676
18138
 
10677
 
#line 10678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18139
#line 18140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10678
18140
} // closed Puma
 
18141
class CCExprResolve;
 
18142
class CExprResolve;
10679
18143
class WinIfExists;
10680
18144
class WinImportHandler;
10681
18145
class WinMacros;
10682
 
class CMatchSyntax;
10683
 
class ExtGnu;
 
18146
class WinAsm;
 
18147
class WinDeclSpecs;
 
18148
class WinMemberExplSpec;
 
18149
class WinTypeKeywords;
 
18150
class WinFriend;
10684
18151
class ExtAC;
10685
18152
class ExtACBuilderCoupling;
10686
18153
class ExtACSyntaxCoupling;
10687
18154
class ExtACTree;
10688
18155
class ExtACKeywords;
10689
 
class WinAsm;
10690
 
class WinDeclSpecs;
10691
 
class WinMemberExplSpec;
10692
 
class WinTypeKeywords;
 
18156
class ExtGnu;
10693
18157
class PragmaOnceUnitState;
10694
18158
class PragmaOnce;
10695
 
class CCExprResolve;
10696
 
class CExprResolve;
 
18159
class CMatchSyntax;
10697
18160
namespace Puma {
10698
18161
 
10699
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18162
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10700
18163
class CT_Enumerator : public CT_Decl, public CSemObject {
10701
 
#line 10702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18164
#line 18165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18165
  friend class ::CCExprResolve;
 
18166
  friend class ::CExprResolve;
10702
18167
  friend class ::WinIfExists;
10703
18168
  friend class ::WinImportHandler;
10704
18169
  friend class ::WinMacros;
10705
 
  friend class ::CMatchSyntax;
10706
 
  friend class ::ExtGnu;
 
18170
  friend class ::WinAsm;
 
18171
  friend class ::WinDeclSpecs;
 
18172
  friend class ::WinMemberExplSpec;
 
18173
  friend class ::WinTypeKeywords;
 
18174
  friend class ::WinFriend;
10707
18175
  friend class ::ExtAC;
10708
18176
  friend class ::ExtACBuilderCoupling;
10709
18177
  friend class ::ExtACSyntaxCoupling;
10710
18178
  friend class ::ExtACTree;
10711
18179
  friend class ::ExtACKeywords;
10712
 
  friend class ::WinAsm;
10713
 
  friend class ::WinDeclSpecs;
10714
 
  friend class ::WinMemberExplSpec;
10715
 
  friend class ::WinTypeKeywords;
 
18180
  friend class ::ExtGnu;
10716
18181
  friend class ::PragmaOnceUnitState;
10717
18182
  friend class ::PragmaOnce;
10718
 
  friend class ::CCExprResolve;
10719
 
  friend class ::CExprResolve;
 
18183
  friend class ::CMatchSyntax;
10720
18184
 
10721
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18185
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10722
18186
 
10723
18187
  CTree *sons[2]; // name, init
10724
18188
 
10725
18189
public:
10726
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
18190
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
18191
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10727
18192
  static const char *NodeId ();
 
18193
  /** Get the name of the node. Can be compared with NodeId(). */
10728
18194
  const char *NodeName () const { return NodeId (); }
 
18195
  /** Get the number of sons. */
10729
18196
  int Sons () const { return CTree::Sons (sons, 2); }
 
18197
  /** Get the n-th son.
 
18198
   *  \param n The index of the son.
 
18199
   *  \return The n-th son or NULL. */
10730
18200
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
10731
18201
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
10732
 
  void Initializer (CTree *i) { sons[1] = i; }
 
18202
  void Initializer (CTree *i) { AddSon (sons[1], i); }
10733
18203
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
18204
  /** Replace a son.
 
18205
   *  \param old_son The son to replace.
 
18206
   *  \param new_son The new son. */
10734
18207
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10735
18208
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
10736
18209
  }
10738
18211
};
10739
18212
 
10740
18213
 
10741
 
#line 10742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18214
#line 18215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10742
18215
} // closed Puma
 
18216
class CCExprResolve;
 
18217
class CExprResolve;
10743
18218
class WinIfExists;
10744
18219
class WinImportHandler;
10745
18220
class WinMacros;
10746
 
class CMatchSyntax;
10747
 
class ExtGnu;
 
18221
class WinAsm;
 
18222
class WinDeclSpecs;
 
18223
class WinMemberExplSpec;
 
18224
class WinTypeKeywords;
 
18225
class WinFriend;
10748
18226
class ExtAC;
10749
18227
class ExtACBuilderCoupling;
10750
18228
class ExtACSyntaxCoupling;
10751
18229
class ExtACTree;
10752
18230
class ExtACKeywords;
10753
 
class WinAsm;
10754
 
class WinDeclSpecs;
10755
 
class WinMemberExplSpec;
10756
 
class WinTypeKeywords;
 
18231
class ExtGnu;
10757
18232
class PragmaOnceUnitState;
10758
18233
class PragmaOnce;
10759
 
class CCExprResolve;
10760
 
class CExprResolve;
 
18234
class CMatchSyntax;
10761
18235
namespace Puma {
10762
18236
 
10763
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18237
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10764
18238
class CT_FctDef : public CT_Decl, public CSemObject {
10765
 
#line 10766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18239
#line 18240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18240
  friend class ::CCExprResolve;
 
18241
  friend class ::CExprResolve;
10766
18242
  friend class ::WinIfExists;
10767
18243
  friend class ::WinImportHandler;
10768
18244
  friend class ::WinMacros;
10769
 
  friend class ::CMatchSyntax;
10770
 
  friend class ::ExtGnu;
 
18245
  friend class ::WinAsm;
 
18246
  friend class ::WinDeclSpecs;
 
18247
  friend class ::WinMemberExplSpec;
 
18248
  friend class ::WinTypeKeywords;
 
18249
  friend class ::WinFriend;
10771
18250
  friend class ::ExtAC;
10772
18251
  friend class ::ExtACBuilderCoupling;
10773
18252
  friend class ::ExtACSyntaxCoupling;
10774
18253
  friend class ::ExtACTree;
10775
18254
  friend class ::ExtACKeywords;
10776
 
  friend class ::WinAsm;
10777
 
  friend class ::WinDeclSpecs;
10778
 
  friend class ::WinMemberExplSpec;
10779
 
  friend class ::WinTypeKeywords;
 
18255
  friend class ::ExtGnu;
10780
18256
  friend class ::PragmaOnceUnitState;
10781
18257
  friend class ::PragmaOnce;
10782
 
  friend class ::CCExprResolve;
10783
 
  friend class ::CExprResolve;
 
18258
  friend class ::CMatchSyntax;
10784
18259
 
10785
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18260
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10786
18261
 
10787
18262
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
10788
18263
 
10789
18264
public:
10790
18265
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
10791
18266
             CTree *b, CTree *hs) {
10792
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
10793
 
    sons[5] = b; sons[6] = hs; 
 
18267
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
18268
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
18269
    AddSon (sons[6], hs); 
10794
18270
  }
 
18271
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10795
18272
  static const char *NodeId ();
 
18273
  /** Get the name of the node. Can be compared with NodeId(). */
10796
18274
  const char *NodeName () const { return NodeId (); }
 
18275
  /** Get the number of sons. */
10797
18276
  int Sons () const { return CTree::Sons (sons, 7); }
 
18277
  /** Get the n-th son.
 
18278
   *  \param n The index of the son.
 
18279
   *  \return The n-th son or NULL. */
10798
18280
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
10799
18281
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
10800
18282
  CTree *Declarator () const { return sons[1]; }
10804
18286
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
10805
18287
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
10806
18288
  CSemObject *SemObject () const { return (CSemObject*)this; }
10807
 
  void CtorInit (CTree *i) { sons[3] = i; }
10808
 
  void Body (CTree *b) { sons[5] = b; }
 
18289
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
18290
  void Body (CTree *b) { AddSon (sons[5], b); }
10809
18291
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
10810
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
18292
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
18293
    AddSon (sons[5], b); AddSon (sons[6], h);
10811
18294
  }
 
18295
  /** Replace a son.
 
18296
   *  \param old_son The son to replace.
 
18297
   *  \param new_son The new son. */
10812
18298
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10813
18299
    CTree::ReplaceSon (sons, 7, old_son, new_son);
10814
18300
  }
10815
18301
};
10816
18302
 
10817
18303
 
10818
 
#line 10819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18304
#line 18305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10819
18305
} // closed Puma
 
18306
class CCExprResolve;
 
18307
class CExprResolve;
10820
18308
class WinIfExists;
10821
18309
class WinImportHandler;
10822
18310
class WinMacros;
10823
 
class CMatchSyntax;
10824
 
class ExtGnu;
 
18311
class WinAsm;
 
18312
class WinDeclSpecs;
 
18313
class WinMemberExplSpec;
 
18314
class WinTypeKeywords;
 
18315
class WinFriend;
10825
18316
class ExtAC;
10826
18317
class ExtACBuilderCoupling;
10827
18318
class ExtACSyntaxCoupling;
10828
18319
class ExtACTree;
10829
18320
class ExtACKeywords;
10830
 
class WinAsm;
10831
 
class WinDeclSpecs;
10832
 
class WinMemberExplSpec;
10833
 
class WinTypeKeywords;
 
18321
class ExtGnu;
10834
18322
class PragmaOnceUnitState;
10835
18323
class PragmaOnce;
10836
 
class CCExprResolve;
10837
 
class CExprResolve;
 
18324
class CMatchSyntax;
10838
18325
namespace Puma {
10839
18326
 
10840
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18327
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10841
18328
class CT_AsmDef : public CT_Decl {
10842
 
#line 10843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18329
#line 18330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18330
  friend class ::CCExprResolve;
 
18331
  friend class ::CExprResolve;
10843
18332
  friend class ::WinIfExists;
10844
18333
  friend class ::WinImportHandler;
10845
18334
  friend class ::WinMacros;
10846
 
  friend class ::CMatchSyntax;
10847
 
  friend class ::ExtGnu;
 
18335
  friend class ::WinAsm;
 
18336
  friend class ::WinDeclSpecs;
 
18337
  friend class ::WinMemberExplSpec;
 
18338
  friend class ::WinTypeKeywords;
 
18339
  friend class ::WinFriend;
10848
18340
  friend class ::ExtAC;
10849
18341
  friend class ::ExtACBuilderCoupling;
10850
18342
  friend class ::ExtACSyntaxCoupling;
10851
18343
  friend class ::ExtACTree;
10852
18344
  friend class ::ExtACKeywords;
10853
 
  friend class ::WinAsm;
10854
 
  friend class ::WinDeclSpecs;
10855
 
  friend class ::WinMemberExplSpec;
10856
 
  friend class ::WinTypeKeywords;
 
18345
  friend class ::ExtGnu;
10857
18346
  friend class ::PragmaOnceUnitState;
10858
18347
  friend class ::PragmaOnce;
10859
 
  friend class ::CCExprResolve;
10860
 
  friend class ::CExprResolve;
 
18348
  friend class ::CMatchSyntax;
10861
18349
 
10862
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18350
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10863
18351
 
10864
18352
  CTree *sons[5]; // asm, open, str, close, semi_colon
10865
18353
 
10866
18354
public:
10867
18355
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
10868
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
18356
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
18357
    AddSon (sons[3], c); AddSon (sons[4], sc); 
10869
18358
  }
 
18359
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10870
18360
  static const char *NodeId ();
 
18361
  /** Get the name of the node. Can be compared with NodeId(). */
10871
18362
  const char *NodeName () const { return NodeId (); }
 
18363
  /** Get the number of sons. */
10872
18364
  int Sons () const { return 5; }
 
18365
  /** Get the n-th son.
 
18366
   *  \param n The index of the son.
 
18367
   *  \return The n-th son or NULL. */
10873
18368
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
10874
18369
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
18370
  /** Replace a son.
 
18371
   *  \param old_son The son to replace.
 
18372
   *  \param new_son The new son. */
10875
18373
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10876
18374
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10877
18375
  }
10878
18376
};
10879
18377
 
10880
18378
 
10881
 
#line 10882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18379
#line 18380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10882
18380
} // closed Puma
 
18381
class CCExprResolve;
 
18382
class CExprResolve;
10883
18383
class WinIfExists;
10884
18384
class WinImportHandler;
10885
18385
class WinMacros;
10886
 
class CMatchSyntax;
10887
 
class ExtGnu;
 
18386
class WinAsm;
 
18387
class WinDeclSpecs;
 
18388
class WinMemberExplSpec;
 
18389
class WinTypeKeywords;
 
18390
class WinFriend;
10888
18391
class ExtAC;
10889
18392
class ExtACBuilderCoupling;
10890
18393
class ExtACSyntaxCoupling;
10891
18394
class ExtACTree;
10892
18395
class ExtACKeywords;
10893
 
class WinAsm;
10894
 
class WinDeclSpecs;
10895
 
class WinMemberExplSpec;
10896
 
class WinTypeKeywords;
 
18396
class ExtGnu;
10897
18397
class PragmaOnceUnitState;
10898
18398
class PragmaOnce;
10899
 
class CCExprResolve;
10900
 
class CExprResolve;
 
18399
class CMatchSyntax;
10901
18400
namespace Puma {
10902
18401
 
10903
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18402
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10904
18403
class CT_Handler : public CT_Decl, public CSemScope {
10905
 
#line 10906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18404
#line 18405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18405
  friend class ::CCExprResolve;
 
18406
  friend class ::CExprResolve;
10906
18407
  friend class ::WinIfExists;
10907
18408
  friend class ::WinImportHandler;
10908
18409
  friend class ::WinMacros;
10909
 
  friend class ::CMatchSyntax;
10910
 
  friend class ::ExtGnu;
 
18410
  friend class ::WinAsm;
 
18411
  friend class ::WinDeclSpecs;
 
18412
  friend class ::WinMemberExplSpec;
 
18413
  friend class ::WinTypeKeywords;
 
18414
  friend class ::WinFriend;
10911
18415
  friend class ::ExtAC;
10912
18416
  friend class ::ExtACBuilderCoupling;
10913
18417
  friend class ::ExtACSyntaxCoupling;
10914
18418
  friend class ::ExtACTree;
10915
18419
  friend class ::ExtACKeywords;
10916
 
  friend class ::WinAsm;
10917
 
  friend class ::WinDeclSpecs;
10918
 
  friend class ::WinMemberExplSpec;
10919
 
  friend class ::WinTypeKeywords;
 
18420
  friend class ::ExtGnu;
10920
18421
  friend class ::PragmaOnceUnitState;
10921
18422
  friend class ::PragmaOnce;
10922
 
  friend class ::CCExprResolve;
10923
 
  friend class ::CExprResolve;
 
18423
  friend class ::CMatchSyntax;
10924
18424
 
10925
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18425
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10926
18426
 
10927
18427
  CTree *sons[3]; // catch, exception_decl, stmt
10928
18428
 
10929
18429
public:
10930
18430
  CT_Handler (CTree *c, CTree *e, CTree *s) {
10931
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
18431
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
10932
18432
  }
 
18433
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10933
18434
  static const char *NodeId ();
 
18435
  /** Get the name of the node. Can be compared with NodeId(). */
10934
18436
  const char *NodeName () const { return NodeId (); }
 
18437
  /** Get the number of sons. */
10935
18438
  int Sons () const { return 3; }
 
18439
  /** Get the n-th son.
 
18440
   *  \param n The index of the son.
 
18441
   *  \return The n-th son or NULL. */
10936
18442
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
10937
18443
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
10938
18444
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
18445
  /** Replace a son.
 
18446
   *  \param old_son The son to replace.
 
18447
   *  \param new_son The new son. */
10939
18448
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10940
18449
    CTree::ReplaceSon (sons, 3, old_son, new_son);
10941
18450
  }
 
18451
  CSemScope *SemScope () const { return (CSemScope*)this; }
10942
18452
};
10943
18453
 
10944
18454
 
10945
 
#line 10946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18455
#line 18456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
10946
18456
} // closed Puma
 
18457
class CCExprResolve;
 
18458
class CExprResolve;
10947
18459
class WinIfExists;
10948
18460
class WinImportHandler;
10949
18461
class WinMacros;
10950
 
class CMatchSyntax;
10951
 
class ExtGnu;
 
18462
class WinAsm;
 
18463
class WinDeclSpecs;
 
18464
class WinMemberExplSpec;
 
18465
class WinTypeKeywords;
 
18466
class WinFriend;
10952
18467
class ExtAC;
10953
18468
class ExtACBuilderCoupling;
10954
18469
class ExtACSyntaxCoupling;
10955
18470
class ExtACTree;
10956
18471
class ExtACKeywords;
10957
 
class WinAsm;
10958
 
class WinDeclSpecs;
10959
 
class WinMemberExplSpec;
10960
 
class WinTypeKeywords;
 
18472
class ExtGnu;
10961
18473
class PragmaOnceUnitState;
10962
18474
class PragmaOnce;
10963
 
class CCExprResolve;
10964
 
class CExprResolve;
 
18475
class CMatchSyntax;
10965
18476
namespace Puma {
10966
18477
 
10967
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18478
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10968
18479
class CT_LinkageSpec : public CT_Decl {
10969
 
#line 10970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18480
#line 18481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18481
  friend class ::CCExprResolve;
 
18482
  friend class ::CExprResolve;
10970
18483
  friend class ::WinIfExists;
10971
18484
  friend class ::WinImportHandler;
10972
18485
  friend class ::WinMacros;
10973
 
  friend class ::CMatchSyntax;
10974
 
  friend class ::ExtGnu;
 
18486
  friend class ::WinAsm;
 
18487
  friend class ::WinDeclSpecs;
 
18488
  friend class ::WinMemberExplSpec;
 
18489
  friend class ::WinTypeKeywords;
 
18490
  friend class ::WinFriend;
10975
18491
  friend class ::ExtAC;
10976
18492
  friend class ::ExtACBuilderCoupling;
10977
18493
  friend class ::ExtACSyntaxCoupling;
10978
18494
  friend class ::ExtACTree;
10979
18495
  friend class ::ExtACKeywords;
10980
 
  friend class ::WinAsm;
10981
 
  friend class ::WinDeclSpecs;
10982
 
  friend class ::WinMemberExplSpec;
10983
 
  friend class ::WinTypeKeywords;
 
18496
  friend class ::ExtGnu;
10984
18497
  friend class ::PragmaOnceUnitState;
10985
18498
  friend class ::PragmaOnce;
10986
 
  friend class ::CCExprResolve;
10987
 
  friend class ::CExprResolve;
 
18499
  friend class ::CMatchSyntax;
10988
18500
 
10989
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18501
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10990
18502
 
10991
18503
  CTree *sons[5]; // extern, str, open, decls, close
10992
18504
 
10993
18505
public:
10994
18506
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
10995
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
18507
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
18508
    AddSon (sons[3], d); AddSon (sons[4], c);
10996
18509
    if (isList ())
10997
18510
      ((CT_DeclList*)Decls ())->Linkage (this);
10998
18511
    else
10999
18512
      ((CT_Decl*)Decls ())->Linkage (this);
11000
18513
  }
 
18514
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11001
18515
  static const char *NodeId ();
 
18516
  /** Get the name of the node. Can be compared with NodeId(). */
11002
18517
  const char *NodeName () const { return NodeId (); }
 
18518
  /** Get the number of sons. */
11003
18519
  int Sons () const { return CTree::Sons (sons, 5); }
 
18520
  /** Get the n-th son.
 
18521
   *  \param n The index of the son.
 
18522
   *  \return The n-th son or NULL. */
11004
18523
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11005
18524
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
11006
18525
  CTree *Decls () const { return sons[3]; }
11007
18526
  bool isList () const {
11008
18527
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
11009
18528
  }
 
18529
  /** Replace a son.
 
18530
   *  \param old_son The son to replace.
 
18531
   *  \param new_son The new son. */
11010
18532
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11011
18533
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11012
18534
  }
11013
18535
};
11014
18536
 
11015
18537
 
11016
 
#line 11017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18538
#line 18539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11017
18539
} // closed Puma
 
18540
class CCExprResolve;
 
18541
class CExprResolve;
11018
18542
class WinIfExists;
11019
18543
class WinImportHandler;
11020
18544
class WinMacros;
11021
 
class CMatchSyntax;
11022
 
class ExtGnu;
 
18545
class WinAsm;
 
18546
class WinDeclSpecs;
 
18547
class WinMemberExplSpec;
 
18548
class WinTypeKeywords;
 
18549
class WinFriend;
11023
18550
class ExtAC;
11024
18551
class ExtACBuilderCoupling;
11025
18552
class ExtACSyntaxCoupling;
11026
18553
class ExtACTree;
11027
18554
class ExtACKeywords;
11028
 
class WinAsm;
11029
 
class WinDeclSpecs;
11030
 
class WinMemberExplSpec;
11031
 
class WinTypeKeywords;
 
18555
class ExtGnu;
11032
18556
class PragmaOnceUnitState;
11033
18557
class PragmaOnce;
11034
 
class CCExprResolve;
11035
 
class CExprResolve;
 
18558
class CMatchSyntax;
11036
18559
namespace Puma {
11037
18560
 
11038
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18561
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11039
18562
class CT_ArgDecl : public CT_Decl, public CSemObject {
11040
 
#line 11041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18563
#line 18564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18564
  friend class ::CCExprResolve;
 
18565
  friend class ::CExprResolve;
11041
18566
  friend class ::WinIfExists;
11042
18567
  friend class ::WinImportHandler;
11043
18568
  friend class ::WinMacros;
11044
 
  friend class ::CMatchSyntax;
11045
 
  friend class ::ExtGnu;
 
18569
  friend class ::WinAsm;
 
18570
  friend class ::WinDeclSpecs;
 
18571
  friend class ::WinMemberExplSpec;
 
18572
  friend class ::WinTypeKeywords;
 
18573
  friend class ::WinFriend;
11046
18574
  friend class ::ExtAC;
11047
18575
  friend class ::ExtACBuilderCoupling;
11048
18576
  friend class ::ExtACSyntaxCoupling;
11049
18577
  friend class ::ExtACTree;
11050
18578
  friend class ::ExtACKeywords;
11051
 
  friend class ::WinAsm;
11052
 
  friend class ::WinDeclSpecs;
11053
 
  friend class ::WinMemberExplSpec;
11054
 
  friend class ::WinTypeKeywords;
 
18579
  friend class ::ExtGnu;
11055
18580
  friend class ::PragmaOnceUnitState;
11056
18581
  friend class ::PragmaOnce;
11057
 
  friend class ::CCExprResolve;
11058
 
  friend class ::CExprResolve;
 
18582
  friend class ::CMatchSyntax;
11059
18583
 
11060
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18584
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11061
18585
 
11062
18586
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
11063
18587
 
11064
18588
public:
11065
18589
  CT_ArgDecl (CTree *dsl, CTree *d) {
11066
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
18590
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
18591
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
11067
18592
  }
11068
18593
  CT_ArgDecl (CTree *ellipsis) {
11069
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
18594
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
18595
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
11070
18596
  }
 
18597
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11071
18598
  static const char *NodeId ();
 
18599
  /** Get the name of the node. Can be compared with NodeId(). */
11072
18600
  const char *NodeName () const { return NodeId (); }
 
18601
  /** Get the number of sons. */
11073
18602
  int Sons () const { return CTree::Sons (sons, 4); }
 
18603
  /** Get the n-th son.
 
18604
   *  \param n The index of the son.
 
18605
   *  \return The n-th son or NULL. */
11074
18606
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11075
18607
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
11076
18608
  CTree *Declarator () const { return sons[1]; }
11077
18609
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
11078
18610
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
11079
18611
  CSemObject *SemObject () const { return (CSemObject*)this; }
11080
 
  void Initializer (CTree *i) { sons[2] = i; }
 
18612
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
18613
  /** Replace a son.
 
18614
   *  \param old_son The son to replace.
 
18615
   *  \param new_son The new son. */
11081
18616
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11082
18617
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11083
18618
  }
11084
18619
};
11085
18620
 
11086
18621
 
11087
 
#line 11088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18622
#line 18623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11088
18623
} // closed Puma
 
18624
class CCExprResolve;
 
18625
class CExprResolve;
11089
18626
class WinIfExists;
11090
18627
class WinImportHandler;
11091
18628
class WinMacros;
11092
 
class CMatchSyntax;
11093
 
class ExtGnu;
 
18629
class WinAsm;
 
18630
class WinDeclSpecs;
 
18631
class WinMemberExplSpec;
 
18632
class WinTypeKeywords;
 
18633
class WinFriend;
11094
18634
class ExtAC;
11095
18635
class ExtACBuilderCoupling;
11096
18636
class ExtACSyntaxCoupling;
11097
18637
class ExtACTree;
11098
18638
class ExtACKeywords;
11099
 
class WinAsm;
11100
 
class WinDeclSpecs;
11101
 
class WinMemberExplSpec;
11102
 
class WinTypeKeywords;
 
18639
class ExtGnu;
11103
18640
class PragmaOnceUnitState;
11104
18641
class PragmaOnce;
11105
 
class CCExprResolve;
11106
 
class CExprResolve;
 
18642
class CMatchSyntax;
11107
18643
namespace Puma {
11108
18644
 
11109
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18645
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11110
18646
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
11111
 
#line 11112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18647
#line 18648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18648
  friend class ::CCExprResolve;
 
18649
  friend class ::CExprResolve;
11112
18650
  friend class ::WinIfExists;
11113
18651
  friend class ::WinImportHandler;
11114
18652
  friend class ::WinMacros;
11115
 
  friend class ::CMatchSyntax;
11116
 
  friend class ::ExtGnu;
 
18653
  friend class ::WinAsm;
 
18654
  friend class ::WinDeclSpecs;
 
18655
  friend class ::WinMemberExplSpec;
 
18656
  friend class ::WinTypeKeywords;
 
18657
  friend class ::WinFriend;
11117
18658
  friend class ::ExtAC;
11118
18659
  friend class ::ExtACBuilderCoupling;
11119
18660
  friend class ::ExtACSyntaxCoupling;
11120
18661
  friend class ::ExtACTree;
11121
18662
  friend class ::ExtACKeywords;
11122
 
  friend class ::WinAsm;
11123
 
  friend class ::WinDeclSpecs;
11124
 
  friend class ::WinMemberExplSpec;
11125
 
  friend class ::WinTypeKeywords;
 
18663
  friend class ::ExtGnu;
11126
18664
  friend class ::PragmaOnceUnitState;
11127
18665
  friend class ::PragmaOnce;
11128
 
  friend class ::CCExprResolve;
11129
 
  friend class ::CExprResolve;
 
18666
  friend class ::CMatchSyntax;
11130
18667
 
11131
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18668
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11132
18669
 
11133
18670
public:
11134
18671
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
11135
18672
   CT_DeclList (size, 2) { AddProperties (props); }
 
18673
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11136
18674
  static const char *NodeId ();
 
18675
  /** Get the name of the node. Can be compared with NodeId(). */
11137
18676
  const char *NodeName () const { return NodeId (); }
 
18677
  CSemScope *SemScope () const { return (CSemScope*)this; }
11138
18678
};
11139
18679
 
11140
18680
 
11141
 
#line 11142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18681
#line 18682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11142
18682
} // closed Puma
 
18683
class CCExprResolve;
 
18684
class CExprResolve;
11143
18685
class WinIfExists;
11144
18686
class WinImportHandler;
11145
18687
class WinMacros;
11146
 
class CMatchSyntax;
11147
 
class ExtGnu;
 
18688
class WinAsm;
 
18689
class WinDeclSpecs;
 
18690
class WinMemberExplSpec;
 
18691
class WinTypeKeywords;
 
18692
class WinFriend;
11148
18693
class ExtAC;
11149
18694
class ExtACBuilderCoupling;
11150
18695
class ExtACSyntaxCoupling;
11151
18696
class ExtACTree;
11152
18697
class ExtACKeywords;
11153
 
class WinAsm;
11154
 
class WinDeclSpecs;
11155
 
class WinMemberExplSpec;
11156
 
class WinTypeKeywords;
 
18698
class ExtGnu;
11157
18699
class PragmaOnceUnitState;
11158
18700
class PragmaOnce;
11159
 
class CCExprResolve;
11160
 
class CExprResolve;
 
18701
class CMatchSyntax;
11161
18702
namespace Puma {
11162
18703
 
11163
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18704
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11164
18705
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
11165
 
#line 11166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18706
#line 18707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18707
  friend class ::CCExprResolve;
 
18708
  friend class ::CExprResolve;
11166
18709
  friend class ::WinIfExists;
11167
18710
  friend class ::WinImportHandler;
11168
18711
  friend class ::WinMacros;
11169
 
  friend class ::CMatchSyntax;
11170
 
  friend class ::ExtGnu;
 
18712
  friend class ::WinAsm;
 
18713
  friend class ::WinDeclSpecs;
 
18714
  friend class ::WinMemberExplSpec;
 
18715
  friend class ::WinTypeKeywords;
 
18716
  friend class ::WinFriend;
11171
18717
  friend class ::ExtAC;
11172
18718
  friend class ::ExtACBuilderCoupling;
11173
18719
  friend class ::ExtACSyntaxCoupling;
11174
18720
  friend class ::ExtACTree;
11175
18721
  friend class ::ExtACKeywords;
11176
 
  friend class ::WinAsm;
11177
 
  friend class ::WinDeclSpecs;
11178
 
  friend class ::WinMemberExplSpec;
11179
 
  friend class ::WinTypeKeywords;
 
18722
  friend class ::ExtGnu;
11180
18723
  friend class ::PragmaOnceUnitState;
11181
18724
  friend class ::PragmaOnce;
11182
 
  friend class ::CCExprResolve;
11183
 
  friend class ::CExprResolve;
 
18725
  friend class ::CMatchSyntax;
11184
18726
 
11185
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18727
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11186
18728
 
11187
18729
public:
11188
18730
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
18731
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11189
18732
  static const char *NodeId ();
 
18733
  /** Get the name of the node. Can be compared with NodeId(). */
11190
18734
  const char *NodeName () const { return NodeId (); }
 
18735
  CSemScope *SemScope () const { return (CSemScope*)this; }
11191
18736
};
11192
18737
 
11193
18738
 
11194
 
#line 11195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18739
#line 18740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11195
18740
} // closed Puma
 
18741
class CCExprResolve;
 
18742
class CExprResolve;
11196
18743
class WinIfExists;
11197
18744
class WinImportHandler;
11198
18745
class WinMacros;
11199
 
class CMatchSyntax;
11200
 
class ExtGnu;
 
18746
class WinAsm;
 
18747
class WinDeclSpecs;
 
18748
class WinMemberExplSpec;
 
18749
class WinTypeKeywords;
 
18750
class WinFriend;
11201
18751
class ExtAC;
11202
18752
class ExtACBuilderCoupling;
11203
18753
class ExtACSyntaxCoupling;
11204
18754
class ExtACTree;
11205
18755
class ExtACKeywords;
11206
 
class WinAsm;
11207
 
class WinDeclSpecs;
11208
 
class WinMemberExplSpec;
11209
 
class WinTypeKeywords;
 
18756
class ExtGnu;
11210
18757
class PragmaOnceUnitState;
11211
18758
class PragmaOnce;
11212
 
class CCExprResolve;
11213
 
class CExprResolve;
 
18759
class CMatchSyntax;
11214
18760
namespace Puma {
11215
18761
 
11216
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18762
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11217
18763
class CT_ArgNameList : public CT_ArgDeclList {
11218
 
#line 11219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18764
#line 18765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18765
  friend class ::CCExprResolve;
 
18766
  friend class ::CExprResolve;
11219
18767
  friend class ::WinIfExists;
11220
18768
  friend class ::WinImportHandler;
11221
18769
  friend class ::WinMacros;
11222
 
  friend class ::CMatchSyntax;
11223
 
  friend class ::ExtGnu;
 
18770
  friend class ::WinAsm;
 
18771
  friend class ::WinDeclSpecs;
 
18772
  friend class ::WinMemberExplSpec;
 
18773
  friend class ::WinTypeKeywords;
 
18774
  friend class ::WinFriend;
11224
18775
  friend class ::ExtAC;
11225
18776
  friend class ::ExtACBuilderCoupling;
11226
18777
  friend class ::ExtACSyntaxCoupling;
11227
18778
  friend class ::ExtACTree;
11228
18779
  friend class ::ExtACKeywords;
11229
 
  friend class ::WinAsm;
11230
 
  friend class ::WinDeclSpecs;
11231
 
  friend class ::WinMemberExplSpec;
11232
 
  friend class ::WinTypeKeywords;
 
18780
  friend class ::ExtGnu;
11233
18781
  friend class ::PragmaOnceUnitState;
11234
18782
  friend class ::PragmaOnce;
11235
 
  friend class ::CCExprResolve;
11236
 
  friend class ::CExprResolve;
 
18783
  friend class ::CMatchSyntax;
11237
18784
 
11238
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18785
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11239
18786
 
11240
18787
public:
11241
18788
  CT_ArgNameList () : CT_ArgDeclList () {}
 
18789
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11242
18790
  static const char *NodeId ();
 
18791
  /** Get the name of the node. Can be compared with NodeId(). */
11243
18792
  const char *NodeName () const { return NodeId (); }
11244
18793
};
11245
18794
 
11246
18795
 
11247
 
#line 11248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18796
#line 18797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11248
18797
} // closed Puma
 
18798
class CCExprResolve;
 
18799
class CExprResolve;
11249
18800
class WinIfExists;
11250
18801
class WinImportHandler;
11251
18802
class WinMacros;
11252
 
class CMatchSyntax;
11253
 
class ExtGnu;
 
18803
class WinAsm;
 
18804
class WinDeclSpecs;
 
18805
class WinMemberExplSpec;
 
18806
class WinTypeKeywords;
 
18807
class WinFriend;
11254
18808
class ExtAC;
11255
18809
class ExtACBuilderCoupling;
11256
18810
class ExtACSyntaxCoupling;
11257
18811
class ExtACTree;
11258
18812
class ExtACKeywords;
11259
 
class WinAsm;
11260
 
class WinDeclSpecs;
11261
 
class WinMemberExplSpec;
11262
 
class WinTypeKeywords;
 
18813
class ExtGnu;
11263
18814
class PragmaOnceUnitState;
11264
18815
class PragmaOnce;
11265
 
class CCExprResolve;
11266
 
class CExprResolve;
 
18816
class CMatchSyntax;
11267
18817
namespace Puma {
11268
18818
 
11269
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18819
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11270
18820
class CT_NamespaceDef : public CT_Decl, public CSemObject {
11271
 
#line 11272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18821
#line 18822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18822
  friend class ::CCExprResolve;
 
18823
  friend class ::CExprResolve;
11272
18824
  friend class ::WinIfExists;
11273
18825
  friend class ::WinImportHandler;
11274
18826
  friend class ::WinMacros;
11275
 
  friend class ::CMatchSyntax;
11276
 
  friend class ::ExtGnu;
 
18827
  friend class ::WinAsm;
 
18828
  friend class ::WinDeclSpecs;
 
18829
  friend class ::WinMemberExplSpec;
 
18830
  friend class ::WinTypeKeywords;
 
18831
  friend class ::WinFriend;
11277
18832
  friend class ::ExtAC;
11278
18833
  friend class ::ExtACBuilderCoupling;
11279
18834
  friend class ::ExtACSyntaxCoupling;
11280
18835
  friend class ::ExtACTree;
11281
18836
  friend class ::ExtACKeywords;
11282
 
  friend class ::WinAsm;
11283
 
  friend class ::WinDeclSpecs;
11284
 
  friend class ::WinMemberExplSpec;
11285
 
  friend class ::WinTypeKeywords;
 
18837
  friend class ::ExtGnu;
11286
18838
  friend class ::PragmaOnceUnitState;
11287
18839
  friend class ::PragmaOnce;
11288
 
  friend class ::CCExprResolve;
11289
 
  friend class ::CExprResolve;
 
18840
  friend class ::CMatchSyntax;
11290
18841
 
11291
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18842
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11292
18843
 
11293
18844
  CTree *sons[3]; // ns, name, members
11294
18845
 
11295
18846
public:
11296
18847
  CT_NamespaceDef (CTree *n, CTree *nm) {
11297
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
18848
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
11298
18849
  }
11299
18850
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
11300
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
18851
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
11301
18852
  }
 
18853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11302
18854
  static const char *NodeId ();
 
18855
  /** Get the name of the node. Can be compared with NodeId(). */
11303
18856
  const char *NodeName () const { return NodeId (); }
 
18857
  /** Get the number of sons. */
11304
18858
  int Sons () const { return CTree::Sons (sons, 3); }
 
18859
  /** Get the n-th son.
 
18860
   *  \param n The index of the son.
 
18861
   *  \return The n-th son or NULL. */
11305
18862
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11306
 
  void Members (CTree *m) { sons[2] = m; }
 
18863
  void Members (CTree *m) { AddSon (sons[2], m); }
11307
18864
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
11308
18865
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
11309
18866
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
18867
  /** Replace a son.
 
18868
   *  \param old_son The son to replace.
 
18869
   *  \param new_son The new son. */
11310
18870
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11311
18871
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11312
18872
  }
11313
18873
};
11314
18874
 
11315
18875
 
11316
 
#line 11317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18876
#line 18877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11317
18877
} // closed Puma
 
18878
class CCExprResolve;
 
18879
class CExprResolve;
11318
18880
class WinIfExists;
11319
18881
class WinImportHandler;
11320
18882
class WinMacros;
11321
 
class CMatchSyntax;
11322
 
class ExtGnu;
 
18883
class WinAsm;
 
18884
class WinDeclSpecs;
 
18885
class WinMemberExplSpec;
 
18886
class WinTypeKeywords;
 
18887
class WinFriend;
11323
18888
class ExtAC;
11324
18889
class ExtACBuilderCoupling;
11325
18890
class ExtACSyntaxCoupling;
11326
18891
class ExtACTree;
11327
18892
class ExtACKeywords;
11328
 
class WinAsm;
11329
 
class WinDeclSpecs;
11330
 
class WinMemberExplSpec;
11331
 
class WinTypeKeywords;
 
18893
class ExtGnu;
11332
18894
class PragmaOnceUnitState;
11333
18895
class PragmaOnce;
11334
 
class CCExprResolve;
11335
 
class CExprResolve;
 
18896
class CMatchSyntax;
11336
18897
namespace Puma {
11337
18898
 
11338
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18899
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11339
18900
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
11340
 
#line 11341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18901
#line 18902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18902
  friend class ::CCExprResolve;
 
18903
  friend class ::CExprResolve;
11341
18904
  friend class ::WinIfExists;
11342
18905
  friend class ::WinImportHandler;
11343
18906
  friend class ::WinMacros;
11344
 
  friend class ::CMatchSyntax;
11345
 
  friend class ::ExtGnu;
 
18907
  friend class ::WinAsm;
 
18908
  friend class ::WinDeclSpecs;
 
18909
  friend class ::WinMemberExplSpec;
 
18910
  friend class ::WinTypeKeywords;
 
18911
  friend class ::WinFriend;
11346
18912
  friend class ::ExtAC;
11347
18913
  friend class ::ExtACBuilderCoupling;
11348
18914
  friend class ::ExtACSyntaxCoupling;
11349
18915
  friend class ::ExtACTree;
11350
18916
  friend class ::ExtACKeywords;
11351
 
  friend class ::WinAsm;
11352
 
  friend class ::WinDeclSpecs;
11353
 
  friend class ::WinMemberExplSpec;
11354
 
  friend class ::WinTypeKeywords;
 
18917
  friend class ::ExtGnu;
11355
18918
  friend class ::PragmaOnceUnitState;
11356
18919
  friend class ::PragmaOnce;
11357
 
  friend class ::CCExprResolve;
11358
 
  friend class ::CExprResolve;
 
18920
  friend class ::CMatchSyntax;
11359
18921
 
11360
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18922
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11361
18923
 
11362
18924
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
11363
18925
 
11364
18926
public:
11365
18927
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
11366
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
18928
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
18929
    AddSon (sons[3], nm); AddSon (sons[4], s); 
11367
18930
  }
 
18931
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11368
18932
  static const char *NodeId ();
 
18933
  /** Get the name of the node. Can be compared with NodeId(). */
11369
18934
  const char *NodeName () const { return NodeId (); }
 
18935
  /** Get the number of sons. */
11370
18936
  int Sons () const { return 5; }
 
18937
  /** Get the n-th son.
 
18938
   *  \param n The index of the son.
 
18939
   *  \return The n-th son or NULL. */
11371
18940
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
11372
18941
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
11373
18942
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
11374
18943
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
18944
  /** Replace a son.
 
18945
   *  \param old_son The son to replace.
 
18946
   *  \param new_son The new son. */
11375
18947
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11376
18948
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11377
18949
  }
11378
18950
};
11379
18951
 
11380
18952
 
11381
 
#line 11382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18953
#line 18954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11382
18954
} // closed Puma
 
18955
class CCExprResolve;
 
18956
class CExprResolve;
11383
18957
class WinIfExists;
11384
18958
class WinImportHandler;
11385
18959
class WinMacros;
11386
 
class CMatchSyntax;
11387
 
class ExtGnu;
 
18960
class WinAsm;
 
18961
class WinDeclSpecs;
 
18962
class WinMemberExplSpec;
 
18963
class WinTypeKeywords;
 
18964
class WinFriend;
11388
18965
class ExtAC;
11389
18966
class ExtACBuilderCoupling;
11390
18967
class ExtACSyntaxCoupling;
11391
18968
class ExtACTree;
11392
18969
class ExtACKeywords;
11393
 
class WinAsm;
11394
 
class WinDeclSpecs;
11395
 
class WinMemberExplSpec;
11396
 
class WinTypeKeywords;
 
18970
class ExtGnu;
11397
18971
class PragmaOnceUnitState;
11398
18972
class PragmaOnce;
11399
 
class CCExprResolve;
11400
 
class CExprResolve;
 
18973
class CMatchSyntax;
11401
18974
namespace Puma {
11402
18975
 
11403
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18976
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11404
18977
class CT_UsingDirective : public CT_Decl {
11405
 
#line 11406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
18978
#line 18979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
18979
  friend class ::CCExprResolve;
 
18980
  friend class ::CExprResolve;
11406
18981
  friend class ::WinIfExists;
11407
18982
  friend class ::WinImportHandler;
11408
18983
  friend class ::WinMacros;
11409
 
  friend class ::CMatchSyntax;
11410
 
  friend class ::ExtGnu;
 
18984
  friend class ::WinAsm;
 
18985
  friend class ::WinDeclSpecs;
 
18986
  friend class ::WinMemberExplSpec;
 
18987
  friend class ::WinTypeKeywords;
 
18988
  friend class ::WinFriend;
11411
18989
  friend class ::ExtAC;
11412
18990
  friend class ::ExtACBuilderCoupling;
11413
18991
  friend class ::ExtACSyntaxCoupling;
11414
18992
  friend class ::ExtACTree;
11415
18993
  friend class ::ExtACKeywords;
11416
 
  friend class ::WinAsm;
11417
 
  friend class ::WinDeclSpecs;
11418
 
  friend class ::WinMemberExplSpec;
11419
 
  friend class ::WinTypeKeywords;
 
18994
  friend class ::ExtGnu;
11420
18995
  friend class ::PragmaOnceUnitState;
11421
18996
  friend class ::PragmaOnce;
11422
 
  friend class ::CCExprResolve;
11423
 
  friend class ::CExprResolve;
 
18997
  friend class ::CMatchSyntax;
11424
18998
 
11425
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18999
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11426
19000
 
11427
19001
  CTree *sons[4]; // using, ns, name, semi_colon
11428
19002
 
11429
19003
public:
11430
19004
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
11431
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
19005
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
19006
    AddSon (sons[3], s); 
11432
19007
  }
 
19008
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11433
19009
  static const char *NodeId ();
 
19010
  /** Get the name of the node. Can be compared with NodeId(). */
11434
19011
  const char *NodeName () const { return NodeId (); }
 
19012
  /** Get the number of sons. */
11435
19013
  int Sons () const { return 4; }
 
19014
  /** Get the n-th son.
 
19015
   *  \param n The index of the son.
 
19016
   *  \return The n-th son or NULL. */
11436
19017
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11437
19018
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
19019
  /** Replace a son.
 
19020
   *  \param old_son The son to replace.
 
19021
   *  \param new_son The new son. */
11438
19022
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11439
19023
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11440
19024
  }
11447
19031
/*****************************************************************************/
11448
19032
 
11449
19033
 
11450
 
#line 11451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19034
#line 19035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11451
19035
} // closed Puma
 
19036
class CCExprResolve;
 
19037
class CExprResolve;
11452
19038
class WinIfExists;
11453
19039
class WinImportHandler;
11454
19040
class WinMacros;
11455
 
class CMatchSyntax;
11456
 
class ExtGnu;
 
19041
class WinAsm;
 
19042
class WinDeclSpecs;
 
19043
class WinMemberExplSpec;
 
19044
class WinTypeKeywords;
 
19045
class WinFriend;
11457
19046
class ExtAC;
11458
19047
class ExtACBuilderCoupling;
11459
19048
class ExtACSyntaxCoupling;
11460
19049
class ExtACTree;
11461
19050
class ExtACKeywords;
11462
 
class WinAsm;
11463
 
class WinDeclSpecs;
11464
 
class WinMemberExplSpec;
11465
 
class WinTypeKeywords;
 
19051
class ExtGnu;
11466
19052
class PragmaOnceUnitState;
11467
19053
class PragmaOnce;
11468
 
class CCExprResolve;
11469
 
class CExprResolve;
 
19054
class CMatchSyntax;
11470
19055
namespace Puma {
11471
19056
 
11472
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19057
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11473
19058
class CT_Declarator : public CTree {
11474
 
#line 11475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19059
#line 19060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19060
  friend class ::CCExprResolve;
 
19061
  friend class ::CExprResolve;
11475
19062
  friend class ::WinIfExists;
11476
19063
  friend class ::WinImportHandler;
11477
19064
  friend class ::WinMacros;
11478
 
  friend class ::CMatchSyntax;
11479
 
  friend class ::ExtGnu;
 
19065
  friend class ::WinAsm;
 
19066
  friend class ::WinDeclSpecs;
 
19067
  friend class ::WinMemberExplSpec;
 
19068
  friend class ::WinTypeKeywords;
 
19069
  friend class ::WinFriend;
11480
19070
  friend class ::ExtAC;
11481
19071
  friend class ::ExtACBuilderCoupling;
11482
19072
  friend class ::ExtACSyntaxCoupling;
11483
19073
  friend class ::ExtACTree;
11484
19074
  friend class ::ExtACKeywords;
11485
 
  friend class ::WinAsm;
11486
 
  friend class ::WinDeclSpecs;
11487
 
  friend class ::WinMemberExplSpec;
11488
 
  friend class ::WinTypeKeywords;
 
19075
  friend class ::ExtGnu;
11489
19076
  friend class ::PragmaOnceUnitState;
11490
19077
  friend class ::PragmaOnce;
11491
 
  friend class ::CCExprResolve;
11492
 
  friend class ::CExprResolve;
 
19078
  friend class ::CMatchSyntax;
11493
19079
 
11494
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19080
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11495
19081
 
11496
19082
protected:
11497
19083
  CT_Declarator () {}
11506
19092
};
11507
19093
 
11508
19094
 
11509
 
#line 11510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19095
#line 19096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11510
19096
} // closed Puma
 
19097
class CCExprResolve;
 
19098
class CExprResolve;
11511
19099
class WinIfExists;
11512
19100
class WinImportHandler;
11513
19101
class WinMacros;
11514
 
class CMatchSyntax;
11515
 
class ExtGnu;
 
19102
class WinAsm;
 
19103
class WinDeclSpecs;
 
19104
class WinMemberExplSpec;
 
19105
class WinTypeKeywords;
 
19106
class WinFriend;
11516
19107
class ExtAC;
11517
19108
class ExtACBuilderCoupling;
11518
19109
class ExtACSyntaxCoupling;
11519
19110
class ExtACTree;
11520
19111
class ExtACKeywords;
11521
 
class WinAsm;
11522
 
class WinDeclSpecs;
11523
 
class WinMemberExplSpec;
11524
 
class WinTypeKeywords;
 
19112
class ExtGnu;
11525
19113
class PragmaOnceUnitState;
11526
19114
class PragmaOnce;
11527
 
class CCExprResolve;
11528
 
class CExprResolve;
 
19115
class CMatchSyntax;
11529
19116
namespace Puma {
11530
19117
 
11531
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19118
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11532
19119
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
11533
 
#line 11534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19120
#line 19121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19121
  friend class ::CCExprResolve;
 
19122
  friend class ::CExprResolve;
11534
19123
  friend class ::WinIfExists;
11535
19124
  friend class ::WinImportHandler;
11536
19125
  friend class ::WinMacros;
11537
 
  friend class ::CMatchSyntax;
11538
 
  friend class ::ExtGnu;
 
19126
  friend class ::WinAsm;
 
19127
  friend class ::WinDeclSpecs;
 
19128
  friend class ::WinMemberExplSpec;
 
19129
  friend class ::WinTypeKeywords;
 
19130
  friend class ::WinFriend;
11539
19131
  friend class ::ExtAC;
11540
19132
  friend class ::ExtACBuilderCoupling;
11541
19133
  friend class ::ExtACSyntaxCoupling;
11542
19134
  friend class ::ExtACTree;
11543
19135
  friend class ::ExtACKeywords;
11544
 
  friend class ::WinAsm;
11545
 
  friend class ::WinDeclSpecs;
11546
 
  friend class ::WinMemberExplSpec;
11547
 
  friend class ::WinTypeKeywords;
 
19136
  friend class ::ExtGnu;
11548
19137
  friend class ::PragmaOnceUnitState;
11549
19138
  friend class ::PragmaOnce;
11550
 
  friend class ::CCExprResolve;
11551
 
  friend class ::CExprResolve;
11552
 
 
11553
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
11554
 
 
11555
 
  CTree *sons[2]; // declarator, init
 
19139
  friend class ::CMatchSyntax;
 
19140
 
 
19141
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19142
 
 
19143
  CTree *sons[3]; // declarator, ext, init
11556
19144
  CTree *obj_decl;
11557
19145
 
11558
19146
public:
11559
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
11560
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
19147
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
19148
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
19149
    AddSon (obj_decl, 0); 
11561
19150
  }
 
19151
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11562
19152
  static const char *NodeId ();
 
19153
  /** Get the name of the node. Can be compared with NodeId(). */
11563
19154
  const char *NodeName () const { return NodeId (); }
11564
 
  int Sons () const { return CTree::Sons (sons, 2); }
11565
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
19155
  /** Get the number of sons. */
 
19156
  int Sons () const { return CTree::Sons (sons, 3); }
 
19157
  /** Get the n-th son.
 
19158
   *  \param n The index of the son.
 
19159
   *  \return The n-th son or NULL. */
 
19160
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11566
19161
  CTree *Declarator () const { return sons[0]; }
11567
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
19162
  CTree *Extension () const { return sons[1]; }
 
19163
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
11568
19164
  CSemObject *SemObject () const { return (CSemObject*)this; }
11569
19165
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
11570
 
  void Initializer (CTree* i) { sons[1] = i; }
11571
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
19166
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
19167
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
19168
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
19169
  /** Replace a son.
 
19170
   *  \param old_son The son to replace.
 
19171
   *  \param new_son The new son. */
11572
19172
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11573
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
19173
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11574
19174
  }
11575
19175
};
11576
19176
 
11577
19177
 
11578
 
#line 11579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19178
#line 19179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11579
19179
} // closed Puma
 
19180
class CCExprResolve;
 
19181
class CExprResolve;
11580
19182
class WinIfExists;
11581
19183
class WinImportHandler;
11582
19184
class WinMacros;
11583
 
class CMatchSyntax;
11584
 
class ExtGnu;
 
19185
class WinAsm;
 
19186
class WinDeclSpecs;
 
19187
class WinMemberExplSpec;
 
19188
class WinTypeKeywords;
 
19189
class WinFriend;
11585
19190
class ExtAC;
11586
19191
class ExtACBuilderCoupling;
11587
19192
class ExtACSyntaxCoupling;
11588
19193
class ExtACTree;
11589
19194
class ExtACKeywords;
11590
 
class WinAsm;
11591
 
class WinDeclSpecs;
11592
 
class WinMemberExplSpec;
11593
 
class WinTypeKeywords;
 
19195
class ExtGnu;
11594
19196
class PragmaOnceUnitState;
11595
19197
class PragmaOnce;
11596
 
class CCExprResolve;
11597
 
class CExprResolve;
 
19198
class CMatchSyntax;
11598
19199
namespace Puma {
11599
19200
 
11600
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19201
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11601
19202
class CT_BracedDeclarator : public CT_Declarator {
11602
 
#line 11603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19203
#line 19204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19204
  friend class ::CCExprResolve;
 
19205
  friend class ::CExprResolve;
11603
19206
  friend class ::WinIfExists;
11604
19207
  friend class ::WinImportHandler;
11605
19208
  friend class ::WinMacros;
11606
 
  friend class ::CMatchSyntax;
11607
 
  friend class ::ExtGnu;
 
19209
  friend class ::WinAsm;
 
19210
  friend class ::WinDeclSpecs;
 
19211
  friend class ::WinMemberExplSpec;
 
19212
  friend class ::WinTypeKeywords;
 
19213
  friend class ::WinFriend;
11608
19214
  friend class ::ExtAC;
11609
19215
  friend class ::ExtACBuilderCoupling;
11610
19216
  friend class ::ExtACSyntaxCoupling;
11611
19217
  friend class ::ExtACTree;
11612
19218
  friend class ::ExtACKeywords;
11613
 
  friend class ::WinAsm;
11614
 
  friend class ::WinDeclSpecs;
11615
 
  friend class ::WinMemberExplSpec;
11616
 
  friend class ::WinTypeKeywords;
 
19219
  friend class ::ExtGnu;
11617
19220
  friend class ::PragmaOnceUnitState;
11618
19221
  friend class ::PragmaOnce;
11619
 
  friend class ::CCExprResolve;
11620
 
  friend class ::CExprResolve;
 
19222
  friend class ::CMatchSyntax;
11621
19223
 
11622
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19224
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11623
19225
 
11624
19226
  CTree *sons[4]; // open, win_specs, declarator, close
11625
19227
 
11626
19228
public:
11627
19229
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
11628
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
19230
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
19231
    AddSon (sons[2], d); AddSon (sons[3], c); 
11629
19232
  }
11630
19233
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
11631
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
19234
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
19235
    AddSon (sons[2], d); AddSon (sons[3], c); 
11632
19236
  }
 
19237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11633
19238
  static const char *NodeId ();
 
19239
  /** Get the name of the node. Can be compared with NodeId(). */
11634
19240
  const char *NodeName () const { return NodeId (); }
 
19241
  /** Get the number of sons. */
11635
19242
  int Sons () const { return CTree::Sons (sons, 4); }
 
19243
  /** Get the n-th son.
 
19244
   *  \param n The index of the son.
 
19245
   *  \return The n-th son or NULL. */
11636
19246
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11637
19247
  CTree *Declarator () const { return sons[2]; }
 
19248
  /** Replace a son.
 
19249
   *  \param old_son The son to replace.
 
19250
   *  \param new_son The new son. */
11638
19251
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11639
19252
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11640
19253
  }
11641
19254
};
11642
19255
 
11643
19256
 
11644
 
#line 11645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19257
#line 19258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11645
19258
} // closed Puma
 
19259
class CCExprResolve;
 
19260
class CExprResolve;
11646
19261
class WinIfExists;
11647
19262
class WinImportHandler;
11648
19263
class WinMacros;
11649
 
class CMatchSyntax;
11650
 
class ExtGnu;
 
19264
class WinAsm;
 
19265
class WinDeclSpecs;
 
19266
class WinMemberExplSpec;
 
19267
class WinTypeKeywords;
 
19268
class WinFriend;
11651
19269
class ExtAC;
11652
19270
class ExtACBuilderCoupling;
11653
19271
class ExtACSyntaxCoupling;
11654
19272
class ExtACTree;
11655
19273
class ExtACKeywords;
11656
 
class WinAsm;
11657
 
class WinDeclSpecs;
11658
 
class WinMemberExplSpec;
11659
 
class WinTypeKeywords;
 
19274
class ExtGnu;
11660
19275
class PragmaOnceUnitState;
11661
19276
class PragmaOnce;
11662
 
class CCExprResolve;
11663
 
class CExprResolve;
 
19277
class CMatchSyntax;
11664
19278
namespace Puma {
11665
19279
 
11666
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19280
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11667
19281
class CT_ArrayDelimiter : public CTree {
11668
 
#line 11669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19282
#line 19283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19283
  friend class ::CCExprResolve;
 
19284
  friend class ::CExprResolve;
11669
19285
  friend class ::WinIfExists;
11670
19286
  friend class ::WinImportHandler;
11671
19287
  friend class ::WinMacros;
11672
 
  friend class ::CMatchSyntax;
11673
 
  friend class ::ExtGnu;
 
19288
  friend class ::WinAsm;
 
19289
  friend class ::WinDeclSpecs;
 
19290
  friend class ::WinMemberExplSpec;
 
19291
  friend class ::WinTypeKeywords;
 
19292
  friend class ::WinFriend;
11674
19293
  friend class ::ExtAC;
11675
19294
  friend class ::ExtACBuilderCoupling;
11676
19295
  friend class ::ExtACSyntaxCoupling;
11677
19296
  friend class ::ExtACTree;
11678
19297
  friend class ::ExtACKeywords;
11679
 
  friend class ::WinAsm;
11680
 
  friend class ::WinDeclSpecs;
11681
 
  friend class ::WinMemberExplSpec;
11682
 
  friend class ::WinTypeKeywords;
 
19298
  friend class ::ExtGnu;
11683
19299
  friend class ::PragmaOnceUnitState;
11684
19300
  friend class ::PragmaOnce;
11685
 
  friend class ::CCExprResolve;
11686
 
  friend class ::CExprResolve;
 
19301
  friend class ::CMatchSyntax;
11687
19302
 
11688
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19303
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11689
19304
 
11690
19305
  CTree *sons[4]; // star, static, quals, expr
11691
19306
  bool pos0;
11692
19307
 
11693
19308
public:
11694
19309
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
11695
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
19310
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
19311
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
11696
19312
  }
 
19313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11697
19314
  static const char *NodeId ();
 
19315
  /** Get the name of the node. Can be compared with NodeId(). */
11698
19316
  const char *NodeName () const { return NodeId (); }
 
19317
  /** Get the number of sons. */
11699
19318
  int Sons () const { return CTree::Sons (sons, 4); }
 
19319
  /** Get the n-th son.
 
19320
   *  \param n The index of the son.
 
19321
   *  \return The n-th son or NULL. */
11700
19322
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11701
19323
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
11702
19324
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
11703
19325
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
11704
19326
  CTree *Expr () const { return sons[3]; }
 
19327
  /** Replace a son.
 
19328
   *  \param old_son The son to replace.
 
19329
   *  \param new_son The new son. */
11705
19330
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11706
19331
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11707
19332
  }
11708
19333
};
11709
19334
 
11710
19335
 
11711
 
#line 11712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19336
#line 19337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11712
19337
} // closed Puma
 
19338
class CCExprResolve;
 
19339
class CExprResolve;
11713
19340
class WinIfExists;
11714
19341
class WinImportHandler;
11715
19342
class WinMacros;
11716
 
class CMatchSyntax;
11717
 
class ExtGnu;
 
19343
class WinAsm;
 
19344
class WinDeclSpecs;
 
19345
class WinMemberExplSpec;
 
19346
class WinTypeKeywords;
 
19347
class WinFriend;
11718
19348
class ExtAC;
11719
19349
class ExtACBuilderCoupling;
11720
19350
class ExtACSyntaxCoupling;
11721
19351
class ExtACTree;
11722
19352
class ExtACKeywords;
11723
 
class WinAsm;
11724
 
class WinDeclSpecs;
11725
 
class WinMemberExplSpec;
11726
 
class WinTypeKeywords;
 
19353
class ExtGnu;
11727
19354
class PragmaOnceUnitState;
11728
19355
class PragmaOnce;
11729
 
class CCExprResolve;
11730
 
class CExprResolve;
 
19356
class CMatchSyntax;
11731
19357
namespace Puma {
11732
19358
 
11733
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19359
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11734
19360
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
11735
 
#line 11736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19361
#line 19362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19362
  friend class ::CCExprResolve;
 
19363
  friend class ::CExprResolve;
11736
19364
  friend class ::WinIfExists;
11737
19365
  friend class ::WinImportHandler;
11738
19366
  friend class ::WinMacros;
11739
 
  friend class ::CMatchSyntax;
11740
 
  friend class ::ExtGnu;
 
19367
  friend class ::WinAsm;
 
19368
  friend class ::WinDeclSpecs;
 
19369
  friend class ::WinMemberExplSpec;
 
19370
  friend class ::WinTypeKeywords;
 
19371
  friend class ::WinFriend;
11741
19372
  friend class ::ExtAC;
11742
19373
  friend class ::ExtACBuilderCoupling;
11743
19374
  friend class ::ExtACSyntaxCoupling;
11744
19375
  friend class ::ExtACTree;
11745
19376
  friend class ::ExtACKeywords;
11746
 
  friend class ::WinAsm;
11747
 
  friend class ::WinDeclSpecs;
11748
 
  friend class ::WinMemberExplSpec;
11749
 
  friend class ::WinTypeKeywords;
 
19377
  friend class ::ExtGnu;
11750
19378
  friend class ::PragmaOnceUnitState;
11751
19379
  friend class ::PragmaOnce;
11752
 
  friend class ::CCExprResolve;
11753
 
  friend class ::CExprResolve;
 
19380
  friend class ::CMatchSyntax;
11754
19381
 
11755
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19382
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11756
19383
 
11757
19384
  CTree *sons[4]; // declarator, open, delim, close
11758
19385
 
11759
19386
public:
11760
19387
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
11761
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
19388
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
19389
    AddSon (sons[2], ad); AddSon (sons[3], c); 
11762
19390
  }
 
19391
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11763
19392
  static const char *NodeId ();
 
19393
  /** Get the name of the node. Can be compared with NodeId(). */
11764
19394
  const char *NodeName () const { return NodeId (); }
 
19395
  /** Get the number of sons. */
11765
19396
  int Sons () const { return 4; }
 
19397
  /** Get the n-th son.
 
19398
   *  \param n The index of the son.
 
19399
   *  \return The n-th son or NULL. */
11766
19400
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11767
19401
  CTree *Declarator () const { return sons[0]; }
11768
19402
  CT_ArrayDelimiter *Delimiter () const 
11769
19403
   { return (CT_ArrayDelimiter*)sons[2]; }
 
19404
  /** Replace a son.
 
19405
   *  \param old_son The son to replace.
 
19406
   *  \param new_son The new son. */
11770
19407
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11771
19408
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11772
19409
  }
11776
19413
};
11777
19414
 
11778
19415
 
11779
 
#line 11780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19416
#line 19417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11780
19417
} // closed Puma
 
19418
class CCExprResolve;
 
19419
class CExprResolve;
11781
19420
class WinIfExists;
11782
19421
class WinImportHandler;
11783
19422
class WinMacros;
11784
 
class CMatchSyntax;
11785
 
class ExtGnu;
 
19423
class WinAsm;
 
19424
class WinDeclSpecs;
 
19425
class WinMemberExplSpec;
 
19426
class WinTypeKeywords;
 
19427
class WinFriend;
11786
19428
class ExtAC;
11787
19429
class ExtACBuilderCoupling;
11788
19430
class ExtACSyntaxCoupling;
11789
19431
class ExtACTree;
11790
19432
class ExtACKeywords;
11791
 
class WinAsm;
11792
 
class WinDeclSpecs;
11793
 
class WinMemberExplSpec;
11794
 
class WinTypeKeywords;
 
19433
class ExtGnu;
11795
19434
class PragmaOnceUnitState;
11796
19435
class PragmaOnce;
11797
 
class CCExprResolve;
11798
 
class CExprResolve;
 
19436
class CMatchSyntax;
11799
19437
namespace Puma {
11800
19438
 
11801
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19439
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11802
19440
class CT_FctDeclarator : public CT_Declarator {
11803
 
#line 11804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19441
#line 19442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19442
  friend class ::CCExprResolve;
 
19443
  friend class ::CExprResolve;
11804
19444
  friend class ::WinIfExists;
11805
19445
  friend class ::WinImportHandler;
11806
19446
  friend class ::WinMacros;
11807
 
  friend class ::CMatchSyntax;
11808
 
  friend class ::ExtGnu;
 
19447
  friend class ::WinAsm;
 
19448
  friend class ::WinDeclSpecs;
 
19449
  friend class ::WinMemberExplSpec;
 
19450
  friend class ::WinTypeKeywords;
 
19451
  friend class ::WinFriend;
11809
19452
  friend class ::ExtAC;
11810
19453
  friend class ::ExtACBuilderCoupling;
11811
19454
  friend class ::ExtACSyntaxCoupling;
11812
19455
  friend class ::ExtACTree;
11813
19456
  friend class ::ExtACKeywords;
11814
 
  friend class ::WinAsm;
11815
 
  friend class ::WinDeclSpecs;
11816
 
  friend class ::WinMemberExplSpec;
11817
 
  friend class ::WinTypeKeywords;
 
19457
  friend class ::ExtGnu;
11818
19458
  friend class ::PragmaOnceUnitState;
11819
19459
  friend class ::PragmaOnce;
11820
 
  friend class ::CCExprResolve;
11821
 
  friend class ::CExprResolve;
 
19460
  friend class ::CMatchSyntax;
11822
19461
 
11823
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19462
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11824
19463
 
11825
19464
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
11826
19465
 
11827
19466
public:
11828
19467
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
11829
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
19468
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
19469
    AddSon (sons[2], cv); AddSon (sons[3], es); 
11830
19470
  }
 
19471
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11831
19472
  static const char *NodeId ();
 
19473
  /** Get the name of the node. Can be compared with NodeId(). */
11832
19474
  const char *NodeName () const { return NodeId (); }
 
19475
  /** Get the number of sons. */
11833
19476
  int Sons () const { return CTree::Sons (sons, 4); }
 
19477
  /** Get the n-th son.
 
19478
   *  \param n The index of the son.
 
19479
   *  \return The n-th son or NULL. */
11834
19480
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
11835
19481
  CTree *Declarator () const { return sons[0]; }
11836
19482
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
11837
19483
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
11838
19484
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
19485
  /** Replace a son.
 
19486
   *  \param old_son The son to replace.
 
19487
   *  \param new_son The new son. */
11839
19488
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11840
19489
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11841
19490
  }
11842
19491
};
11843
19492
 
11844
19493
 
11845
 
#line 11846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19494
#line 19495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11846
19495
} // closed Puma
 
19496
class CCExprResolve;
 
19497
class CExprResolve;
11847
19498
class WinIfExists;
11848
19499
class WinImportHandler;
11849
19500
class WinMacros;
11850
 
class CMatchSyntax;
11851
 
class ExtGnu;
 
19501
class WinAsm;
 
19502
class WinDeclSpecs;
 
19503
class WinMemberExplSpec;
 
19504
class WinTypeKeywords;
 
19505
class WinFriend;
11852
19506
class ExtAC;
11853
19507
class ExtACBuilderCoupling;
11854
19508
class ExtACSyntaxCoupling;
11855
19509
class ExtACTree;
11856
19510
class ExtACKeywords;
11857
 
class WinAsm;
11858
 
class WinDeclSpecs;
11859
 
class WinMemberExplSpec;
11860
 
class WinTypeKeywords;
 
19511
class ExtGnu;
11861
19512
class PragmaOnceUnitState;
11862
19513
class PragmaOnce;
11863
 
class CCExprResolve;
11864
 
class CExprResolve;
 
19514
class CMatchSyntax;
11865
19515
namespace Puma {
11866
19516
 
11867
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19517
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11868
19518
class CT_RefDeclarator : public CT_Declarator {
11869
 
#line 11870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19519
#line 19520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19520
  friend class ::CCExprResolve;
 
19521
  friend class ::CExprResolve;
11870
19522
  friend class ::WinIfExists;
11871
19523
  friend class ::WinImportHandler;
11872
19524
  friend class ::WinMacros;
11873
 
  friend class ::CMatchSyntax;
11874
 
  friend class ::ExtGnu;
 
19525
  friend class ::WinAsm;
 
19526
  friend class ::WinDeclSpecs;
 
19527
  friend class ::WinMemberExplSpec;
 
19528
  friend class ::WinTypeKeywords;
 
19529
  friend class ::WinFriend;
11875
19530
  friend class ::ExtAC;
11876
19531
  friend class ::ExtACBuilderCoupling;
11877
19532
  friend class ::ExtACSyntaxCoupling;
11878
19533
  friend class ::ExtACTree;
11879
19534
  friend class ::ExtACKeywords;
11880
 
  friend class ::WinAsm;
11881
 
  friend class ::WinDeclSpecs;
11882
 
  friend class ::WinMemberExplSpec;
11883
 
  friend class ::WinTypeKeywords;
 
19535
  friend class ::ExtGnu;
11884
19536
  friend class ::PragmaOnceUnitState;
11885
19537
  friend class ::PragmaOnce;
11886
 
  friend class ::CCExprResolve;
11887
 
  friend class ::CExprResolve;
 
19538
  friend class ::CMatchSyntax;
11888
19539
 
11889
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19540
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11890
19541
 
11891
19542
  CTree *sons[2]; // ref, declarator
11892
19543
 
11893
19544
public:
11894
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
19545
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
19546
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11895
19547
  static const char *NodeId ();
 
19548
  /** Get the name of the node. Can be compared with NodeId(). */
11896
19549
  const char *NodeName () const { return NodeId (); }
 
19550
  /** Get the number of sons. */
11897
19551
  int Sons () const { return 2; }
 
19552
  /** Get the n-th son.
 
19553
   *  \param n The index of the son.
 
19554
   *  \return The n-th son or NULL. */
11898
19555
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
11899
19556
  CTree *Declarator () const { return sons[1]; }
 
19557
  /** Replace a son.
 
19558
   *  \param old_son The son to replace.
 
19559
   *  \param new_son The new son. */
11900
19560
  void ReplaceSon (CTree *old_son, CTree *new_son) {
11901
19561
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11902
19562
  }
11903
19563
};
11904
19564
 
11905
19565
 
11906
 
#line 11907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19566
#line 19567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11907
19567
} // closed Puma
 
19568
class CCExprResolve;
 
19569
class CExprResolve;
11908
19570
class WinIfExists;
11909
19571
class WinImportHandler;
11910
19572
class WinMacros;
11911
 
class CMatchSyntax;
11912
 
class ExtGnu;
 
19573
class WinAsm;
 
19574
class WinDeclSpecs;
 
19575
class WinMemberExplSpec;
 
19576
class WinTypeKeywords;
 
19577
class WinFriend;
11913
19578
class ExtAC;
11914
19579
class ExtACBuilderCoupling;
11915
19580
class ExtACSyntaxCoupling;
11916
19581
class ExtACTree;
11917
19582
class ExtACKeywords;
11918
 
class WinAsm;
11919
 
class WinDeclSpecs;
11920
 
class WinMemberExplSpec;
11921
 
class WinTypeKeywords;
 
19583
class ExtGnu;
11922
19584
class PragmaOnceUnitState;
11923
19585
class PragmaOnce;
11924
 
class CCExprResolve;
11925
 
class CExprResolve;
 
19586
class CMatchSyntax;
11926
19587
namespace Puma {
11927
19588
 
11928
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19589
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11929
19590
class CT_PtrDeclarator : public CT_Declarator {
11930
 
#line 11931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19591
#line 19592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19592
  friend class ::CCExprResolve;
 
19593
  friend class ::CExprResolve;
11931
19594
  friend class ::WinIfExists;
11932
19595
  friend class ::WinImportHandler;
11933
19596
  friend class ::WinMacros;
11934
 
  friend class ::CMatchSyntax;
11935
 
  friend class ::ExtGnu;
 
19597
  friend class ::WinAsm;
 
19598
  friend class ::WinDeclSpecs;
 
19599
  friend class ::WinMemberExplSpec;
 
19600
  friend class ::WinTypeKeywords;
 
19601
  friend class ::WinFriend;
11936
19602
  friend class ::ExtAC;
11937
19603
  friend class ::ExtACBuilderCoupling;
11938
19604
  friend class ::ExtACSyntaxCoupling;
11939
19605
  friend class ::ExtACTree;
11940
19606
  friend class ::ExtACKeywords;
11941
 
  friend class ::WinAsm;
11942
 
  friend class ::WinDeclSpecs;
11943
 
  friend class ::WinMemberExplSpec;
11944
 
  friend class ::WinTypeKeywords;
 
19607
  friend class ::ExtGnu;
11945
19608
  friend class ::PragmaOnceUnitState;
11946
19609
  friend class ::PragmaOnce;
11947
 
  friend class ::CCExprResolve;
11948
 
  friend class ::CExprResolve;
 
19610
  friend class ::CMatchSyntax;
11949
19611
 
11950
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19612
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11951
19613
 
11952
19614
  CTree *sons[3]; // ptr, cv_quals, declarator
11953
19615
 
11954
19616
public:
11955
19617
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
11956
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
19618
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
11957
19619
  }
 
19620
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11958
19621
  static const char *NodeId ();
 
19622
  /** Get the name of the node. Can be compared with NodeId(). */
11959
19623
  const char *NodeName () const { return NodeId (); }
 
19624
  /** Get the number of sons. */
11960
19625
  int Sons () const { return CTree::Sons (sons, 3); }
 
19626
  /** Get the n-th son.
 
19627
   *  \param n The index of the son.
 
19628
   *  \return The n-th son or NULL. */
11961
19629
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
11962
19630
  CTree *Declarator () const { return sons[2]; }
11963
19631
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
19632
  /** Replace a son.
 
19633
   *  \param old_son The son to replace.
 
19634
   *  \param new_son The new son. */
11964
19635
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11965
19636
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11966
19637
  }
11967
19638
};
11968
19639
 
11969
19640
 
11970
 
#line 11971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19641
#line 19642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
11971
19642
} // closed Puma
 
19643
class CCExprResolve;
 
19644
class CExprResolve;
11972
19645
class WinIfExists;
11973
19646
class WinImportHandler;
11974
19647
class WinMacros;
11975
 
class CMatchSyntax;
11976
 
class ExtGnu;
 
19648
class WinAsm;
 
19649
class WinDeclSpecs;
 
19650
class WinMemberExplSpec;
 
19651
class WinTypeKeywords;
 
19652
class WinFriend;
11977
19653
class ExtAC;
11978
19654
class ExtACBuilderCoupling;
11979
19655
class ExtACSyntaxCoupling;
11980
19656
class ExtACTree;
11981
19657
class ExtACKeywords;
11982
 
class WinAsm;
11983
 
class WinDeclSpecs;
11984
 
class WinMemberExplSpec;
11985
 
class WinTypeKeywords;
 
19658
class ExtGnu;
11986
19659
class PragmaOnceUnitState;
11987
19660
class PragmaOnce;
11988
 
class CCExprResolve;
11989
 
class CExprResolve;
 
19661
class CMatchSyntax;
11990
19662
namespace Puma {
11991
19663
 
11992
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19664
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11993
19665
class CT_MembPtrDeclarator : public CT_Declarator {
11994
 
#line 11995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19666
#line 19667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19667
  friend class ::CCExprResolve;
 
19668
  friend class ::CExprResolve;
11995
19669
  friend class ::WinIfExists;
11996
19670
  friend class ::WinImportHandler;
11997
19671
  friend class ::WinMacros;
11998
 
  friend class ::CMatchSyntax;
11999
 
  friend class ::ExtGnu;
 
19672
  friend class ::WinAsm;
 
19673
  friend class ::WinDeclSpecs;
 
19674
  friend class ::WinMemberExplSpec;
 
19675
  friend class ::WinTypeKeywords;
 
19676
  friend class ::WinFriend;
12000
19677
  friend class ::ExtAC;
12001
19678
  friend class ::ExtACBuilderCoupling;
12002
19679
  friend class ::ExtACSyntaxCoupling;
12003
19680
  friend class ::ExtACTree;
12004
19681
  friend class ::ExtACKeywords;
12005
 
  friend class ::WinAsm;
12006
 
  friend class ::WinDeclSpecs;
12007
 
  friend class ::WinMemberExplSpec;
12008
 
  friend class ::WinTypeKeywords;
 
19682
  friend class ::ExtGnu;
12009
19683
  friend class ::PragmaOnceUnitState;
12010
19684
  friend class ::PragmaOnce;
12011
 
  friend class ::CCExprResolve;
12012
 
  friend class ::CExprResolve;
 
19685
  friend class ::CMatchSyntax;
12013
19686
 
12014
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19687
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12015
19688
 
12016
19689
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
12017
19690
 
12018
19691
public:
12019
19692
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
12020
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
19693
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
19694
    AddSon (sons[3], q); AddSon (sons[4], d); 
12021
19695
  }
 
19696
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12022
19697
  static const char *NodeId ();
 
19698
  /** Get the name of the node. Can be compared with NodeId(). */
12023
19699
  const char *NodeName () const { return NodeId (); }
 
19700
  /** Get the number of sons. */
12024
19701
  int Sons () const { return CTree::Sons (sons, 5); }
 
19702
  /** Get the n-th son.
 
19703
   *  \param n The index of the son.
 
19704
   *  \return The n-th son or NULL. */
12025
19705
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12026
19706
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
12027
19707
  CTree *Declarator () const { return sons[4]; }
12028
19708
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
19709
  /** Replace a son.
 
19710
   *  \param old_son The son to replace.
 
19711
   *  \param new_son The new son. */
12029
19712
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12030
19713
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12031
19714
  }
12032
19715
};
12033
19716
 
12034
19717
 
12035
 
#line 12036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19718
#line 19719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12036
19719
} // closed Puma
 
19720
class CCExprResolve;
 
19721
class CExprResolve;
12037
19722
class WinIfExists;
12038
19723
class WinImportHandler;
12039
19724
class WinMacros;
12040
 
class CMatchSyntax;
12041
 
class ExtGnu;
 
19725
class WinAsm;
 
19726
class WinDeclSpecs;
 
19727
class WinMemberExplSpec;
 
19728
class WinTypeKeywords;
 
19729
class WinFriend;
12042
19730
class ExtAC;
12043
19731
class ExtACBuilderCoupling;
12044
19732
class ExtACSyntaxCoupling;
12045
19733
class ExtACTree;
12046
19734
class ExtACKeywords;
12047
 
class WinAsm;
12048
 
class WinDeclSpecs;
12049
 
class WinMemberExplSpec;
12050
 
class WinTypeKeywords;
 
19735
class ExtGnu;
12051
19736
class PragmaOnceUnitState;
12052
19737
class PragmaOnce;
12053
 
class CCExprResolve;
12054
 
class CExprResolve;
 
19738
class CMatchSyntax;
12055
19739
namespace Puma {
12056
19740
 
12057
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19741
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12058
19742
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
12059
 
#line 12060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19743
#line 19744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19744
  friend class ::CCExprResolve;
 
19745
  friend class ::CExprResolve;
12060
19746
  friend class ::WinIfExists;
12061
19747
  friend class ::WinImportHandler;
12062
19748
  friend class ::WinMacros;
12063
 
  friend class ::CMatchSyntax;
12064
 
  friend class ::ExtGnu;
 
19749
  friend class ::WinAsm;
 
19750
  friend class ::WinDeclSpecs;
 
19751
  friend class ::WinMemberExplSpec;
 
19752
  friend class ::WinTypeKeywords;
 
19753
  friend class ::WinFriend;
12065
19754
  friend class ::ExtAC;
12066
19755
  friend class ::ExtACBuilderCoupling;
12067
19756
  friend class ::ExtACSyntaxCoupling;
12068
19757
  friend class ::ExtACTree;
12069
19758
  friend class ::ExtACKeywords;
12070
 
  friend class ::WinAsm;
12071
 
  friend class ::WinDeclSpecs;
12072
 
  friend class ::WinMemberExplSpec;
12073
 
  friend class ::WinTypeKeywords;
 
19759
  friend class ::ExtGnu;
12074
19760
  friend class ::PragmaOnceUnitState;
12075
19761
  friend class ::PragmaOnce;
12076
 
  friend class ::CCExprResolve;
12077
 
  friend class ::CExprResolve;
 
19762
  friend class ::CMatchSyntax;
12078
19763
 
12079
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19764
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12080
19765
 
12081
19766
  CTree *sons[3]; // declarator, colon, expr
12082
19767
 
12083
19768
public:
12084
19769
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
12085
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
19770
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
12086
19771
  }
 
19772
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12087
19773
  static const char *NodeId ();
 
19774
  /** Get the name of the node. Can be compared with NodeId(). */
12088
19775
  const char *NodeName () const { return NodeId (); }
 
19776
  /** Get the number of sons. */
12089
19777
  int Sons () const { return CTree::Sons (sons, 3); }
 
19778
  /** Get the n-th son.
 
19779
   *  \param n The index of the son.
 
19780
   *  \return The n-th son or NULL. */
12090
19781
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12091
19782
  CTree *Declarator () const { return sons[0]; }
12092
19783
  CTree *Expr () const { return sons[2]; }
12093
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
19784
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
12094
19785
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
19786
  /** Replace a son.
 
19787
   *  \param old_son The son to replace.
 
19788
   *  \param new_son The new son. */
12095
19789
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12096
19790
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12097
19791
  }
12104
19798
/*****************************************************************************/
12105
19799
 
12106
19800
 
12107
 
#line 12108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19801
#line 19802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12108
19802
} // closed Puma
 
19803
class CCExprResolve;
 
19804
class CExprResolve;
12109
19805
class WinIfExists;
12110
19806
class WinImportHandler;
12111
19807
class WinMacros;
12112
 
class CMatchSyntax;
12113
 
class ExtGnu;
 
19808
class WinAsm;
 
19809
class WinDeclSpecs;
 
19810
class WinMemberExplSpec;
 
19811
class WinTypeKeywords;
 
19812
class WinFriend;
12114
19813
class ExtAC;
12115
19814
class ExtACBuilderCoupling;
12116
19815
class ExtACSyntaxCoupling;
12117
19816
class ExtACTree;
12118
19817
class ExtACKeywords;
12119
 
class WinAsm;
12120
 
class WinDeclSpecs;
12121
 
class WinMemberExplSpec;
12122
 
class WinTypeKeywords;
 
19818
class ExtGnu;
12123
19819
class PragmaOnceUnitState;
12124
19820
class PragmaOnce;
12125
 
class CCExprResolve;
12126
 
class CExprResolve;
 
19821
class CMatchSyntax;
12127
19822
namespace Puma {
12128
19823
 
12129
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19824
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12130
19825
class CT_Statement : public CTree {
12131
 
#line 12132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19826
#line 19827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19827
  friend class ::CCExprResolve;
 
19828
  friend class ::CExprResolve;
12132
19829
  friend class ::WinIfExists;
12133
19830
  friend class ::WinImportHandler;
12134
19831
  friend class ::WinMacros;
12135
 
  friend class ::CMatchSyntax;
12136
 
  friend class ::ExtGnu;
 
19832
  friend class ::WinAsm;
 
19833
  friend class ::WinDeclSpecs;
 
19834
  friend class ::WinMemberExplSpec;
 
19835
  friend class ::WinTypeKeywords;
 
19836
  friend class ::WinFriend;
12137
19837
  friend class ::ExtAC;
12138
19838
  friend class ::ExtACBuilderCoupling;
12139
19839
  friend class ::ExtACSyntaxCoupling;
12140
19840
  friend class ::ExtACTree;
12141
19841
  friend class ::ExtACKeywords;
12142
 
  friend class ::WinAsm;
12143
 
  friend class ::WinDeclSpecs;
12144
 
  friend class ::WinMemberExplSpec;
12145
 
  friend class ::WinTypeKeywords;
 
19842
  friend class ::ExtGnu;
12146
19843
  friend class ::PragmaOnceUnitState;
12147
19844
  friend class ::PragmaOnce;
12148
 
  friend class ::CCExprResolve;
12149
 
  friend class ::CExprResolve;
 
19845
  friend class ::CMatchSyntax;
12150
19846
 
12151
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19847
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12152
19848
 
12153
19849
protected:
12154
19850
  CT_Statement () {}
 
19851
  virtual CT_Statement *IsStatement () { return this; }
12155
19852
};
12156
19853
 
12157
19854
 
12158
 
#line 12159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19855
#line 19856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12159
19856
} // closed Puma
 
19857
class CCExprResolve;
 
19858
class CExprResolve;
12160
19859
class WinIfExists;
12161
19860
class WinImportHandler;
12162
19861
class WinMacros;
12163
 
class CMatchSyntax;
12164
 
class ExtGnu;
 
19862
class WinAsm;
 
19863
class WinDeclSpecs;
 
19864
class WinMemberExplSpec;
 
19865
class WinTypeKeywords;
 
19866
class WinFriend;
12165
19867
class ExtAC;
12166
19868
class ExtACBuilderCoupling;
12167
19869
class ExtACSyntaxCoupling;
12168
19870
class ExtACTree;
12169
19871
class ExtACKeywords;
12170
 
class WinAsm;
12171
 
class WinDeclSpecs;
12172
 
class WinMemberExplSpec;
12173
 
class WinTypeKeywords;
 
19872
class ExtGnu;
12174
19873
class PragmaOnceUnitState;
12175
19874
class PragmaOnce;
12176
 
class CCExprResolve;
12177
 
class CExprResolve;
 
19875
class CMatchSyntax;
12178
19876
namespace Puma {
12179
19877
 
12180
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19878
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12181
19879
class CT_LabelStmt : public CT_Statement {
12182
 
#line 12183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19880
#line 19881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19881
  friend class ::CCExprResolve;
 
19882
  friend class ::CExprResolve;
12183
19883
  friend class ::WinIfExists;
12184
19884
  friend class ::WinImportHandler;
12185
19885
  friend class ::WinMacros;
12186
 
  friend class ::CMatchSyntax;
12187
 
  friend class ::ExtGnu;
 
19886
  friend class ::WinAsm;
 
19887
  friend class ::WinDeclSpecs;
 
19888
  friend class ::WinMemberExplSpec;
 
19889
  friend class ::WinTypeKeywords;
 
19890
  friend class ::WinFriend;
12188
19891
  friend class ::ExtAC;
12189
19892
  friend class ::ExtACBuilderCoupling;
12190
19893
  friend class ::ExtACSyntaxCoupling;
12191
19894
  friend class ::ExtACTree;
12192
19895
  friend class ::ExtACKeywords;
12193
 
  friend class ::WinAsm;
12194
 
  friend class ::WinDeclSpecs;
12195
 
  friend class ::WinMemberExplSpec;
12196
 
  friend class ::WinTypeKeywords;
 
19896
  friend class ::ExtGnu;
12197
19897
  friend class ::PragmaOnceUnitState;
12198
19898
  friend class ::PragmaOnce;
12199
 
  friend class ::CCExprResolve;
12200
 
  friend class ::CExprResolve;
 
19899
  friend class ::CMatchSyntax;
12201
19900
 
12202
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19901
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12203
19902
 
12204
19903
  CTree *sons[3]; // id, colon, stmt
12205
19904
 
12206
19905
public:
12207
19906
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
12208
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
19907
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
12209
19908
  }
 
19909
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12210
19910
  static const char *NodeId ();
 
19911
  /** Get the name of the node. Can be compared with NodeId(). */
12211
19912
  const char *NodeName () const { return NodeId (); }
 
19913
  /** Get the number of sons. */
12212
19914
  int Sons () const { return 3; }
 
19915
  /** Get the n-th son.
 
19916
   *  \param n The index of the son.
 
19917
   *  \return The n-th son or NULL. */
12213
19918
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12214
19919
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
12215
19920
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
19921
  /** Replace a son.
 
19922
   *  \param old_son The son to replace.
 
19923
   *  \param new_son The new son. */
12216
19924
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12217
19925
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12218
19926
  }
12219
19927
};
12220
19928
 
12221
19929
 
12222
 
#line 12223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19930
#line 19931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12223
19931
} // closed Puma
 
19932
class CCExprResolve;
 
19933
class CExprResolve;
12224
19934
class WinIfExists;
12225
19935
class WinImportHandler;
12226
19936
class WinMacros;
12227
 
class CMatchSyntax;
12228
 
class ExtGnu;
 
19937
class WinAsm;
 
19938
class WinDeclSpecs;
 
19939
class WinMemberExplSpec;
 
19940
class WinTypeKeywords;
 
19941
class WinFriend;
12229
19942
class ExtAC;
12230
19943
class ExtACBuilderCoupling;
12231
19944
class ExtACSyntaxCoupling;
12232
19945
class ExtACTree;
12233
19946
class ExtACKeywords;
12234
 
class WinAsm;
12235
 
class WinDeclSpecs;
12236
 
class WinMemberExplSpec;
12237
 
class WinTypeKeywords;
 
19947
class ExtGnu;
12238
19948
class PragmaOnceUnitState;
12239
19949
class PragmaOnce;
12240
 
class CCExprResolve;
12241
 
class CExprResolve;
 
19950
class CMatchSyntax;
12242
19951
namespace Puma {
12243
19952
 
12244
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19953
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12245
19954
class CT_DefaultStmt : public CT_Statement {
12246
 
#line 12247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
19955
#line 19956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
19956
  friend class ::CCExprResolve;
 
19957
  friend class ::CExprResolve;
12247
19958
  friend class ::WinIfExists;
12248
19959
  friend class ::WinImportHandler;
12249
19960
  friend class ::WinMacros;
12250
 
  friend class ::CMatchSyntax;
12251
 
  friend class ::ExtGnu;
 
19961
  friend class ::WinAsm;
 
19962
  friend class ::WinDeclSpecs;
 
19963
  friend class ::WinMemberExplSpec;
 
19964
  friend class ::WinTypeKeywords;
 
19965
  friend class ::WinFriend;
12252
19966
  friend class ::ExtAC;
12253
19967
  friend class ::ExtACBuilderCoupling;
12254
19968
  friend class ::ExtACSyntaxCoupling;
12255
19969
  friend class ::ExtACTree;
12256
19970
  friend class ::ExtACKeywords;
12257
 
  friend class ::WinAsm;
12258
 
  friend class ::WinDeclSpecs;
12259
 
  friend class ::WinMemberExplSpec;
12260
 
  friend class ::WinTypeKeywords;
 
19971
  friend class ::ExtGnu;
12261
19972
  friend class ::PragmaOnceUnitState;
12262
19973
  friend class ::PragmaOnce;
12263
 
  friend class ::CCExprResolve;
12264
 
  friend class ::CExprResolve;
 
19974
  friend class ::CMatchSyntax;
12265
19975
 
12266
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
19976
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12267
19977
 
12268
19978
  CTree *sons[3]; // keyword, colon, stmt
12269
19979
 
12270
19980
public:
12271
19981
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
12272
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
19982
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
12273
19983
  }
 
19984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12274
19985
  static const char *NodeId ();
 
19986
  /** Get the name of the node. Can be compared with NodeId(). */
12275
19987
  const char *NodeName () const { return NodeId (); }
 
19988
  /** Get the number of sons. */
12276
19989
  int Sons () const { return 3; }
 
19990
  /** Get the n-th son.
 
19991
   *  \param n The index of the son.
 
19992
   *  \return The n-th son or NULL. */
12277
19993
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12278
19994
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
19995
  /** Replace a son.
 
19996
   *  \param old_son The son to replace.
 
19997
   *  \param new_son The new son. */
12279
19998
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12280
19999
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12281
20000
  }
12282
20001
};
12283
20002
 
12284
20003
 
12285
 
#line 12286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20004
#line 20005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12286
20005
} // closed Puma
 
20006
class CCExprResolve;
 
20007
class CExprResolve;
12287
20008
class WinIfExists;
12288
20009
class WinImportHandler;
12289
20010
class WinMacros;
12290
 
class CMatchSyntax;
12291
 
class ExtGnu;
 
20011
class WinAsm;
 
20012
class WinDeclSpecs;
 
20013
class WinMemberExplSpec;
 
20014
class WinTypeKeywords;
 
20015
class WinFriend;
12292
20016
class ExtAC;
12293
20017
class ExtACBuilderCoupling;
12294
20018
class ExtACSyntaxCoupling;
12295
20019
class ExtACTree;
12296
20020
class ExtACKeywords;
12297
 
class WinAsm;
12298
 
class WinDeclSpecs;
12299
 
class WinMemberExplSpec;
12300
 
class WinTypeKeywords;
 
20021
class ExtGnu;
12301
20022
class PragmaOnceUnitState;
12302
20023
class PragmaOnce;
12303
 
class CCExprResolve;
12304
 
class CExprResolve;
 
20024
class CMatchSyntax;
12305
20025
namespace Puma {
12306
20026
 
12307
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20027
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12308
20028
class CT_TryStmt : public CT_Statement {
12309
 
#line 12310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20029
#line 20030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20030
  friend class ::CCExprResolve;
 
20031
  friend class ::CExprResolve;
12310
20032
  friend class ::WinIfExists;
12311
20033
  friend class ::WinImportHandler;
12312
20034
  friend class ::WinMacros;
12313
 
  friend class ::CMatchSyntax;
12314
 
  friend class ::ExtGnu;
 
20035
  friend class ::WinAsm;
 
20036
  friend class ::WinDeclSpecs;
 
20037
  friend class ::WinMemberExplSpec;
 
20038
  friend class ::WinTypeKeywords;
 
20039
  friend class ::WinFriend;
12315
20040
  friend class ::ExtAC;
12316
20041
  friend class ::ExtACBuilderCoupling;
12317
20042
  friend class ::ExtACSyntaxCoupling;
12318
20043
  friend class ::ExtACTree;
12319
20044
  friend class ::ExtACKeywords;
12320
 
  friend class ::WinAsm;
12321
 
  friend class ::WinDeclSpecs;
12322
 
  friend class ::WinMemberExplSpec;
12323
 
  friend class ::WinTypeKeywords;
 
20045
  friend class ::ExtGnu;
12324
20046
  friend class ::PragmaOnceUnitState;
12325
20047
  friend class ::PragmaOnce;
12326
 
  friend class ::CCExprResolve;
12327
 
  friend class ::CExprResolve;
 
20048
  friend class ::CMatchSyntax;
12328
20049
 
12329
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20050
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12330
20051
 
12331
20052
  CTree *sons[3]; // try, stmt, handlers
12332
20053
 
12333
20054
public:
12334
20055
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
12335
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
20056
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
12336
20057
  }
 
20058
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12337
20059
  static const char *NodeId ();
 
20060
  /** Get the name of the node. Can be compared with NodeId(). */
12338
20061
  const char *NodeName () const { return NodeId (); }
 
20062
  /** Get the number of sons. */
12339
20063
  int Sons () const { return 3; }
 
20064
  /** Get the n-th son.
 
20065
   *  \param n The index of the son.
 
20066
   *  \return The n-th son or NULL. */
12340
20067
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12341
20068
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
12342
20069
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
20070
  /** Replace a son.
 
20071
   *  \param old_son The son to replace.
 
20072
   *  \param new_son The new son. */
12343
20073
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12344
20074
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12345
20075
  }
12346
20076
};
12347
20077
 
12348
20078
 
12349
 
#line 12350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20079
#line 20080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12350
20080
} // closed Puma
 
20081
class CCExprResolve;
 
20082
class CExprResolve;
12351
20083
class WinIfExists;
12352
20084
class WinImportHandler;
12353
20085
class WinMacros;
12354
 
class CMatchSyntax;
12355
 
class ExtGnu;
 
20086
class WinAsm;
 
20087
class WinDeclSpecs;
 
20088
class WinMemberExplSpec;
 
20089
class WinTypeKeywords;
 
20090
class WinFriend;
12356
20091
class ExtAC;
12357
20092
class ExtACBuilderCoupling;
12358
20093
class ExtACSyntaxCoupling;
12359
20094
class ExtACTree;
12360
20095
class ExtACKeywords;
12361
 
class WinAsm;
12362
 
class WinDeclSpecs;
12363
 
class WinMemberExplSpec;
12364
 
class WinTypeKeywords;
 
20096
class ExtGnu;
12365
20097
class PragmaOnceUnitState;
12366
20098
class PragmaOnce;
12367
 
class CCExprResolve;
12368
 
class CExprResolve;
 
20099
class CMatchSyntax;
12369
20100
namespace Puma {
12370
20101
 
12371
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20102
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12372
20103
class CT_CaseStmt : public CT_Statement {
12373
 
#line 12374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20104
#line 20105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20105
  friend class ::CCExprResolve;
 
20106
  friend class ::CExprResolve;
12374
20107
  friend class ::WinIfExists;
12375
20108
  friend class ::WinImportHandler;
12376
20109
  friend class ::WinMacros;
12377
 
  friend class ::CMatchSyntax;
12378
 
  friend class ::ExtGnu;
 
20110
  friend class ::WinAsm;
 
20111
  friend class ::WinDeclSpecs;
 
20112
  friend class ::WinMemberExplSpec;
 
20113
  friend class ::WinTypeKeywords;
 
20114
  friend class ::WinFriend;
12379
20115
  friend class ::ExtAC;
12380
20116
  friend class ::ExtACBuilderCoupling;
12381
20117
  friend class ::ExtACSyntaxCoupling;
12382
20118
  friend class ::ExtACTree;
12383
20119
  friend class ::ExtACKeywords;
12384
 
  friend class ::WinAsm;
12385
 
  friend class ::WinDeclSpecs;
12386
 
  friend class ::WinMemberExplSpec;
12387
 
  friend class ::WinTypeKeywords;
 
20120
  friend class ::ExtGnu;
12388
20121
  friend class ::PragmaOnceUnitState;
12389
20122
  friend class ::PragmaOnce;
12390
 
  friend class ::CCExprResolve;
12391
 
  friend class ::CExprResolve;
 
20123
  friend class ::CMatchSyntax;
12392
20124
 
12393
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20125
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12394
20126
 
12395
20127
  CTree *sons[4]; // keyword, expr, colon, stmt
12396
20128
 
12397
20129
public:
12398
20130
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
12399
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
20131
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
20132
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
12400
20133
  }
 
20134
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12401
20135
  static const char *NodeId ();
 
20136
  /** Get the name of the node. Can be compared with NodeId(). */
12402
20137
  const char *NodeName () const { return NodeId (); }
 
20138
  /** Get the number of sons. */
12403
20139
  int Sons () const { return 4; }
 
20140
  /** Get the n-th son.
 
20141
   *  \param n The index of the son.
 
20142
   *  \return The n-th son or NULL. */
12404
20143
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12405
20144
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
12406
20145
  CTree *Expr () const { return sons[1]; }
 
20146
  /** Replace a son.
 
20147
   *  \param old_son The son to replace.
 
20148
   *  \param new_son The new son. */
12407
20149
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12408
20150
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12409
20151
  }
12410
20152
};
12411
20153
 
12412
20154
 
12413
 
#line 12414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20155
#line 20156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12414
20156
} // closed Puma
 
20157
class CCExprResolve;
 
20158
class CExprResolve;
12415
20159
class WinIfExists;
12416
20160
class WinImportHandler;
12417
20161
class WinMacros;
12418
 
class CMatchSyntax;
12419
 
class ExtGnu;
 
20162
class WinAsm;
 
20163
class WinDeclSpecs;
 
20164
class WinMemberExplSpec;
 
20165
class WinTypeKeywords;
 
20166
class WinFriend;
12420
20167
class ExtAC;
12421
20168
class ExtACBuilderCoupling;
12422
20169
class ExtACSyntaxCoupling;
12423
20170
class ExtACTree;
12424
20171
class ExtACKeywords;
12425
 
class WinAsm;
12426
 
class WinDeclSpecs;
12427
 
class WinMemberExplSpec;
12428
 
class WinTypeKeywords;
 
20172
class ExtGnu;
12429
20173
class PragmaOnceUnitState;
12430
20174
class PragmaOnce;
12431
 
class CCExprResolve;
12432
 
class CExprResolve;
 
20175
class CMatchSyntax;
12433
20176
namespace Puma {
12434
20177
 
12435
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20178
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12436
20179
class CT_ExprStmt : public CT_Statement {
12437
 
#line 12438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20180
#line 20181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20181
  friend class ::CCExprResolve;
 
20182
  friend class ::CExprResolve;
12438
20183
  friend class ::WinIfExists;
12439
20184
  friend class ::WinImportHandler;
12440
20185
  friend class ::WinMacros;
12441
 
  friend class ::CMatchSyntax;
12442
 
  friend class ::ExtGnu;
 
20186
  friend class ::WinAsm;
 
20187
  friend class ::WinDeclSpecs;
 
20188
  friend class ::WinMemberExplSpec;
 
20189
  friend class ::WinTypeKeywords;
 
20190
  friend class ::WinFriend;
12443
20191
  friend class ::ExtAC;
12444
20192
  friend class ::ExtACBuilderCoupling;
12445
20193
  friend class ::ExtACSyntaxCoupling;
12446
20194
  friend class ::ExtACTree;
12447
20195
  friend class ::ExtACKeywords;
12448
 
  friend class ::WinAsm;
12449
 
  friend class ::WinDeclSpecs;
12450
 
  friend class ::WinMemberExplSpec;
12451
 
  friend class ::WinTypeKeywords;
 
20196
  friend class ::ExtGnu;
12452
20197
  friend class ::PragmaOnceUnitState;
12453
20198
  friend class ::PragmaOnce;
12454
 
  friend class ::CCExprResolve;
12455
 
  friend class ::CExprResolve;
 
20199
  friend class ::CMatchSyntax;
12456
20200
 
12457
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20201
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12458
20202
 
12459
20203
  CTree *sons[2]; // expr, semi_colon
12460
20204
 
12461
20205
public:
12462
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
20206
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
20207
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12463
20208
  static const char *NodeId ();
 
20209
  /** Get the name of the node. Can be compared with NodeId(). */
12464
20210
  const char *NodeName () const { return NodeId (); }
 
20211
  /** Get the number of sons. */
12465
20212
  int Sons () const { return CTree::Sons (sons, 2); }
 
20213
  /** Get the n-th son.
 
20214
   *  \param n The index of the son.
 
20215
   *  \return The n-th son or NULL. */
12466
20216
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12467
20217
  CTree *Expr () const { return sons[0]; }
 
20218
  /** Replace a son.
 
20219
   *  \param old_son The son to replace.
 
20220
   *  \param new_son The new son. */
12468
20221
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12469
20222
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12470
20223
  }
12471
20224
};
12472
20225
 
12473
20226
 
12474
 
#line 12475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20227
#line 20228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12475
20228
} // closed Puma
 
20229
class CCExprResolve;
 
20230
class CExprResolve;
12476
20231
class WinIfExists;
12477
20232
class WinImportHandler;
12478
20233
class WinMacros;
12479
 
class CMatchSyntax;
12480
 
class ExtGnu;
 
20234
class WinAsm;
 
20235
class WinDeclSpecs;
 
20236
class WinMemberExplSpec;
 
20237
class WinTypeKeywords;
 
20238
class WinFriend;
12481
20239
class ExtAC;
12482
20240
class ExtACBuilderCoupling;
12483
20241
class ExtACSyntaxCoupling;
12484
20242
class ExtACTree;
12485
20243
class ExtACKeywords;
12486
 
class WinAsm;
12487
 
class WinDeclSpecs;
12488
 
class WinMemberExplSpec;
12489
 
class WinTypeKeywords;
 
20244
class ExtGnu;
12490
20245
class PragmaOnceUnitState;
12491
20246
class PragmaOnce;
12492
 
class CCExprResolve;
12493
 
class CExprResolve;
 
20247
class CMatchSyntax;
12494
20248
namespace Puma {
12495
20249
 
12496
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20250
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12497
20251
class CT_DeclStmt : public CT_Statement {
12498
 
#line 12499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20252
#line 20253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20253
  friend class ::CCExprResolve;
 
20254
  friend class ::CExprResolve;
12499
20255
  friend class ::WinIfExists;
12500
20256
  friend class ::WinImportHandler;
12501
20257
  friend class ::WinMacros;
12502
 
  friend class ::CMatchSyntax;
12503
 
  friend class ::ExtGnu;
 
20258
  friend class ::WinAsm;
 
20259
  friend class ::WinDeclSpecs;
 
20260
  friend class ::WinMemberExplSpec;
 
20261
  friend class ::WinTypeKeywords;
 
20262
  friend class ::WinFriend;
12504
20263
  friend class ::ExtAC;
12505
20264
  friend class ::ExtACBuilderCoupling;
12506
20265
  friend class ::ExtACSyntaxCoupling;
12507
20266
  friend class ::ExtACTree;
12508
20267
  friend class ::ExtACKeywords;
12509
 
  friend class ::WinAsm;
12510
 
  friend class ::WinDeclSpecs;
12511
 
  friend class ::WinMemberExplSpec;
12512
 
  friend class ::WinTypeKeywords;
 
20268
  friend class ::ExtGnu;
12513
20269
  friend class ::PragmaOnceUnitState;
12514
20270
  friend class ::PragmaOnce;
12515
 
  friend class ::CCExprResolve;
12516
 
  friend class ::CExprResolve;
 
20271
  friend class ::CMatchSyntax;
12517
20272
 
12518
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20273
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12519
20274
 
12520
20275
  CTree *_decl;
12521
20276
 
12522
20277
public:
12523
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
20278
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
20279
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12524
20280
  static const char *NodeId ();
 
20281
  /** Get the name of the node. Can be compared with NodeId(). */
12525
20282
  const char *NodeName () const { return NodeId (); }
 
20283
  /** Get the number of sons. */
12526
20284
  int Sons () const { return 1; }
 
20285
  /** Get the n-th son.
 
20286
   *  \param n The index of the son.
 
20287
   *  \return The n-th son or NULL. */
12527
20288
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
20289
  /** Replace a son.
 
20290
   *  \param old_son The son to replace.
 
20291
   *  \param new_son The new son. */
12528
20292
  void ReplaceSon (CTree *old_son, CTree *new_son) 
12529
 
   { if (old_son == _decl) _decl = new_son; }
 
20293
   { CTree::ReplaceSon (_decl, old_son, new_son); }
12530
20294
};
12531
20295
 
12532
20296
 
12533
 
#line 12534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20297
#line 20298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12534
20298
} // closed Puma
 
20299
class CCExprResolve;
 
20300
class CExprResolve;
12535
20301
class WinIfExists;
12536
20302
class WinImportHandler;
12537
20303
class WinMacros;
12538
 
class CMatchSyntax;
12539
 
class ExtGnu;
 
20304
class WinAsm;
 
20305
class WinDeclSpecs;
 
20306
class WinMemberExplSpec;
 
20307
class WinTypeKeywords;
 
20308
class WinFriend;
12540
20309
class ExtAC;
12541
20310
class ExtACBuilderCoupling;
12542
20311
class ExtACSyntaxCoupling;
12543
20312
class ExtACTree;
12544
20313
class ExtACKeywords;
12545
 
class WinAsm;
12546
 
class WinDeclSpecs;
12547
 
class WinMemberExplSpec;
12548
 
class WinTypeKeywords;
 
20314
class ExtGnu;
12549
20315
class PragmaOnceUnitState;
12550
20316
class PragmaOnce;
12551
 
class CCExprResolve;
12552
 
class CExprResolve;
 
20317
class CMatchSyntax;
12553
20318
namespace Puma {
12554
20319
 
12555
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20320
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12556
20321
class CT_SwitchStmt : public CT_Statement, public CSemScope {
12557
 
#line 12558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20322
#line 20323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20323
  friend class ::CCExprResolve;
 
20324
  friend class ::CExprResolve;
12558
20325
  friend class ::WinIfExists;
12559
20326
  friend class ::WinImportHandler;
12560
20327
  friend class ::WinMacros;
12561
 
  friend class ::CMatchSyntax;
12562
 
  friend class ::ExtGnu;
 
20328
  friend class ::WinAsm;
 
20329
  friend class ::WinDeclSpecs;
 
20330
  friend class ::WinMemberExplSpec;
 
20331
  friend class ::WinTypeKeywords;
 
20332
  friend class ::WinFriend;
12563
20333
  friend class ::ExtAC;
12564
20334
  friend class ::ExtACBuilderCoupling;
12565
20335
  friend class ::ExtACSyntaxCoupling;
12566
20336
  friend class ::ExtACTree;
12567
20337
  friend class ::ExtACKeywords;
12568
 
  friend class ::WinAsm;
12569
 
  friend class ::WinDeclSpecs;
12570
 
  friend class ::WinMemberExplSpec;
12571
 
  friend class ::WinTypeKeywords;
 
20338
  friend class ::ExtGnu;
12572
20339
  friend class ::PragmaOnceUnitState;
12573
20340
  friend class ::PragmaOnce;
12574
 
  friend class ::CCExprResolve;
12575
 
  friend class ::CExprResolve;
 
20341
  friend class ::CMatchSyntax;
12576
20342
 
12577
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20343
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12578
20344
 
12579
20345
  CTree *sons[5]; // keyword, open, cond, close, stmt
12580
20346
 
12581
20347
public:
12582
20348
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12583
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
20349
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
20350
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
12584
20351
  }
 
20352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12585
20353
  static const char *NodeId ();
 
20354
  /** Get the name of the node. Can be compared with NodeId(). */
12586
20355
  const char *NodeName () const { return NodeId (); }
 
20356
  /** Get the number of sons. */
12587
20357
  int Sons () const { return 5; }
 
20358
  /** Get the n-th son.
 
20359
   *  \param n The index of the son.
 
20360
   *  \return The n-th son or NULL. */
12588
20361
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12589
20362
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12590
20363
  CTree *Condition () const { return sons[2]; }
 
20364
  /** Replace a son.
 
20365
   *  \param old_son The son to replace.
 
20366
   *  \param new_son The new son. */
12591
20367
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12592
20368
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12593
20369
  }
 
20370
  CSemScope *SemScope () const { return (CSemScope*)this; }
12594
20371
};
12595
20372
 
12596
20373
 
12597
 
#line 12598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20374
#line 20375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12598
20375
} // closed Puma
 
20376
class CCExprResolve;
 
20377
class CExprResolve;
12599
20378
class WinIfExists;
12600
20379
class WinImportHandler;
12601
20380
class WinMacros;
12602
 
class CMatchSyntax;
12603
 
class ExtGnu;
 
20381
class WinAsm;
 
20382
class WinDeclSpecs;
 
20383
class WinMemberExplSpec;
 
20384
class WinTypeKeywords;
 
20385
class WinFriend;
12604
20386
class ExtAC;
12605
20387
class ExtACBuilderCoupling;
12606
20388
class ExtACSyntaxCoupling;
12607
20389
class ExtACTree;
12608
20390
class ExtACKeywords;
12609
 
class WinAsm;
12610
 
class WinDeclSpecs;
12611
 
class WinMemberExplSpec;
12612
 
class WinTypeKeywords;
 
20391
class ExtGnu;
12613
20392
class PragmaOnceUnitState;
12614
20393
class PragmaOnce;
12615
 
class CCExprResolve;
12616
 
class CExprResolve;
 
20394
class CMatchSyntax;
12617
20395
namespace Puma {
12618
20396
 
12619
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20397
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12620
20398
class CT_IfStmt : public CT_Statement, public CSemScope {
12621
 
#line 12622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20399
#line 20400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20400
  friend class ::CCExprResolve;
 
20401
  friend class ::CExprResolve;
12622
20402
  friend class ::WinIfExists;
12623
20403
  friend class ::WinImportHandler;
12624
20404
  friend class ::WinMacros;
12625
 
  friend class ::CMatchSyntax;
12626
 
  friend class ::ExtGnu;
 
20405
  friend class ::WinAsm;
 
20406
  friend class ::WinDeclSpecs;
 
20407
  friend class ::WinMemberExplSpec;
 
20408
  friend class ::WinTypeKeywords;
 
20409
  friend class ::WinFriend;
12627
20410
  friend class ::ExtAC;
12628
20411
  friend class ::ExtACBuilderCoupling;
12629
20412
  friend class ::ExtACSyntaxCoupling;
12630
20413
  friend class ::ExtACTree;
12631
20414
  friend class ::ExtACKeywords;
12632
 
  friend class ::WinAsm;
12633
 
  friend class ::WinDeclSpecs;
12634
 
  friend class ::WinMemberExplSpec;
12635
 
  friend class ::WinTypeKeywords;
 
20415
  friend class ::ExtGnu;
12636
20416
  friend class ::PragmaOnceUnitState;
12637
20417
  friend class ::PragmaOnce;
12638
 
  friend class ::CCExprResolve;
12639
 
  friend class ::CExprResolve;
 
20418
  friend class ::CMatchSyntax;
12640
20419
 
12641
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20420
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12642
20421
 
12643
20422
  CTree *sons[5]; // keyword, open, cond, close, stmt
12644
20423
 
12645
20424
public:
12646
20425
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
12647
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
20426
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
20427
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
12648
20428
  }
 
20429
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12649
20430
  static const char *NodeId ();
 
20431
  /** Get the name of the node. Can be compared with NodeId(). */
12650
20432
  const char *NodeName () const { return NodeId (); }
 
20433
  /** Get the number of sons. */
12651
20434
  int Sons () const { return 5; }
 
20435
  /** Get the n-th son.
 
20436
   *  \param n The index of the son.
 
20437
   *  \return The n-th son or NULL. */
12652
20438
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12653
20439
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
12654
20440
  CTree *Condition () const { return sons[2]; }
 
20441
  /** Replace a son.
 
20442
   *  \param old_son The son to replace.
 
20443
   *  \param new_son The new son. */
12655
20444
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12656
20445
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12657
20446
  }
 
20447
  CSemScope *SemScope () const { return (CSemScope*)this; }
12658
20448
};
12659
20449
 
12660
20450
 
12661
 
#line 12662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20451
#line 20452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12662
20452
} // closed Puma
 
20453
class CCExprResolve;
 
20454
class CExprResolve;
12663
20455
class WinIfExists;
12664
20456
class WinImportHandler;
12665
20457
class WinMacros;
12666
 
class CMatchSyntax;
12667
 
class ExtGnu;
 
20458
class WinAsm;
 
20459
class WinDeclSpecs;
 
20460
class WinMemberExplSpec;
 
20461
class WinTypeKeywords;
 
20462
class WinFriend;
12668
20463
class ExtAC;
12669
20464
class ExtACBuilderCoupling;
12670
20465
class ExtACSyntaxCoupling;
12671
20466
class ExtACTree;
12672
20467
class ExtACKeywords;
12673
 
class WinAsm;
12674
 
class WinDeclSpecs;
12675
 
class WinMemberExplSpec;
12676
 
class WinTypeKeywords;
 
20468
class ExtGnu;
12677
20469
class PragmaOnceUnitState;
12678
20470
class PragmaOnce;
12679
 
class CCExprResolve;
12680
 
class CExprResolve;
 
20471
class CMatchSyntax;
12681
20472
namespace Puma {
12682
20473
 
12683
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20474
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12684
20475
class CT_IfElseStmt : public CT_Statement, public CSemScope {
12685
 
#line 12686 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20476
#line 20477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20477
  friend class ::CCExprResolve;
 
20478
  friend class ::CExprResolve;
12686
20479
  friend class ::WinIfExists;
12687
20480
  friend class ::WinImportHandler;
12688
20481
  friend class ::WinMacros;
12689
 
  friend class ::CMatchSyntax;
12690
 
  friend class ::ExtGnu;
 
20482
  friend class ::WinAsm;
 
20483
  friend class ::WinDeclSpecs;
 
20484
  friend class ::WinMemberExplSpec;
 
20485
  friend class ::WinTypeKeywords;
 
20486
  friend class ::WinFriend;
12691
20487
  friend class ::ExtAC;
12692
20488
  friend class ::ExtACBuilderCoupling;
12693
20489
  friend class ::ExtACSyntaxCoupling;
12694
20490
  friend class ::ExtACTree;
12695
20491
  friend class ::ExtACKeywords;
12696
 
  friend class ::WinAsm;
12697
 
  friend class ::WinDeclSpecs;
12698
 
  friend class ::WinMemberExplSpec;
12699
 
  friend class ::WinTypeKeywords;
 
20492
  friend class ::ExtGnu;
12700
20493
  friend class ::PragmaOnceUnitState;
12701
20494
  friend class ::PragmaOnce;
12702
 
  friend class ::CCExprResolve;
12703
 
  friend class ::CExprResolve;
 
20495
  friend class ::CMatchSyntax;
12704
20496
 
12705
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20497
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12706
20498
 
12707
20499
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
12708
20500
 
12709
20501
public:
12710
20502
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
12711
20503
                 CTree *is, CTree *e, CTree *es) {
12712
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
12713
 
    sons[5] = e; sons[6] = es; 
 
20504
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
20505
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
20506
    AddSon (sons[6], es); 
12714
20507
  }
 
20508
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12715
20509
  static const char *NodeId ();
 
20510
  /** Get the name of the node. Can be compared with NodeId(). */
12716
20511
  const char *NodeName () const { return NodeId (); }
 
20512
  /** Get the number of sons. */
12717
20513
  int Sons () const { return 7; }
 
20514
  /** Get the n-th son.
 
20515
   *  \param n The index of the son.
 
20516
   *  \return The n-th son or NULL. */
12718
20517
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
12719
20518
  CTree *Condition () const { return sons[2]; }
12720
20519
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
12721
20520
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
20521
  /** Replace a son.
 
20522
   *  \param old_son The son to replace.
 
20523
   *  \param new_son The new son. */
12722
20524
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12723
20525
    CTree::ReplaceSon (sons, 7, old_son, new_son);
12724
20526
  }
 
20527
  CSemScope *SemScope () const { return (CSemScope*)this; }
12725
20528
};
12726
20529
 
12727
20530
 
12728
 
#line 12729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20531
#line 20532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12729
20532
} // closed Puma
 
20533
class CCExprResolve;
 
20534
class CExprResolve;
12730
20535
class WinIfExists;
12731
20536
class WinImportHandler;
12732
20537
class WinMacros;
12733
 
class CMatchSyntax;
12734
 
class ExtGnu;
 
20538
class WinAsm;
 
20539
class WinDeclSpecs;
 
20540
class WinMemberExplSpec;
 
20541
class WinTypeKeywords;
 
20542
class WinFriend;
12735
20543
class ExtAC;
12736
20544
class ExtACBuilderCoupling;
12737
20545
class ExtACSyntaxCoupling;
12738
20546
class ExtACTree;
12739
20547
class ExtACKeywords;
12740
 
class WinAsm;
12741
 
class WinDeclSpecs;
12742
 
class WinMemberExplSpec;
12743
 
class WinTypeKeywords;
 
20548
class ExtGnu;
12744
20549
class PragmaOnceUnitState;
12745
20550
class PragmaOnce;
12746
 
class CCExprResolve;
12747
 
class CExprResolve;
 
20551
class CMatchSyntax;
12748
20552
namespace Puma {
12749
20553
 
12750
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20554
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12751
20555
class CT_BreakStmt : public CT_Statement {
12752
 
#line 12753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20556
#line 20557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20557
  friend class ::CCExprResolve;
 
20558
  friend class ::CExprResolve;
12753
20559
  friend class ::WinIfExists;
12754
20560
  friend class ::WinImportHandler;
12755
20561
  friend class ::WinMacros;
12756
 
  friend class ::CMatchSyntax;
12757
 
  friend class ::ExtGnu;
 
20562
  friend class ::WinAsm;
 
20563
  friend class ::WinDeclSpecs;
 
20564
  friend class ::WinMemberExplSpec;
 
20565
  friend class ::WinTypeKeywords;
 
20566
  friend class ::WinFriend;
12758
20567
  friend class ::ExtAC;
12759
20568
  friend class ::ExtACBuilderCoupling;
12760
20569
  friend class ::ExtACSyntaxCoupling;
12761
20570
  friend class ::ExtACTree;
12762
20571
  friend class ::ExtACKeywords;
12763
 
  friend class ::WinAsm;
12764
 
  friend class ::WinDeclSpecs;
12765
 
  friend class ::WinMemberExplSpec;
12766
 
  friend class ::WinTypeKeywords;
 
20572
  friend class ::ExtGnu;
12767
20573
  friend class ::PragmaOnceUnitState;
12768
20574
  friend class ::PragmaOnce;
12769
 
  friend class ::CCExprResolve;
12770
 
  friend class ::CExprResolve;
 
20575
  friend class ::CMatchSyntax;
12771
20576
 
12772
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20577
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12773
20578
 
12774
20579
  CTree *sons[2]; // key, semi_colon
12775
20580
 
12776
20581
public:
12777
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
20582
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
20583
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12778
20584
  static const char *NodeId ();
 
20585
  /** Get the name of the node. Can be compared with NodeId(). */
12779
20586
  const char *NodeName () const { return NodeId (); }
 
20587
  /** Get the number of sons. */
12780
20588
  int Sons () const { return 2; }
 
20589
  /** Get the n-th son.
 
20590
   *  \param n The index of the son.
 
20591
   *  \return The n-th son or NULL. */
12781
20592
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
20593
  /** Replace a son.
 
20594
   *  \param old_son The son to replace.
 
20595
   *  \param new_son The new son. */
12782
20596
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12783
20597
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12784
20598
  }
12785
20599
};
12786
20600
 
12787
20601
 
12788
 
#line 12789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20602
#line 20603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12789
20603
} // closed Puma
 
20604
class CCExprResolve;
 
20605
class CExprResolve;
12790
20606
class WinIfExists;
12791
20607
class WinImportHandler;
12792
20608
class WinMacros;
12793
 
class CMatchSyntax;
12794
 
class ExtGnu;
 
20609
class WinAsm;
 
20610
class WinDeclSpecs;
 
20611
class WinMemberExplSpec;
 
20612
class WinTypeKeywords;
 
20613
class WinFriend;
12795
20614
class ExtAC;
12796
20615
class ExtACBuilderCoupling;
12797
20616
class ExtACSyntaxCoupling;
12798
20617
class ExtACTree;
12799
20618
class ExtACKeywords;
12800
 
class WinAsm;
12801
 
class WinDeclSpecs;
12802
 
class WinMemberExplSpec;
12803
 
class WinTypeKeywords;
 
20619
class ExtGnu;
12804
20620
class PragmaOnceUnitState;
12805
20621
class PragmaOnce;
12806
 
class CCExprResolve;
12807
 
class CExprResolve;
 
20622
class CMatchSyntax;
12808
20623
namespace Puma {
12809
20624
 
12810
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20625
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12811
20626
class CT_ContinueStmt : public CT_Statement {
12812
 
#line 12813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20627
#line 20628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20628
  friend class ::CCExprResolve;
 
20629
  friend class ::CExprResolve;
12813
20630
  friend class ::WinIfExists;
12814
20631
  friend class ::WinImportHandler;
12815
20632
  friend class ::WinMacros;
12816
 
  friend class ::CMatchSyntax;
12817
 
  friend class ::ExtGnu;
 
20633
  friend class ::WinAsm;
 
20634
  friend class ::WinDeclSpecs;
 
20635
  friend class ::WinMemberExplSpec;
 
20636
  friend class ::WinTypeKeywords;
 
20637
  friend class ::WinFriend;
12818
20638
  friend class ::ExtAC;
12819
20639
  friend class ::ExtACBuilderCoupling;
12820
20640
  friend class ::ExtACSyntaxCoupling;
12821
20641
  friend class ::ExtACTree;
12822
20642
  friend class ::ExtACKeywords;
12823
 
  friend class ::WinAsm;
12824
 
  friend class ::WinDeclSpecs;
12825
 
  friend class ::WinMemberExplSpec;
12826
 
  friend class ::WinTypeKeywords;
 
20643
  friend class ::ExtGnu;
12827
20644
  friend class ::PragmaOnceUnitState;
12828
20645
  friend class ::PragmaOnce;
12829
 
  friend class ::CCExprResolve;
12830
 
  friend class ::CExprResolve;
 
20646
  friend class ::CMatchSyntax;
12831
20647
 
12832
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20648
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12833
20649
 
12834
20650
  CTree *sons[2]; // key, semi_colon
12835
20651
 
12836
20652
public:
12837
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
20653
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
20654
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12838
20655
  static const char *NodeId ();
 
20656
  /** Get the name of the node. Can be compared with NodeId(). */
12839
20657
  const char *NodeName () const { return NodeId (); }
 
20658
  /** Get the number of sons. */
12840
20659
  int Sons () const { return 2; }
 
20660
  /** Get the n-th son.
 
20661
   *  \param n The index of the son.
 
20662
   *  \return The n-th son or NULL. */
12841
20663
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
20664
  /** Replace a son.
 
20665
   *  \param old_son The son to replace.
 
20666
   *  \param new_son The new son. */
12842
20667
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12843
20668
    CTree::ReplaceSon (sons, 2, old_son, new_son);
12844
20669
  }
12845
20670
};
12846
20671
 
12847
20672
 
12848
 
#line 12849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20673
#line 20674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12849
20674
} // closed Puma
 
20675
class CCExprResolve;
 
20676
class CExprResolve;
12850
20677
class WinIfExists;
12851
20678
class WinImportHandler;
12852
20679
class WinMacros;
12853
 
class CMatchSyntax;
12854
 
class ExtGnu;
 
20680
class WinAsm;
 
20681
class WinDeclSpecs;
 
20682
class WinMemberExplSpec;
 
20683
class WinTypeKeywords;
 
20684
class WinFriend;
12855
20685
class ExtAC;
12856
20686
class ExtACBuilderCoupling;
12857
20687
class ExtACSyntaxCoupling;
12858
20688
class ExtACTree;
12859
20689
class ExtACKeywords;
12860
 
class WinAsm;
12861
 
class WinDeclSpecs;
12862
 
class WinMemberExplSpec;
12863
 
class WinTypeKeywords;
 
20690
class ExtGnu;
12864
20691
class PragmaOnceUnitState;
12865
20692
class PragmaOnce;
12866
 
class CCExprResolve;
12867
 
class CExprResolve;
 
20693
class CMatchSyntax;
12868
20694
namespace Puma {
12869
20695
 
12870
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20696
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12871
20697
class CT_GotoStmt : public CT_Statement {
12872
 
#line 12873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20698
#line 20699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20699
  friend class ::CCExprResolve;
 
20700
  friend class ::CExprResolve;
12873
20701
  friend class ::WinIfExists;
12874
20702
  friend class ::WinImportHandler;
12875
20703
  friend class ::WinMacros;
12876
 
  friend class ::CMatchSyntax;
12877
 
  friend class ::ExtGnu;
 
20704
  friend class ::WinAsm;
 
20705
  friend class ::WinDeclSpecs;
 
20706
  friend class ::WinMemberExplSpec;
 
20707
  friend class ::WinTypeKeywords;
 
20708
  friend class ::WinFriend;
12878
20709
  friend class ::ExtAC;
12879
20710
  friend class ::ExtACBuilderCoupling;
12880
20711
  friend class ::ExtACSyntaxCoupling;
12881
20712
  friend class ::ExtACTree;
12882
20713
  friend class ::ExtACKeywords;
12883
 
  friend class ::WinAsm;
12884
 
  friend class ::WinDeclSpecs;
12885
 
  friend class ::WinMemberExplSpec;
12886
 
  friend class ::WinTypeKeywords;
 
20714
  friend class ::ExtGnu;
12887
20715
  friend class ::PragmaOnceUnitState;
12888
20716
  friend class ::PragmaOnce;
12889
 
  friend class ::CCExprResolve;
12890
 
  friend class ::CExprResolve;
 
20717
  friend class ::CMatchSyntax;
12891
20718
 
12892
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20719
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12893
20720
 
12894
20721
  CTree *sons[3]; // key, label, semi_colon
12895
20722
 
12896
20723
public:
12897
20724
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
12898
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
20725
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
12899
20726
  }
 
20727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12900
20728
  static const char *NodeId ();
 
20729
  /** Get the name of the node. Can be compared with NodeId(). */
12901
20730
  const char *NodeName () const { return NodeId (); }
 
20731
  /** Get the number of sons. */
12902
20732
  int Sons () const { return 3; }
 
20733
  /** Get the n-th son.
 
20734
   *  \param n The index of the son.
 
20735
   *  \return The n-th son or NULL. */
12903
20736
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12904
20737
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
20738
  /** Replace a son.
 
20739
   *  \param old_son The son to replace.
 
20740
   *  \param new_son The new son. */
12905
20741
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12906
20742
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12907
20743
  }
12908
20744
};
12909
20745
 
12910
20746
 
12911
 
#line 12912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20747
#line 20748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12912
20748
} // closed Puma
 
20749
class CCExprResolve;
 
20750
class CExprResolve;
12913
20751
class WinIfExists;
12914
20752
class WinImportHandler;
12915
20753
class WinMacros;
12916
 
class CMatchSyntax;
12917
 
class ExtGnu;
 
20754
class WinAsm;
 
20755
class WinDeclSpecs;
 
20756
class WinMemberExplSpec;
 
20757
class WinTypeKeywords;
 
20758
class WinFriend;
12918
20759
class ExtAC;
12919
20760
class ExtACBuilderCoupling;
12920
20761
class ExtACSyntaxCoupling;
12921
20762
class ExtACTree;
12922
20763
class ExtACKeywords;
12923
 
class WinAsm;
12924
 
class WinDeclSpecs;
12925
 
class WinMemberExplSpec;
12926
 
class WinTypeKeywords;
 
20764
class ExtGnu;
12927
20765
class PragmaOnceUnitState;
12928
20766
class PragmaOnce;
12929
 
class CCExprResolve;
12930
 
class CExprResolve;
 
20767
class CMatchSyntax;
12931
20768
namespace Puma {
12932
20769
 
12933
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20770
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12934
20771
class CT_ReturnStmt : public CT_Statement {
12935
 
#line 12936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20772
#line 20773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20773
  friend class ::CCExprResolve;
 
20774
  friend class ::CExprResolve;
12936
20775
  friend class ::WinIfExists;
12937
20776
  friend class ::WinImportHandler;
12938
20777
  friend class ::WinMacros;
12939
 
  friend class ::CMatchSyntax;
12940
 
  friend class ::ExtGnu;
 
20778
  friend class ::WinAsm;
 
20779
  friend class ::WinDeclSpecs;
 
20780
  friend class ::WinMemberExplSpec;
 
20781
  friend class ::WinTypeKeywords;
 
20782
  friend class ::WinFriend;
12941
20783
  friend class ::ExtAC;
12942
20784
  friend class ::ExtACBuilderCoupling;
12943
20785
  friend class ::ExtACSyntaxCoupling;
12944
20786
  friend class ::ExtACTree;
12945
20787
  friend class ::ExtACKeywords;
12946
 
  friend class ::WinAsm;
12947
 
  friend class ::WinDeclSpecs;
12948
 
  friend class ::WinMemberExplSpec;
12949
 
  friend class ::WinTypeKeywords;
 
20788
  friend class ::ExtGnu;
12950
20789
  friend class ::PragmaOnceUnitState;
12951
20790
  friend class ::PragmaOnce;
12952
 
  friend class ::CCExprResolve;
12953
 
  friend class ::CExprResolve;
 
20791
  friend class ::CMatchSyntax;
12954
20792
 
12955
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20793
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12956
20794
 
12957
20795
  CTree *sons[3]; // key, expr, semi_colon
12958
20796
 
12959
20797
public:
12960
20798
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
12961
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
20799
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
12962
20800
  }
 
20801
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12963
20802
  static const char *NodeId ();
 
20803
  /** Get the name of the node. Can be compared with NodeId(). */
12964
20804
  const char *NodeName () const { return NodeId (); }
 
20805
  /** Get the number of sons. */
12965
20806
  int Sons () const { return CTree::Sons (sons, 3); }
 
20807
  /** Get the n-th son.
 
20808
   *  \param n The index of the son.
 
20809
   *  \return The n-th son or NULL. */
12966
20810
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12967
20811
  CTree *Expr () const { return sons[1]; }
 
20812
  /** Replace a son.
 
20813
   *  \param old_son The son to replace.
 
20814
   *  \param new_son The new son. */
12968
20815
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12969
20816
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12970
20817
  }
12971
20818
};
12972
20819
 
12973
20820
 
12974
 
#line 12975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20821
#line 20822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
12975
20822
} // closed Puma
 
20823
class CCExprResolve;
 
20824
class CExprResolve;
12976
20825
class WinIfExists;
12977
20826
class WinImportHandler;
12978
20827
class WinMacros;
12979
 
class CMatchSyntax;
12980
 
class ExtGnu;
 
20828
class WinAsm;
 
20829
class WinDeclSpecs;
 
20830
class WinMemberExplSpec;
 
20831
class WinTypeKeywords;
 
20832
class WinFriend;
12981
20833
class ExtAC;
12982
20834
class ExtACBuilderCoupling;
12983
20835
class ExtACSyntaxCoupling;
12984
20836
class ExtACTree;
12985
20837
class ExtACKeywords;
12986
 
class WinAsm;
12987
 
class WinDeclSpecs;
12988
 
class WinMemberExplSpec;
12989
 
class WinTypeKeywords;
 
20838
class ExtGnu;
12990
20839
class PragmaOnceUnitState;
12991
20840
class PragmaOnce;
12992
 
class CCExprResolve;
12993
 
class CExprResolve;
 
20841
class CMatchSyntax;
12994
20842
namespace Puma {
12995
20843
 
12996
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20844
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12997
20845
class CT_WhileStmt : public CT_Statement, public CSemScope {
12998
 
#line 12999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20846
#line 20847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20847
  friend class ::CCExprResolve;
 
20848
  friend class ::CExprResolve;
12999
20849
  friend class ::WinIfExists;
13000
20850
  friend class ::WinImportHandler;
13001
20851
  friend class ::WinMacros;
13002
 
  friend class ::CMatchSyntax;
13003
 
  friend class ::ExtGnu;
 
20852
  friend class ::WinAsm;
 
20853
  friend class ::WinDeclSpecs;
 
20854
  friend class ::WinMemberExplSpec;
 
20855
  friend class ::WinTypeKeywords;
 
20856
  friend class ::WinFriend;
13004
20857
  friend class ::ExtAC;
13005
20858
  friend class ::ExtACBuilderCoupling;
13006
20859
  friend class ::ExtACSyntaxCoupling;
13007
20860
  friend class ::ExtACTree;
13008
20861
  friend class ::ExtACKeywords;
13009
 
  friend class ::WinAsm;
13010
 
  friend class ::WinDeclSpecs;
13011
 
  friend class ::WinMemberExplSpec;
13012
 
  friend class ::WinTypeKeywords;
 
20862
  friend class ::ExtGnu;
13013
20863
  friend class ::PragmaOnceUnitState;
13014
20864
  friend class ::PragmaOnce;
13015
 
  friend class ::CCExprResolve;
13016
 
  friend class ::CExprResolve;
 
20865
  friend class ::CMatchSyntax;
13017
20866
 
13018
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20867
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13019
20868
 
13020
20869
  CTree *sons[5]; // key, open, cond, close, stmt
13021
20870
 
13022
20871
public:
13023
20872
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
13024
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
20873
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
20874
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
13025
20875
  }
 
20876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13026
20877
  static const char *NodeId ();
 
20878
  /** Get the name of the node. Can be compared with NodeId(). */
13027
20879
  const char *NodeName () const { return NodeId (); }
 
20880
  /** Get the number of sons. */
13028
20881
  int Sons () const { return 5; }
 
20882
  /** Get the n-th son.
 
20883
   *  \param n The index of the son.
 
20884
   *  \return The n-th son or NULL. */
13029
20885
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13030
20886
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
13031
20887
  CTree *Condition () const { return sons[2]; }
 
20888
  /** Replace a son.
 
20889
   *  \param old_son The son to replace.
 
20890
   *  \param new_son The new son. */
13032
20891
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13033
20892
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13034
20893
  }
 
20894
  CSemScope *SemScope () const { return (CSemScope*)this; }
13035
20895
};
13036
20896
 
13037
20897
 
13038
 
#line 13039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20898
#line 20899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13039
20899
} // closed Puma
 
20900
class CCExprResolve;
 
20901
class CExprResolve;
13040
20902
class WinIfExists;
13041
20903
class WinImportHandler;
13042
20904
class WinMacros;
13043
 
class CMatchSyntax;
13044
 
class ExtGnu;
 
20905
class WinAsm;
 
20906
class WinDeclSpecs;
 
20907
class WinMemberExplSpec;
 
20908
class WinTypeKeywords;
 
20909
class WinFriend;
13045
20910
class ExtAC;
13046
20911
class ExtACBuilderCoupling;
13047
20912
class ExtACSyntaxCoupling;
13048
20913
class ExtACTree;
13049
20914
class ExtACKeywords;
13050
 
class WinAsm;
13051
 
class WinDeclSpecs;
13052
 
class WinMemberExplSpec;
13053
 
class WinTypeKeywords;
 
20915
class ExtGnu;
13054
20916
class PragmaOnceUnitState;
13055
20917
class PragmaOnce;
13056
 
class CCExprResolve;
13057
 
class CExprResolve;
 
20918
class CMatchSyntax;
13058
20919
namespace Puma {
13059
20920
 
13060
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20921
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13061
20922
class CT_DoStmt : public CT_Statement {
13062
 
#line 13063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20923
#line 20924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
20924
  friend class ::CCExprResolve;
 
20925
  friend class ::CExprResolve;
13063
20926
  friend class ::WinIfExists;
13064
20927
  friend class ::WinImportHandler;
13065
20928
  friend class ::WinMacros;
13066
 
  friend class ::CMatchSyntax;
13067
 
  friend class ::ExtGnu;
 
20929
  friend class ::WinAsm;
 
20930
  friend class ::WinDeclSpecs;
 
20931
  friend class ::WinMemberExplSpec;
 
20932
  friend class ::WinTypeKeywords;
 
20933
  friend class ::WinFriend;
13068
20934
  friend class ::ExtAC;
13069
20935
  friend class ::ExtACBuilderCoupling;
13070
20936
  friend class ::ExtACSyntaxCoupling;
13071
20937
  friend class ::ExtACTree;
13072
20938
  friend class ::ExtACKeywords;
13073
 
  friend class ::WinAsm;
13074
 
  friend class ::WinDeclSpecs;
13075
 
  friend class ::WinMemberExplSpec;
13076
 
  friend class ::WinTypeKeywords;
 
20939
  friend class ::ExtGnu;
13077
20940
  friend class ::PragmaOnceUnitState;
13078
20941
  friend class ::PragmaOnce;
13079
 
  friend class ::CCExprResolve;
13080
 
  friend class ::CExprResolve;
 
20942
  friend class ::CMatchSyntax;
13081
20943
 
13082
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20944
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13083
20945
 
13084
20946
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
13085
20947
 
13086
20948
public:
13087
20949
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
13088
20950
             CTree *c, CTree *sc) {
13089
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
13090
 
    sons[5] = c; sons[6] = sc; 
 
20951
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
20952
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
20953
    AddSon (sons[6], sc); 
13091
20954
  }
 
20955
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13092
20956
  static const char *NodeId ();
 
20957
  /** Get the name of the node. Can be compared with NodeId(). */
13093
20958
  const char *NodeName () const { return NodeId (); }
 
20959
  /** Get the number of sons. */
13094
20960
  int Sons () const { return 7; }
 
20961
  /** Get the n-th son.
 
20962
   *  \param n The index of the son.
 
20963
   *  \return The n-th son or NULL. */
13095
20964
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
13096
20965
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
13097
20966
  CTree *Expr () const { return sons[4]; }
 
20967
  /** Replace a son.
 
20968
   *  \param old_son The son to replace.
 
20969
   *  \param new_son The new son. */
13098
20970
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13099
20971
    CTree::ReplaceSon (sons, 7, old_son, new_son);
13100
20972
  }
13101
20973
};
13102
20974
 
13103
20975
 
13104
 
#line 13105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
20976
#line 20977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13105
20977
} // closed Puma
 
20978
class CCExprResolve;
 
20979
class CExprResolve;
13106
20980
class WinIfExists;
13107
20981
class WinImportHandler;
13108
20982
class WinMacros;
13109
 
class CMatchSyntax;
13110
 
class ExtGnu;
 
20983
class WinAsm;
 
20984
class WinDeclSpecs;
 
20985
class WinMemberExplSpec;
 
20986
class WinTypeKeywords;
 
20987
class WinFriend;
13111
20988
class ExtAC;
13112
20989
class ExtACBuilderCoupling;
13113
20990
class ExtACSyntaxCoupling;
13114
20991
class ExtACTree;
13115
20992
class ExtACKeywords;
13116
 
class WinAsm;
13117
 
class WinDeclSpecs;
13118
 
class WinMemberExplSpec;
13119
 
class WinTypeKeywords;
 
20993
class ExtGnu;
13120
20994
class PragmaOnceUnitState;
13121
20995
class PragmaOnce;
13122
 
class CCExprResolve;
13123
 
class CExprResolve;
 
20996
class CMatchSyntax;
13124
20997
namespace Puma {
13125
20998
 
13126
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
20999
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13127
21000
class CT_ForStmt : public CT_Statement, public CSemScope {
13128
 
#line 13129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21001
#line 21002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21002
  friend class ::CCExprResolve;
 
21003
  friend class ::CExprResolve;
13129
21004
  friend class ::WinIfExists;
13130
21005
  friend class ::WinImportHandler;
13131
21006
  friend class ::WinMacros;
13132
 
  friend class ::CMatchSyntax;
13133
 
  friend class ::ExtGnu;
 
21007
  friend class ::WinAsm;
 
21008
  friend class ::WinDeclSpecs;
 
21009
  friend class ::WinMemberExplSpec;
 
21010
  friend class ::WinTypeKeywords;
 
21011
  friend class ::WinFriend;
13134
21012
  friend class ::ExtAC;
13135
21013
  friend class ::ExtACBuilderCoupling;
13136
21014
  friend class ::ExtACSyntaxCoupling;
13137
21015
  friend class ::ExtACTree;
13138
21016
  friend class ::ExtACKeywords;
13139
 
  friend class ::WinAsm;
13140
 
  friend class ::WinDeclSpecs;
13141
 
  friend class ::WinMemberExplSpec;
13142
 
  friend class ::WinTypeKeywords;
 
21017
  friend class ::ExtGnu;
13143
21018
  friend class ::PragmaOnceUnitState;
13144
21019
  friend class ::PragmaOnce;
13145
 
  friend class ::CCExprResolve;
13146
 
  friend class ::CExprResolve;
 
21020
  friend class ::CMatchSyntax;
13147
21021
 
13148
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21022
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13149
21023
 
13150
21024
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
13151
21025
 
13152
21026
public:
13153
21027
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
13154
21028
              CTree *e, CTree *c, CTree *stmt) {
13155
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
13156
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
21029
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
21030
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
21031
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
13157
21032
  }
 
21033
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13158
21034
  static const char *NodeId ();
 
21035
  /** Get the name of the node. Can be compared with NodeId(). */
13159
21036
  const char *NodeName () const { return NodeId (); }
 
21037
  /** Get the number of sons. */
13160
21038
  int Sons () const { return CTree::Sons (sons, 8); }
 
21039
  /** Get the n-th son.
 
21040
   *  \param n The index of the son.
 
21041
   *  \return The n-th son or NULL. */
13161
21042
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
13162
21043
  CTree *InitStmt () const { return sons[2]; }
13163
21044
  CTree *Condition () const { return sons[3]; }
13164
21045
  CTree *Expr () const { return sons[5]; }
13165
21046
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
21047
  /** Replace a son.
 
21048
   *  \param old_son The son to replace.
 
21049
   *  \param new_son The new son. */
13166
21050
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13167
21051
    CTree::ReplaceSon (sons, 8, old_son, new_son);
13168
21052
  }
 
21053
  CSemScope *SemScope () const { return (CSemScope*)this; }
13169
21054
};
13170
21055
 
13171
21056
 
13172
 
#line 13173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21057
#line 21058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13173
21058
} // closed Puma
 
21059
class CCExprResolve;
 
21060
class CExprResolve;
13174
21061
class WinIfExists;
13175
21062
class WinImportHandler;
13176
21063
class WinMacros;
13177
 
class CMatchSyntax;
13178
 
class ExtGnu;
 
21064
class WinAsm;
 
21065
class WinDeclSpecs;
 
21066
class WinMemberExplSpec;
 
21067
class WinTypeKeywords;
 
21068
class WinFriend;
13179
21069
class ExtAC;
13180
21070
class ExtACBuilderCoupling;
13181
21071
class ExtACSyntaxCoupling;
13182
21072
class ExtACTree;
13183
21073
class ExtACKeywords;
13184
 
class WinAsm;
13185
 
class WinDeclSpecs;
13186
 
class WinMemberExplSpec;
13187
 
class WinTypeKeywords;
 
21074
class ExtGnu;
13188
21075
class PragmaOnceUnitState;
13189
21076
class PragmaOnce;
13190
 
class CCExprResolve;
13191
 
class CExprResolve;
 
21077
class CMatchSyntax;
13192
21078
namespace Puma {
13193
21079
 
13194
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21080
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13195
21081
class CT_Condition : public CT_Decl, public CSemObject {
13196
 
#line 13197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21082
#line 21083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21083
  friend class ::CCExprResolve;
 
21084
  friend class ::CExprResolve;
13197
21085
  friend class ::WinIfExists;
13198
21086
  friend class ::WinImportHandler;
13199
21087
  friend class ::WinMacros;
13200
 
  friend class ::CMatchSyntax;
13201
 
  friend class ::ExtGnu;
 
21088
  friend class ::WinAsm;
 
21089
  friend class ::WinDeclSpecs;
 
21090
  friend class ::WinMemberExplSpec;
 
21091
  friend class ::WinTypeKeywords;
 
21092
  friend class ::WinFriend;
13202
21093
  friend class ::ExtAC;
13203
21094
  friend class ::ExtACBuilderCoupling;
13204
21095
  friend class ::ExtACSyntaxCoupling;
13205
21096
  friend class ::ExtACTree;
13206
21097
  friend class ::ExtACKeywords;
13207
 
  friend class ::WinAsm;
13208
 
  friend class ::WinDeclSpecs;
13209
 
  friend class ::WinMemberExplSpec;
13210
 
  friend class ::WinTypeKeywords;
 
21098
  friend class ::ExtGnu;
13211
21099
  friend class ::PragmaOnceUnitState;
13212
21100
  friend class ::PragmaOnce;
13213
 
  friend class ::CCExprResolve;
13214
 
  friend class ::CExprResolve;
 
21101
  friend class ::CMatchSyntax;
13215
21102
 
13216
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21103
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13217
21104
 
13218
21105
  CTree *sons[3]; // declspecs, declarator, init
13219
21106
 
13220
21107
public:
13221
21108
  CT_Condition (CTree *dsl, CTree *d) {
13222
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
21109
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
13223
21110
  }
 
21111
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13224
21112
  static const char *NodeId ();
 
21113
  /** Get the name of the node. Can be compared with NodeId(). */
13225
21114
  const char *NodeName () const { return NodeId (); }
 
21115
  /** Get the number of sons. */
13226
21116
  int Sons () const { return CTree::Sons (sons, 3); }
 
21117
  /** Get the n-th son.
 
21118
   *  \param n The index of the son.
 
21119
   *  \return The n-th son or NULL. */
13227
21120
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13228
21121
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
13229
21122
  CTree *Declarator () const { return sons[1]; }
13230
21123
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
13231
21124
  CSemObject *SemObject () const { return (CSemObject*)this; }
13232
 
  void Initializer (CTree *i) { sons[2] = i; }
 
21125
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
21126
  /** Replace a son.
 
21127
   *  \param old_son The son to replace.
 
21128
   *  \param new_son The new son. */
13233
21129
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13234
21130
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13235
21131
  }
13242
21138
/*****************************************************************************/
13243
21139
 
13244
21140
 
13245
 
#line 13246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21141
#line 21142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13246
21142
} // closed Puma
 
21143
class CCExprResolve;
 
21144
class CExprResolve;
13247
21145
class WinIfExists;
13248
21146
class WinImportHandler;
13249
21147
class WinMacros;
13250
 
class CMatchSyntax;
13251
 
class ExtGnu;
 
21148
class WinAsm;
 
21149
class WinDeclSpecs;
 
21150
class WinMemberExplSpec;
 
21151
class WinTypeKeywords;
 
21152
class WinFriend;
13252
21153
class ExtAC;
13253
21154
class ExtACBuilderCoupling;
13254
21155
class ExtACSyntaxCoupling;
13255
21156
class ExtACTree;
13256
21157
class ExtACKeywords;
 
21158
class ExtGnu;
 
21159
class PragmaOnceUnitState;
 
21160
class PragmaOnce;
 
21161
class CMatchSyntax;
 
21162
namespace Puma {
 
21163
 
 
21164
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21165
 
 
21166
#line 21167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21167
} // closed Puma
 
21168
 
 
21169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
21170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
21171
 
 
21172
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21173
// This file is part of PUMA.
 
21174
// Copyright (C) 1999-2003  The PUMA developer team.
 
21175
//                                                                
 
21176
// This program is free software;  you can redistribute it and/or 
 
21177
// modify it under the terms of the GNU General Public License as 
 
21178
// published by the Free Software Foundation; either version 2 of 
 
21179
// the License, or (at your option) any later version.            
 
21180
//                                                                
 
21181
// This program is distributed in the hope that it will be useful,
 
21182
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21183
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21184
// GNU General Public License for more details.                   
 
21185
//                                                                
 
21186
// You should have received a copy of the GNU General Public      
 
21187
// License along with this program; if not, write to the Free     
 
21188
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21189
// MA  02111-1307  USA                                            
 
21190
 
 
21191
#ifndef __ExtACTree_ah__
 
21192
#define __ExtACTree_ah__
 
21193
 
 
21194
// TODO:
 
21195
// this shall be introduced by the ExtAC aspect as soon as the include cycle
 
21196
// problem is solved!
 
21197
 
 
21198
namespace Puma {
 
21199
  class CTree;
 
21200
}
 
21201
 
 
21202
 
 
21203
#line 21204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21204
class CCExprResolve;
 
21205
class CExprResolve;
 
21206
class WinIfExists;
 
21207
class WinImportHandler;
 
21208
class WinMacros;
13257
21209
class WinAsm;
13258
21210
class WinDeclSpecs;
13259
21211
class WinMemberExplSpec;
13260
21212
class WinTypeKeywords;
 
21213
class WinFriend;
 
21214
class ExtAC;
 
21215
class ExtACBuilderCoupling;
 
21216
class ExtACSyntaxCoupling;
 
21217
class ExtACKeywords;
 
21218
class ExtGnu;
13261
21219
class PragmaOnceUnitState;
13262
21220
class PragmaOnce;
13263
 
class CCExprResolve;
13264
 
class CExprResolve;
 
21221
class CMatchSyntax;
 
21222
 
 
21223
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21224
class ExtACTree {
 
21225
#line 21226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21226
 
 
21227
public:
 
21228
  static ExtACTree *aspectof () {
 
21229
    static ExtACTree __instance;
 
21230
    return &__instance;
 
21231
  }
 
21232
  static ExtACTree *aspectOf () {
 
21233
    return aspectof ();
 
21234
  }
 
21235
private:
 
21236
 
 
21237
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21238
 
 
21239
#line 21240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21240
  friend class ::CCExprResolve;
 
21241
  friend class ::CExprResolve;
 
21242
  friend class ::WinIfExists;
 
21243
  friend class ::WinImportHandler;
 
21244
  friend class ::WinMacros;
 
21245
  friend class ::WinAsm;
 
21246
  friend class ::WinDeclSpecs;
 
21247
  friend class ::WinMemberExplSpec;
 
21248
  friend class ::WinTypeKeywords;
 
21249
  friend class ::WinFriend;
 
21250
  friend class ::ExtAC;
 
21251
  friend class ::ExtACBuilderCoupling;
 
21252
  friend class ::ExtACSyntaxCoupling;
 
21253
  friend class ::ExtACKeywords;
 
21254
  friend class ::ExtGnu;
 
21255
  friend class ::PragmaOnceUnitState;
 
21256
  friend class ::PragmaOnce;
 
21257
  friend class ::CMatchSyntax;
 
21258
 
 
21259
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21260
 
 
21261
  
 
21262
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21263
 
 
21264
  
 
21265
  // implemented in a separate .cc file, because Builder.h is needed!
 
21266
  void delete_tree (Puma::CTree *t);
 
21267
  
 
21268
  
 
21269
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21270
 
 
21271
  
 
21272
  
 
21273
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21274
 
 
21275
public: template<class JoinPoint> void __a0_after 
 
21276
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21277
 
 
21278
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21279
(JoinPoint *tjp)
 
21280
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21281
 {
 
21282
#line 21283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21283
 
 
21284
  typedef typename JoinPoint::That __JP_That;
 
21285
  typedef typename JoinPoint::Target __JP_Target;
 
21286
  typedef typename JoinPoint::Result __JP_Result;
 
21287
 
 
21288
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21289
 
 
21290
    tjp->that ()->_intro_members = 0;
 
21291
    tjp->that ()->_base_intros = 0;
 
21292
  }
 
21293
#line 21294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21294
 
 
21295
private:
 
21296
 
 
21297
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21298
 
 
21299
  
 
21300
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21301
 
 
21302
public: template<class JoinPoint> void __a1_before 
 
21303
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21304
 
 
21305
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21306
(JoinPoint *tjp)
 
21307
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21308
 {
 
21309
#line 21310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21310
 
 
21311
  typedef typename JoinPoint::That __JP_That;
 
21312
  typedef typename JoinPoint::Target __JP_Target;
 
21313
  typedef typename JoinPoint::Result __JP_Result;
 
21314
 
 
21315
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21316
 
 
21317
    delete_tree (tjp->that ()->_intro_members);
 
21318
    delete_tree (tjp->that ()->_base_intros);
 
21319
  }
 
21320
#line 21321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21321
 
 
21322
private:
 
21323
 
 
21324
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21325
 
 
21326
};
 
21327
#line 21328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21328
 
 
21329
namespace AC {
 
21330
  template <class JoinPoint>
 
21331
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
 
21332
    ::ExtACTree::aspectof()->__a0_after (tjp);
 
21333
  }
 
21334
  template <class JoinPoint>
 
21335
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
 
21336
    ::ExtACTree::aspectof()->__a1_before (tjp);
 
21337
  }
 
21338
 
21339
 
 
21340
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21341
 
 
21342
 
 
21343
#endif // __ExtACTree_ah__
 
21344
 
 
21345
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21346
#endif
13265
21347
namespace Puma {
13266
21348
 
13267
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21349
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13268
21350
class CT_ClassDef : public CT_Decl, public CSemObject {
13269
 
#line 13270 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21351
#line 21352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21352
  friend class ::CCExprResolve;
 
21353
  friend class ::CExprResolve;
13270
21354
  friend class ::WinIfExists;
13271
21355
  friend class ::WinImportHandler;
13272
21356
  friend class ::WinMacros;
13273
 
  friend class ::CMatchSyntax;
13274
 
  friend class ::ExtGnu;
 
21357
  friend class ::WinAsm;
 
21358
  friend class ::WinDeclSpecs;
 
21359
  friend class ::WinMemberExplSpec;
 
21360
  friend class ::WinTypeKeywords;
 
21361
  friend class ::WinFriend;
13275
21362
  friend class ::ExtAC;
13276
21363
  friend class ::ExtACBuilderCoupling;
13277
21364
  friend class ::ExtACSyntaxCoupling;
13278
21365
  friend class ::ExtACTree;
13279
21366
  friend class ::ExtACKeywords;
13280
 
  friend class ::WinAsm;
13281
 
  friend class ::WinDeclSpecs;
13282
 
  friend class ::WinMemberExplSpec;
13283
 
  friend class ::WinTypeKeywords;
 
21367
  friend class ::ExtGnu;
13284
21368
  friend class ::PragmaOnceUnitState;
13285
21369
  friend class ::PragmaOnce;
13286
 
  friend class ::CCExprResolve;
13287
 
  friend class ::CExprResolve;
 
21370
  friend class ::CMatchSyntax;
13288
21371
 
13289
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21372
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13290
21373
 
13291
21374
   
13292
 
#line 13293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21375
#line 21376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13293
21376
 
13294
21377
  struct __ac_wrapper_sons {
13295
21378
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
13304
21387
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
13305
21388
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
13306
21389
  } sons
13307
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21390
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13308
21391
 
13309
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21392
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13310
21393
; // key, name, bases, members
13311
21394
  CTree *obj_decl;
13312
21395
 
13313
21396
public:
13314
21397
  
13315
 
#line 13316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
13316
 
 
13317
 
 
13318
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
13319
 
  typedef void Result;
13320
 
  typedef ::Puma::CT_ClassDef That;
13321
 
  typedef ::Puma::CT_ClassDef Target;
13322
 
  static const int JPID = 4;
 
21398
#line 21399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21399
 
 
21400
 
 
21401
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
21402
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
21403
  typedef TResult Result;
 
21404
  typedef TThat   That;
 
21405
  typedef TTarget Target;
 
21406
  enum { ARGS = TArgs::ARGS };
 
21407
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
21408
  static const int JPID = 55;
13323
21409
  static const AC::JPType JPTYPE = (AC::JPType)16;
13324
21410
  struct Res {
13325
21411
    typedef void Type;
13326
21412
    typedef void ReferredType;
13327
21413
  };
13328
 
  enum { ARGS = 3 };
13329
 
  template <int I, int DUMMY = 0> struct Arg {
13330
 
    typedef void Type;
13331
 
    typedef void ReferredType;
13332
 
  };
13333
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13334
 
    typedef ::Puma::CTree * Type;
13335
 
    typedef ::Puma::CTree * ReferredType;
13336
 
  };
13337
 
  template <int DUMMY> struct Arg<1, DUMMY> {
13338
 
    typedef ::Puma::CTree * Type;
13339
 
    typedef ::Puma::CTree * ReferredType;
13340
 
  };
13341
 
  template <int DUMMY> struct Arg<2, DUMMY> {
13342
 
    typedef ::Puma::CTree * Type;
13343
 
    typedef ::Puma::CTree * ReferredType;
13344
 
  };
13345
21414
 
13346
21415
  That *_that;
13347
21416
 
13350
21419
};
13351
21420
 
13352
21421
 
13353
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21422
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13354
21423
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
13355
 
#line 13356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21424
#line 21425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13356
21425
{
13357
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
13358
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
13359
 
this->__exec_old_C1(arg0, arg1, arg2);
13360
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
13361
 
 
 
21426
  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;
 
21427
    __TJP tjp;
 
21428
  tjp._that =  (__TJP::That*)this;
 
21429
    this->__exec_old_C1(arg0, arg1, arg2);
 
21430
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
21431
  
13362
21432
}
13363
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
13364
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21433
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
21434
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13365
21435
{
13366
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
21436
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
21437
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
13367
21438
  }
 
21439
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13368
21440
  static const char *NodeId ();
 
21441
  /** Get the name of the node. Can be compared with NodeId(). */
13369
21442
  const char *NodeName () const { return NodeId (); }
 
21443
  /** Get the number of sons. */
13370
21444
  int Sons () const { return CTree::Sons (sons, 4); }
 
21445
  /** Get the n-th son.
 
21446
   *  \param n The index of the son.
 
21447
   *  \return The n-th son or NULL. */
13371
21448
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13372
21449
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
13373
21450
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
13374
21451
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
13375
21452
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
13376
21453
  CSemObject *SemObject () const { return (CSemObject*)this; }
13377
 
  void Members (CTree *m) { sons[3] = m; }
13378
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
13379
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
21454
  void Members (CTree *m) { AddSon (sons[3], m); }
 
21455
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
21456
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
21457
  /** Replace a son.
 
21458
   *  \param old_son The son to replace.
 
21459
   *  \param new_son The new son. */
13380
21460
  void ReplaceSon (CTree *old_son, CTree *new_son) {
13381
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
13382
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
21461
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13383
21462
  }
13384
21463
   private:
13385
21464
 
13386
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
13387
 
 CTree * _intro_members ;
 
21465
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
21466
 Puma :: CTree * _intro_members ;
 
21467
Puma :: CTree * _base_intros ;
13388
21468
public :
13389
 
CTree * IntroMembers ( ) const { return _intro_members ; }
13390
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
13391
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13392
 
 
13393
 
#line 13394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
13394
 
 
13395
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
13396
 
  typedef void Result;
13397
 
  typedef ::Puma::CT_ClassDef That;
13398
 
  typedef ::Puma::CT_ClassDef Target;
13399
 
  static const int JPID = 4;
 
21469
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
21470
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
21471
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
21472
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
21473
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21474
 
 
21475
#line 21476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21476
 
 
21477
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
21478
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
21479
  typedef TResult Result;
 
21480
  typedef TThat   That;
 
21481
  typedef TTarget Target;
 
21482
  enum { ARGS = TArgs::ARGS };
 
21483
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
21484
  static const int JPID = 7249;
13400
21485
  static const AC::JPType JPTYPE = (AC::JPType)16;
13401
21486
  struct Res {
13402
21487
    typedef void Type;
13403
21488
    typedef void ReferredType;
13404
21489
  };
13405
 
  enum { ARGS = 1 };
13406
 
  template <int I, int DUMMY = 0> struct Arg {
13407
 
    typedef void Type;
13408
 
    typedef void ReferredType;
13409
 
  };
13410
 
  template <int DUMMY> struct Arg<0, DUMMY> {
13411
 
    typedef const ::Puma::CT_ClassDef & Type;
13412
 
    typedef const ::Puma::CT_ClassDef ReferredType;
13413
 
  };
13414
21490
 
13415
21491
  That *_that;
13416
21492
 
13419
21495
};
13420
21496
 
13421
21497
 
13422
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21498
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13423
21499
 
13424
 
#line 13425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21500
#line 21501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13425
21501
 
13426
21502
public:
13427
 
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) {
13428
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
13429
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
13430
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
21503
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) {
 
21504
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
21505
  __TJP tjp;
 
21506
  tjp._that =  (__TJP::That*)this;
 
21507
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
13431
21508
 
13432
21509
}
13433
21510
 
13434
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13435
 
 
13436
 
#line 13437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
13437
 
 
13438
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
13439
 
  typedef void Result;
13440
 
  typedef ::Puma::CT_ClassDef That;
13441
 
  typedef ::Puma::CT_ClassDef Target;
13442
 
  static const int JPID = 4;
 
21511
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21512
 
 
21513
#line 21514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21514
 
 
21515
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
21516
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
21517
  typedef TResult Result;
 
21518
  typedef TThat   That;
 
21519
  typedef TTarget Target;
 
21520
  enum { ARGS = TArgs::ARGS };
 
21521
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
21522
  static const int JPID = 7247;
13443
21523
  static const AC::JPType JPTYPE = (AC::JPType)32;
13444
21524
  struct Res {
13445
21525
    typedef void Type;
13446
21526
    typedef void ReferredType;
13447
21527
  };
13448
 
  enum { ARGS = 0 };
13449
 
  template <int I, int DUMMY = 0> struct Arg {
13450
 
    typedef void Type;
13451
 
    typedef void ReferredType;
13452
 
  };
13453
21528
 
13454
21529
  That *_that;
13455
21530
 
13458
21533
};
13459
21534
 
13460
21535
 
13461
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21536
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13462
21537
 
13463
 
#line 13464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21538
#line 21539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13464
21539
 
13465
21540
public:
13466
21541
inline ~CT_ClassDef () {
13467
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
13468
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
13469
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
21542
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
21543
  __TJP tjp;
 
21544
  tjp._that =  (__TJP::That*)this;
 
21545
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
13470
21546
 
13471
21547
}
13472
21548
 
13473
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21549
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13474
21550
};
13475
21551
      
13476
21552
 
13477
 
#line 13478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21553
#line 21554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13478
21554
} // closed Puma
 
21555
class CCExprResolve;
 
21556
class CExprResolve;
13479
21557
class WinIfExists;
13480
21558
class WinImportHandler;
13481
21559
class WinMacros;
13482
 
class CMatchSyntax;
13483
 
class ExtGnu;
 
21560
class WinAsm;
 
21561
class WinDeclSpecs;
 
21562
class WinMemberExplSpec;
 
21563
class WinTypeKeywords;
 
21564
class WinFriend;
13484
21565
class ExtAC;
13485
21566
class ExtACBuilderCoupling;
13486
21567
class ExtACSyntaxCoupling;
13487
21568
class ExtACTree;
13488
21569
class ExtACKeywords;
13489
 
class WinAsm;
13490
 
class WinDeclSpecs;
13491
 
class WinMemberExplSpec;
13492
 
class WinTypeKeywords;
 
21570
class ExtGnu;
13493
21571
class PragmaOnceUnitState;
13494
21572
class PragmaOnce;
13495
 
class CCExprResolve;
13496
 
class CExprResolve;
 
21573
class CMatchSyntax;
13497
21574
namespace Puma {
13498
21575
 
13499
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21576
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13500
21577
class CT_UnionDef : public CT_ClassDef {
13501
 
#line 13502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21578
#line 21579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21579
  friend class ::CCExprResolve;
 
21580
  friend class ::CExprResolve;
13502
21581
  friend class ::WinIfExists;
13503
21582
  friend class ::WinImportHandler;
13504
21583
  friend class ::WinMacros;
13505
 
  friend class ::CMatchSyntax;
13506
 
  friend class ::ExtGnu;
 
21584
  friend class ::WinAsm;
 
21585
  friend class ::WinDeclSpecs;
 
21586
  friend class ::WinMemberExplSpec;
 
21587
  friend class ::WinTypeKeywords;
 
21588
  friend class ::WinFriend;
13507
21589
  friend class ::ExtAC;
13508
21590
  friend class ::ExtACBuilderCoupling;
13509
21591
  friend class ::ExtACSyntaxCoupling;
13510
21592
  friend class ::ExtACTree;
13511
21593
  friend class ::ExtACKeywords;
13512
 
  friend class ::WinAsm;
13513
 
  friend class ::WinDeclSpecs;
13514
 
  friend class ::WinMemberExplSpec;
13515
 
  friend class ::WinTypeKeywords;
 
21594
  friend class ::ExtGnu;
13516
21595
  friend class ::PragmaOnceUnitState;
13517
21596
  friend class ::PragmaOnce;
13518
 
  friend class ::CCExprResolve;
13519
 
  friend class ::CExprResolve;
 
21597
  friend class ::CMatchSyntax;
13520
21598
 
13521
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21599
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13522
21600
 
13523
21601
public:
13524
21602
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
13525
21603
  static const char *NodeId ();
 
21604
  /** Get the name of the node. Can be compared with NodeId(). */
13526
21605
  const char *NodeName () const { return NodeId (); }
13527
21606
};
13528
21607
      
13529
21608
 
13530
 
#line 13531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21609
#line 21610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13531
21610
} // closed Puma
 
21611
class CCExprResolve;
 
21612
class CExprResolve;
13532
21613
class WinIfExists;
13533
21614
class WinImportHandler;
13534
21615
class WinMacros;
13535
 
class CMatchSyntax;
13536
 
class ExtGnu;
 
21616
class WinAsm;
 
21617
class WinDeclSpecs;
 
21618
class WinMemberExplSpec;
 
21619
class WinTypeKeywords;
 
21620
class WinFriend;
13537
21621
class ExtAC;
13538
21622
class ExtACBuilderCoupling;
13539
21623
class ExtACSyntaxCoupling;
13540
21624
class ExtACTree;
13541
21625
class ExtACKeywords;
13542
 
class WinAsm;
13543
 
class WinDeclSpecs;
13544
 
class WinMemberExplSpec;
13545
 
class WinTypeKeywords;
 
21626
class ExtGnu;
13546
21627
class PragmaOnceUnitState;
13547
21628
class PragmaOnce;
13548
 
class CCExprResolve;
13549
 
class CExprResolve;
 
21629
class CMatchSyntax;
13550
21630
namespace Puma {
13551
21631
 
13552
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21632
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13553
21633
class CT_MembList : public CT_DeclList, public CSemScope {
13554
 
#line 13555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21634
#line 21635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21635
  friend class ::CCExprResolve;
 
21636
  friend class ::CExprResolve;
13555
21637
  friend class ::WinIfExists;
13556
21638
  friend class ::WinImportHandler;
13557
21639
  friend class ::WinMacros;
13558
 
  friend class ::CMatchSyntax;
13559
 
  friend class ::ExtGnu;
 
21640
  friend class ::WinAsm;
 
21641
  friend class ::WinDeclSpecs;
 
21642
  friend class ::WinMemberExplSpec;
 
21643
  friend class ::WinTypeKeywords;
 
21644
  friend class ::WinFriend;
13560
21645
  friend class ::ExtAC;
13561
21646
  friend class ::ExtACBuilderCoupling;
13562
21647
  friend class ::ExtACSyntaxCoupling;
13563
21648
  friend class ::ExtACTree;
13564
21649
  friend class ::ExtACKeywords;
13565
 
  friend class ::WinAsm;
13566
 
  friend class ::WinDeclSpecs;
13567
 
  friend class ::WinMemberExplSpec;
13568
 
  friend class ::WinTypeKeywords;
 
21650
  friend class ::ExtGnu;
13569
21651
  friend class ::PragmaOnceUnitState;
13570
21652
  friend class ::PragmaOnce;
13571
 
  friend class ::CCExprResolve;
13572
 
  friend class ::CExprResolve;
 
21653
  friend class ::CMatchSyntax;
13573
21654
 
13574
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21655
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13575
21656
 
13576
21657
public:
13577
21658
  CT_MembList (int size = 10, int incr = 10) : 
13578
21659
    CT_DeclList (size, incr) {}
 
21660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13579
21661
  static const char *NodeId ();
 
21662
  /** Get the name of the node. Can be compared with NodeId(). */
13580
21663
  const char *NodeName () const { return NodeId (); }
 
21664
  CSemScope *SemScope () const { return (CSemScope*)this; }
13581
21665
};
13582
21666
 
13583
21667
 
13584
 
#line 13585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21668
#line 21669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13585
21669
} // closed Puma
 
21670
class CCExprResolve;
 
21671
class CExprResolve;
13586
21672
class WinIfExists;
13587
21673
class WinImportHandler;
13588
21674
class WinMacros;
13589
 
class CMatchSyntax;
13590
 
class ExtGnu;
 
21675
class WinAsm;
 
21676
class WinDeclSpecs;
 
21677
class WinMemberExplSpec;
 
21678
class WinTypeKeywords;
 
21679
class WinFriend;
13591
21680
class ExtAC;
13592
21681
class ExtACBuilderCoupling;
13593
21682
class ExtACSyntaxCoupling;
13594
21683
class ExtACTree;
13595
21684
class ExtACKeywords;
13596
 
class WinAsm;
13597
 
class WinDeclSpecs;
13598
 
class WinMemberExplSpec;
13599
 
class WinTypeKeywords;
 
21685
class ExtGnu;
13600
21686
class PragmaOnceUnitState;
13601
21687
class PragmaOnce;
13602
 
class CCExprResolve;
13603
 
class CExprResolve;
 
21688
class CMatchSyntax;
13604
21689
namespace Puma {
13605
21690
 
13606
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21691
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13607
21692
class CT_MembInitList : public CT_List, public CSemScope {
13608
 
#line 13609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21693
#line 21694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21694
  friend class ::CCExprResolve;
 
21695
  friend class ::CExprResolve;
13609
21696
  friend class ::WinIfExists;
13610
21697
  friend class ::WinImportHandler;
13611
21698
  friend class ::WinMacros;
13612
 
  friend class ::CMatchSyntax;
13613
 
  friend class ::ExtGnu;
 
21699
  friend class ::WinAsm;
 
21700
  friend class ::WinDeclSpecs;
 
21701
  friend class ::WinMemberExplSpec;
 
21702
  friend class ::WinTypeKeywords;
 
21703
  friend class ::WinFriend;
13614
21704
  friend class ::ExtAC;
13615
21705
  friend class ::ExtACBuilderCoupling;
13616
21706
  friend class ::ExtACSyntaxCoupling;
13617
21707
  friend class ::ExtACTree;
13618
21708
  friend class ::ExtACKeywords;
13619
 
  friend class ::WinAsm;
13620
 
  friend class ::WinDeclSpecs;
13621
 
  friend class ::WinMemberExplSpec;
13622
 
  friend class ::WinTypeKeywords;
 
21709
  friend class ::ExtGnu;
13623
21710
  friend class ::PragmaOnceUnitState;
13624
21711
  friend class ::PragmaOnce;
13625
 
  friend class ::CCExprResolve;
13626
 
  friend class ::CExprResolve;
 
21712
  friend class ::CMatchSyntax;
13627
21713
 
13628
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21714
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13629
21715
 
13630
21716
public:
13631
21717
  CT_MembInitList (int size = 2) : 
13632
21718
    CT_List (size, 2, CT_List::OPEN) {}
13633
21719
  static const char *NodeId ();
 
21720
  /** Get the name of the node. Can be compared with NodeId(). */
13634
21721
  const char *NodeName () const { return NodeId (); }
 
21722
  CSemScope *SemScope () const { return (CSemScope*)this; }
13635
21723
};
13636
21724
 
13637
21725
 
13638
 
#line 13639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21726
#line 21727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13639
21727
} // closed Puma
 
21728
class CCExprResolve;
 
21729
class CExprResolve;
13640
21730
class WinIfExists;
13641
21731
class WinImportHandler;
13642
21732
class WinMacros;
13643
 
class CMatchSyntax;
13644
 
class ExtGnu;
 
21733
class WinAsm;
 
21734
class WinDeclSpecs;
 
21735
class WinMemberExplSpec;
 
21736
class WinTypeKeywords;
 
21737
class WinFriend;
13645
21738
class ExtAC;
13646
21739
class ExtACBuilderCoupling;
13647
21740
class ExtACSyntaxCoupling;
13648
21741
class ExtACTree;
13649
21742
class ExtACKeywords;
13650
 
class WinAsm;
13651
 
class WinDeclSpecs;
13652
 
class WinMemberExplSpec;
13653
 
class WinTypeKeywords;
 
21743
class ExtGnu;
13654
21744
class PragmaOnceUnitState;
13655
21745
class PragmaOnce;
13656
 
class CCExprResolve;
13657
 
class CExprResolve;
13658
 
namespace Puma {
13659
 
 
13660
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21746
class CMatchSyntax;
 
21747
namespace Puma {
 
21748
 
 
21749
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21750
 
 
21751
#line 21752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21752
} // closed Puma
 
21753
 
 
21754
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21755
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
21756
#include "CCExprResolveH.ah"
 
21757
#endif
 
21758
namespace Puma {
 
21759
 
 
21760
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21761
 
 
21762
#line 21763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21763
} // closed Puma
 
21764
 
 
21765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
21767
#include "CExprResolveH.ah"
 
21768
#endif
 
21769
namespace Puma {
 
21770
 
 
21771
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13661
21772
class CT_MembInit : public CT_Expression, public CSemObject {
13662
 
#line 13663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21773
#line 21774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21774
  friend class ::CCExprResolve;
 
21775
  friend class ::CExprResolve;
13663
21776
  friend class ::WinIfExists;
13664
21777
  friend class ::WinImportHandler;
13665
21778
  friend class ::WinMacros;
13666
 
  friend class ::CMatchSyntax;
13667
 
  friend class ::ExtGnu;
 
21779
  friend class ::WinAsm;
 
21780
  friend class ::WinDeclSpecs;
 
21781
  friend class ::WinMemberExplSpec;
 
21782
  friend class ::WinTypeKeywords;
 
21783
  friend class ::WinFriend;
13668
21784
  friend class ::ExtAC;
13669
21785
  friend class ::ExtACBuilderCoupling;
13670
21786
  friend class ::ExtACSyntaxCoupling;
13671
21787
  friend class ::ExtACTree;
13672
21788
  friend class ::ExtACKeywords;
13673
 
  friend class ::WinAsm;
13674
 
  friend class ::WinDeclSpecs;
13675
 
  friend class ::WinMemberExplSpec;
13676
 
  friend class ::WinTypeKeywords;
 
21789
  friend class ::ExtGnu;
13677
21790
  friend class ::PragmaOnceUnitState;
13678
21791
  friend class ::PragmaOnce;
13679
 
  friend class ::CCExprResolve;
13680
 
  friend class ::CExprResolve;
 
21792
  friend class ::CMatchSyntax;
13681
21793
 
13682
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21794
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13683
21795
 
13684
21796
  CTree *sons[2]; // name, init
13685
21797
 
13686
21798
public:
13687
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
21799
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
21800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13688
21801
  static const char *NodeId ();
 
21802
  /** Get the name of the node. Can be compared with NodeId(). */
13689
21803
  const char *NodeName () const { return NodeId (); }
 
21804
  /** Get the number of sons. */
13690
21805
  int Sons () const { return 2; }
 
21806
  /** Get the n-th son.
 
21807
   *  \param n The index of the son.
 
21808
   *  \return The n-th son or NULL. */
13691
21809
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
21810
  /** Replace a son.
 
21811
   *  \param old_son The son to replace.
 
21812
   *  \param new_son The new son. */
13692
21813
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13693
21814
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13694
21815
  }
13698
21819
   private:
13699
21820
  typedef CT_MembInit CCExprResolveExpr;
13700
21821
 
13701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
21822
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
13702
21823
 public :
13703
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
21824
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
13704
21825
  typedef CT_MembInit CExprResolveExpr;
13705
21826
 
13706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
21827
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
13707
21828
 public :
13708
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
13709
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21829
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
21830
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13710
21831
};
13711
21832
 
13712
21833
 
13713
 
#line 13714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21834
#line 21835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13714
21835
} // closed Puma
 
21836
class CCExprResolve;
 
21837
class CExprResolve;
13715
21838
class WinIfExists;
13716
21839
class WinImportHandler;
13717
21840
class WinMacros;
13718
 
class CMatchSyntax;
13719
 
class ExtGnu;
 
21841
class WinAsm;
 
21842
class WinDeclSpecs;
 
21843
class WinMemberExplSpec;
 
21844
class WinTypeKeywords;
 
21845
class WinFriend;
13720
21846
class ExtAC;
13721
21847
class ExtACBuilderCoupling;
13722
21848
class ExtACSyntaxCoupling;
13723
21849
class ExtACTree;
13724
21850
class ExtACKeywords;
13725
 
class WinAsm;
13726
 
class WinDeclSpecs;
13727
 
class WinMemberExplSpec;
13728
 
class WinTypeKeywords;
 
21851
class ExtGnu;
13729
21852
class PragmaOnceUnitState;
13730
21853
class PragmaOnce;
13731
 
class CCExprResolve;
13732
 
class CExprResolve;
 
21854
class CMatchSyntax;
13733
21855
namespace Puma {
13734
21856
 
13735
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21857
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13736
21858
class CT_BaseSpecList : public CT_List {
13737
 
#line 13738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21859
#line 21860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21860
  friend class ::CCExprResolve;
 
21861
  friend class ::CExprResolve;
13738
21862
  friend class ::WinIfExists;
13739
21863
  friend class ::WinImportHandler;
13740
21864
  friend class ::WinMacros;
13741
 
  friend class ::CMatchSyntax;
13742
 
  friend class ::ExtGnu;
 
21865
  friend class ::WinAsm;
 
21866
  friend class ::WinDeclSpecs;
 
21867
  friend class ::WinMemberExplSpec;
 
21868
  friend class ::WinTypeKeywords;
 
21869
  friend class ::WinFriend;
13743
21870
  friend class ::ExtAC;
13744
21871
  friend class ::ExtACBuilderCoupling;
13745
21872
  friend class ::ExtACSyntaxCoupling;
13746
21873
  friend class ::ExtACTree;
13747
21874
  friend class ::ExtACKeywords;
13748
 
  friend class ::WinAsm;
13749
 
  friend class ::WinDeclSpecs;
13750
 
  friend class ::WinMemberExplSpec;
13751
 
  friend class ::WinTypeKeywords;
 
21875
  friend class ::ExtGnu;
13752
21876
  friend class ::PragmaOnceUnitState;
13753
21877
  friend class ::PragmaOnce;
13754
 
  friend class ::CCExprResolve;
13755
 
  friend class ::CExprResolve;
 
21878
  friend class ::CMatchSyntax;
13756
21879
 
13757
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21880
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13758
21881
 
13759
21882
public:
13760
21883
  CT_BaseSpecList (int size = 2) : 
13761
21884
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
21885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13762
21886
  static const char *NodeId ();
 
21887
  /** Get the name of the node. Can be compared with NodeId(). */
13763
21888
  const char *NodeName () const { return NodeId (); }
13764
21889
};
13765
21890
 
13766
21891
 
13767
 
#line 13768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21892
#line 21893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13768
21893
} // closed Puma
 
21894
class CCExprResolve;
 
21895
class CExprResolve;
13769
21896
class WinIfExists;
13770
21897
class WinImportHandler;
13771
21898
class WinMacros;
13772
 
class CMatchSyntax;
13773
 
class ExtGnu;
 
21899
class WinAsm;
 
21900
class WinDeclSpecs;
 
21901
class WinMemberExplSpec;
 
21902
class WinTypeKeywords;
 
21903
class WinFriend;
13774
21904
class ExtAC;
13775
21905
class ExtACBuilderCoupling;
13776
21906
class ExtACSyntaxCoupling;
13777
21907
class ExtACTree;
13778
21908
class ExtACKeywords;
13779
 
class WinAsm;
13780
 
class WinDeclSpecs;
13781
 
class WinMemberExplSpec;
13782
 
class WinTypeKeywords;
 
21909
class ExtGnu;
13783
21910
class PragmaOnceUnitState;
13784
21911
class PragmaOnce;
13785
 
class CCExprResolve;
13786
 
class CExprResolve;
 
21912
class CMatchSyntax;
13787
21913
namespace Puma {
13788
21914
 
13789
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21915
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13790
21916
class CT_AccessSpec : public CTree {
13791
 
#line 13792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21917
#line 21918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21918
  friend class ::CCExprResolve;
 
21919
  friend class ::CExprResolve;
13792
21920
  friend class ::WinIfExists;
13793
21921
  friend class ::WinImportHandler;
13794
21922
  friend class ::WinMacros;
13795
 
  friend class ::CMatchSyntax;
13796
 
  friend class ::ExtGnu;
 
21923
  friend class ::WinAsm;
 
21924
  friend class ::WinDeclSpecs;
 
21925
  friend class ::WinMemberExplSpec;
 
21926
  friend class ::WinTypeKeywords;
 
21927
  friend class ::WinFriend;
13797
21928
  friend class ::ExtAC;
13798
21929
  friend class ::ExtACBuilderCoupling;
13799
21930
  friend class ::ExtACSyntaxCoupling;
13800
21931
  friend class ::ExtACTree;
13801
21932
  friend class ::ExtACKeywords;
13802
 
  friend class ::WinAsm;
13803
 
  friend class ::WinDeclSpecs;
13804
 
  friend class ::WinMemberExplSpec;
13805
 
  friend class ::WinTypeKeywords;
 
21933
  friend class ::ExtGnu;
13806
21934
  friend class ::PragmaOnceUnitState;
13807
21935
  friend class ::PragmaOnce;
13808
 
  friend class ::CCExprResolve;
13809
 
  friend class ::CExprResolve;
 
21936
  friend class ::CMatchSyntax;
13810
21937
 
13811
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21938
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13812
21939
 
13813
21940
  CTree *sons[2]; // access, colon
13814
21941
 
13815
21942
public:
13816
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
21943
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
21944
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13817
21945
  static const char *NodeId ();
 
21946
  /** Get the name of the node. Can be compared with NodeId(). */
13818
21947
  const char *NodeName () const { return NodeId (); }
 
21948
  /** Get the number of sons. */
13819
21949
  int Sons () const { return 2; }
 
21950
  /** Get the n-th son.
 
21951
   *  \param n The index of the son.
 
21952
   *  \return The n-th son or NULL. */
13820
21953
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13821
21954
  int Access () const { return sons[0]->token ()->type (); }
 
21955
  /** Replace a son.
 
21956
   *  \param old_son The son to replace.
 
21957
   *  \param new_son The new son. */
13822
21958
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13823
21959
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13824
21960
  }
13825
21961
};
13826
21962
 
13827
21963
 
13828
 
#line 13829 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21964
#line 21965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13829
21965
} // closed Puma
 
21966
class CCExprResolve;
 
21967
class CExprResolve;
13830
21968
class WinIfExists;
13831
21969
class WinImportHandler;
13832
21970
class WinMacros;
13833
 
class CMatchSyntax;
13834
 
class ExtGnu;
 
21971
class WinAsm;
 
21972
class WinDeclSpecs;
 
21973
class WinMemberExplSpec;
 
21974
class WinTypeKeywords;
 
21975
class WinFriend;
13835
21976
class ExtAC;
13836
21977
class ExtACBuilderCoupling;
13837
21978
class ExtACSyntaxCoupling;
13838
21979
class ExtACTree;
13839
21980
class ExtACKeywords;
13840
 
class WinAsm;
13841
 
class WinDeclSpecs;
13842
 
class WinMemberExplSpec;
13843
 
class WinTypeKeywords;
 
21981
class ExtGnu;
13844
21982
class PragmaOnceUnitState;
13845
21983
class PragmaOnce;
13846
 
class CCExprResolve;
13847
 
class CExprResolve;
 
21984
class CMatchSyntax;
13848
21985
namespace Puma {
13849
21986
 
13850
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
21987
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13851
21988
class CT_BaseSpec : public CTree {
13852
 
#line 13853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
21989
#line 21990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
21990
  friend class ::CCExprResolve;
 
21991
  friend class ::CExprResolve;
13853
21992
  friend class ::WinIfExists;
13854
21993
  friend class ::WinImportHandler;
13855
21994
  friend class ::WinMacros;
13856
 
  friend class ::CMatchSyntax;
13857
 
  friend class ::ExtGnu;
 
21995
  friend class ::WinAsm;
 
21996
  friend class ::WinDeclSpecs;
 
21997
  friend class ::WinMemberExplSpec;
 
21998
  friend class ::WinTypeKeywords;
 
21999
  friend class ::WinFriend;
13858
22000
  friend class ::ExtAC;
13859
22001
  friend class ::ExtACBuilderCoupling;
13860
22002
  friend class ::ExtACSyntaxCoupling;
13861
22003
  friend class ::ExtACTree;
13862
22004
  friend class ::ExtACKeywords;
13863
 
  friend class ::WinAsm;
13864
 
  friend class ::WinDeclSpecs;
13865
 
  friend class ::WinMemberExplSpec;
13866
 
  friend class ::WinTypeKeywords;
 
22005
  friend class ::ExtGnu;
13867
22006
  friend class ::PragmaOnceUnitState;
13868
22007
  friend class ::PragmaOnce;
13869
 
  friend class ::CCExprResolve;
13870
 
  friend class ::CExprResolve;
 
22008
  friend class ::CMatchSyntax;
13871
22009
 
13872
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22010
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13873
22011
 
13874
22012
  CTree *sons[3]; // virtual, access, name
13875
22013
 
13876
22014
public:
13877
22015
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
13878
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
22016
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
13879
22017
  }
 
22018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13880
22019
  static const char *NodeId ();
 
22020
  /** Get the name of the node. Can be compared with NodeId(). */
13881
22021
  const char *NodeName () const { return NodeId (); }
 
22022
  /** Get the number of sons. */
13882
22023
  int Sons () const { return CTree::Sons (sons, 3); }
 
22024
  /** Get the n-th son.
 
22025
   *  \param n The index of the son.
 
22026
   *  \return The n-th son or NULL. */
13883
22027
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13884
22028
  int Access () const { return sons[1]->token ()->type (); }
13885
22029
  CTree *AccessSpec () const { return sons[1]; }
13886
22030
  CTree *Virtual () const { return sons[0]; }
13887
22031
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
22032
  /** Replace a son.
 
22033
   *  \param old_son The son to replace.
 
22034
   *  \param new_son The new son. */
13888
22035
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13889
22036
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13890
22037
  }
13891
22038
};
13892
22039
 
13893
22040
 
13894
 
#line 13895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22041
#line 22042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13895
22042
} // closed Puma
 
22043
class CCExprResolve;
 
22044
class CExprResolve;
13896
22045
class WinIfExists;
13897
22046
class WinImportHandler;
13898
22047
class WinMacros;
13899
 
class CMatchSyntax;
13900
 
class ExtGnu;
 
22048
class WinAsm;
 
22049
class WinDeclSpecs;
 
22050
class WinMemberExplSpec;
 
22051
class WinTypeKeywords;
 
22052
class WinFriend;
13901
22053
class ExtAC;
13902
22054
class ExtACBuilderCoupling;
13903
22055
class ExtACSyntaxCoupling;
13904
22056
class ExtACTree;
13905
22057
class ExtACKeywords;
13906
 
class WinAsm;
13907
 
class WinDeclSpecs;
13908
 
class WinMemberExplSpec;
13909
 
class WinTypeKeywords;
 
22058
class ExtGnu;
13910
22059
class PragmaOnceUnitState;
13911
22060
class PragmaOnce;
13912
 
class CCExprResolve;
13913
 
class CExprResolve;
 
22061
class CMatchSyntax;
13914
22062
namespace Puma {
13915
22063
 
13916
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22064
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13917
22065
class CT_AccessDecl : public CT_Decl {
13918
 
#line 13919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22066
#line 22067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22067
  friend class ::CCExprResolve;
 
22068
  friend class ::CExprResolve;
13919
22069
  friend class ::WinIfExists;
13920
22070
  friend class ::WinImportHandler;
13921
22071
  friend class ::WinMacros;
13922
 
  friend class ::CMatchSyntax;
13923
 
  friend class ::ExtGnu;
 
22072
  friend class ::WinAsm;
 
22073
  friend class ::WinDeclSpecs;
 
22074
  friend class ::WinMemberExplSpec;
 
22075
  friend class ::WinTypeKeywords;
 
22076
  friend class ::WinFriend;
13924
22077
  friend class ::ExtAC;
13925
22078
  friend class ::ExtACBuilderCoupling;
13926
22079
  friend class ::ExtACSyntaxCoupling;
13927
22080
  friend class ::ExtACTree;
13928
22081
  friend class ::ExtACKeywords;
13929
 
  friend class ::WinAsm;
13930
 
  friend class ::WinDeclSpecs;
13931
 
  friend class ::WinMemberExplSpec;
13932
 
  friend class ::WinTypeKeywords;
 
22082
  friend class ::ExtGnu;
13933
22083
  friend class ::PragmaOnceUnitState;
13934
22084
  friend class ::PragmaOnce;
13935
 
  friend class ::CCExprResolve;
13936
 
  friend class ::CExprResolve;
 
22085
  friend class ::CMatchSyntax;
13937
22086
 
13938
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22087
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13939
22088
 
13940
22089
  CTree *sons[2]; // name, semi_colon
13941
22090
 
13942
22091
public:
13943
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
22092
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
22093
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13944
22094
  static const char *NodeId ();
 
22095
  /** Get the name of the node. Can be compared with NodeId(). */
13945
22096
  const char *NodeName () const { return NodeId (); }
 
22097
  /** Get the number of sons. */
13946
22098
  int Sons () const { return 2; }
 
22099
  /** Get the n-th son.
 
22100
   *  \param n The index of the son.
 
22101
   *  \return The n-th son or NULL. */
13947
22102
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13948
22103
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
22104
  /** Replace a son.
 
22105
   *  \param old_son The son to replace.
 
22106
   *  \param new_son The new son. */
13949
22107
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13950
22108
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13951
22109
  }
13952
22110
};
13953
22111
 
13954
22112
 
13955
 
#line 13956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22113
#line 22114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
13956
22114
} // closed Puma
 
22115
class CCExprResolve;
 
22116
class CExprResolve;
13957
22117
class WinIfExists;
13958
22118
class WinImportHandler;
13959
22119
class WinMacros;
13960
 
class CMatchSyntax;
13961
 
class ExtGnu;
 
22120
class WinAsm;
 
22121
class WinDeclSpecs;
 
22122
class WinMemberExplSpec;
 
22123
class WinTypeKeywords;
 
22124
class WinFriend;
13962
22125
class ExtAC;
13963
22126
class ExtACBuilderCoupling;
13964
22127
class ExtACSyntaxCoupling;
13965
22128
class ExtACTree;
13966
22129
class ExtACKeywords;
13967
 
class WinAsm;
13968
 
class WinDeclSpecs;
13969
 
class WinMemberExplSpec;
13970
 
class WinTypeKeywords;
 
22130
class ExtGnu;
13971
22131
class PragmaOnceUnitState;
13972
22132
class PragmaOnce;
13973
 
class CCExprResolve;
13974
 
class CExprResolve;
 
22133
class CMatchSyntax;
13975
22134
namespace Puma {
13976
22135
 
13977
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22136
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13978
22137
class CT_UsingDecl : public CT_AccessDecl {
13979
 
#line 13980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22138
#line 22139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22139
  friend class ::CCExprResolve;
 
22140
  friend class ::CExprResolve;
13980
22141
  friend class ::WinIfExists;
13981
22142
  friend class ::WinImportHandler;
13982
22143
  friend class ::WinMacros;
13983
 
  friend class ::CMatchSyntax;
13984
 
  friend class ::ExtGnu;
 
22144
  friend class ::WinAsm;
 
22145
  friend class ::WinDeclSpecs;
 
22146
  friend class ::WinMemberExplSpec;
 
22147
  friend class ::WinTypeKeywords;
 
22148
  friend class ::WinFriend;
13985
22149
  friend class ::ExtAC;
13986
22150
  friend class ::ExtACBuilderCoupling;
13987
22151
  friend class ::ExtACSyntaxCoupling;
13988
22152
  friend class ::ExtACTree;
13989
22153
  friend class ::ExtACKeywords;
13990
 
  friend class ::WinAsm;
13991
 
  friend class ::WinDeclSpecs;
13992
 
  friend class ::WinMemberExplSpec;
13993
 
  friend class ::WinTypeKeywords;
 
22154
  friend class ::ExtGnu;
13994
22155
  friend class ::PragmaOnceUnitState;
13995
22156
  friend class ::PragmaOnce;
13996
 
  friend class ::CCExprResolve;
13997
 
  friend class ::CExprResolve;
 
22157
  friend class ::CMatchSyntax;
13998
22158
 
13999
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22159
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14000
22160
 
14001
22161
  CTree *sons[2]; // using, typename
14002
22162
 
14003
22163
public:
14004
22164
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
14005
 
    sons[0] = u; sons[1] = 0; 
 
22165
    AddSon (sons[0], u); AddSon (sons[1], 0); 
14006
22166
  }
14007
22167
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
14008
 
    sons[0] = u; sons[1] = t; 
 
22168
    AddSon (sons[0], u); AddSon (sons[1], t); 
14009
22169
  }
 
22170
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14010
22171
  static const char *NodeId ();
 
22172
  /** Get the name of the node. Can be compared with NodeId(). */
14011
22173
  const char *NodeName () const { return NodeId (); }
 
22174
  /** Get the number of sons. */
14012
22175
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
22176
  /** Get the n-th son.
 
22177
   *  \param n The index of the son.
 
22178
   *  \return The n-th son or NULL. */
14013
22179
  CTree *Son (int n) const {
14014
22180
    int num = CTree::Sons (sons, 2);
14015
22181
    CTree *result = CTree::Son (sons, 2, n);
14016
22182
    return result ? result : CT_AccessDecl::Son (n-num);
14017
22183
  }
14018
22184
  CTree *Typename () const { return sons[1]; }
 
22185
  /** Replace a son.
 
22186
   *  \param old_son The son to replace.
 
22187
   *  \param new_son The new son. */
14019
22188
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14020
22189
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14021
22190
    CT_AccessDecl::ReplaceSon (old_son, new_son);
14029
22198
/*****************************************************************************/
14030
22199
 
14031
22200
 
14032
 
#line 14033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22201
#line 22202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14033
22202
} // closed Puma
 
22203
class CCExprResolve;
 
22204
class CExprResolve;
14034
22205
class WinIfExists;
14035
22206
class WinImportHandler;
14036
22207
class WinMacros;
14037
 
class CMatchSyntax;
14038
 
class ExtGnu;
 
22208
class WinAsm;
 
22209
class WinDeclSpecs;
 
22210
class WinMemberExplSpec;
 
22211
class WinTypeKeywords;
 
22212
class WinFriend;
14039
22213
class ExtAC;
14040
22214
class ExtACBuilderCoupling;
14041
22215
class ExtACSyntaxCoupling;
14042
22216
class ExtACTree;
14043
22217
class ExtACKeywords;
14044
 
class WinAsm;
14045
 
class WinDeclSpecs;
14046
 
class WinMemberExplSpec;
14047
 
class WinTypeKeywords;
 
22218
class ExtGnu;
14048
22219
class PragmaOnceUnitState;
14049
22220
class PragmaOnce;
14050
 
class CCExprResolve;
14051
 
class CExprResolve;
 
22221
class CMatchSyntax;
14052
22222
namespace Puma {
14053
22223
 
14054
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22224
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14055
22225
class CT_Any : public CTree {
14056
 
#line 14057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22226
#line 22227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22227
  friend class ::CCExprResolve;
 
22228
  friend class ::CExprResolve;
14057
22229
  friend class ::WinIfExists;
14058
22230
  friend class ::WinImportHandler;
14059
22231
  friend class ::WinMacros;
14060
 
  friend class ::CMatchSyntax;
14061
 
  friend class ::ExtGnu;
 
22232
  friend class ::WinAsm;
 
22233
  friend class ::WinDeclSpecs;
 
22234
  friend class ::WinMemberExplSpec;
 
22235
  friend class ::WinTypeKeywords;
 
22236
  friend class ::WinFriend;
14062
22237
  friend class ::ExtAC;
14063
22238
  friend class ::ExtACBuilderCoupling;
14064
22239
  friend class ::ExtACSyntaxCoupling;
14065
22240
  friend class ::ExtACTree;
14066
22241
  friend class ::ExtACKeywords;
14067
 
  friend class ::WinAsm;
14068
 
  friend class ::WinDeclSpecs;
14069
 
  friend class ::WinMemberExplSpec;
14070
 
  friend class ::WinTypeKeywords;
 
22242
  friend class ::ExtGnu;
14071
22243
  friend class ::PragmaOnceUnitState;
14072
22244
  friend class ::PragmaOnce;
14073
 
  friend class ::CCExprResolve;
14074
 
  friend class ::CExprResolve;
 
22245
  friend class ::CMatchSyntax;
14075
22246
 
14076
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22247
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14077
22248
 
14078
22249
  CTree *sons[2]; // keyword, extension
14079
22250
 
14080
22251
public:
14081
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
22252
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
22253
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14082
22254
  static const char *NodeId ();
 
22255
  /** Get the name of the node. Can be compared with NodeId(). */
14083
22256
  const char *NodeName () const { return NodeId (); }
 
22257
  /** Get the number of sons. */
14084
22258
  int Sons () const { return CTree::Sons (sons, 2); }
 
22259
  /** Get the n-th son.
 
22260
   *  \param n The index of the son.
 
22261
   *  \return The n-th son or NULL. */
14085
22262
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
22263
  /** Replace a son.
 
22264
   *  \param old_son The son to replace.
 
22265
   *  \param new_son The new son. */
14086
22266
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14087
22267
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14088
22268
  }
14091
22271
};
14092
22272
 
14093
22273
 
14094
 
#line 14095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22274
#line 22275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14095
22275
} // closed Puma
 
22276
class CCExprResolve;
 
22277
class CExprResolve;
14096
22278
class WinIfExists;
14097
22279
class WinImportHandler;
14098
22280
class WinMacros;
14099
 
class CMatchSyntax;
14100
 
class ExtGnu;
 
22281
class WinAsm;
 
22282
class WinDeclSpecs;
 
22283
class WinMemberExplSpec;
 
22284
class WinTypeKeywords;
 
22285
class WinFriend;
14101
22286
class ExtAC;
14102
22287
class ExtACBuilderCoupling;
14103
22288
class ExtACSyntaxCoupling;
14104
22289
class ExtACTree;
14105
22290
class ExtACKeywords;
14106
 
class WinAsm;
14107
 
class WinDeclSpecs;
14108
 
class WinMemberExplSpec;
14109
 
class WinTypeKeywords;
 
22291
class ExtGnu;
14110
22292
class PragmaOnceUnitState;
14111
22293
class PragmaOnce;
14112
 
class CCExprResolve;
14113
 
class CExprResolve;
 
22294
class CMatchSyntax;
14114
22295
namespace Puma {
14115
22296
 
14116
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22297
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14117
22298
class CT_AnyList : public CT_Any {
14118
 
#line 14119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22299
#line 22300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22300
  friend class ::CCExprResolve;
 
22301
  friend class ::CExprResolve;
14119
22302
  friend class ::WinIfExists;
14120
22303
  friend class ::WinImportHandler;
14121
22304
  friend class ::WinMacros;
14122
 
  friend class ::CMatchSyntax;
14123
 
  friend class ::ExtGnu;
 
22305
  friend class ::WinAsm;
 
22306
  friend class ::WinDeclSpecs;
 
22307
  friend class ::WinMemberExplSpec;
 
22308
  friend class ::WinTypeKeywords;
 
22309
  friend class ::WinFriend;
14124
22310
  friend class ::ExtAC;
14125
22311
  friend class ::ExtACBuilderCoupling;
14126
22312
  friend class ::ExtACSyntaxCoupling;
14127
22313
  friend class ::ExtACTree;
14128
22314
  friend class ::ExtACKeywords;
14129
 
  friend class ::WinAsm;
14130
 
  friend class ::WinDeclSpecs;
14131
 
  friend class ::WinMemberExplSpec;
14132
 
  friend class ::WinTypeKeywords;
 
22315
  friend class ::ExtGnu;
14133
22316
  friend class ::PragmaOnceUnitState;
14134
22317
  friend class ::PragmaOnce;
14135
 
  friend class ::CCExprResolve;
14136
 
  friend class ::CExprResolve;
 
22318
  friend class ::CMatchSyntax;
14137
22319
 
14138
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22320
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14139
22321
 
14140
22322
public:
14141
22323
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
22324
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14142
22325
  static const char *NodeId ();
 
22326
  /** Get the name of the node. Can be compared with NodeId(). */
14143
22327
  const char *NodeName () const { return NodeId (); }
14144
22328
};
14145
22329
 
14146
22330
 
14147
 
#line 14148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22331
#line 22332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14148
22332
} // closed Puma
 
22333
class CCExprResolve;
 
22334
class CExprResolve;
14149
22335
class WinIfExists;
14150
22336
class WinImportHandler;
14151
22337
class WinMacros;
14152
 
class CMatchSyntax;
14153
 
class ExtGnu;
 
22338
class WinAsm;
 
22339
class WinDeclSpecs;
 
22340
class WinMemberExplSpec;
 
22341
class WinTypeKeywords;
 
22342
class WinFriend;
14154
22343
class ExtAC;
14155
22344
class ExtACBuilderCoupling;
14156
22345
class ExtACSyntaxCoupling;
14157
22346
class ExtACTree;
14158
22347
class ExtACKeywords;
14159
 
class WinAsm;
14160
 
class WinDeclSpecs;
14161
 
class WinMemberExplSpec;
14162
 
class WinTypeKeywords;
 
22348
class ExtGnu;
14163
22349
class PragmaOnceUnitState;
14164
22350
class PragmaOnce;
14165
 
class CCExprResolve;
14166
 
class CExprResolve;
 
22351
class CMatchSyntax;
14167
22352
namespace Puma {
14168
22353
 
14169
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22354
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14170
22355
class CT_AnyExtension : public CTree, public CSemValue {
14171
 
#line 14172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22356
#line 22357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22357
  friend class ::CCExprResolve;
 
22358
  friend class ::CExprResolve;
14172
22359
  friend class ::WinIfExists;
14173
22360
  friend class ::WinImportHandler;
14174
22361
  friend class ::WinMacros;
14175
 
  friend class ::CMatchSyntax;
14176
 
  friend class ::ExtGnu;
 
22362
  friend class ::WinAsm;
 
22363
  friend class ::WinDeclSpecs;
 
22364
  friend class ::WinMemberExplSpec;
 
22365
  friend class ::WinTypeKeywords;
 
22366
  friend class ::WinFriend;
14177
22367
  friend class ::ExtAC;
14178
22368
  friend class ::ExtACBuilderCoupling;
14179
22369
  friend class ::ExtACSyntaxCoupling;
14180
22370
  friend class ::ExtACTree;
14181
22371
  friend class ::ExtACKeywords;
14182
 
  friend class ::WinAsm;
14183
 
  friend class ::WinDeclSpecs;
14184
 
  friend class ::WinMemberExplSpec;
14185
 
  friend class ::WinTypeKeywords;
 
22372
  friend class ::ExtGnu;
14186
22373
  friend class ::PragmaOnceUnitState;
14187
22374
  friend class ::PragmaOnce;
14188
 
  friend class ::CCExprResolve;
14189
 
  friend class ::CExprResolve;
 
22375
  friend class ::CMatchSyntax;
14190
22376
 
14191
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22377
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14192
22378
 
14193
22379
  CTree *sons[5]; // open, string, comma, cond, close
14194
22380
 
14195
22381
public:
14196
22382
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
14197
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
22383
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
22384
    AddSon (sons[3], c); AddSon (sons[4], cr); 
14198
22385
  }
 
22386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14199
22387
  static const char *NodeId ();
 
22388
  /** Get the name of the node. Can be compared with NodeId(). */
14200
22389
  const char *NodeName () const { return NodeId (); }
 
22390
  /** Get the number of sons. */
14201
22391
  int Sons () const { return CTree::Sons (sons, 5); }
 
22392
  /** Get the n-th son.
 
22393
   *  \param n The index of the son.
 
22394
   *  \return The n-th son or NULL. */
14202
22395
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
22396
  /** Replace a son.
 
22397
   *  \param old_son The son to replace.
 
22398
   *  \param new_son The new son. */
14203
22399
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14204
22400
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14205
22401
  }
14213
22409
};
14214
22410
 
14215
22411
 
14216
 
#line 14217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22412
#line 22413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14217
22413
} // closed Puma
 
22414
class CCExprResolve;
 
22415
class CExprResolve;
14218
22416
class WinIfExists;
14219
22417
class WinImportHandler;
14220
22418
class WinMacros;
14221
 
class CMatchSyntax;
14222
 
class ExtGnu;
 
22419
class WinAsm;
 
22420
class WinDeclSpecs;
 
22421
class WinMemberExplSpec;
 
22422
class WinTypeKeywords;
 
22423
class WinFriend;
14223
22424
class ExtAC;
14224
22425
class ExtACBuilderCoupling;
14225
22426
class ExtACSyntaxCoupling;
14226
22427
class ExtACTree;
14227
22428
class ExtACKeywords;
14228
 
class WinAsm;
14229
 
class WinDeclSpecs;
14230
 
class WinMemberExplSpec;
14231
 
class WinTypeKeywords;
 
22429
class ExtGnu;
14232
22430
class PragmaOnceUnitState;
14233
22431
class PragmaOnce;
14234
 
class CCExprResolve;
14235
 
class CExprResolve;
 
22432
class CMatchSyntax;
14236
22433
namespace Puma {
14237
22434
 
14238
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22435
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14239
22436
class CT_AnyCondition : public CTree {
14240
 
#line 14241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22437
#line 22438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22438
  friend class ::CCExprResolve;
 
22439
  friend class ::CExprResolve;
14241
22440
  friend class ::WinIfExists;
14242
22441
  friend class ::WinImportHandler;
14243
22442
  friend class ::WinMacros;
14244
 
  friend class ::CMatchSyntax;
14245
 
  friend class ::ExtGnu;
 
22443
  friend class ::WinAsm;
 
22444
  friend class ::WinDeclSpecs;
 
22445
  friend class ::WinMemberExplSpec;
 
22446
  friend class ::WinTypeKeywords;
 
22447
  friend class ::WinFriend;
14246
22448
  friend class ::ExtAC;
14247
22449
  friend class ::ExtACBuilderCoupling;
14248
22450
  friend class ::ExtACSyntaxCoupling;
14249
22451
  friend class ::ExtACTree;
14250
22452
  friend class ::ExtACKeywords;
14251
 
  friend class ::WinAsm;
14252
 
  friend class ::WinDeclSpecs;
14253
 
  friend class ::WinMemberExplSpec;
14254
 
  friend class ::WinTypeKeywords;
 
22453
  friend class ::ExtGnu;
14255
22454
  friend class ::PragmaOnceUnitState;
14256
22455
  friend class ::PragmaOnce;
14257
 
  friend class ::CCExprResolve;
14258
 
  friend class ::CExprResolve;
 
22456
  friend class ::CMatchSyntax;
14259
22457
 
14260
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
22458
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14261
22459
 
14262
22460
  CTree *sons[3]; // arg1, arg2, arg3
14263
22461
 
14264
22462
public:
14265
22463
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
14266
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
22464
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
14267
22465
  }
 
22466
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14268
22467
  static const char *NodeId ();
 
22468
  /** Get the name of the node. Can be compared with NodeId(). */
14269
22469
  const char *NodeName () const { return NodeId (); }
 
22470
  /** Get the number of sons. */
14270
22471
  int Sons () const { return CTree::Sons (sons, 3); }
 
22472
  /** Get the n-th son.
 
22473
   *  \param n The index of the son.
 
22474
   *  \return The n-th son or NULL. */
14271
22475
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
22476
  /** Replace a son.
 
22477
   *  \param old_son The son to replace.
 
22478
   *  \param new_son The new son. */
14272
22479
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14273
22480
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14274
22481
  }
14279
22486
 
14280
22487
#endif /* __CTree_h__ */
14281
22488
 
14282
 
#line 14283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
14283
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
14284
 
 
14285
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14286
 
 
14287
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22489
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14288
22490
namespace Puma {
14289
22491
 
14290
22492
 
14291
22493
 
14292
 
#line 14293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22494
#line 22495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14293
22495
} // closed Puma
 
22496
class CCExprResolve;
 
22497
class CExprResolve;
14294
22498
class WinIfExists;
14295
22499
class WinImportHandler;
14296
22500
class WinMacros;
14297
 
class CMatchSyntax;
14298
 
class ExtGnu;
 
22501
class WinAsm;
 
22502
class WinDeclSpecs;
 
22503
class WinMemberExplSpec;
 
22504
class WinTypeKeywords;
 
22505
class WinFriend;
14299
22506
class ExtAC;
14300
22507
class ExtACBuilderCoupling;
14301
22508
class ExtACSyntaxCoupling;
14302
22509
class ExtACTree;
14303
22510
class ExtACKeywords;
14304
 
class WinAsm;
14305
 
class WinDeclSpecs;
14306
 
class WinMemberExplSpec;
14307
 
class WinTypeKeywords;
 
22511
class ExtGnu;
14308
22512
class PragmaOnceUnitState;
14309
22513
class PragmaOnce;
14310
 
class CCExprResolve;
14311
 
class CExprResolve;
 
22514
class CMatchSyntax;
14312
22515
namespace Puma {
14313
22516
 
14314
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22517
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14315
22518
class CT_AdviceDecl : public CT_Decl {
14316
 
#line 14317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22519
#line 22520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22520
  friend class ::CCExprResolve;
 
22521
  friend class ::CExprResolve;
14317
22522
  friend class ::WinIfExists;
14318
22523
  friend class ::WinImportHandler;
14319
22524
  friend class ::WinMacros;
14320
 
  friend class ::CMatchSyntax;
14321
 
  friend class ::ExtGnu;
 
22525
  friend class ::WinAsm;
 
22526
  friend class ::WinDeclSpecs;
 
22527
  friend class ::WinMemberExplSpec;
 
22528
  friend class ::WinTypeKeywords;
 
22529
  friend class ::WinFriend;
14322
22530
  friend class ::ExtAC;
14323
22531
  friend class ::ExtACBuilderCoupling;
14324
22532
  friend class ::ExtACSyntaxCoupling;
14325
22533
  friend class ::ExtACTree;
14326
22534
  friend class ::ExtACKeywords;
14327
 
  friend class ::WinAsm;
14328
 
  friend class ::WinDeclSpecs;
14329
 
  friend class ::WinMemberExplSpec;
14330
 
  friend class ::WinTypeKeywords;
 
22535
  friend class ::ExtGnu;
14331
22536
  friend class ::PragmaOnceUnitState;
14332
22537
  friend class ::PragmaOnce;
14333
 
  friend class ::CCExprResolve;
14334
 
  friend class ::CExprResolve;
 
22538
  friend class ::CMatchSyntax;
14335
22539
 
14336
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22540
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14337
22541
 
14338
22542
  CTree *_advice;    // CT_Token
14339
22543
  CTree *_pointcut;
14366
22570
};
14367
22571
 
14368
22572
 
14369
 
#line 14370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22573
#line 22574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14370
22574
} // closed Puma
 
22575
class CCExprResolve;
 
22576
class CExprResolve;
14371
22577
class WinIfExists;
14372
22578
class WinImportHandler;
14373
22579
class WinMacros;
14374
 
class CMatchSyntax;
14375
 
class ExtGnu;
 
22580
class WinAsm;
 
22581
class WinDeclSpecs;
 
22582
class WinMemberExplSpec;
 
22583
class WinTypeKeywords;
 
22584
class WinFriend;
14376
22585
class ExtAC;
14377
22586
class ExtACBuilderCoupling;
14378
22587
class ExtACSyntaxCoupling;
14379
22588
class ExtACTree;
14380
22589
class ExtACKeywords;
14381
 
class WinAsm;
14382
 
class WinDeclSpecs;
14383
 
class WinMemberExplSpec;
14384
 
class WinTypeKeywords;
 
22590
class ExtGnu;
14385
22591
class PragmaOnceUnitState;
14386
22592
class PragmaOnce;
14387
 
class CCExprResolve;
14388
 
class CExprResolve;
 
22593
class CMatchSyntax;
14389
22594
namespace Puma {
14390
22595
 
14391
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22596
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14392
22597
class CT_OrderList : public CT_List {
14393
 
#line 14394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22598
#line 22599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22599
  friend class ::CCExprResolve;
 
22600
  friend class ::CExprResolve;
14394
22601
  friend class ::WinIfExists;
14395
22602
  friend class ::WinImportHandler;
14396
22603
  friend class ::WinMacros;
14397
 
  friend class ::CMatchSyntax;
14398
 
  friend class ::ExtGnu;
 
22604
  friend class ::WinAsm;
 
22605
  friend class ::WinDeclSpecs;
 
22606
  friend class ::WinMemberExplSpec;
 
22607
  friend class ::WinTypeKeywords;
 
22608
  friend class ::WinFriend;
14399
22609
  friend class ::ExtAC;
14400
22610
  friend class ::ExtACBuilderCoupling;
14401
22611
  friend class ::ExtACSyntaxCoupling;
14402
22612
  friend class ::ExtACTree;
14403
22613
  friend class ::ExtACKeywords;
14404
 
  friend class ::WinAsm;
14405
 
  friend class ::WinDeclSpecs;
14406
 
  friend class ::WinMemberExplSpec;
14407
 
  friend class ::WinTypeKeywords;
 
22614
  friend class ::ExtGnu;
14408
22615
  friend class ::PragmaOnceUnitState;
14409
22616
  friend class ::PragmaOnce;
14410
 
  friend class ::CCExprResolve;
14411
 
  friend class ::CExprResolve;
 
22617
  friend class ::CMatchSyntax;
14412
22618
 
14413
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22619
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14414
22620
 
14415
22621
public:
14416
22622
  CT_OrderList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
14419
22625
};
14420
22626
 
14421
22627
 
14422
 
#line 14423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22628
#line 22629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14423
22629
} // closed Puma
 
22630
class CCExprResolve;
 
22631
class CExprResolve;
14424
22632
class WinIfExists;
14425
22633
class WinImportHandler;
14426
22634
class WinMacros;
14427
 
class CMatchSyntax;
14428
 
class ExtGnu;
 
22635
class WinAsm;
 
22636
class WinDeclSpecs;
 
22637
class WinMemberExplSpec;
 
22638
class WinTypeKeywords;
 
22639
class WinFriend;
14429
22640
class ExtAC;
14430
22641
class ExtACBuilderCoupling;
14431
22642
class ExtACSyntaxCoupling;
14432
22643
class ExtACTree;
14433
22644
class ExtACKeywords;
14434
 
class WinAsm;
14435
 
class WinDeclSpecs;
14436
 
class WinMemberExplSpec;
14437
 
class WinTypeKeywords;
 
22645
class ExtGnu;
14438
22646
class PragmaOnceUnitState;
14439
22647
class PragmaOnce;
14440
 
class CCExprResolve;
14441
 
class CExprResolve;
 
22648
class CMatchSyntax;
14442
22649
namespace Puma {
14443
22650
 
14444
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22651
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14445
22652
class CT_OrderDecl : public CTree {
14446
 
#line 14447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22653
#line 22654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22654
  friend class ::CCExprResolve;
 
22655
  friend class ::CExprResolve;
14447
22656
  friend class ::WinIfExists;
14448
22657
  friend class ::WinImportHandler;
14449
22658
  friend class ::WinMacros;
14450
 
  friend class ::CMatchSyntax;
14451
 
  friend class ::ExtGnu;
 
22659
  friend class ::WinAsm;
 
22660
  friend class ::WinDeclSpecs;
 
22661
  friend class ::WinMemberExplSpec;
 
22662
  friend class ::WinTypeKeywords;
 
22663
  friend class ::WinFriend;
14452
22664
  friend class ::ExtAC;
14453
22665
  friend class ::ExtACBuilderCoupling;
14454
22666
  friend class ::ExtACSyntaxCoupling;
14455
22667
  friend class ::ExtACTree;
14456
22668
  friend class ::ExtACKeywords;
14457
 
  friend class ::WinAsm;
14458
 
  friend class ::WinDeclSpecs;
14459
 
  friend class ::WinMemberExplSpec;
14460
 
  friend class ::WinTypeKeywords;
 
22669
  friend class ::ExtGnu;
14461
22670
  friend class ::PragmaOnceUnitState;
14462
22671
  friend class ::PragmaOnce;
14463
 
  friend class ::CCExprResolve;
14464
 
  friend class ::CExprResolve;
 
22672
  friend class ::CMatchSyntax;
14465
22673
 
14466
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22674
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14467
22675
 
14468
22676
  CTree *_order;
14469
22677
  CTree *_order_list;
14491
22699
};
14492
22700
 
14493
22701
 
14494
 
#line 14495 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22702
#line 22703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14495
22703
} // closed Puma
 
22704
class CCExprResolve;
 
22705
class CExprResolve;
14496
22706
class WinIfExists;
14497
22707
class WinImportHandler;
14498
22708
class WinMacros;
14499
 
class CMatchSyntax;
14500
 
class ExtGnu;
 
22709
class WinAsm;
 
22710
class WinDeclSpecs;
 
22711
class WinMemberExplSpec;
 
22712
class WinTypeKeywords;
 
22713
class WinFriend;
14501
22714
class ExtAC;
14502
22715
class ExtACBuilderCoupling;
14503
22716
class ExtACSyntaxCoupling;
14504
22717
class ExtACTree;
14505
22718
class ExtACKeywords;
14506
 
class WinAsm;
14507
 
class WinDeclSpecs;
14508
 
class WinMemberExplSpec;
14509
 
class WinTypeKeywords;
 
22719
class ExtGnu;
14510
22720
class PragmaOnceUnitState;
14511
22721
class PragmaOnce;
14512
 
class CCExprResolve;
14513
 
class CExprResolve;
 
22722
class CMatchSyntax;
14514
22723
namespace Puma {
14515
22724
 
14516
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22725
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14517
22726
class CT_PointcutDecl : public CT_Decl {
14518
 
#line 14519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22727
#line 22728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22728
  friend class ::CCExprResolve;
 
22729
  friend class ::CExprResolve;
14519
22730
  friend class ::WinIfExists;
14520
22731
  friend class ::WinImportHandler;
14521
22732
  friend class ::WinMacros;
14522
 
  friend class ::CMatchSyntax;
14523
 
  friend class ::ExtGnu;
 
22733
  friend class ::WinAsm;
 
22734
  friend class ::WinDeclSpecs;
 
22735
  friend class ::WinMemberExplSpec;
 
22736
  friend class ::WinTypeKeywords;
 
22737
  friend class ::WinFriend;
14524
22738
  friend class ::ExtAC;
14525
22739
  friend class ::ExtACBuilderCoupling;
14526
22740
  friend class ::ExtACSyntaxCoupling;
14527
22741
  friend class ::ExtACTree;
14528
22742
  friend class ::ExtACKeywords;
14529
 
  friend class ::WinAsm;
14530
 
  friend class ::WinDeclSpecs;
14531
 
  friend class ::WinMemberExplSpec;
14532
 
  friend class ::WinTypeKeywords;
 
22743
  friend class ::ExtGnu;
14533
22744
  friend class ::PragmaOnceUnitState;
14534
22745
  friend class ::PragmaOnce;
14535
 
  friend class ::CCExprResolve;
14536
 
  friend class ::CExprResolve;
 
22746
  friend class ::CMatchSyntax;
14537
22747
 
14538
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22748
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14539
22749
 
14540
22750
  CTree *_pointcut;    // CT_Token
14541
22751
  CTree *_decl;
14560
22770
};
14561
22771
 
14562
22772
 
14563
 
#line 14564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22773
#line 22774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14564
22774
} // closed Puma
 
22775
class CCExprResolve;
 
22776
class CExprResolve;
14565
22777
class WinIfExists;
14566
22778
class WinImportHandler;
14567
22779
class WinMacros;
14568
 
class CMatchSyntax;
14569
 
class ExtGnu;
 
22780
class WinAsm;
 
22781
class WinDeclSpecs;
 
22782
class WinMemberExplSpec;
 
22783
class WinTypeKeywords;
 
22784
class WinFriend;
14570
22785
class ExtAC;
14571
22786
class ExtACBuilderCoupling;
14572
22787
class ExtACSyntaxCoupling;
14573
22788
class ExtACTree;
14574
22789
class ExtACKeywords;
14575
 
class WinAsm;
14576
 
class WinDeclSpecs;
14577
 
class WinMemberExplSpec;
14578
 
class WinTypeKeywords;
 
22790
class ExtGnu;
14579
22791
class PragmaOnceUnitState;
14580
22792
class PragmaOnce;
14581
 
class CCExprResolve;
14582
 
class CExprResolve;
 
22793
class CMatchSyntax;
14583
22794
namespace Puma {
14584
22795
 
14585
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22796
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14586
22797
class CT_Intro : public CT_List, public CSemScope {
14587
 
#line 14588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22798
#line 22799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22799
  friend class ::CCExprResolve;
 
22800
  friend class ::CExprResolve;
14588
22801
  friend class ::WinIfExists;
14589
22802
  friend class ::WinImportHandler;
14590
22803
  friend class ::WinMacros;
14591
 
  friend class ::CMatchSyntax;
14592
 
  friend class ::ExtGnu;
 
22804
  friend class ::WinAsm;
 
22805
  friend class ::WinDeclSpecs;
 
22806
  friend class ::WinMemberExplSpec;
 
22807
  friend class ::WinTypeKeywords;
 
22808
  friend class ::WinFriend;
14593
22809
  friend class ::ExtAC;
14594
22810
  friend class ::ExtACBuilderCoupling;
14595
22811
  friend class ::ExtACSyntaxCoupling;
14596
22812
  friend class ::ExtACTree;
14597
22813
  friend class ::ExtACKeywords;
14598
 
  friend class ::WinAsm;
14599
 
  friend class ::WinDeclSpecs;
14600
 
  friend class ::WinMemberExplSpec;
14601
 
  friend class ::WinTypeKeywords;
 
22814
  friend class ::ExtGnu;
14602
22815
  friend class ::PragmaOnceUnitState;
14603
22816
  friend class ::PragmaOnce;
14604
 
  friend class ::CCExprResolve;
14605
 
  friend class ::CExprResolve;
 
22817
  friend class ::CMatchSyntax;
14606
22818
 
14607
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22819
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14608
22820
 
14609
22821
  // indices of aspect or slice names in introduction
14610
22822
  Array<int> _name_indices;    // start index
14642
22854
};
14643
22855
 
14644
22856
 
14645
 
#line 14646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22857
#line 22858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14646
22858
} // closed Puma
 
22859
class CCExprResolve;
 
22860
class CExprResolve;
14647
22861
class WinIfExists;
14648
22862
class WinImportHandler;
14649
22863
class WinMacros;
14650
 
class CMatchSyntax;
14651
 
class ExtGnu;
 
22864
class WinAsm;
 
22865
class WinDeclSpecs;
 
22866
class WinMemberExplSpec;
 
22867
class WinTypeKeywords;
 
22868
class WinFriend;
14652
22869
class ExtAC;
14653
22870
class ExtACBuilderCoupling;
14654
22871
class ExtACSyntaxCoupling;
14655
22872
class ExtACTree;
14656
22873
class ExtACKeywords;
14657
 
class WinAsm;
14658
 
class WinDeclSpecs;
14659
 
class WinMemberExplSpec;
14660
 
class WinTypeKeywords;
 
22874
class ExtGnu;
14661
22875
class PragmaOnceUnitState;
14662
22876
class PragmaOnce;
14663
 
class CCExprResolve;
14664
 
class CExprResolve;
 
22877
class CMatchSyntax;
14665
22878
namespace Puma {
14666
22879
 
14667
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22880
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14668
22881
class CT_ClassSliceDecl : public CTree, public CSemObject {
14669
 
#line 14670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22882
#line 22883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22883
  friend class ::CCExprResolve;
 
22884
  friend class ::CExprResolve;
14670
22885
  friend class ::WinIfExists;
14671
22886
  friend class ::WinImportHandler;
14672
22887
  friend class ::WinMacros;
14673
 
  friend class ::CMatchSyntax;
14674
 
  friend class ::ExtGnu;
 
22888
  friend class ::WinAsm;
 
22889
  friend class ::WinDeclSpecs;
 
22890
  friend class ::WinMemberExplSpec;
 
22891
  friend class ::WinTypeKeywords;
 
22892
  friend class ::WinFriend;
14675
22893
  friend class ::ExtAC;
14676
22894
  friend class ::ExtACBuilderCoupling;
14677
22895
  friend class ::ExtACSyntaxCoupling;
14678
22896
  friend class ::ExtACTree;
14679
22897
  friend class ::ExtACKeywords;
14680
 
  friend class ::WinAsm;
14681
 
  friend class ::WinDeclSpecs;
14682
 
  friend class ::WinMemberExplSpec;
14683
 
  friend class ::WinTypeKeywords;
 
22898
  friend class ::ExtGnu;
14684
22899
  friend class ::PragmaOnceUnitState;
14685
22900
  friend class ::PragmaOnce;
14686
 
  friend class ::CCExprResolve;
14687
 
  friend class ::CExprResolve;
 
22901
  friend class ::CMatchSyntax;
14688
22902
 
14689
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22903
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14690
22904
 
14691
22905
  CTree *sons[6]; // SLICE? <key>? <name>? <baseclasses>? <members> ;
14692
22906
public:
14707
22921
};
14708
22922
 
14709
22923
 
14710
 
#line 14711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22924
#line 22925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14711
22925
} // closed Puma
 
22926
class CCExprResolve;
 
22927
class CExprResolve;
14712
22928
class WinIfExists;
14713
22929
class WinImportHandler;
14714
22930
class WinMacros;
14715
 
class CMatchSyntax;
14716
 
class ExtGnu;
 
22931
class WinAsm;
 
22932
class WinDeclSpecs;
 
22933
class WinMemberExplSpec;
 
22934
class WinTypeKeywords;
 
22935
class WinFriend;
14717
22936
class ExtAC;
14718
22937
class ExtACBuilderCoupling;
14719
22938
class ExtACSyntaxCoupling;
14720
22939
class ExtACTree;
14721
22940
class ExtACKeywords;
14722
 
class WinAsm;
14723
 
class WinDeclSpecs;
14724
 
class WinMemberExplSpec;
14725
 
class WinTypeKeywords;
 
22941
class ExtGnu;
14726
22942
class PragmaOnceUnitState;
14727
22943
class PragmaOnce;
14728
 
class CCExprResolve;
14729
 
class CExprResolve;
 
22944
class CMatchSyntax;
14730
22945
namespace Puma {
14731
22946
 
14732
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22947
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14733
22948
class CT_SliceRef : public CTree {
14734
 
#line 14735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
22949
#line 22950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
22950
  friend class ::CCExprResolve;
 
22951
  friend class ::CExprResolve;
14735
22952
  friend class ::WinIfExists;
14736
22953
  friend class ::WinImportHandler;
14737
22954
  friend class ::WinMacros;
14738
 
  friend class ::CMatchSyntax;
14739
 
  friend class ::ExtGnu;
 
22955
  friend class ::WinAsm;
 
22956
  friend class ::WinDeclSpecs;
 
22957
  friend class ::WinMemberExplSpec;
 
22958
  friend class ::WinTypeKeywords;
 
22959
  friend class ::WinFriend;
14740
22960
  friend class ::ExtAC;
14741
22961
  friend class ::ExtACBuilderCoupling;
14742
22962
  friend class ::ExtACSyntaxCoupling;
14743
22963
  friend class ::ExtACTree;
14744
22964
  friend class ::ExtACKeywords;
14745
 
  friend class ::WinAsm;
14746
 
  friend class ::WinDeclSpecs;
14747
 
  friend class ::WinMemberExplSpec;
14748
 
  friend class ::WinTypeKeywords;
 
22965
  friend class ::ExtGnu;
14749
22966
  friend class ::PragmaOnceUnitState;
14750
22967
  friend class ::PragmaOnce;
14751
 
  friend class ::CCExprResolve;
14752
 
  friend class ::CExprResolve;
 
22968
  friend class ::CMatchSyntax;
14753
22969
 
14754
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
22970
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
14755
22971
 
14756
22972
  CTree *sons[3];
14757
22973
public:
14773
22989
 
14774
22990
#endif /* __ACTree_h__ */
14775
22991
 
14776
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
22992
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
14777
22993
// This file is part of PUMA.
14778
22994
// Copyright (C) 1999-2003  The PUMA developer team.
14779
22995
//                                                                
14797
23013
 
14798
23014
// #include "Puma/CClassDatabase.h"
14799
23015
 
14800
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
23016
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
14801
23017
using std::ostream;
14802
23018
using std::endl;
14803
23019
 
14820
23036
 *  An ACClassDatabase object is an AspectC++ specific database of all  
14821
23037
 *  aspect, slice, and pointcut info objects. */
14822
23038
 
14823
 
#line 14824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23039
#line 23040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
14824
23040
} // closed Puma
 
23041
class CCExprResolve;
 
23042
class CExprResolve;
14825
23043
class WinIfExists;
14826
23044
class WinImportHandler;
14827
23045
class WinMacros;
14828
 
class CMatchSyntax;
14829
 
class ExtGnu;
 
23046
class WinAsm;
 
23047
class WinDeclSpecs;
 
23048
class WinMemberExplSpec;
 
23049
class WinTypeKeywords;
 
23050
class WinFriend;
14830
23051
class ExtAC;
14831
23052
class ExtACBuilderCoupling;
14832
23053
class ExtACSyntaxCoupling;
14833
23054
class ExtACTree;
14834
23055
class ExtACKeywords;
14835
 
class WinAsm;
14836
 
class WinDeclSpecs;
14837
 
class WinMemberExplSpec;
14838
 
class WinTypeKeywords;
 
23056
class ExtGnu;
14839
23057
class PragmaOnceUnitState;
14840
23058
class PragmaOnce;
14841
 
class CCExprResolve;
14842
 
class CExprResolve;
 
23059
class CMatchSyntax;
14843
23060
namespace Puma {
14844
23061
 
14845
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
23062
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
14846
23063
class ACClassDatabase {
14847
 
#line 14848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23064
#line 23065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23065
  friend class ::CCExprResolve;
 
23066
  friend class ::CExprResolve;
14848
23067
  friend class ::WinIfExists;
14849
23068
  friend class ::WinImportHandler;
14850
23069
  friend class ::WinMacros;
14851
 
  friend class ::CMatchSyntax;
14852
 
  friend class ::ExtGnu;
 
23070
  friend class ::WinAsm;
 
23071
  friend class ::WinDeclSpecs;
 
23072
  friend class ::WinMemberExplSpec;
 
23073
  friend class ::WinTypeKeywords;
 
23074
  friend class ::WinFriend;
14853
23075
  friend class ::ExtAC;
14854
23076
  friend class ::ExtACBuilderCoupling;
14855
23077
  friend class ::ExtACSyntaxCoupling;
14856
23078
  friend class ::ExtACTree;
14857
23079
  friend class ::ExtACKeywords;
14858
 
  friend class ::WinAsm;
14859
 
  friend class ::WinDeclSpecs;
14860
 
  friend class ::WinMemberExplSpec;
14861
 
  friend class ::WinTypeKeywords;
 
23080
  friend class ::ExtGnu;
14862
23081
  friend class ::PragmaOnceUnitState;
14863
23082
  friend class ::PragmaOnce;
14864
 
  friend class ::CCExprResolve;
14865
 
  friend class ::CExprResolve;
 
23083
  friend class ::CMatchSyntax;
14866
23084
 
14867
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
23085
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
14868
23086
 
14869
23087
  Array<ACAspectInfo*>   _aspect;   // index of aspects
14870
23088
  Array<ACPointcutInfo*> _pointcut; // index of pointcuts
14944
23162
 
14945
23163
#endif /* __ACClassDatabase_h__ */
14946
23164
 
14947
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
23165
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
14948
23166
// This file is part of PUMA.
14949
23167
// Copyright (C) 1999-2003  The PUMA developer team.
14950
23168
//                                                                
14970
23188
using std::set;
14971
23189
 
14972
23190
 
14973
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
23191
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
14974
23192
// This file is part of PUMA.
14975
23193
// Copyright (C) 1999-2003  The PUMA developer team.
14976
23194
//                                                                
14996
23214
// knows its base and derived classes
14997
23215
 
14998
23216
 
14999
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
23217
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
15000
23218
// This file is part of PUMA.
15001
23219
// Copyright (C) 1999-2003  The PUMA developer team.
15002
23220
//                                                                
15021
23239
// base class of class and union infos
15022
23240
 
15023
23241
 
15024
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
23242
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
15025
23243
// This file is part of PUMA.
15026
23244
// Copyright (C) 1999-2003  The PUMA developer team.
15027
23245
//                                                                
15055
23273
// aliases
15056
23274
 
15057
23275
 
15058
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
15059
 
// This file is part of PUMA.
15060
 
// Copyright (C) 1999-2003  The PUMA developer team.
15061
 
//                                                                
15062
 
// This program is free software;  you can redistribute it and/or 
15063
 
// modify it under the terms of the GNU General Public License as 
15064
 
// published by the Free Software Foundation; either version 2 of 
15065
 
// the License, or (at your option) any later version.            
15066
 
//                                                                
15067
 
// This program is distributed in the hope that it will be useful,
15068
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15069
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15070
 
// GNU General Public License for more details.                   
15071
 
//                                                                
15072
 
// You should have received a copy of the GNU General Public      
15073
 
// License along with this program; if not, write to the Free     
15074
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15075
 
// MA  02111-1307  USA                                            
15076
 
 
15077
 
#ifndef __CScopeInfo_h__
15078
 
#define __CScopeInfo_h__
15079
 
 
15080
 
// scope info
15081
 
 
15082
 
 
15083
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15084
 
// This file is part of PUMA.
15085
 
// Copyright (C) 1999-2003  The PUMA developer team.
15086
 
//                                                                
15087
 
// This program is free software;  you can redistribute it and/or 
15088
 
// modify it under the terms of the GNU General Public License as 
15089
 
// published by the Free Software Foundation; either version 2 of 
15090
 
// the License, or (at your option) any later version.            
15091
 
//                                                                
15092
 
// This program is distributed in the hope that it will be useful,
15093
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15094
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15095
 
// GNU General Public License for more details.                   
15096
 
//                                                                
15097
 
// You should have received a copy of the GNU General Public      
15098
 
// License along with this program; if not, write to the Free     
15099
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15100
 
// MA  02111-1307  USA                                            
15101
 
 
15102
 
#ifndef __CObjectInfo_h__
15103
 
#define __CObjectInfo_h__
15104
 
 
15105
 
// base class of all semantic infos
15106
 
// knows the type of the info, the name of the entity it
15107
 
// represents, its qualified name (on demand), its type,
15108
 
// its object linkage, its storage duration, its class
15109
 
// member access level (protection), and the specifiers 
15110
 
// that were used at the declaration of the entity,
15111
 
// knows the source file location of the entity's declaration,
15112
 
// the corresponding syntax tree node, the class database 
15113
 
// it belongs to, and other semantic info objects that refer
15114
 
// to the same entity
15115
 
 
15116
 
 
15117
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
15118
 
// This file is part of PUMA.
15119
 
// Copyright (C) 1999-2003  The PUMA developer team.
15120
 
//                                                                
15121
 
// This program is free software;  you can redistribute it and/or 
15122
 
// modify it under the terms of the GNU General Public License as 
15123
 
// published by the Free Software Foundation; either version 2 of 
15124
 
// the License, or (at your option) any later version.            
15125
 
//                                                                
15126
 
// This program is distributed in the hope that it will be useful,
15127
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15128
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15129
 
// GNU General Public License for more details.                   
15130
 
//                                                                
15131
 
// You should have received a copy of the GNU General Public      
15132
 
// License along with this program; if not, write to the Free     
15133
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15134
 
// MA  02111-1307  USA                                            
15135
 
 
15136
 
#ifndef __CSourceInfo_h__
15137
 
#define __CSourceInfo_h__
15138
 
 
15139
 
// stores source file information
15140
 
// knows the file and the start token where an entity
15141
 
// was declared in a program
15142
 
 
15143
 
namespace Puma {
15144
 
 
15145
 
 
15146
 
class CFileInfo;
15147
 
class CT_Token;
15148
 
class Token;
15149
 
class Unit;
15150
 
 
15151
 
 
15152
 
#line 15153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15153
 
} // closed Puma
15154
 
class WinIfExists;
15155
 
class WinImportHandler;
15156
 
class WinMacros;
15157
 
class CMatchSyntax;
15158
 
class ExtGnu;
15159
 
class ExtAC;
15160
 
class ExtACBuilderCoupling;
15161
 
class ExtACSyntaxCoupling;
15162
 
class ExtACTree;
15163
 
class ExtACKeywords;
15164
 
class WinAsm;
15165
 
class WinDeclSpecs;
15166
 
class WinMemberExplSpec;
15167
 
class WinTypeKeywords;
15168
 
class PragmaOnceUnitState;
15169
 
class PragmaOnce;
15170
 
class CCExprResolve;
15171
 
class CExprResolve;
15172
 
namespace Puma {
15173
 
 
15174
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
15175
 
class CSourceInfo {
15176
 
#line 15177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15177
 
  friend class ::WinIfExists;
15178
 
  friend class ::WinImportHandler;
15179
 
  friend class ::WinMacros;
15180
 
  friend class ::CMatchSyntax;
15181
 
  friend class ::ExtGnu;
15182
 
  friend class ::ExtAC;
15183
 
  friend class ::ExtACBuilderCoupling;
15184
 
  friend class ::ExtACSyntaxCoupling;
15185
 
  friend class ::ExtACTree;
15186
 
  friend class ::ExtACKeywords;
15187
 
  friend class ::WinAsm;
15188
 
  friend class ::WinDeclSpecs;
15189
 
  friend class ::WinMemberExplSpec;
15190
 
  friend class ::WinTypeKeywords;
15191
 
  friend class ::PragmaOnceUnitState;
15192
 
  friend class ::PragmaOnce;
15193
 
  friend class ::CCExprResolve;
15194
 
  friend class ::CExprResolve;
15195
 
 
15196
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
15197
 
 
15198
 
  CFileInfo *_FileInfo; 
15199
 
  CT_Token *_StartToken;
15200
 
 
15201
 
public: 
15202
 
  CSourceInfo ();
15203
 
  ~CSourceInfo ();
15204
 
  
15205
 
  bool operator ==(const CSourceInfo &) const;
15206
 
  bool operator !=(const CSourceInfo &) const;
15207
 
  bool operator <(const CSourceInfo &) const;
15208
 
  bool operator >(const CSourceInfo &) const;
15209
 
  bool operator <=(const CSourceInfo &) const;
15210
 
  bool operator >=(const CSourceInfo &) const;
15211
 
 
15212
 
  bool operator ==(const CT_Token *) const;
15213
 
  bool operator !=(const CT_Token *) const;
15214
 
  bool operator <(const CT_Token *) const;
15215
 
  bool operator >(const CT_Token *) const;
15216
 
  bool operator <=(const CT_Token *) const;
15217
 
  bool operator >=(const CT_Token *) const;
15218
 
 
15219
 
  bool operator ==(const Token *) const;
15220
 
 
15221
 
  // Get ...
15222
 
  CFileInfo *FileInfo () const;
15223
 
  CT_Token *StartToken () const;
15224
 
  const char *FileName () const; // the file where it is located
15225
 
  int Line () const;
15226
 
  Unit *SrcUnit () const;
15227
 
 
15228
 
  // Set ... 
15229
 
  void FileInfo (CFileInfo *);
15230
 
  void StartToken (CT_Token *);
15231
 
};
15232
 
 
15233
 
inline CSourceInfo::CSourceInfo () :
15234
 
  _FileInfo ((CFileInfo*)0),
15235
 
  _StartToken ((CT_Token*)0)
15236
 
 {}
15237
 
 
15238
 
inline CSourceInfo::~CSourceInfo ()
15239
 
 {}
15240
 
 
15241
 
inline bool CSourceInfo::operator !=(const CSourceInfo &info) const 
15242
 
 { return ! (*this == info); }
15243
 
inline bool CSourceInfo::operator <=(const CSourceInfo &info) const 
15244
 
 { return ! (*this > info); }
15245
 
inline bool CSourceInfo::operator >=(const CSourceInfo &info) const 
15246
 
 { return ! (*this < info); }
15247
 
 
15248
 
inline bool CSourceInfo::operator !=(const CT_Token *token) const 
15249
 
 { return ! (*this == token); }
15250
 
inline bool CSourceInfo::operator <=(const CT_Token *token) const 
15251
 
 { return ! (*this > token); }
15252
 
inline bool CSourceInfo::operator >=(const CT_Token *token) const 
15253
 
 { return ! (*this < token); }
15254
 
 
15255
 
inline CFileInfo *CSourceInfo::FileInfo () const
15256
 
 { return _FileInfo; }
15257
 
inline CT_Token *CSourceInfo::StartToken () const
15258
 
 { return _StartToken; }
15259
 
 
15260
 
inline void CSourceInfo::FileInfo (CFileInfo *info)
15261
 
 { _FileInfo = info; }
15262
 
inline void CSourceInfo::StartToken (CT_Token *token)
15263
 
 { _StartToken = token; }
15264
 
 
15265
 
 
15266
 
} // namespace Puma
15267
 
 
15268
 
#endif /* __CSourceInfo_h__ */
15269
 
 
15270
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
15271
 
// This file is part of PUMA.
15272
 
// Copyright (C) 1999-2003  The PUMA developer team.
15273
 
//                                                                
15274
 
// This program is free software;  you can redistribute it and/or 
15275
 
// modify it under the terms of the GNU General Public License as 
15276
 
// published by the Free Software Foundation; either version 2 of 
15277
 
// the License, or (at your option) any later version.            
15278
 
//                                                                
15279
 
// This program is distributed in the hope that it will be useful,
15280
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15281
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15282
 
// GNU General Public License for more details.                   
15283
 
//                                                                
15284
 
// You should have received a copy of the GNU General Public      
15285
 
// License along with this program; if not, write to the Free     
15286
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15287
 
// MA  02111-1307  USA                                            
15288
 
 
15289
 
#ifndef __CProtection_h__
15290
 
#define __CProtection_h__
15291
 
 
15292
 
// C++ class member protection
15293
 
 
15294
 
namespace Puma {
15295
 
 
15296
 
 
15297
 
 
15298
 
#line 15299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15299
 
} // closed Puma
15300
 
class WinIfExists;
15301
 
class WinImportHandler;
15302
 
class WinMacros;
15303
 
class CMatchSyntax;
15304
 
class ExtGnu;
15305
 
class ExtAC;
15306
 
class ExtACBuilderCoupling;
15307
 
class ExtACSyntaxCoupling;
15308
 
class ExtACTree;
15309
 
class ExtACKeywords;
15310
 
class WinAsm;
15311
 
class WinDeclSpecs;
15312
 
class WinMemberExplSpec;
15313
 
class WinTypeKeywords;
15314
 
class PragmaOnceUnitState;
15315
 
class PragmaOnce;
15316
 
class CCExprResolve;
15317
 
class CExprResolve;
15318
 
namespace Puma {
15319
 
 
15320
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
15321
 
struct CProtection {
15322
 
#line 15323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15323
 
  friend class ::WinIfExists;
15324
 
  friend class ::WinImportHandler;
15325
 
  friend class ::WinMacros;
15326
 
  friend class ::CMatchSyntax;
15327
 
  friend class ::ExtGnu;
15328
 
  friend class ::ExtAC;
15329
 
  friend class ::ExtACBuilderCoupling;
15330
 
  friend class ::ExtACSyntaxCoupling;
15331
 
  friend class ::ExtACTree;
15332
 
  friend class ::ExtACKeywords;
15333
 
  friend class ::WinAsm;
15334
 
  friend class ::WinDeclSpecs;
15335
 
  friend class ::WinMemberExplSpec;
15336
 
  friend class ::WinTypeKeywords;
15337
 
  friend class ::PragmaOnceUnitState;
15338
 
  friend class ::PragmaOnce;
15339
 
  friend class ::CCExprResolve;
15340
 
  friend class ::CExprResolve;
15341
 
 
15342
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
15343
 
 
15344
 
  enum Type {
15345
 
    PROT_PUBLIC, 
15346
 
    PROT_PROTECTED, 
15347
 
    PROT_PRIVATE,
15348
 
    PROT_NONE
15349
 
  };
15350
 
};
15351
 
 
15352
 
 
15353
 
} // namespace Puma
15354
 
 
15355
 
#endif /* __CProtection_h__ */
15356
 
 
15357
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
15358
 
// This file is part of PUMA.
15359
 
// Copyright (C) 1999-2003  The PUMA developer team.
15360
 
//                                                                
15361
 
// This program is free software;  you can redistribute it and/or 
15362
 
// modify it under the terms of the GNU General Public License as 
15363
 
// published by the Free Software Foundation; either version 2 of 
15364
 
// the License, or (at your option) any later version.            
15365
 
//                                                                
15366
 
// This program is distributed in the hope that it will be useful,
15367
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15368
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15369
 
// GNU General Public License for more details.                   
15370
 
//                                                                
15371
 
// You should have received a copy of the GNU General Public      
15372
 
// License along with this program; if not, write to the Free     
15373
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15374
 
// MA  02111-1307  USA                                            
15375
 
 
15376
 
#ifndef __CStorage_h__
15377
 
#define __CStorage_h__
15378
 
 
15379
 
// C++ storage classes
15380
 
 
15381
 
namespace Puma {
15382
 
 
15383
 
 
15384
 
 
15385
 
#line 15386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15386
 
} // closed Puma
15387
 
class WinIfExists;
15388
 
class WinImportHandler;
15389
 
class WinMacros;
15390
 
class CMatchSyntax;
15391
 
class ExtGnu;
15392
 
class ExtAC;
15393
 
class ExtACBuilderCoupling;
15394
 
class ExtACSyntaxCoupling;
15395
 
class ExtACTree;
15396
 
class ExtACKeywords;
15397
 
class WinAsm;
15398
 
class WinDeclSpecs;
15399
 
class WinMemberExplSpec;
15400
 
class WinTypeKeywords;
15401
 
class PragmaOnceUnitState;
15402
 
class PragmaOnce;
15403
 
class CCExprResolve;
15404
 
class CExprResolve;
15405
 
namespace Puma {
15406
 
 
15407
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
15408
 
struct CStorage {
15409
 
#line 15410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15410
 
  friend class ::WinIfExists;
15411
 
  friend class ::WinImportHandler;
15412
 
  friend class ::WinMacros;
15413
 
  friend class ::CMatchSyntax;
15414
 
  friend class ::ExtGnu;
15415
 
  friend class ::ExtAC;
15416
 
  friend class ::ExtACBuilderCoupling;
15417
 
  friend class ::ExtACSyntaxCoupling;
15418
 
  friend class ::ExtACTree;
15419
 
  friend class ::ExtACKeywords;
15420
 
  friend class ::WinAsm;
15421
 
  friend class ::WinDeclSpecs;
15422
 
  friend class ::WinMemberExplSpec;
15423
 
  friend class ::WinTypeKeywords;
15424
 
  friend class ::PragmaOnceUnitState;
15425
 
  friend class ::PragmaOnce;
15426
 
  friend class ::CCExprResolve;
15427
 
  friend class ::CExprResolve;
15428
 
 
15429
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
15430
 
 
15431
 
  enum Type {
15432
 
    CLASS_STATIC,
15433
 
    CLASS_AUTOMATIC, 
15434
 
    CLASS_DYNAMIC,
15435
 
    CLASS_NONE
15436
 
  };
15437
 
};
15438
 
 
15439
 
 
15440
 
} // namespace Puma
15441
 
 
15442
 
#endif /* __CStorage_h__ */
15443
 
 
15444
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15445
 
// This file is part of PUMA.
15446
 
// Copyright (C) 1999-2003  The PUMA developer team.
15447
 
//                                                                
15448
 
// This program is free software;  you can redistribute it and/or 
15449
 
// modify it under the terms of the GNU General Public License as 
15450
 
// published by the Free Software Foundation; either version 2 of 
15451
 
// the License, or (at your option) any later version.            
15452
 
//                                                                
15453
 
// This program is distributed in the hope that it will be useful,
15454
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15455
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15456
 
// GNU General Public License for more details.                   
15457
 
//                                                                
15458
 
// You should have received a copy of the GNU General Public      
15459
 
// License along with this program; if not, write to the Free     
15460
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15461
 
// MA  02111-1307  USA                                            
15462
 
 
15463
 
#ifndef __CLinkage_h__
15464
 
#define __CLinkage_h__
15465
 
 
15466
 
// C++ object linkage
15467
 
 
15468
 
namespace Puma {
15469
 
 
15470
 
 
15471
 
 
15472
 
#line 15473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15473
 
} // closed Puma
15474
 
class WinIfExists;
15475
 
class WinImportHandler;
15476
 
class WinMacros;
15477
 
class CMatchSyntax;
15478
 
class ExtGnu;
15479
 
class ExtAC;
15480
 
class ExtACBuilderCoupling;
15481
 
class ExtACSyntaxCoupling;
15482
 
class ExtACTree;
15483
 
class ExtACKeywords;
15484
 
class WinAsm;
15485
 
class WinDeclSpecs;
15486
 
class WinMemberExplSpec;
15487
 
class WinTypeKeywords;
15488
 
class PragmaOnceUnitState;
15489
 
class PragmaOnce;
15490
 
class CCExprResolve;
15491
 
class CExprResolve;
15492
 
namespace Puma {
15493
 
 
15494
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15495
 
struct CLinkage {
15496
 
#line 15497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15497
 
  friend class ::WinIfExists;
15498
 
  friend class ::WinImportHandler;
15499
 
  friend class ::WinMacros;
15500
 
  friend class ::CMatchSyntax;
15501
 
  friend class ::ExtGnu;
15502
 
  friend class ::ExtAC;
15503
 
  friend class ::ExtACBuilderCoupling;
15504
 
  friend class ::ExtACSyntaxCoupling;
15505
 
  friend class ::ExtACTree;
15506
 
  friend class ::ExtACKeywords;
15507
 
  friend class ::WinAsm;
15508
 
  friend class ::WinDeclSpecs;
15509
 
  friend class ::WinMemberExplSpec;
15510
 
  friend class ::WinTypeKeywords;
15511
 
  friend class ::PragmaOnceUnitState;
15512
 
  friend class ::PragmaOnce;
15513
 
  friend class ::CCExprResolve;
15514
 
  friend class ::CExprResolve;
15515
 
 
15516
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
15517
 
 
15518
 
  enum Type {
15519
 
    LINK_INTERNAL, 
15520
 
    LINK_EXTERNAL, 
15521
 
    LINK_NONE
15522
 
  };
15523
 
};
15524
 
 
15525
 
 
15526
 
} // namespace Puma
15527
 
 
15528
 
#endif /* __CLinkage_h__ */
15529
 
 
15530
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15531
 
// This file is part of PUMA.
15532
 
// Copyright (C) 1999-2003  The PUMA developer team.
15533
 
//                                                                
15534
 
// This program is free software;  you can redistribute it and/or 
15535
 
// modify it under the terms of the GNU General Public License as 
15536
 
// published by the Free Software Foundation; either version 2 of 
15537
 
// the License, or (at your option) any later version.            
15538
 
//                                                                
15539
 
// This program is distributed in the hope that it will be useful,
15540
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15541
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15542
 
// GNU General Public License for more details.                   
15543
 
//                                                                
15544
 
// You should have received a copy of the GNU General Public      
15545
 
// License along with this program; if not, write to the Free     
15546
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15547
 
// MA  02111-1307  USA                                            
15548
 
 
15549
 
#ifndef __CLanguage_h__
15550
 
#define __CLanguage_h__
15551
 
 
15552
 
 
15553
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15554
 
// Entity name encoding language; language linkage
15555
 
 
15556
 
namespace Puma {
15557
 
 
15558
 
 
15559
 
 
15560
 
#line 15561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15561
 
} // closed Puma
15562
 
class WinIfExists;
15563
 
class WinImportHandler;
15564
 
class WinMacros;
15565
 
class CMatchSyntax;
15566
 
class ExtGnu;
15567
 
class ExtAC;
15568
 
class ExtACBuilderCoupling;
15569
 
class ExtACSyntaxCoupling;
15570
 
class ExtACTree;
15571
 
class ExtACKeywords;
15572
 
class WinAsm;
15573
 
class WinDeclSpecs;
15574
 
class WinMemberExplSpec;
15575
 
class WinTypeKeywords;
15576
 
class PragmaOnceUnitState;
15577
 
class PragmaOnce;
15578
 
class CCExprResolve;
15579
 
class CExprResolve;
15580
 
namespace Puma {
15581
 
 
15582
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15583
 
class CLanguage {
15584
 
#line 15585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15585
 
  friend class ::WinIfExists;
15586
 
  friend class ::WinImportHandler;
15587
 
  friend class ::WinMacros;
15588
 
  friend class ::CMatchSyntax;
15589
 
  friend class ::ExtGnu;
15590
 
  friend class ::ExtAC;
15591
 
  friend class ::ExtACBuilderCoupling;
15592
 
  friend class ::ExtACSyntaxCoupling;
15593
 
  friend class ::ExtACTree;
15594
 
  friend class ::ExtACKeywords;
15595
 
  friend class ::WinAsm;
15596
 
  friend class ::WinDeclSpecs;
15597
 
  friend class ::WinMemberExplSpec;
15598
 
  friend class ::WinTypeKeywords;
15599
 
  friend class ::PragmaOnceUnitState;
15600
 
  friend class ::PragmaOnce;
15601
 
  friend class ::CCExprResolve;
15602
 
  friend class ::CExprResolve;
15603
 
 
15604
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
15605
 
 
15606
 
public:
15607
 
  enum LangType {
15608
 
    LANG_C,
15609
 
    LANG_CPLUSPLUS,
15610
 
    LANG_OTHER,
15611
 
    LANG_UNDEFINED
15612
 
  };
15613
 
    
15614
 
private:
15615
 
  LangType m_Type;
15616
 
  DString m_Text;
15617
 
 
15618
 
public:
15619
 
  CLanguage () : m_Type (LANG_UNDEFINED), m_Text ("") {}
15620
 
  
15621
 
  void Type (LangType lt) { 
15622
 
    m_Type = lt; m_Text = (lt==LANG_C)?"C":(lt==LANG_CPLUSPLUS)?"C++":""; 
15623
 
  }
15624
 
  void Type (LangType lt, const char *txt) { 
15625
 
    m_Type = lt; m_Text = (lt==LANG_C)?"C":(lt==LANG_CPLUSPLUS)?"C++":(lt==LANG_OTHER)?txt:""; 
15626
 
  }
15627
 
 
15628
 
  LangType Type () const { return m_Type; }
15629
 
  const DString &Text () const { return m_Text; }
15630
 
 
15631
 
  bool operator== (const CLanguage &lang) { return (m_Type == lang.Type ()) && (m_Text == lang.Text ()); }
15632
 
  bool operator== (LangType lt) { return (m_Type == lt); }
15633
 
};
15634
 
 
15635
 
 
15636
 
} // namespace Puma
15637
 
 
15638
 
#endif /* __CLanguage_h__ */
15639
 
 
15640
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15641
 
// This file is part of PUMA.
15642
 
// Copyright (C) 1999-2003  The PUMA developer team.
15643
 
//                                                                
15644
 
// This program is free software;  you can redistribute it and/or 
15645
 
// modify it under the terms of the GNU General Public License as 
15646
 
// published by the Free Software Foundation; either version 2 of 
15647
 
// the License, or (at your option) any later version.            
15648
 
//                                                                
15649
 
// This program is distributed in the hope that it will be useful,
15650
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
15651
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
15652
 
// GNU General Public License for more details.                   
15653
 
//                                                                
15654
 
// You should have received a copy of the GNU General Public      
15655
 
// License along with this program; if not, write to the Free     
15656
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
15657
 
// MA  02111-1307  USA                                            
15658
 
 
15659
 
#ifndef __CSpecifiers__
15660
 
#define __CSpecifiers__
15661
 
 
15662
 
// C++ declaration specifiers
15663
 
 
15664
 
namespace Puma {
15665
 
 
15666
 
 
15667
 
 
15668
 
#line 15669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15669
 
} // closed Puma
15670
 
class WinIfExists;
15671
 
class WinImportHandler;
15672
 
class WinMacros;
15673
 
class CMatchSyntax;
15674
 
class ExtGnu;
15675
 
class ExtAC;
15676
 
class ExtACBuilderCoupling;
15677
 
class ExtACSyntaxCoupling;
15678
 
class ExtACTree;
15679
 
class ExtACKeywords;
15680
 
class WinAsm;
15681
 
class WinDeclSpecs;
15682
 
class WinMemberExplSpec;
15683
 
class WinTypeKeywords;
15684
 
class PragmaOnceUnitState;
15685
 
class PragmaOnce;
15686
 
class CCExprResolve;
15687
 
class CExprResolve;
15688
 
namespace Puma {
15689
 
 
15690
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15691
 
class CSpecifiers {
15692
 
#line 15693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15693
 
  friend class ::WinIfExists;
15694
 
  friend class ::WinImportHandler;
15695
 
  friend class ::WinMacros;
15696
 
  friend class ::CMatchSyntax;
15697
 
  friend class ::ExtGnu;
15698
 
  friend class ::ExtAC;
15699
 
  friend class ::ExtACBuilderCoupling;
15700
 
  friend class ::ExtACSyntaxCoupling;
15701
 
  friend class ::ExtACTree;
15702
 
  friend class ::ExtACKeywords;
15703
 
  friend class ::WinAsm;
15704
 
  friend class ::WinDeclSpecs;
15705
 
  friend class ::WinMemberExplSpec;
15706
 
  friend class ::WinTypeKeywords;
15707
 
  friend class ::PragmaOnceUnitState;
15708
 
  friend class ::PragmaOnce;
15709
 
  friend class ::CCExprResolve;
15710
 
  friend class ::CExprResolve;
15711
 
 
15712
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
15713
 
 
15714
 
public:
15715
 
  enum Spec {
15716
 
    SPEC_NONE     = 0x0,
15717
 
    SPEC_VIRTUAL  = 0x1,
15718
 
    SPEC_STATIC   = 0x2,
15719
 
    SPEC_EXTERN   = 0x4,
15720
 
    SPEC_MUTABLE  = 0x8,
15721
 
    SPEC_REGISTER = 0x10,
15722
 
    SPEC_EXPLICIT = 0x20,
15723
 
    SPEC_AUTO     = 0x40,
15724
 
    SPEC_INLINE   = 0x80
15725
 
  };
15726
 
 
15727
 
private:
15728
 
  unsigned char _specs;
15729
 
  
15730
 
public:
15731
 
  CSpecifiers ();
15732
 
  CSpecifiers (const CSpecifiers &);
15733
 
  CSpecifiers &operator =(const CSpecifiers &);
15734
 
 
15735
 
  // add/remove specifier
15736
 
  CSpecifiers &operator +=(Spec);
15737
 
  CSpecifiers &operator -=(Spec);
15738
 
  
15739
 
  // test for specifier
15740
 
  bool operator ==(Spec) const;
15741
 
  bool operator !=(Spec) const;
15742
 
};
15743
 
 
15744
 
inline CSpecifiers::CSpecifiers () : _specs (SPEC_NONE) 
15745
 
 {}
15746
 
inline CSpecifiers::CSpecifiers (const CSpecifiers &s)
15747
 
 { _specs = s._specs; }
15748
 
inline CSpecifiers &CSpecifiers::operator =(const CSpecifiers &s)
15749
 
 { _specs = s._specs; return *(CSpecifiers*)this; }
15750
 
 
15751
 
inline CSpecifiers &CSpecifiers::operator +=(CSpecifiers::Spec s)
15752
 
 { _specs = _specs | (unsigned char)s; return *(CSpecifiers*)this; }
15753
 
inline CSpecifiers &CSpecifiers::operator -=(CSpecifiers::Spec s)
15754
 
 { _specs = _specs ^ (_specs & (unsigned char)s); return *(CSpecifiers*)this; }
15755
 
 
15756
 
inline bool CSpecifiers::operator ==(CSpecifiers::Spec s) const
15757
 
 { return _specs & (unsigned char)s; }
15758
 
inline bool CSpecifiers::operator !=(CSpecifiers::Spec s) const
15759
 
 { return ! (_specs & (unsigned char)s); }
15760
 
 
15761
 
 
15762
 
} // namespace Puma
15763
 
 
15764
 
#endif /* __CSpecifiers__ */
15765
 
 
15766
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15767
 
namespace Puma {
15768
 
 
15769
 
 
15770
 
class CRecord;
15771
 
class CStructure;
15772
 
class CFileInfo;
15773
 
class CClassInfo;
15774
 
class CBaseClassInfo;
15775
 
class CMemberAliasInfo;
15776
 
class CTypeInfo;
15777
 
class CScopeInfo;
15778
 
class CLabelInfo;
15779
 
class CUnionInfo;
15780
 
class CLocalScope;
15781
 
class CEnumInfo;
15782
 
class CUsingInfo;
15783
 
class CEnumeratorInfo;
15784
 
class CTypedefInfo;
15785
 
class CFunctionInfo;
15786
 
class CArgumentInfo;
15787
 
class CAttributeInfo;
15788
 
class CTemplateParamInfo;
15789
 
class CTemplateInfo;
15790
 
class CNamespaceInfo;
15791
 
class CClassInstance;
15792
 
class CUnionInstance;
15793
 
class CFctInstance;
15794
 
class CClassDatabase;
15795
 
class CTree;
15796
 
class CT_ExprList;
15797
 
class CTemplateInstance;
15798
 
 
15799
 
 
15800
 
#line 15801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15801
 
} // closed Puma
15802
 
class WinIfExists;
15803
 
class WinImportHandler;
15804
 
class WinMacros;
15805
 
class CMatchSyntax;
15806
 
class ExtGnu;
15807
 
class ExtAC;
15808
 
class ExtACBuilderCoupling;
15809
 
class ExtACSyntaxCoupling;
15810
 
class ExtACTree;
15811
 
class ExtACKeywords;
15812
 
class WinAsm;
15813
 
class WinDeclSpecs;
15814
 
class WinMemberExplSpec;
15815
 
class WinTypeKeywords;
15816
 
class PragmaOnceUnitState;
15817
 
class PragmaOnce;
15818
 
class CCExprResolve;
15819
 
class CExprResolve;
15820
 
namespace Puma {
15821
 
 
15822
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15823
 
class CObjectInfo {
15824
 
#line 15825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
15825
 
  friend class ::WinIfExists;
15826
 
  friend class ::WinImportHandler;
15827
 
  friend class ::WinMacros;
15828
 
  friend class ::CMatchSyntax;
15829
 
  friend class ::ExtGnu;
15830
 
  friend class ::ExtAC;
15831
 
  friend class ::ExtACBuilderCoupling;
15832
 
  friend class ::ExtACSyntaxCoupling;
15833
 
  friend class ::ExtACTree;
15834
 
  friend class ::ExtACKeywords;
15835
 
  friend class ::WinAsm;
15836
 
  friend class ::WinDeclSpecs;
15837
 
  friend class ::WinMemberExplSpec;
15838
 
  friend class ::WinTypeKeywords;
15839
 
  friend class ::PragmaOnceUnitState;
15840
 
  friend class ::PragmaOnce;
15841
 
  friend class ::CCExprResolve;
15842
 
  friend class ::CExprResolve;
15843
 
 
15844
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
15845
 
 
15846
 
protected:
15847
 
  enum ObjectId {
15848
 
    FILE_INFO, 
15849
 
    UNION_INFO, 
15850
 
    CLASS_INFO,
15851
 
    BASECLASS_INFO,
15852
 
    MEMBERALIAS_INFO,
15853
 
    ENUM_INFO, 
15854
 
    TYPEDEF_INFO, 
15855
 
    FUNCTION_INFO, 
15856
 
    LABEL_INFO,
15857
 
    ENUMERATOR_INFO,
15858
 
    ATTRIBUTE_INFO, 
15859
 
    TEMPLATE_PARAM_INFO,
15860
 
    TEMPLATE_INFO,
15861
 
    CLASS_INSTANCE_INFO,
15862
 
    UNION_INSTANCE_INFO,
15863
 
    FCT_INSTANCE_INFO,
15864
 
    ARGUMENT_INFO, 
15865
 
    LOCAL_INFO, 
15866
 
    NAMESPACE_INFO,
15867
 
    USING_INFO
15868
 
  };
15869
 
 
15870
 
  bool               _DeleteMembersOnly;
15871
 
  
15872
 
private:
15873
 
  DString            _Name;
15874
 
  const char        *_QualName;         // Full qualified name
15875
 
  CTypeInfo         *_TypeInfo;
15876
 
  CObjectInfo       *_BaseObject;       // corresponding object of base class
15877
 
  CObjectInfo       *_Next;             // next linked object
15878
 
  CObjectInfo       *_Prev;             // previous linked object
15879
 
  CClassDatabase    *_ClassDB;
15880
 
  CTree             *_Tree;             // corresponding syntax tree
15881
 
  ObjectId           _Id;               // object type
15882
 
  CSpecifiers        _Specifiers;
15883
 
  CSourceInfo        _SourceInfo;       // location in source file
15884
 
  CProtection::Type  _Protection;
15885
 
  CLinkage::Type     _Linkage;
15886
 
  CStorage::Type     _Storage;            
15887
 
  CLanguage          _Language;
15888
 
 
15889
 
protected:
15890
 
  CStructure        *_QualScope;        // != 0 only in CAttributeInfo, CFunctionInfo, and CRecord
15891
 
  CStructure        *_AssignedScope;    // -real- scope of friend classes
15892
 
  Array<CStructure*> _Registered;         
15893
 
  
15894
 
public: 
15895
 
  ~CObjectInfo ();
15896
 
  
15897
 
  // compares the addresses of this and all linked objects
15898
 
  // to determine whether two objects denote the same entity
15899
 
  bool operator ==(const CObjectInfo &) const;
15900
 
  bool operator !=(const CObjectInfo &) const;
15901
 
 
15902
 
  // ask the object info type
15903
 
  CObjectInfo        *ObjectInfo () const;
15904
 
  CLabelInfo         *LabelInfo () const;
15905
 
  CMemberAliasInfo   *MemberAliasInfo () const; 
15906
 
  CBaseClassInfo     *BaseClassInfo () const;
15907
 
  CUsingInfo         *UsingInfo () const;
15908
 
  CTypedefInfo       *TypedefInfo () const;
15909
 
  CArgumentInfo      *ArgumentInfo () const;
15910
 
  CAttributeInfo     *AttributeInfo () const;
15911
 
  CTemplateParamInfo *TemplateParamInfo () const; 
15912
 
  CStructure         *Structure () const; 
15913
 
  CFileInfo          *FileInfo () const;  
15914
 
  CRecord            *Record () const;        
15915
 
  CLocalScope        *LocalScope () const;
15916
 
  CScopeInfo         *ScopeInfo () const; 
15917
 
  CClassInfo         *ClassInfo () const;
15918
 
  CUnionInfo         *UnionInfo () const;
15919
 
  CEnumInfo          *EnumInfo () const;
15920
 
  CFunctionInfo      *FunctionInfo () const;
15921
 
  CNamespaceInfo     *NamespaceInfo () const;
15922
 
  CEnumeratorInfo    *EnumeratorInfo () const;
15923
 
  CTemplateInfo      *TemplateInfo () const; 
15924
 
  CClassInstance     *ClassInstance () const; 
15925
 
  CFctInstance       *FctInstance () const; 
15926
 
  CUnionInstance     *UnionInstance () const; 
15927
 
  CTemplateInstance  *TemplateInstance () const;
15928
 
  CRecord            *ClassScope () const;
15929
 
 
15930
 
  // Get ...
15931
 
  ObjectId            Id () const;
15932
 
  const DString&      Name () const; 
15933
 
  const char         *QualName ();                // created on demand
15934
 
  CObjectInfo        *DefObject () const;         // info of the definition
15935
 
  CTypeInfo          *TypeInfo () const;
15936
 
  CScopeInfo         *Scope () const;             // enclosing scope
15937
 
  CStructure         *QualifiedScope () const;    // scope of qualified names
15938
 
  CSourceInfo        *SourceInfo () const;        // location in source file
15939
 
  CClassDatabase     *ClassDB () const; 
15940
 
  CTree              *Tree () const;
15941
 
  CObjectInfo        *NextObject () const;        // next linked object
15942
 
  CObjectInfo        *PrevObject () const;        // previous linked object
15943
 
  bool                isAnonymous () const;       // has only a private name?
15944
 
  bool                isTemplate () const;
15945
 
  bool                isTemplateInstance () const;
15946
 
  bool                isBuiltin () const;         // has no tree?
15947
 
  bool                isClassMember () const;     // is method or data member?
15948
 
  CTemplateInfo      *Template () const;          // template info of template
15949
 
  CObjectInfo        *BaseObject () const;        // base class object; not yet set
15950
 
  CT_ExprList        *Init () const;              // get initializer (if any)
15951
 
  CProtection::Type   Protection () const;        // member access level
15952
 
  CLinkage::Type      Linkage () const;           // object linkage
15953
 
  CStorage::Type      Storage () const;           // storage duration
15954
 
  const CLanguage    &Language () const;          // entity encoding language
15955
 
  CLanguage          &Language ();                // entity encoding language
15956
 
  bool                isVirtual () const;         // defined virtual?
15957
 
  bool                isStatic () const;          // defined static?
15958
 
  bool                isExtern () const;          // defined extern?
15959
 
  bool                isMutable () const;         // defined mutable?
15960
 
  bool                isRegister () const;        // defined register?
15961
 
  bool                isExplicit () const;        // defined explicit?
15962
 
  bool                isInline () const;          // defined inline?
15963
 
  bool                isAuto () const;            // defined auto?
15964
 
  CStructure          *AssignedScope () const; 
15965
 
  bool                isRegistered (const CStructure*) const;
15966
 
 
15967
 
  // Set ...
15968
 
  void                Name (const char* s) { Name(DString(s==0?"":s)); }
15969
 
  void                Name (const DString&);
15970
 
  void                TypeInfo (CTypeInfo *);
15971
 
  void                BaseObject (CObjectInfo *);
15972
 
  void                Protection (CProtection::Type);
15973
 
  void                Linkage (CLinkage::Type);
15974
 
  void                Storage (CStorage::Type);
15975
 
  void                FileInfo (CFileInfo *);
15976
 
  void                Tree (CTree *);    
15977
 
  void                ClassDB (CClassDatabase *);
15978
 
  void                DeleteMembersOnly ();
15979
 
  void                NextObject (CObjectInfo *); 
15980
 
  void                PrevObject (CObjectInfo *); 
15981
 
  void                Unlink (); 
15982
 
  void                Register (CStructure *);
15983
 
  void                Unregister (CStructure *);
15984
 
  void                isVirtual (bool);
15985
 
  void                isStatic (bool);
15986
 
  void                isExtern (bool);
15987
 
  void                isMutable (bool);
15988
 
  void                isRegister (bool);
15989
 
  void                isExplicit (bool);
15990
 
  void                isInline (bool);
15991
 
  void                isAuto (bool);
15992
 
  void                AssignedScope (CStructure *);
15993
 
 
15994
 
protected:  
15995
 
  CObjectInfo (ObjectId);
15996
 
 
15997
 
  void CleanUp ();
15998
 
};
15999
 
 
16000
 
inline CObjectInfo::CObjectInfo (CObjectInfo::ObjectId id) :
16001
 
  _DeleteMembersOnly (false),
16002
 
  _Name              (),
16003
 
  _QualName          ((const char*)0),
16004
 
  _TypeInfo          ((CTypeInfo*)0),
16005
 
  _BaseObject        ((CObjectInfo*)0),
16006
 
  _Next              ((CObjectInfo*)this),
16007
 
  _Prev              ((CObjectInfo*)this),
16008
 
  _ClassDB           ((CClassDatabase*)0),
16009
 
  _Tree              ((CTree*)0),
16010
 
  _Id                (id),
16011
 
  _Protection        (CProtection::PROT_NONE), 
16012
 
  _Linkage           (CLinkage::LINK_NONE),
16013
 
  _Storage           (CStorage::CLASS_NONE),
16014
 
  _QualScope         ((CStructure*)0),
16015
 
  _AssignedScope     ((CStructure*)0)
16016
 
 {}
16017
 
 
16018
 
inline CObjectInfo::ObjectId CObjectInfo::Id () const
16019
 
 { return _Id; }
16020
 
 
16021
 
inline bool CObjectInfo::operator !=(const CObjectInfo &info) const
16022
 
 { return ! (*this == info); }
16023
 
 
16024
 
inline const DString& CObjectInfo::Name () const 
16025
 
 { return _Name; }
16026
 
inline CTypeInfo *CObjectInfo::TypeInfo () const
16027
 
 { return _TypeInfo; }
16028
 
inline CSourceInfo *CObjectInfo::SourceInfo () const
16029
 
 { return (CSourceInfo*)&_SourceInfo; }
16030
 
inline CProtection::Type CObjectInfo::Protection () const
16031
 
 { return _Protection; }
16032
 
inline CLinkage::Type CObjectInfo::Linkage () const
16033
 
 { return _Linkage; }
16034
 
inline CStorage::Type CObjectInfo::Storage () const
16035
 
 { return _Storage; }
16036
 
inline CLanguage &CObjectInfo::Language ()
16037
 
 { return _Language; }
16038
 
inline const CLanguage &CObjectInfo::Language () const
16039
 
 { return _Language; }
16040
 
inline CObjectInfo *CObjectInfo::BaseObject () const
16041
 
 { return _BaseObject; }
16042
 
inline CTree *CObjectInfo::Tree () const 
16043
 
 { return _Tree; }
16044
 
inline CClassDatabase *CObjectInfo::ClassDB () const
16045
 
 { return _ClassDB; }
16046
 
inline CT_ExprList *CObjectInfo::Init () const 
16047
 
 { return (CT_ExprList*)0; }
16048
 
 
16049
 
inline void CObjectInfo::Protection (CProtection::Type s)
16050
 
 { _Protection = s; }
16051
 
inline void CObjectInfo::Linkage (CLinkage::Type s)
16052
 
 { _Linkage = s; }
16053
 
inline void CObjectInfo::Storage (CStorage::Type s)
16054
 
 { _Storage = s; }
16055
 
inline void CObjectInfo::BaseObject (CObjectInfo *info)
16056
 
 { _BaseObject = info; }
16057
 
inline void CObjectInfo::Tree (CTree *t)    
16058
 
 { _Tree = t; }
16059
 
inline void CObjectInfo::ClassDB (CClassDatabase *db) 
16060
 
 { _ClassDB = db; }
16061
 
inline void CObjectInfo::DeleteMembersOnly () 
16062
 
 { _DeleteMembersOnly = true; }
16063
 
 
16064
 
inline void CObjectInfo::Register (CStructure *scope)
16065
 
 { _Registered.append (scope); }
16066
 
 
16067
 
inline bool CObjectInfo::isAnonymous () const 
16068
 
 { return (Name ().empty () || *Name ().c_str () == '%'); }
16069
 
inline bool CObjectInfo::isBuiltin () const
16070
 
 { return ! (Tree ()); }
16071
 
inline bool CObjectInfo::isTemplateInstance () const 
16072
 
 { return (ClassInstance () || UnionInstance () || FctInstance ()); }
16073
 
 
16074
 
inline bool CObjectInfo::isVirtual () const
16075
 
 { return _Specifiers == CSpecifiers::SPEC_VIRTUAL; }
16076
 
inline bool CObjectInfo::isStatic () const
16077
 
 { return _Specifiers == CSpecifiers::SPEC_STATIC; }
16078
 
inline bool CObjectInfo::isExtern () const
16079
 
 { return _Specifiers == CSpecifiers::SPEC_EXTERN; }
16080
 
inline bool CObjectInfo::isMutable () const
16081
 
 { return _Specifiers == CSpecifiers::SPEC_MUTABLE; }
16082
 
inline bool CObjectInfo::isRegister () const
16083
 
 { return _Specifiers == CSpecifiers::SPEC_REGISTER; }
16084
 
inline bool CObjectInfo::isExplicit () const
16085
 
 { return _Specifiers == CSpecifiers::SPEC_EXPLICIT; }
16086
 
inline bool CObjectInfo::isInline () const
16087
 
 { return _Specifiers == CSpecifiers::SPEC_INLINE; }
16088
 
inline bool CObjectInfo::isAuto () const
16089
 
 { return _Specifiers == CSpecifiers::SPEC_AUTO; }
16090
 
 
16091
 
inline void CObjectInfo::isVirtual (bool v)
16092
 
 { if (v) _Specifiers += CSpecifiers::SPEC_VIRTUAL; 
16093
 
   else   _Specifiers -= CSpecifiers::SPEC_VIRTUAL; }
16094
 
inline void CObjectInfo::isStatic (bool v)
16095
 
 { if (v) _Specifiers += CSpecifiers::SPEC_STATIC; 
16096
 
   else   _Specifiers -= CSpecifiers::SPEC_STATIC; }
16097
 
inline void CObjectInfo::isExtern (bool v)
16098
 
 { if (v) _Specifiers += CSpecifiers::SPEC_EXTERN; 
16099
 
   else   _Specifiers -= CSpecifiers::SPEC_EXTERN; }
16100
 
inline void CObjectInfo::isMutable (bool v)
16101
 
 { if (v) _Specifiers += CSpecifiers::SPEC_MUTABLE; 
16102
 
   else   _Specifiers -= CSpecifiers::SPEC_MUTABLE; }
16103
 
inline void CObjectInfo::isRegister (bool v)
16104
 
 { if (v) _Specifiers += CSpecifiers::SPEC_REGISTER; 
16105
 
   else   _Specifiers -= CSpecifiers::SPEC_REGISTER; }
16106
 
inline void CObjectInfo::isExplicit (bool v)
16107
 
 { if (v) _Specifiers += CSpecifiers::SPEC_EXPLICIT; 
16108
 
   else   _Specifiers -= CSpecifiers::SPEC_EXPLICIT; }
16109
 
inline void CObjectInfo::isInline (bool v)
16110
 
 { if (v) _Specifiers += CSpecifiers::SPEC_INLINE; 
16111
 
   else   _Specifiers -= CSpecifiers::SPEC_INLINE; }
16112
 
inline void CObjectInfo::isAuto (bool v)
16113
 
 { if (v) _Specifiers += CSpecifiers::SPEC_AUTO; 
16114
 
   else   _Specifiers -= CSpecifiers::SPEC_AUTO; }
16115
 
 
16116
 
// link objects
16117
 
 
16118
 
inline CObjectInfo *CObjectInfo::NextObject () const
16119
 
 { return _Next; }
16120
 
inline CObjectInfo *CObjectInfo::PrevObject () const
16121
 
 { return _Prev; }
16122
 
 
16123
 
inline CMemberAliasInfo *CObjectInfo::MemberAliasInfo () const
16124
 
 { return _Id == MEMBERALIAS_INFO ? (CMemberAliasInfo*)this : (CMemberAliasInfo*)0; }
16125
 
inline CBaseClassInfo *CObjectInfo::BaseClassInfo () const
16126
 
 { return _Id == BASECLASS_INFO ? (CBaseClassInfo*)this : (CBaseClassInfo*)0; }
16127
 
inline CClassInfo *CObjectInfo::ClassInfo () const
16128
 
 { return _Id == CLASS_INFO || _Id == CLASS_INSTANCE_INFO ? (CClassInfo*)this : (CClassInfo*)0; }
16129
 
inline CUnionInfo *CObjectInfo::UnionInfo () const
16130
 
 { return _Id == UNION_INFO || _Id == UNION_INSTANCE_INFO ? (CUnionInfo*)this : (CUnionInfo*)0; }
16131
 
inline CEnumInfo *CObjectInfo::EnumInfo () const
16132
 
 { return _Id == ENUM_INFO ? (CEnumInfo*)this : (CEnumInfo*)0; }
16133
 
inline CUsingInfo *CObjectInfo::UsingInfo () const
16134
 
 { return _Id == USING_INFO ? (CUsingInfo*)this : (CUsingInfo*)0; }
16135
 
inline CEnumeratorInfo *CObjectInfo::EnumeratorInfo () const
16136
 
 { return _Id == ENUMERATOR_INFO ? (CEnumeratorInfo*)this : (CEnumeratorInfo*)0; }
16137
 
inline CTypedefInfo *CObjectInfo::TypedefInfo () const
16138
 
 { return _Id == TYPEDEF_INFO ? (CTypedefInfo*)this : (CTypedefInfo*)0; }
16139
 
inline CFunctionInfo *CObjectInfo::FunctionInfo () const
16140
 
 { return _Id == FUNCTION_INFO || _Id == FCT_INSTANCE_INFO ? (CFunctionInfo*)this : (CFunctionInfo*)0; }
16141
 
inline CArgumentInfo *CObjectInfo::ArgumentInfo () const
16142
 
 { return _Id == ARGUMENT_INFO ? (CArgumentInfo*)this : (CArgumentInfo*)0; }
16143
 
inline CAttributeInfo *CObjectInfo::AttributeInfo () const
16144
 
 { return _Id == ATTRIBUTE_INFO || _Id == ENUMERATOR_INFO ? (CAttributeInfo*)this : (CAttributeInfo*)0; }
16145
 
inline CNamespaceInfo *CObjectInfo::NamespaceInfo () const
16146
 
 { return _Id == NAMESPACE_INFO || _Id == FILE_INFO ? (CNamespaceInfo*)this : (CNamespaceInfo*)0; }
16147
 
inline CLabelInfo *CObjectInfo::LabelInfo () const
16148
 
 { return _Id == LABEL_INFO ? (CLabelInfo*)this : (CLabelInfo*)0; }
16149
 
inline CFileInfo *CObjectInfo::FileInfo () const
16150
 
 { return _Id == FILE_INFO ? (CFileInfo*)this : (CFileInfo*)0; }
16151
 
inline CStructure *CObjectInfo::Structure () const
16152
 
 { return NamespaceInfo () || ClassInfo () || UnionInfo () || 
16153
 
          FunctionInfo () || TemplateInfo () || LocalScope () ? 
16154
 
          (CStructure*)this : (CStructure*)0; }
16155
 
inline CRecord *CObjectInfo::Record () const
16156
 
 { return ClassInfo () || UnionInfo () ? (CRecord*)this : (CRecord*)0; }
16157
 
inline CLocalScope *CObjectInfo::LocalScope () const
16158
 
 { return _Id == LOCAL_INFO ? (CLocalScope*)this : (CLocalScope*)0; }
16159
 
inline CTemplateParamInfo *CObjectInfo::TemplateParamInfo () const
16160
 
 { return _Id == TEMPLATE_PARAM_INFO ? (CTemplateParamInfo*)this : (CTemplateParamInfo*)0; }
16161
 
inline CTemplateInfo *CObjectInfo::TemplateInfo () const
16162
 
 { return _Id == TEMPLATE_INFO ? (CTemplateInfo*)this : (CTemplateInfo*)0; }
16163
 
inline CScopeInfo *CObjectInfo::ScopeInfo () const
16164
 
 { return /*_Id == SCOPE_INFO ||*/ Structure () ? (CScopeInfo*)this : (CScopeInfo*)0; }
16165
 
inline CObjectInfo *CObjectInfo::ObjectInfo () const
16166
 
 { return (CObjectInfo*)this; }
16167
 
inline CClassInstance *CObjectInfo::ClassInstance () const
16168
 
 { return _Id == CLASS_INSTANCE_INFO ? (CClassInstance*)this : (CClassInstance*)0; }
16169
 
inline CUnionInstance *CObjectInfo::UnionInstance () const
16170
 
 { return _Id == UNION_INSTANCE_INFO ? (CUnionInstance*)this : (CUnionInstance*)0; }
16171
 
inline CFctInstance *CObjectInfo::FctInstance () const
16172
 
 { return _Id == FCT_INSTANCE_INFO ? (CFctInstance*)this : (CFctInstance*)0; }
16173
 
 
16174
 
inline CStructure *CObjectInfo::QualifiedScope () const { 
16175
 
  return _QualScope;
16176
 
}
16177
 
 
16178
 
inline void CObjectInfo::AssignedScope (CStructure *s)
16179
 
 { _AssignedScope = s; }
16180
 
inline CStructure *CObjectInfo::AssignedScope () const
16181
 
 { return _AssignedScope; } 
16182
 
 
16183
 
 
16184
 
} // namespace Puma
16185
 
 
16186
 
#endif /* __CObjectInfo_h__ */
16187
 
 
16188
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
16189
 
namespace Puma {
16190
 
 
16191
 
 
16192
 
class CLocalScope;
16193
 
class CFunctionInfo;
16194
 
class CNamespaceInfo;
16195
 
class CClassInfo;
16196
 
class CUnionInfo;
16197
 
class CTemplateInfo;
16198
 
 
16199
 
 
16200
 
#line 16201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
16201
 
} // closed Puma
16202
 
class WinIfExists;
16203
 
class WinImportHandler;
16204
 
class WinMacros;
16205
 
class CMatchSyntax;
16206
 
class ExtGnu;
16207
 
class ExtAC;
16208
 
class ExtACBuilderCoupling;
16209
 
class ExtACSyntaxCoupling;
16210
 
class ExtACTree;
16211
 
class ExtACKeywords;
16212
 
class WinAsm;
16213
 
class WinDeclSpecs;
16214
 
class WinMemberExplSpec;
16215
 
class WinTypeKeywords;
16216
 
class PragmaOnceUnitState;
16217
 
class PragmaOnce;
16218
 
class CCExprResolve;
16219
 
class CExprResolve;
16220
 
namespace Puma {
16221
 
 
16222
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
16223
 
class CScopeInfo : public CObjectInfo {
16224
 
#line 16225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
16225
 
  friend class ::WinIfExists;
16226
 
  friend class ::WinImportHandler;
16227
 
  friend class ::WinMacros;
16228
 
  friend class ::CMatchSyntax;
16229
 
  friend class ::ExtGnu;
16230
 
  friend class ::ExtAC;
16231
 
  friend class ::ExtACBuilderCoupling;
16232
 
  friend class ::ExtACSyntaxCoupling;
16233
 
  friend class ::ExtACTree;
16234
 
  friend class ::ExtACKeywords;
16235
 
  friend class ::WinAsm;
16236
 
  friend class ::WinDeclSpecs;
16237
 
  friend class ::WinMemberExplSpec;
16238
 
  friend class ::WinTypeKeywords;
16239
 
  friend class ::PragmaOnceUnitState;
16240
 
  friend class ::PragmaOnce;
16241
 
  friend class ::CCExprResolve;
16242
 
  friend class ::CExprResolve;
16243
 
 
16244
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
16245
 
 
16246
 
  Array<CScopeInfo*> _Children; // child scopes
16247
 
  CScopeInfo *_Parent; // parent scope
16248
 
 
16249
 
protected:
16250
 
  CScopeInfo (ObjectId);
16251
 
 
16252
 
public:
16253
 
  ~CScopeInfo ();
16254
 
 
16255
 
  // Get ... 
16256
 
  unsigned Children () const;           // children of this scope
16257
 
  CScopeInfo *Child (unsigned) const;
16258
 
  CScopeInfo *Parent () const;          // parent scope
16259
 
  bool isFile () const;                 // is file?
16260
 
  bool isNamespace () const;            // is namespace?
16261
 
  bool isRecord () const;               // is class or union?
16262
 
  bool isClass () const;                // is class?
16263
 
  bool isUnion () const;                // is union?
16264
 
  bool isFunction () const;             // is function?
16265
 
  bool isMethod () const;               // is class method?
16266
 
  bool isClassTemplate () const;        // is class template?
16267
 
  bool isFctTemplate () const;          // is function template?
16268
 
  bool insideTemplate () const;         // is inside class or function template?
16269
 
  bool insideRecord () const;           // is inside class or union?
16270
 
  bool insideClass () const;            // is inside class?
16271
 
  bool insideUnion () const;            // is inside union?
16272
 
  bool insideFunction () const;         // is inside function?
16273
 
  bool insideMethod () const;           // is inside class method?
16274
 
  bool isLocalScope () const;           // is local (block) scope?
16275
 
  bool isLocalRecord () const;          // is local (block scope) class or union?
16276
 
  bool isLocalClass () const;           // is local (block scope) class?
16277
 
  bool isLocalUnion () const;           // is local (block scope) union?
16278
 
  
16279
 
  bool GlobalScope () const;            // global (file) scope
16280
 
 
16281
 
  // Set ...
16282
 
  void Parent (const CScopeInfo *);
16283
 
  void addChild (CScopeInfo *);
16284
 
  void removeChild (const CScopeInfo *); // WILL NOT BE DESTROYED!
16285
 
  
16286
 
  // Create/Delete ...
16287
 
  CLocalScope *newLocalScope ();
16288
 
  CFunctionInfo *newFunction (bool = false);
16289
 
  CClassInfo *newClass (bool = false);
16290
 
  CUnionInfo *newUnion (bool = false);
16291
 
  CNamespaceInfo *newNamespace ();
16292
 
  CTemplateInfo *newTemplate ();
16293
 
  void deleteLocalScope (const CLocalScope *);
16294
 
  void deleteFunction (const CFunctionInfo *);
16295
 
  void deleteClass (const CClassInfo *);
16296
 
  void deleteUnion (const CUnionInfo *);
16297
 
  void deleteNamespace (const CNamespaceInfo *);
16298
 
  void deleteTemplate (const CTemplateInfo *);
16299
 
};
16300
 
 
16301
 
 
16302
 
inline CScopeInfo::CScopeInfo (CObjectInfo::ObjectId id) :
16303
 
  CObjectInfo (id),
16304
 
  _Children (20, 20),
16305
 
  _Parent ((CScopeInfo*)this)
16306
 
 {}
16307
 
 
16308
 
inline unsigned CScopeInfo::Children () const
16309
 
 { return _Children.length (); }
16310
 
inline CScopeInfo *CScopeInfo::Child (unsigned n) const
16311
 
 { return _Children.lookup (n); }
16312
 
inline CScopeInfo *CScopeInfo::Parent () const
16313
 
 { return _Parent; }
16314
 
 
16315
 
inline bool CScopeInfo::isLocalScope () const
16316
 
 { return LocalScope (); }
16317
 
inline bool CScopeInfo::isFile () const 
16318
 
 { return FileInfo (); }
16319
 
inline bool CScopeInfo::isNamespace () const 
16320
 
 { return NamespaceInfo (); }
16321
 
inline bool CScopeInfo::isRecord () const 
16322
 
 { return Record (); }
16323
 
inline bool CScopeInfo::isClass () const 
16324
 
 { return ClassInfo (); }
16325
 
inline bool CScopeInfo::isUnion () const 
16326
 
 { return UnionInfo (); }
16327
 
inline bool CScopeInfo::isFunction () const 
16328
 
 { return FunctionInfo (); }
16329
 
inline bool CScopeInfo::GlobalScope () const 
16330
 
 { return FileInfo (); }
16331
 
 
16332
 
inline bool CScopeInfo::insideFunction () const 
16333
 
 { return isFunction () || (Parent () && Parent () != this && 
16334
 
                            Parent ()->insideFunction ()); }
16335
 
inline bool CScopeInfo::insideMethod () const 
16336
 
 { return isMethod () || (Parent () && Parent () != this && 
16337
 
                          Parent ()->insideMethod ()); }
16338
 
inline bool CScopeInfo::insideRecord () const 
16339
 
 { return isRecord () || (Parent () && Parent () != this && 
16340
 
                          Parent ()->insideRecord ()); }
16341
 
inline bool CScopeInfo::insideTemplate () const 
16342
 
 { return isTemplate () || (Parent () && Parent () != this && 
16343
 
                            Parent ()->insideTemplate ()); }
16344
 
inline bool CScopeInfo::insideClass () const 
16345
 
 { return isClass () || (Parent () && Parent () != this && 
16346
 
                         Parent ()->insideClass ()); }
16347
 
inline bool CScopeInfo::insideUnion () const 
16348
 
 { return isUnion () || (Parent () && Parent () != this && 
16349
 
                         Parent ()->insideUnion ()); }
16350
 
 
16351
 
inline bool CScopeInfo::isLocalClass () const 
16352
 
 { return isClass () && insideFunction (); }
16353
 
inline bool CScopeInfo::isLocalUnion () const 
16354
 
 { return isUnion () && insideFunction (); }
16355
 
inline bool CScopeInfo::isLocalRecord () const 
16356
 
 { return isRecord () && insideFunction (); }
16357
 
 
16358
 
 
16359
 
} // namespace Puma
16360
 
 
16361
 
#endif /* __CScopeInfo_h__ */
16362
 
 
16363
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
23276
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16364
23277
#ifndef __puma
16365
23278
 
16366
23279
#include <map>
16387
23300
class CMemberAliasInfo;
16388
23301
 
16389
23302
 
16390
 
#line 16391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23303
#line 23304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
16391
23304
} // closed Puma
 
23305
class CCExprResolve;
 
23306
class CExprResolve;
16392
23307
class WinIfExists;
16393
23308
class WinImportHandler;
16394
23309
class WinMacros;
16395
 
class CMatchSyntax;
16396
 
class ExtGnu;
 
23310
class WinAsm;
 
23311
class WinDeclSpecs;
 
23312
class WinMemberExplSpec;
 
23313
class WinTypeKeywords;
 
23314
class WinFriend;
16397
23315
class ExtAC;
16398
23316
class ExtACBuilderCoupling;
16399
23317
class ExtACSyntaxCoupling;
16400
23318
class ExtACTree;
16401
23319
class ExtACKeywords;
16402
 
class WinAsm;
16403
 
class WinDeclSpecs;
16404
 
class WinMemberExplSpec;
16405
 
class WinTypeKeywords;
 
23320
class ExtGnu;
16406
23321
class PragmaOnceUnitState;
16407
23322
class PragmaOnce;
16408
 
class CCExprResolve;
16409
 
class CExprResolve;
 
23323
class CMatchSyntax;
16410
23324
namespace Puma {
16411
23325
 
16412
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
23326
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16413
23327
class CStructure : public CScopeInfo {
16414
 
#line 16415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23328
#line 23329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23329
  friend class ::CCExprResolve;
 
23330
  friend class ::CExprResolve;
16415
23331
  friend class ::WinIfExists;
16416
23332
  friend class ::WinImportHandler;
16417
23333
  friend class ::WinMacros;
16418
 
  friend class ::CMatchSyntax;
16419
 
  friend class ::ExtGnu;
 
23334
  friend class ::WinAsm;
 
23335
  friend class ::WinDeclSpecs;
 
23336
  friend class ::WinMemberExplSpec;
 
23337
  friend class ::WinTypeKeywords;
 
23338
  friend class ::WinFriend;
16420
23339
  friend class ::ExtAC;
16421
23340
  friend class ::ExtACBuilderCoupling;
16422
23341
  friend class ::ExtACSyntaxCoupling;
16423
23342
  friend class ::ExtACTree;
16424
23343
  friend class ::ExtACKeywords;
16425
 
  friend class ::WinAsm;
16426
 
  friend class ::WinDeclSpecs;
16427
 
  friend class ::WinMemberExplSpec;
16428
 
  friend class ::WinTypeKeywords;
 
23344
  friend class ::ExtGnu;
16429
23345
  friend class ::PragmaOnceUnitState;
16430
23346
  friend class ::PragmaOnce;
16431
 
  friend class ::CCExprResolve;
16432
 
  friend class ::CExprResolve;
 
23347
  friend class ::CMatchSyntax;
16433
23348
 
16434
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
23349
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
16435
23350
 
16436
23351
public:
16437
23352
#ifndef __puma
16600
23515
 
16601
23516
#endif /* __CStructure_h__ */
16602
23517
 
16603
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
23518
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
16604
23519
namespace Puma {
16605
23520
 
16606
23521
 
16607
23522
class CTemplateInfo;
16608
23523
 
16609
23524
 
16610
 
#line 16611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23525
#line 23526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
16611
23526
} // closed Puma
 
23527
class CCExprResolve;
 
23528
class CExprResolve;
16612
23529
class WinIfExists;
16613
23530
class WinImportHandler;
16614
23531
class WinMacros;
16615
 
class CMatchSyntax;
16616
 
class ExtGnu;
 
23532
class WinAsm;
 
23533
class WinDeclSpecs;
 
23534
class WinMemberExplSpec;
 
23535
class WinTypeKeywords;
 
23536
class WinFriend;
16617
23537
class ExtAC;
16618
23538
class ExtACBuilderCoupling;
16619
23539
class ExtACSyntaxCoupling;
16620
23540
class ExtACTree;
16621
23541
class ExtACKeywords;
16622
 
class WinAsm;
16623
 
class WinDeclSpecs;
16624
 
class WinMemberExplSpec;
16625
 
class WinTypeKeywords;
 
23542
class ExtGnu;
16626
23543
class PragmaOnceUnitState;
16627
23544
class PragmaOnce;
16628
 
class CCExprResolve;
16629
 
class CExprResolve;
 
23545
class CMatchSyntax;
16630
23546
namespace Puma {
16631
23547
 
16632
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
23548
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
16633
23549
class CRecord : public CStructure {
16634
 
#line 16635 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23550
#line 23551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23551
  friend class ::CCExprResolve;
 
23552
  friend class ::CExprResolve;
16635
23553
  friend class ::WinIfExists;
16636
23554
  friend class ::WinImportHandler;
16637
23555
  friend class ::WinMacros;
16638
 
  friend class ::CMatchSyntax;
16639
 
  friend class ::ExtGnu;
 
23556
  friend class ::WinAsm;
 
23557
  friend class ::WinDeclSpecs;
 
23558
  friend class ::WinMemberExplSpec;
 
23559
  friend class ::WinTypeKeywords;
 
23560
  friend class ::WinFriend;
16640
23561
  friend class ::ExtAC;
16641
23562
  friend class ::ExtACBuilderCoupling;
16642
23563
  friend class ::ExtACSyntaxCoupling;
16643
23564
  friend class ::ExtACTree;
16644
23565
  friend class ::ExtACKeywords;
16645
 
  friend class ::WinAsm;
16646
 
  friend class ::WinDeclSpecs;
16647
 
  friend class ::WinMemberExplSpec;
16648
 
  friend class ::WinTypeKeywords;
 
23566
  friend class ::ExtGnu;
16649
23567
  friend class ::PragmaOnceUnitState;
16650
23568
  friend class ::PragmaOnce;
16651
 
  friend class ::CCExprResolve;
16652
 
  friend class ::CExprResolve;
 
23569
  friend class ::CMatchSyntax;
16653
23570
 
16654
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
23571
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
16655
23572
 
16656
23573
//  // classes/unions using this as/in an attribute.
16657
23574
//  Array<CObjectInfo*> _Referer;     
16764
23681
 
16765
23682
#endif /* __CRecord_h__ */
16766
23683
 
16767
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
23684
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
16768
23685
// This file is part of PUMA.
16769
23686
// Copyright (C) 1999-2003  The PUMA developer team.
16770
23687
//                                                                
16789
23706
// base class info (used by CClassInfo)
16790
23707
 
16791
23708
 
16792
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
23709
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
16793
23710
// This file is part of PUMA.
16794
23711
// Copyright (C) 1999-2003  The PUMA developer team.
16795
23712
//                                                                
16815
23732
// an entity was declared (if it's not a scope itself)
16816
23733
 
16817
23734
 
16818
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
23735
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
16819
23736
namespace Puma {
16820
23737
 
16821
23738
 
16822
23739
class CScopeInfo;
16823
23740
 
16824
23741
 
16825
 
#line 16826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23742
#line 23743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
16826
23743
} // closed Puma
 
23744
class CCExprResolve;
 
23745
class CExprResolve;
16827
23746
class WinIfExists;
16828
23747
class WinImportHandler;
16829
23748
class WinMacros;
16830
 
class CMatchSyntax;
16831
 
class ExtGnu;
 
23749
class WinAsm;
 
23750
class WinDeclSpecs;
 
23751
class WinMemberExplSpec;
 
23752
class WinTypeKeywords;
 
23753
class WinFriend;
16832
23754
class ExtAC;
16833
23755
class ExtACBuilderCoupling;
16834
23756
class ExtACSyntaxCoupling;
16835
23757
class ExtACTree;
16836
23758
class ExtACKeywords;
16837
 
class WinAsm;
16838
 
class WinDeclSpecs;
16839
 
class WinMemberExplSpec;
16840
 
class WinTypeKeywords;
 
23759
class ExtGnu;
16841
23760
class PragmaOnceUnitState;
16842
23761
class PragmaOnce;
16843
 
class CCExprResolve;
16844
 
class CExprResolve;
 
23762
class CMatchSyntax;
16845
23763
namespace Puma {
16846
23764
 
16847
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
23765
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
16848
23766
class CScopeRequest : public CObjectInfo {
16849
 
#line 16850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23767
#line 23768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23768
  friend class ::CCExprResolve;
 
23769
  friend class ::CExprResolve;
16850
23770
  friend class ::WinIfExists;
16851
23771
  friend class ::WinImportHandler;
16852
23772
  friend class ::WinMacros;
16853
 
  friend class ::CMatchSyntax;
16854
 
  friend class ::ExtGnu;
 
23773
  friend class ::WinAsm;
 
23774
  friend class ::WinDeclSpecs;
 
23775
  friend class ::WinMemberExplSpec;
 
23776
  friend class ::WinTypeKeywords;
 
23777
  friend class ::WinFriend;
16855
23778
  friend class ::ExtAC;
16856
23779
  friend class ::ExtACBuilderCoupling;
16857
23780
  friend class ::ExtACSyntaxCoupling;
16858
23781
  friend class ::ExtACTree;
16859
23782
  friend class ::ExtACKeywords;
16860
 
  friend class ::WinAsm;
16861
 
  friend class ::WinDeclSpecs;
16862
 
  friend class ::WinMemberExplSpec;
16863
 
  friend class ::WinTypeKeywords;
 
23783
  friend class ::ExtGnu;
16864
23784
  friend class ::PragmaOnceUnitState;
16865
23785
  friend class ::PragmaOnce;
16866
 
  friend class ::CCExprResolve;
16867
 
  friend class ::CExprResolve;
 
23786
  friend class ::CMatchSyntax;
16868
23787
 
16869
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
23788
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
16870
23789
 
16871
23790
  CScopeInfo *_Scope;
16872
23791
 
16897
23816
 
16898
23817
#endif /* __CScopeRequest_h__ */
16899
23818
 
16900
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
23819
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
16901
23820
namespace Puma {
16902
23821
 
16903
23822
class CClassInfo;
16910
23829
/** \class CBaseClassInfo CBaseClassInfo.h Puma/infos/CBaseClassInfo.h
16911
23830
 *  A CBaseClassInfo object represents a base class of a class. */
16912
23831
 
16913
 
#line 16914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23832
#line 23833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
16914
23833
} // closed Puma
 
23834
class CCExprResolve;
 
23835
class CExprResolve;
16915
23836
class WinIfExists;
16916
23837
class WinImportHandler;
16917
23838
class WinMacros;
16918
 
class CMatchSyntax;
16919
 
class ExtGnu;
 
23839
class WinAsm;
 
23840
class WinDeclSpecs;
 
23841
class WinMemberExplSpec;
 
23842
class WinTypeKeywords;
 
23843
class WinFriend;
16920
23844
class ExtAC;
16921
23845
class ExtACBuilderCoupling;
16922
23846
class ExtACSyntaxCoupling;
16923
23847
class ExtACTree;
16924
23848
class ExtACKeywords;
16925
 
class WinAsm;
16926
 
class WinDeclSpecs;
16927
 
class WinMemberExplSpec;
16928
 
class WinTypeKeywords;
 
23849
class ExtGnu;
16929
23850
class PragmaOnceUnitState;
16930
23851
class PragmaOnce;
16931
 
class CCExprResolve;
16932
 
class CExprResolve;
 
23852
class CMatchSyntax;
16933
23853
namespace Puma {
16934
23854
 
16935
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
23855
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
16936
23856
class CBaseClassInfo : public CScopeRequest {
16937
 
#line 16938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23857
#line 23858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23858
  friend class ::CCExprResolve;
 
23859
  friend class ::CExprResolve;
16938
23860
  friend class ::WinIfExists;
16939
23861
  friend class ::WinImportHandler;
16940
23862
  friend class ::WinMacros;
16941
 
  friend class ::CMatchSyntax;
16942
 
  friend class ::ExtGnu;
 
23863
  friend class ::WinAsm;
 
23864
  friend class ::WinDeclSpecs;
 
23865
  friend class ::WinMemberExplSpec;
 
23866
  friend class ::WinTypeKeywords;
 
23867
  friend class ::WinFriend;
16943
23868
  friend class ::ExtAC;
16944
23869
  friend class ::ExtACBuilderCoupling;
16945
23870
  friend class ::ExtACSyntaxCoupling;
16946
23871
  friend class ::ExtACTree;
16947
23872
  friend class ::ExtACKeywords;
16948
 
  friend class ::WinAsm;
16949
 
  friend class ::WinDeclSpecs;
16950
 
  friend class ::WinMemberExplSpec;
16951
 
  friend class ::WinTypeKeywords;
 
23873
  friend class ::ExtGnu;
16952
23874
  friend class ::PragmaOnceUnitState;
16953
23875
  friend class ::PragmaOnce;
16954
 
  friend class ::CCExprResolve;
16955
 
  friend class ::CExprResolve;
 
23876
  friend class ::CMatchSyntax;
16956
23877
 
16957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
23878
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
16958
23879
 
16959
23880
  /** the info object of the base class */
16960
23881
  CClassInfo        *_Class;
16997
23918
 
16998
23919
#endif /* __CBaseClassInfo_h__ */
16999
23920
 
17000
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
23921
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
17001
23922
namespace Puma {
17002
23923
 
17003
23924
/** \file 
17011
23932
 *  classes. Note that a 'union', although syntactically very similar,
17012
23933
 *  is not represented by a CClassInfo object. */
17013
23934
 
17014
 
#line 17015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23935
#line 23936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
17015
23936
} // closed Puma
 
23937
class CCExprResolve;
 
23938
class CExprResolve;
17016
23939
class WinIfExists;
17017
23940
class WinImportHandler;
17018
23941
class WinMacros;
17019
 
class CMatchSyntax;
17020
 
class ExtGnu;
 
23942
class WinAsm;
 
23943
class WinDeclSpecs;
 
23944
class WinMemberExplSpec;
 
23945
class WinTypeKeywords;
 
23946
class WinFriend;
17021
23947
class ExtAC;
17022
23948
class ExtACBuilderCoupling;
17023
23949
class ExtACSyntaxCoupling;
17024
23950
class ExtACTree;
17025
23951
class ExtACKeywords;
17026
 
class WinAsm;
17027
 
class WinDeclSpecs;
17028
 
class WinMemberExplSpec;
17029
 
class WinTypeKeywords;
 
23952
class ExtGnu;
17030
23953
class PragmaOnceUnitState;
17031
23954
class PragmaOnce;
17032
 
class CCExprResolve;
17033
 
class CExprResolve;
 
23955
class CMatchSyntax;
17034
23956
namespace Puma {
17035
23957
 
17036
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
23958
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
17037
23959
class CClassInfo : public CRecord {
17038
 
#line 17039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
23960
#line 23961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
23961
  friend class ::CCExprResolve;
 
23962
  friend class ::CExprResolve;
17039
23963
  friend class ::WinIfExists;
17040
23964
  friend class ::WinImportHandler;
17041
23965
  friend class ::WinMacros;
17042
 
  friend class ::CMatchSyntax;
17043
 
  friend class ::ExtGnu;
 
23966
  friend class ::WinAsm;
 
23967
  friend class ::WinDeclSpecs;
 
23968
  friend class ::WinMemberExplSpec;
 
23969
  friend class ::WinTypeKeywords;
 
23970
  friend class ::WinFriend;
17044
23971
  friend class ::ExtAC;
17045
23972
  friend class ::ExtACBuilderCoupling;
17046
23973
  friend class ::ExtACSyntaxCoupling;
17047
23974
  friend class ::ExtACTree;
17048
23975
  friend class ::ExtACKeywords;
17049
 
  friend class ::WinAsm;
17050
 
  friend class ::WinDeclSpecs;
17051
 
  friend class ::WinMemberExplSpec;
17052
 
  friend class ::WinTypeKeywords;
 
23976
  friend class ::ExtGnu;
17053
23977
  friend class ::PragmaOnceUnitState;
17054
23978
  friend class ::PragmaOnce;
17055
 
  friend class ::CCExprResolve;
17056
 
  friend class ::CExprResolve;
 
23979
  friend class ::CMatchSyntax;
17057
23980
 
17058
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
23981
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
17059
23982
 
17060
23983
  Array<CBaseClassInfo*> _BaseClasses;
17061
23984
  Array<CClassInfo*> _Derived;
17165
24088
  /** Returns true if the argument function overrides any virtual function
17166
24089
   *  defined in this class or any of its base classes.
17167
24090
   *  \param fi function info object of the checked function. */
17168
 
   bool overridesVirtual (const CFunctionInfo *fi) const;
 
24091
  bool overridesVirtual (const CFunctionInfo *fi) const;
17169
24092
   
17170
24093
  /** Returns true if this class is an aggregate according to 8.5.1-1. */
17171
 
   bool isAggregate () const;
17172
 
 
 
24094
  bool isAggregate () const;
17173
24095
};
17174
24096
 
17175
24097
inline CClassInfo::CClassInfo (ObjectId id) :
17205
24127
 
17206
24128
#endif /* __CClassInfo_h__ */
17207
24129
 
17208
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
24130
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
17209
24131
// This file is part of PUMA.
17210
24132
// Copyright (C) 1999-2003  The PUMA developer team.
17211
24133
//                                                                
17228
24150
#define __ACIntroductionInfo_h__
17229
24151
 
17230
24152
 
17231
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
24153
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
17232
24154
namespace Puma {
17233
24155
 
17234
24156
 
17243
24165
 *  An ACIntroductionInfo object represents an AspectC++ introduction 
17244
24166
 *  'advice' declaration. */
17245
24167
 
17246
 
#line 17247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24168
#line 24169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
17247
24169
} // closed Puma
 
24170
class CCExprResolve;
 
24171
class CExprResolve;
17248
24172
class WinIfExists;
17249
24173
class WinImportHandler;
17250
24174
class WinMacros;
17251
 
class CMatchSyntax;
17252
 
class ExtGnu;
 
24175
class WinAsm;
 
24176
class WinDeclSpecs;
 
24177
class WinMemberExplSpec;
 
24178
class WinTypeKeywords;
 
24179
class WinFriend;
17253
24180
class ExtAC;
17254
24181
class ExtACBuilderCoupling;
17255
24182
class ExtACSyntaxCoupling;
17256
24183
class ExtACTree;
17257
24184
class ExtACKeywords;
17258
 
class WinAsm;
17259
 
class WinDeclSpecs;
17260
 
class WinMemberExplSpec;
17261
 
class WinTypeKeywords;
 
24185
class ExtGnu;
17262
24186
class PragmaOnceUnitState;
17263
24187
class PragmaOnce;
17264
 
class CCExprResolve;
17265
 
class CExprResolve;
 
24188
class CMatchSyntax;
17266
24189
namespace Puma {
17267
24190
 
17268
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
24191
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
17269
24192
class ACIntroductionInfo {
17270
 
#line 17271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24193
#line 24194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
24194
  friend class ::CCExprResolve;
 
24195
  friend class ::CExprResolve;
17271
24196
  friend class ::WinIfExists;
17272
24197
  friend class ::WinImportHandler;
17273
24198
  friend class ::WinMacros;
17274
 
  friend class ::CMatchSyntax;
17275
 
  friend class ::ExtGnu;
 
24199
  friend class ::WinAsm;
 
24200
  friend class ::WinDeclSpecs;
 
24201
  friend class ::WinMemberExplSpec;
 
24202
  friend class ::WinTypeKeywords;
 
24203
  friend class ::WinFriend;
17276
24204
  friend class ::ExtAC;
17277
24205
  friend class ::ExtACBuilderCoupling;
17278
24206
  friend class ::ExtACSyntaxCoupling;
17279
24207
  friend class ::ExtACTree;
17280
24208
  friend class ::ExtACKeywords;
17281
 
  friend class ::WinAsm;
17282
 
  friend class ::WinDeclSpecs;
17283
 
  friend class ::WinMemberExplSpec;
17284
 
  friend class ::WinTypeKeywords;
 
24209
  friend class ::ExtGnu;
17285
24210
  friend class ::PragmaOnceUnitState;
17286
24211
  friend class ::PragmaOnce;
17287
 
  friend class ::CCExprResolve;
17288
 
  friend class ::CExprResolve;
 
24212
  friend class ::CMatchSyntax;
17289
24213
 
17290
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
24214
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
17291
24215
 
17292
24216
  CT_AdviceDecl *_def_node;
17293
24217
  CProtection::Type _prot;
17320
24244
 
17321
24245
#endif /* __ACIntroductionInfo_h__ */
17322
24246
 
17323
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
24247
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
17324
24248
namespace Puma {
17325
24249
 
17326
24250
 
17338
24262
 *  declaration and also parsed like a C++ class. Additionally it
17339
24263
 *  contains pointcut and advice declarations. */
17340
24264
 
17341
 
#line 17342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24265
#line 24266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
17342
24266
} // closed Puma
 
24267
class CCExprResolve;
 
24268
class CExprResolve;
17343
24269
class WinIfExists;
17344
24270
class WinImportHandler;
17345
24271
class WinMacros;
17346
 
class CMatchSyntax;
17347
 
class ExtGnu;
 
24272
class WinAsm;
 
24273
class WinDeclSpecs;
 
24274
class WinMemberExplSpec;
 
24275
class WinTypeKeywords;
 
24276
class WinFriend;
17348
24277
class ExtAC;
17349
24278
class ExtACBuilderCoupling;
17350
24279
class ExtACSyntaxCoupling;
17351
24280
class ExtACTree;
17352
24281
class ExtACKeywords;
17353
 
class WinAsm;
17354
 
class WinDeclSpecs;
17355
 
class WinMemberExplSpec;
17356
 
class WinTypeKeywords;
 
24282
class ExtGnu;
17357
24283
class PragmaOnceUnitState;
17358
24284
class PragmaOnce;
17359
 
class CCExprResolve;
17360
 
class CExprResolve;
 
24285
class CMatchSyntax;
17361
24286
namespace Puma {
17362
24287
 
17363
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
24288
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
17364
24289
class ACAspectInfo {
17365
 
#line 17366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24290
#line 24291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
24291
  friend class ::CCExprResolve;
 
24292
  friend class ::CExprResolve;
17366
24293
  friend class ::WinIfExists;
17367
24294
  friend class ::WinImportHandler;
17368
24295
  friend class ::WinMacros;
17369
 
  friend class ::CMatchSyntax;
17370
 
  friend class ::ExtGnu;
 
24296
  friend class ::WinAsm;
 
24297
  friend class ::WinDeclSpecs;
 
24298
  friend class ::WinMemberExplSpec;
 
24299
  friend class ::WinTypeKeywords;
 
24300
  friend class ::WinFriend;
17371
24301
  friend class ::ExtAC;
17372
24302
  friend class ::ExtACBuilderCoupling;
17373
24303
  friend class ::ExtACSyntaxCoupling;
17374
24304
  friend class ::ExtACTree;
17375
24305
  friend class ::ExtACKeywords;
17376
 
  friend class ::WinAsm;
17377
 
  friend class ::WinDeclSpecs;
17378
 
  friend class ::WinMemberExplSpec;
17379
 
  friend class ::WinTypeKeywords;
 
24306
  friend class ::ExtGnu;
17380
24307
  friend class ::PragmaOnceUnitState;
17381
24308
  friend class ::PragmaOnce;
17382
 
  friend class ::CCExprResolve;
17383
 
  friend class ::CExprResolve;
 
24309
  friend class ::CMatchSyntax;
17384
24310
 
17385
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
24311
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
17386
24312
 
17387
24313
  CClassInfo *_class;
17388
24314
  Array<ACPointcutInfo*> _pointcuts;
17493
24419
 
17494
24420
#endif /* __ACAspectInfo_h__ */
17495
24421
 
17496
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
24422
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
17497
24423
// This file is part of PUMA.
17498
24424
// Copyright (C) 1999-2003  The PUMA developer team.
17499
24425
//                                                                
17516
24442
#define __ACAdviceInfo_h__
17517
24443
 
17518
24444
 
17519
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
24445
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
17520
24446
// This file is part of PUMA.
17521
24447
// Copyright (C) 1999-2003  The PUMA developer team.
17522
24448
//                                                                
17541
24467
// function info (standard functions and methods)
17542
24468
 
17543
24469
 
17544
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
24470
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
17545
24471
namespace Puma {
17546
24472
 
17547
24473
 
17558
24484
/** \class CFunctionInfo CFunctionInfo.h Puma/infos/CFunctionInfo.h
17559
24485
 *  A CFunctionInfo object represents a function declaration. */
17560
24486
 
17561
 
#line 17562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24487
#line 24488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
17562
24488
} // closed Puma
 
24489
class CCExprResolve;
 
24490
class CExprResolve;
17563
24491
class WinIfExists;
17564
24492
class WinImportHandler;
17565
24493
class WinMacros;
17566
 
class CMatchSyntax;
17567
 
class ExtGnu;
 
24494
class WinAsm;
 
24495
class WinDeclSpecs;
 
24496
class WinMemberExplSpec;
 
24497
class WinTypeKeywords;
 
24498
class WinFriend;
17568
24499
class ExtAC;
17569
24500
class ExtACBuilderCoupling;
17570
24501
class ExtACSyntaxCoupling;
17571
24502
class ExtACTree;
17572
24503
class ExtACKeywords;
17573
 
class WinAsm;
17574
 
class WinDeclSpecs;
17575
 
class WinMemberExplSpec;
17576
 
class WinTypeKeywords;
 
24504
class ExtGnu;
17577
24505
class PragmaOnceUnitState;
17578
24506
class PragmaOnce;
17579
 
class CCExprResolve;
17580
 
class CExprResolve;
 
24507
class CMatchSyntax;
17581
24508
namespace Puma {
17582
24509
 
17583
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
24510
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
17584
24511
class CFunctionInfo : public CStructure {
17585
 
#line 17586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24512
#line 24513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
24513
  friend class ::CCExprResolve;
 
24514
  friend class ::CExprResolve;
17586
24515
  friend class ::WinIfExists;
17587
24516
  friend class ::WinImportHandler;
17588
24517
  friend class ::WinMacros;
17589
 
  friend class ::CMatchSyntax;
17590
 
  friend class ::ExtGnu;
 
24518
  friend class ::WinAsm;
 
24519
  friend class ::WinDeclSpecs;
 
24520
  friend class ::WinMemberExplSpec;
 
24521
  friend class ::WinTypeKeywords;
 
24522
  friend class ::WinFriend;
17591
24523
  friend class ::ExtAC;
17592
24524
  friend class ::ExtACBuilderCoupling;
17593
24525
  friend class ::ExtACSyntaxCoupling;
17594
24526
  friend class ::ExtACTree;
17595
24527
  friend class ::ExtACKeywords;
17596
 
  friend class ::WinAsm;
17597
 
  friend class ::WinDeclSpecs;
17598
 
  friend class ::WinMemberExplSpec;
17599
 
  friend class ::WinTypeKeywords;
 
24528
  friend class ::ExtGnu;
17600
24529
  friend class ::PragmaOnceUnitState;
17601
24530
  friend class ::PragmaOnce;
17602
 
  friend class ::CCExprResolve;
17603
 
  friend class ::CExprResolve;
 
24531
  friend class ::CMatchSyntax;
17604
24532
 
17605
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
24533
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
17606
24534
 
17607
24535
  Array<CArgumentInfo*> _Arguments;
17608
24536
  Array<CLabelInfo*> _Labels;
17868
24796
 
17869
24797
#endif /* __CFunctionInfo_h__ */
17870
24798
 
17871
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
17872
 
#include <sstream>
 
24799
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
17873
24800
using namespace std;
17874
24801
 
17875
24802
namespace Puma {
17885
24812
 *  An ACAdviceInfo object represents an AspectC++ 'advice' declaration. 
17886
24813
 *  An advice is part of an aspect declaration. */
17887
24814
 
17888
 
#line 17889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24815
#line 24816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
17889
24816
} // closed Puma
 
24817
class CCExprResolve;
 
24818
class CExprResolve;
17890
24819
class WinIfExists;
17891
24820
class WinImportHandler;
17892
24821
class WinMacros;
17893
 
class CMatchSyntax;
17894
 
class ExtGnu;
 
24822
class WinAsm;
 
24823
class WinDeclSpecs;
 
24824
class WinMemberExplSpec;
 
24825
class WinTypeKeywords;
 
24826
class WinFriend;
17895
24827
class ExtAC;
17896
24828
class ExtACBuilderCoupling;
17897
24829
class ExtACSyntaxCoupling;
17898
24830
class ExtACTree;
17899
24831
class ExtACKeywords;
17900
 
class WinAsm;
17901
 
class WinDeclSpecs;
17902
 
class WinMemberExplSpec;
17903
 
class WinTypeKeywords;
 
24832
class ExtGnu;
17904
24833
class PragmaOnceUnitState;
17905
24834
class PragmaOnce;
17906
 
class CCExprResolve;
17907
 
class CExprResolve;
 
24835
class CMatchSyntax;
17908
24836
namespace Puma {
17909
24837
 
17910
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
24838
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
17911
24839
class ACAdviceInfo {
17912
 
#line 17913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24840
#line 24841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
24841
  friend class ::CCExprResolve;
 
24842
  friend class ::CExprResolve;
17913
24843
  friend class ::WinIfExists;
17914
24844
  friend class ::WinImportHandler;
17915
24845
  friend class ::WinMacros;
17916
 
  friend class ::CMatchSyntax;
17917
 
  friend class ::ExtGnu;
 
24846
  friend class ::WinAsm;
 
24847
  friend class ::WinDeclSpecs;
 
24848
  friend class ::WinMemberExplSpec;
 
24849
  friend class ::WinTypeKeywords;
 
24850
  friend class ::WinFriend;
17918
24851
  friend class ::ExtAC;
17919
24852
  friend class ::ExtACBuilderCoupling;
17920
24853
  friend class ::ExtACSyntaxCoupling;
17921
24854
  friend class ::ExtACTree;
17922
24855
  friend class ::ExtACKeywords;
17923
 
  friend class ::WinAsm;
17924
 
  friend class ::WinDeclSpecs;
17925
 
  friend class ::WinMemberExplSpec;
17926
 
  friend class ::WinTypeKeywords;
 
24856
  friend class ::ExtGnu;
17927
24857
  friend class ::PragmaOnceUnitState;
17928
24858
  friend class ::PragmaOnce;
17929
 
  friend class ::CCExprResolve;
17930
 
  friend class ::CExprResolve;
 
24859
  friend class ::CMatchSyntax;
17931
24860
 
17932
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
24861
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
17933
24862
 
17934
24863
public:
17935
24864
  /** The three advice types: before, around, and after advice. */
17954
24883
   *           name of the advice. */
17955
24884
  ACAdviceInfo (int n) : _def_node (0), _decl_node (0), _aspect (0), 
17956
24885
   _inherited (false), _parent (0), _uses_aspectOf (false), 
17957
 
   _have_advice_func (false) { _name << "__advice_" << n << ends; }
 
24886
   _have_advice_func (false) { _name << "__advice_" << n; }
17958
24887
 
17959
24888
  /** Get the internal name of the advice. */
17960
24889
  const char *name () { return _name.str ().c_str (); }
18015
24944
 
18016
24945
#endif /* __ACAdviceInfo_h__ */
18017
24946
 
18018
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
24947
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
18019
24948
// This file is part of PUMA.
18020
24949
// Copyright (C) 1999-2003  The PUMA developer team.
18021
24950
//                                                                
18038
24967
#define __ACPointCutInfo_h__
18039
24968
 
18040
24969
 
18041
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
24970
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
18042
24971
namespace Puma {
18043
24972
 
18044
24973
 
18054
24983
 *  A pointcut declaration is syntactically equal to a function 
18055
24984
 *  declaration and also parsed like a function. */
18056
24985
 
18057
 
#line 18058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
24986
#line 24987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
18058
24987
} // closed Puma
 
24988
class CCExprResolve;
 
24989
class CExprResolve;
18059
24990
class WinIfExists;
18060
24991
class WinImportHandler;
18061
24992
class WinMacros;
18062
 
class CMatchSyntax;
18063
 
class ExtGnu;
 
24993
class WinAsm;
 
24994
class WinDeclSpecs;
 
24995
class WinMemberExplSpec;
 
24996
class WinTypeKeywords;
 
24997
class WinFriend;
18064
24998
class ExtAC;
18065
24999
class ExtACBuilderCoupling;
18066
25000
class ExtACSyntaxCoupling;
18067
25001
class ExtACTree;
18068
25002
class ExtACKeywords;
18069
 
class WinAsm;
18070
 
class WinDeclSpecs;
18071
 
class WinMemberExplSpec;
18072
 
class WinTypeKeywords;
 
25003
class ExtGnu;
18073
25004
class PragmaOnceUnitState;
18074
25005
class PragmaOnce;
18075
 
class CCExprResolve;
18076
 
class CExprResolve;
 
25006
class CMatchSyntax;
18077
25007
namespace Puma {
18078
25008
 
18079
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
25009
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
18080
25010
class ACPointcutInfo {
18081
 
#line 18082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25011
#line 25012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
25012
  friend class ::CCExprResolve;
 
25013
  friend class ::CExprResolve;
18082
25014
  friend class ::WinIfExists;
18083
25015
  friend class ::WinImportHandler;
18084
25016
  friend class ::WinMacros;
18085
 
  friend class ::CMatchSyntax;
18086
 
  friend class ::ExtGnu;
 
25017
  friend class ::WinAsm;
 
25018
  friend class ::WinDeclSpecs;
 
25019
  friend class ::WinMemberExplSpec;
 
25020
  friend class ::WinTypeKeywords;
 
25021
  friend class ::WinFriend;
18087
25022
  friend class ::ExtAC;
18088
25023
  friend class ::ExtACBuilderCoupling;
18089
25024
  friend class ::ExtACSyntaxCoupling;
18090
25025
  friend class ::ExtACTree;
18091
25026
  friend class ::ExtACKeywords;
18092
 
  friend class ::WinAsm;
18093
 
  friend class ::WinDeclSpecs;
18094
 
  friend class ::WinMemberExplSpec;
18095
 
  friend class ::WinTypeKeywords;
 
25027
  friend class ::ExtGnu;
18096
25028
  friend class ::PragmaOnceUnitState;
18097
25029
  friend class ::PragmaOnce;
18098
 
  friend class ::CCExprResolve;
18099
 
  friend class ::CExprResolve;
 
25030
  friend class ::CMatchSyntax;
18100
25031
 
18101
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
25032
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
18102
25033
 
18103
25034
  CFunctionInfo   *_function;
18104
25035
  ACAspectInfo    *_aspect;
18137
25068
 
18138
25069
#endif /* __PointCutInfo_h__ */
18139
25070
 
18140
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
25071
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
18141
25072
// This file is part of PUMA.
18142
25073
// Copyright (C) 1999-2003  The PUMA developer team.
18143
25074
//                                                                
18160
25091
#define __ACSliceInfo_h__
18161
25092
 
18162
25093
 
18163
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
25094
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
18164
25095
namespace Puma {
18165
25096
 
18166
25097
 
18167
25098
class ACAspectInfo;
18168
25099
class CT_ClassSliceDecl;
18169
25100
class CT_Intro;
 
25101
class Unit;
18170
25102
 
18171
25103
/** \file 
18172
25104
 *  Representation of an AspectC++ 'slice'.
18178
25110
 *  example a 'class slice' is a fragment (possibly incomplete) part
18179
25111
 *  of a class. */
18180
25112
 
18181
 
#line 18182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25113
#line 25114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
18182
25114
} // closed Puma
 
25115
class CCExprResolve;
 
25116
class CExprResolve;
18183
25117
class WinIfExists;
18184
25118
class WinImportHandler;
18185
25119
class WinMacros;
18186
 
class CMatchSyntax;
18187
 
class ExtGnu;
 
25120
class WinAsm;
 
25121
class WinDeclSpecs;
 
25122
class WinMemberExplSpec;
 
25123
class WinTypeKeywords;
 
25124
class WinFriend;
18188
25125
class ExtAC;
18189
25126
class ExtACBuilderCoupling;
18190
25127
class ExtACSyntaxCoupling;
18191
25128
class ExtACTree;
18192
25129
class ExtACKeywords;
18193
 
class WinAsm;
18194
 
class WinDeclSpecs;
18195
 
class WinMemberExplSpec;
18196
 
class WinTypeKeywords;
 
25130
class ExtGnu;
18197
25131
class PragmaOnceUnitState;
18198
25132
class PragmaOnce;
18199
 
class CCExprResolve;
18200
 
class CExprResolve;
 
25133
class CMatchSyntax;
18201
25134
namespace Puma {
18202
25135
 
18203
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
25136
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
18204
25137
class ACSliceInfo {
18205
 
#line 18206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25138
#line 25139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
25139
  friend class ::CCExprResolve;
 
25140
  friend class ::CExprResolve;
18206
25141
  friend class ::WinIfExists;
18207
25142
  friend class ::WinImportHandler;
18208
25143
  friend class ::WinMacros;
18209
 
  friend class ::CMatchSyntax;
18210
 
  friend class ::ExtGnu;
 
25144
  friend class ::WinAsm;
 
25145
  friend class ::WinDeclSpecs;
 
25146
  friend class ::WinMemberExplSpec;
 
25147
  friend class ::WinTypeKeywords;
 
25148
  friend class ::WinFriend;
18211
25149
  friend class ::ExtAC;
18212
25150
  friend class ::ExtACBuilderCoupling;
18213
25151
  friend class ::ExtACSyntaxCoupling;
18214
25152
  friend class ::ExtACTree;
18215
25153
  friend class ::ExtACKeywords;
18216
 
  friend class ::WinAsm;
18217
 
  friend class ::WinDeclSpecs;
18218
 
  friend class ::WinMemberExplSpec;
18219
 
  friend class ::WinTypeKeywords;
 
25154
  friend class ::ExtGnu;
18220
25155
  friend class ::PragmaOnceUnitState;
18221
25156
  friend class ::PragmaOnce;
18222
 
  friend class ::CCExprResolve;
18223
 
  friend class ::CExprResolve;
 
25157
  friend class ::CMatchSyntax;
18224
25158
 
18225
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
25159
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
18226
25160
 
18227
25161
  CObjectInfo       *_object;
18228
25162
  CT_ClassSliceDecl *_def_node;
18229
 
  Array<CT_Intro*>  _members; // non-inline slice members
 
25163
  Unit              *_pattern;        // inline member patterns (in 1 unit)
 
25164
  Unit              *_base_pattern;   // base class intro part
 
25165
  Array<CT_Intro*>  _members;         // non-inline slice members
 
25166
  Array<Unit*>      _member_patterns; // non-inline member patterns
 
25167
  Array<Unit*>      _member_units;    // non-inline member units (ah files)
18230
25168
  bool              _in_advice;
18231
25169
      
18232
25170
public:
18236
25174
  /** Construct a slice info object.
18237
25175
   *  \param oi The object info of the slice declaration, e.g. class info. */
18238
25176
  ACSliceInfo (CObjectInfo *oi) :
18239
 
    _object (oi), _def_node ((CT_ClassSliceDecl *)0) {}
 
25177
    _object (oi), _def_node ((CT_ClassSliceDecl *)0),
 
25178
    _pattern (0), _base_pattern (0) {}
18240
25179
 
 
25180
  /** Desctructor: delete all pattern units */
 
25181
  ~ACSliceInfo ();
 
25182
  
18241
25183
  /** Get the name of the slice. */
18242
25184
  const char *name () { return _object->Name (); }
18243
25185
  /** Get the object info of the slice declaration. */
18245
25187
 
18246
25188
  /** Set the slice definition syntax tree node.
18247
25189
   *  \param node The slice syntax tree node. */
18248
 
  void def_node (CT_ClassSliceDecl *node) { _def_node = node; }
 
25190
  void def_node (CT_ClassSliceDecl *node);
18249
25191
  /** Get the syntax tree node of the slice definition. */
18250
25192
  CT_ClassSliceDecl *def_node () { return _def_node; }
18251
25193
  
18252
25194
  /** Add a non-inline slice member.
18253
25195
   *  \param node The new member. */
18254
 
  void add_member (CT_Intro *i) { _members.append (i); }
 
25196
  void add_member (CT_Intro *i);
18255
25197
  
18256
25198
  /** Get the number of non-inline slice members. */
18257
25199
  int members () const { return _members.length (); }
18259
25201
  /** Get the ith non-inline slice member. */
18260
25202
  CT_Intro *member (int i) const { return _members.lookup (i); }
18261
25203
  
 
25204
  /** Get the ith non-inline slice member code pattern. */
 
25205
  const Unit *member_pattern (int i) const { return _member_patterns.lookup (i); }
 
25206
  
 
25207
  /** Get the ith non-inline slice member unit. */
 
25208
  const Unit *member_unit (int i) const { return _member_units.lookup (i); }
 
25209
  
18262
25210
  /** Set a flag to determine if this definition is part of an advice decl
18263
25211
   *  \param a true, iff this definition is location within 'advice .. : ..'. */
18264
25212
  void in_advice (bool a) { _in_advice = a; }
18271
25219
  
18272
25220
  /** Get the definition of this slice or return 0 if there is no definition */
18273
25221
  ACSliceInfo *definition () const;
 
25222
  
 
25223
  /** Get the base class pattern of this slice as a unit */
 
25224
  const Unit *base_pattern () const { return _base_pattern; }
 
25225
 
 
25226
  /** Get the inline member pattern of this slice as a unit */
 
25227
  const Unit *pattern () const { return _pattern; }
18274
25228
};
18275
25229
 
18276
25230
 
18278
25232
 
18279
25233
#endif /* __ACSliceInfo_h__ */
18280
25234
 
18281
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
18282
 
 
18283
 
#line 18284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25235
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
25236
 
 
25237
#line 25238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
25238
 
 
25239
#ifndef __ac_fwd_ExtGnu__
 
25240
#define __ac_fwd_ExtGnu__
 
25241
class ExtGnu;
 
25242
namespace AC {
 
25243
  template <class JoinPoint>
 
25244
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
25245
  template <class JoinPoint>
 
25246
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
25247
  template <class JoinPoint>
 
25248
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
25249
  template <class JoinPoint>
 
25250
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
25251
  template <class JoinPoint>
 
25252
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
25253
  template <class JoinPoint>
 
25254
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
25255
  template <class JoinPoint>
 
25256
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
25257
  template <class JoinPoint>
 
25258
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
25259
  template <class JoinPoint>
 
25260
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
25261
  template <class JoinPoint>
 
25262
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
25263
  template <class JoinPoint>
 
25264
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
25265
  template <class JoinPoint>
 
25266
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
25267
  template <class JoinPoint>
 
25268
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
25269
  template <class JoinPoint>
 
25270
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
25271
  template <class JoinPoint>
 
25272
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
25273
  template <class JoinPoint>
 
25274
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
25275
  template <class JoinPoint>
 
25276
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
 
25277
}
 
25278
#endif
 
25279
 
 
25280
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
25281
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
25282
#endif
18284
25283
 
18285
25284
#ifndef __ac_fwd_CMatchSyntax__
18286
25285
#define __ac_fwd_CMatchSyntax__
18287
25286
class CMatchSyntax;
18288
25287
namespace AC {
18289
25288
  template <class JoinPoint>
18290
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
18291
 
  template <class JoinPoint>
18292
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
18293
 
  template <class JoinPoint>
18294
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
18295
 
  template <class JoinPoint>
18296
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
18297
 
  template <class JoinPoint>
18298
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
18299
 
  template <class JoinPoint>
18300
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
18301
 
  template <class JoinPoint>
18302
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
18303
 
  template <class JoinPoint>
18304
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
18305
 
  template <class JoinPoint>
18306
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
18307
 
  template <class JoinPoint>
18308
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
18309
 
  template <class JoinPoint>
18310
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
18311
 
  template <class JoinPoint>
18312
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
18313
 
  template <class JoinPoint>
18314
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
18315
 
  template <class JoinPoint>
18316
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
18317
 
  template <class JoinPoint>
18318
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
18319
 
  template <class JoinPoint>
18320
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
18321
 
  template <class JoinPoint>
18322
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
18323
 
  template <class JoinPoint>
18324
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
18325
 
  template <class JoinPoint>
18326
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
18327
 
  template <class JoinPoint>
18328
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
18329
 
  template <class JoinPoint>
18330
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
18331
 
  template <class JoinPoint>
18332
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
18333
 
  template <class JoinPoint>
18334
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
18335
 
  template <class JoinPoint>
18336
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
18337
 
  template <class JoinPoint>
18338
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
18339
 
  template <class JoinPoint, class Binding>
18340
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
18341
 
}
18342
 
#endif
18343
 
 
18344
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
18345
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
18346
 
#endif
18347
 
 
18348
 
#ifndef __ac_fwd_ExtGnu__
18349
 
#define __ac_fwd_ExtGnu__
18350
 
class ExtGnu;
18351
 
namespace AC {
18352
 
  template <class JoinPoint, class Binding>
18353
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
18354
 
  template <class JoinPoint, class Binding>
18355
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
18356
 
  template <class JoinPoint>
18357
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
18358
 
  template <class JoinPoint>
18359
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
18360
 
  template <class JoinPoint>
18361
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
18362
 
  template <class JoinPoint>
18363
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
18364
 
  template <class JoinPoint>
18365
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
18366
 
  template <class JoinPoint, class Binding>
18367
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
18368
 
  template <class JoinPoint, class Binding>
18369
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
18370
 
  template <class JoinPoint, class Binding>
18371
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
18372
 
  template <class JoinPoint, class Binding>
18373
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
18374
 
  template <class JoinPoint, class Binding>
18375
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
18376
 
  template <class JoinPoint, class Binding>
18377
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
18378
 
  template <class JoinPoint>
18379
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
18380
 
  template <class JoinPoint>
18381
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
18382
 
  template <class JoinPoint, class Binding>
18383
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
18384
 
}
18385
 
#endif
18386
 
 
18387
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
18388
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
18389
 
#endif
18390
 
 
18391
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
25289
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
 
25290
  template <class JoinPoint>
 
25291
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
 
25292
  template <class JoinPoint>
 
25293
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
 
25294
  template <class JoinPoint>
 
25295
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
 
25296
  template <class JoinPoint>
 
25297
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
 
25298
  template <class JoinPoint>
 
25299
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
 
25300
  template <class JoinPoint>
 
25301
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
 
25302
  template <class JoinPoint>
 
25303
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
 
25304
  template <class JoinPoint>
 
25305
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
 
25306
  template <class JoinPoint>
 
25307
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
 
25308
  template <class JoinPoint>
 
25309
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
 
25310
  template <class JoinPoint>
 
25311
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
 
25312
  template <class JoinPoint>
 
25313
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
 
25314
  template <class JoinPoint>
 
25315
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
 
25316
  template <class JoinPoint>
 
25317
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
 
25318
  template <class JoinPoint>
 
25319
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
 
25320
  template <class JoinPoint>
 
25321
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
 
25322
  template <class JoinPoint>
 
25323
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
 
25324
  template <class JoinPoint>
 
25325
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
 
25326
  template <class JoinPoint>
 
25327
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
 
25328
  template <class JoinPoint>
 
25329
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
 
25330
  template <class JoinPoint>
 
25331
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
 
25332
  template <class JoinPoint>
 
25333
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
 
25334
  template <class JoinPoint>
 
25335
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
 
25336
  template <class JoinPoint>
 
25337
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
 
25338
  template <class JoinPoint>
 
25339
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
 
25340
}
 
25341
#endif
 
25342
 
 
25343
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
25344
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
25345
#endif
 
25346
 
 
25347
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
18392
25348
// This file is part of PUMA.
18393
25349
// Copyright (C) 1999-2003  The PUMA developer team.
18394
25350
//                                                                
18411
25367
#define __Syntax_h__
18412
25368
 
18413
25369
 
18414
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
25370
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
18415
25371
// This file is part of PUMA.
18416
25372
// Copyright (C) 1999-2003  The PUMA developer team.
18417
25373
//                                                                
18434
25390
#define __Builder_h__
18435
25391
 
18436
25392
 
18437
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
25393
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
18438
25394
// This file is part of PUMA.
18439
25395
// Copyright (C) 1999-2003  The PUMA developer team.
18440
25396
//                                                                
18457
25413
#define __error_collector_h__
18458
25414
 
18459
25415
 
18460
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
18461
 
// This file is part of PUMA.
18462
 
// Copyright (C) 1999-2003  The PUMA developer team.
18463
 
//                                                                
18464
 
// This program is free software;  you can redistribute it and/or 
18465
 
// modify it under the terms of the GNU General Public License as 
18466
 
// published by the Free Software Foundation; either version 2 of 
18467
 
// the License, or (at your option) any later version.            
18468
 
//                                                                
18469
 
// This program is distributed in the hope that it will be useful,
18470
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
18471
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
18472
 
// GNU General Public License for more details.                   
18473
 
//                                                                
18474
 
// You should have received a copy of the GNU General Public      
18475
 
// License along with this program; if not, write to the Free     
18476
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
18477
 
// MA  02111-1307  USA                                            
18478
 
 
18479
 
#ifndef __error_sink_h__
18480
 
#define __error_sink_h__
18481
 
 
18482
 
// This is an interface for classes that may be used to consume error
18483
 
// messages during a process where many errors can occur like parsing
18484
 
// a program.
18485
 
// The error information is handed over to the ErrorSink in stream-like
18486
 
// style. Different severities of errors are predefined and can be used
18487
 
// to classify error information that follows. Also a location can be
18488
 
// handed over to the ErrorSink to specify where the error was found
18489
 
// (filename, line, etc.). The error information itself can be of any
18490
 
// standard data type or anything that is "Printable".
18491
 
// Specializations of this class could either build and print error
18492
 
// messages or collect them for a later processing.
18493
 
 
18494
 
 
18495
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
18496
 
namespace Puma {
18497
 
 
18498
 
 
18499
 
 
18500
 
#line 18501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18501
 
} // closed Puma
18502
 
class WinIfExists;
18503
 
class WinImportHandler;
18504
 
class WinMacros;
18505
 
class CMatchSyntax;
18506
 
class ExtGnu;
18507
 
class ExtAC;
18508
 
class ExtACBuilderCoupling;
18509
 
class ExtACSyntaxCoupling;
18510
 
class ExtACTree;
18511
 
class ExtACKeywords;
18512
 
class WinAsm;
18513
 
class WinDeclSpecs;
18514
 
class WinMemberExplSpec;
18515
 
class WinTypeKeywords;
18516
 
class PragmaOnceUnitState;
18517
 
class PragmaOnce;
18518
 
class CCExprResolve;
18519
 
class CExprResolve;
18520
 
namespace Puma {
18521
 
 
18522
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
18523
 
class ErrorSink {
18524
 
#line 18525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18525
 
  friend class ::WinIfExists;
18526
 
  friend class ::WinImportHandler;
18527
 
  friend class ::WinMacros;
18528
 
  friend class ::CMatchSyntax;
18529
 
  friend class ::ExtGnu;
18530
 
  friend class ::ExtAC;
18531
 
  friend class ::ExtACBuilderCoupling;
18532
 
  friend class ::ExtACSyntaxCoupling;
18533
 
  friend class ::ExtACTree;
18534
 
  friend class ::ExtACKeywords;
18535
 
  friend class ::WinAsm;
18536
 
  friend class ::WinDeclSpecs;
18537
 
  friend class ::WinMemberExplSpec;
18538
 
  friend class ::WinTypeKeywords;
18539
 
  friend class ::PragmaOnceUnitState;
18540
 
  friend class ::PragmaOnce;
18541
 
  friend class ::CCExprResolve;
18542
 
  friend class ::CExprResolve;
18543
 
 
18544
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
18545
 
 
18546
 
public:
18547
 
  virtual ~ErrorSink () {}
18548
 
  virtual ErrorSink &operator << (const char *) = 0;
18549
 
  virtual ErrorSink &operator << (long) = 0;
18550
 
  virtual ErrorSink &operator << (unsigned) = 0;
18551
 
  virtual ErrorSink &operator << (int) = 0;
18552
 
  virtual ErrorSink &operator << (short) = 0;
18553
 
  virtual ErrorSink &operator << (char) = 0;
18554
 
  virtual ErrorSink &operator << (double) = 0;
18555
 
  virtual ErrorSink &operator << (const ErrorSeverity &) = 0;
18556
 
  virtual ErrorSink &operator << (Location) = 0;
18557
 
  virtual ErrorSink &operator << (const Printable &) = 0;
18558
 
  virtual ErrorSink &operator << (void (*f)(ErrorSink &)) = 0;
18559
 
  virtual void endMessage () = 0;
18560
 
};
18561
 
 
18562
 
void endMessage (ErrorSink &);
18563
 
 
18564
 
 
18565
 
} // namespace Puma
18566
 
 
18567
 
#endif /* __error_sink_h__ */
18568
 
 
18569
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
25416
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
18570
25417
using namespace std;
18571
25418
 
18572
25419
namespace Puma {
18573
25420
 
18574
25421
 
18575
25422
 
18576
 
#line 18577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25423
#line 25424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
18577
25424
} // closed Puma
 
25425
class CCExprResolve;
 
25426
class CExprResolve;
18578
25427
class WinIfExists;
18579
25428
class WinImportHandler;
18580
25429
class WinMacros;
18581
 
class CMatchSyntax;
18582
 
class ExtGnu;
 
25430
class WinAsm;
 
25431
class WinDeclSpecs;
 
25432
class WinMemberExplSpec;
 
25433
class WinTypeKeywords;
 
25434
class WinFriend;
18583
25435
class ExtAC;
18584
25436
class ExtACBuilderCoupling;
18585
25437
class ExtACSyntaxCoupling;
18586
25438
class ExtACTree;
18587
25439
class ExtACKeywords;
18588
 
class WinAsm;
18589
 
class WinDeclSpecs;
18590
 
class WinMemberExplSpec;
18591
 
class WinTypeKeywords;
 
25440
class ExtGnu;
18592
25441
class PragmaOnceUnitState;
18593
25442
class PragmaOnce;
18594
 
class CCExprResolve;
18595
 
class CExprResolve;
 
25443
class CMatchSyntax;
18596
25444
namespace Puma {
18597
25445
 
18598
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
25446
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
18599
25447
class ErrorCollector : public ErrorSink {
18600
 
#line 18601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25448
#line 25449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
25449
  friend class ::CCExprResolve;
 
25450
  friend class ::CExprResolve;
18601
25451
  friend class ::WinIfExists;
18602
25452
  friend class ::WinImportHandler;
18603
25453
  friend class ::WinMacros;
18604
 
  friend class ::CMatchSyntax;
18605
 
  friend class ::ExtGnu;
 
25454
  friend class ::WinAsm;
 
25455
  friend class ::WinDeclSpecs;
 
25456
  friend class ::WinMemberExplSpec;
 
25457
  friend class ::WinTypeKeywords;
 
25458
  friend class ::WinFriend;
18606
25459
  friend class ::ExtAC;
18607
25460
  friend class ::ExtACBuilderCoupling;
18608
25461
  friend class ::ExtACSyntaxCoupling;
18609
25462
  friend class ::ExtACTree;
18610
25463
  friend class ::ExtACKeywords;
18611
 
  friend class ::WinAsm;
18612
 
  friend class ::WinDeclSpecs;
18613
 
  friend class ::WinMemberExplSpec;
18614
 
  friend class ::WinTypeKeywords;
 
25464
  friend class ::ExtGnu;
18615
25465
  friend class ::PragmaOnceUnitState;
18616
25466
  friend class ::PragmaOnce;
18617
 
  friend class ::CCExprResolve;
18618
 
  friend class ::CExprResolve;
 
25467
  friend class ::CMatchSyntax;
18619
25468
 
18620
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
25469
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
18621
25470
 
18622
25471
  class Msg {
18623
 
#line 18624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25472
#line 25473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
25473
  friend class ::CCExprResolve;
 
25474
  friend class ::CExprResolve;
18624
25475
  friend class ::WinIfExists;
18625
25476
  friend class ::WinImportHandler;
18626
25477
  friend class ::WinMacros;
18627
 
  friend class ::CMatchSyntax;
18628
 
  friend class ::ExtGnu;
 
25478
  friend class ::WinAsm;
 
25479
  friend class ::WinDeclSpecs;
 
25480
  friend class ::WinMemberExplSpec;
 
25481
  friend class ::WinTypeKeywords;
 
25482
  friend class ::WinFriend;
18629
25483
  friend class ::ExtAC;
18630
25484
  friend class ::ExtACBuilderCoupling;
18631
25485
  friend class ::ExtACSyntaxCoupling;
18632
25486
  friend class ::ExtACTree;
18633
25487
  friend class ::ExtACKeywords;
18634
 
  friend class ::WinAsm;
18635
 
  friend class ::WinDeclSpecs;
18636
 
  friend class ::WinMemberExplSpec;
18637
 
  friend class ::WinTypeKeywords;
 
25488
  friend class ::ExtGnu;
18638
25489
  friend class ::PragmaOnceUnitState;
18639
25490
  friend class ::PragmaOnce;
18640
 
  friend class ::CCExprResolve;
18641
 
  friend class ::CExprResolve;
 
25491
  friend class ::CMatchSyntax;
18642
25492
 
18643
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
25493
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
18644
25494
 
18645
25495
    ErrorSeverity _sev;
18646
25496
    Location _loc;
18695
25545
 
18696
25546
#endif /* __error_collector_h__ */
18697
25547
 
18698
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
25548
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
18699
25549
// This file is part of PUMA.
18700
25550
// Copyright (C) 1999-2003  The PUMA developer team.
18701
25551
//                                                                
18720
25570
// Stepped pointer stack.
18721
25571
 
18722
25572
 
18723
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
25573
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
18724
25574
// This file is part of PUMA.
18725
25575
// Copyright (C) 1999-2003  The PUMA developer team.
18726
25576
//                                                                
18743
25593
#define __stack_h__
18744
25594
 
18745
25595
 
18746
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
18747
 
namespace Puma {
18748
 
 
18749
 
 
18750
 
#line 18751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18751
 
} // closed Puma
18752
 
class WinIfExists;
18753
 
class WinImportHandler;
18754
 
class WinMacros;
18755
 
class CMatchSyntax;
18756
 
class ExtGnu;
18757
 
class ExtAC;
18758
 
class ExtACBuilderCoupling;
18759
 
class ExtACSyntaxCoupling;
18760
 
class ExtACTree;
18761
 
class ExtACKeywords;
18762
 
class WinAsm;
18763
 
class WinDeclSpecs;
18764
 
class WinMemberExplSpec;
18765
 
class WinTypeKeywords;
18766
 
class PragmaOnceUnitState;
18767
 
class PragmaOnce;
18768
 
class CCExprResolve;
18769
 
class CExprResolve;
18770
 
namespace Puma {
18771
 
 
18772
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
25596
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
25597
namespace Puma {
 
25598
 
18773
25599
template <class Item>
18774
25600
class Stack : private Array<Item> {
18775
 
#line 18776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18776
 
  friend class ::WinIfExists;
18777
 
  friend class ::WinImportHandler;
18778
 
  friend class ::WinMacros;
18779
 
  friend class ::CMatchSyntax;
18780
 
  friend class ::ExtGnu;
18781
 
  friend class ::ExtAC;
18782
 
  friend class ::ExtACBuilderCoupling;
18783
 
  friend class ::ExtACSyntaxCoupling;
18784
 
  friend class ::ExtACTree;
18785
 
  friend class ::ExtACKeywords;
18786
 
  friend class ::WinAsm;
18787
 
  friend class ::WinDeclSpecs;
18788
 
  friend class ::WinMemberExplSpec;
18789
 
  friend class ::WinTypeKeywords;
18790
 
  friend class ::PragmaOnceUnitState;
18791
 
  friend class ::PragmaOnce;
18792
 
  friend class ::CCExprResolve;
18793
 
  friend class ::CExprResolve;
18794
 
 
18795
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
18796
 
 
18797
25601
public:
18798
25602
  Stack (long is = 8192, long incr = 8192) :
18799
25603
    Array<Item> (is, incr) {}
18809
25613
 
18810
25614
#endif /* __stack_h__ */
18811
25615
 
18812
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
25616
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
18813
25617
// This file is part of PUMA.
18814
25618
// Copyright (C) 1999-2003  The PUMA developer team.
18815
25619
//                                                                
18832
25636
#define __bcstack_h__
18833
25637
 
18834
25638
 
18835
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
 
25639
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCList.h"
18836
25640
// This file is part of PUMA.
18837
25641
// Copyright (C) 1999-2003  The PUMA developer team.
18838
25642
//                                                                
18856
25660
 
18857
25661
namespace Puma {
18858
25662
 
18859
 
 
18860
 
#line 18861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18861
 
} // closed Puma
18862
 
class WinIfExists;
18863
 
class WinImportHandler;
18864
 
class WinMacros;
18865
 
class CMatchSyntax;
18866
 
class ExtGnu;
18867
 
class ExtAC;
18868
 
class ExtACBuilderCoupling;
18869
 
class ExtACSyntaxCoupling;
18870
 
class ExtACTree;
18871
 
class ExtACKeywords;
18872
 
class WinAsm;
18873
 
class WinDeclSpecs;
18874
 
class WinMemberExplSpec;
18875
 
class WinTypeKeywords;
18876
 
class PragmaOnceUnitState;
18877
 
class PragmaOnce;
18878
 
class CCExprResolve;
18879
 
class CExprResolve;
18880
 
namespace Puma {
18881
 
 
18882
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
18883
25663
template <class Item, int BUCKET_SIZE = 32>
18884
25664
class BCList {
18885
 
#line 18886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18886
 
  friend class ::WinIfExists;
18887
 
  friend class ::WinImportHandler;
18888
 
  friend class ::WinMacros;
18889
 
  friend class ::CMatchSyntax;
18890
 
  friend class ::ExtGnu;
18891
 
  friend class ::ExtAC;
18892
 
  friend class ::ExtACBuilderCoupling;
18893
 
  friend class ::ExtACSyntaxCoupling;
18894
 
  friend class ::ExtACTree;
18895
 
  friend class ::ExtACKeywords;
18896
 
  friend class ::WinAsm;
18897
 
  friend class ::WinDeclSpecs;
18898
 
  friend class ::WinMemberExplSpec;
18899
 
  friend class ::WinTypeKeywords;
18900
 
  friend class ::PragmaOnceUnitState;
18901
 
  friend class ::PragmaOnce;
18902
 
  friend class ::CCExprResolve;
18903
 
  friend class ::CExprResolve;
18904
 
 
18905
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
18906
 
 
18907
25665
 
18908
25666
protected:
18909
25667
  struct Bucket {
18910
 
#line 18911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18911
 
  friend class ::WinIfExists;
18912
 
  friend class ::WinImportHandler;
18913
 
  friend class ::WinMacros;
18914
 
  friend class ::CMatchSyntax;
18915
 
  friend class ::ExtGnu;
18916
 
  friend class ::ExtAC;
18917
 
  friend class ::ExtACBuilderCoupling;
18918
 
  friend class ::ExtACSyntaxCoupling;
18919
 
  friend class ::ExtACTree;
18920
 
  friend class ::ExtACKeywords;
18921
 
  friend class ::WinAsm;
18922
 
  friend class ::WinDeclSpecs;
18923
 
  friend class ::WinMemberExplSpec;
18924
 
  friend class ::WinTypeKeywords;
18925
 
  friend class ::PragmaOnceUnitState;
18926
 
  friend class ::PragmaOnce;
18927
 
  friend class ::CCExprResolve;
18928
 
  friend class ::CExprResolve;
18929
 
 
18930
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
18931
 
 
18932
25668
    Bucket *_prev;
18933
25669
    Bucket *_next;
18934
25670
    Item *_write_pos;
18963
25699
 
18964
25700
public:  
18965
25701
  class Iterator {
18966
 
#line 18967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
18967
 
  friend class ::WinIfExists;
18968
 
  friend class ::WinImportHandler;
18969
 
  friend class ::WinMacros;
18970
 
  friend class ::CMatchSyntax;
18971
 
  friend class ::ExtGnu;
18972
 
  friend class ::ExtAC;
18973
 
  friend class ::ExtACBuilderCoupling;
18974
 
  friend class ::ExtACSyntaxCoupling;
18975
 
  friend class ::ExtACTree;
18976
 
  friend class ::ExtACKeywords;
18977
 
  friend class ::WinAsm;
18978
 
  friend class ::WinDeclSpecs;
18979
 
  friend class ::WinMemberExplSpec;
18980
 
  friend class ::WinTypeKeywords;
18981
 
  friend class ::PragmaOnceUnitState;
18982
 
  friend class ::PragmaOnce;
18983
 
  friend class ::CCExprResolve;
18984
 
  friend class ::CExprResolve;
18985
 
 
18986
 
#line 62 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
18987
 
 
18988
25702
    friend class BCList<Item, BUCKET_SIZE>;
18989
25703
 
18990
25704
    Item *_item;
19082
25796
 
19083
25797
#endif /* __bclist_h__ */
19084
25798
 
19085
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
19086
 
namespace Puma {
19087
 
 
19088
 
 
19089
 
#line 19090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
19090
 
} // closed Puma
19091
 
class WinIfExists;
19092
 
class WinImportHandler;
19093
 
class WinMacros;
19094
 
class CMatchSyntax;
19095
 
class ExtGnu;
19096
 
class ExtAC;
19097
 
class ExtACBuilderCoupling;
19098
 
class ExtACSyntaxCoupling;
19099
 
class ExtACTree;
19100
 
class ExtACKeywords;
19101
 
class WinAsm;
19102
 
class WinDeclSpecs;
19103
 
class WinMemberExplSpec;
19104
 
class WinTypeKeywords;
19105
 
class PragmaOnceUnitState;
19106
 
class PragmaOnce;
19107
 
class CCExprResolve;
19108
 
class CExprResolve;
19109
 
namespace Puma {
19110
 
 
19111
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
25799
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
25800
namespace Puma {
 
25801
 
19112
25802
template <class Item, int BUCKET_SIZE = 32>
19113
25803
class BCStack : private BCList<Item, BUCKET_SIZE> {
19114
 
#line 19115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
19115
 
  friend class ::WinIfExists;
19116
 
  friend class ::WinImportHandler;
19117
 
  friend class ::WinMacros;
19118
 
  friend class ::CMatchSyntax;
19119
 
  friend class ::ExtGnu;
19120
 
  friend class ::ExtAC;
19121
 
  friend class ::ExtACBuilderCoupling;
19122
 
  friend class ::ExtACSyntaxCoupling;
19123
 
  friend class ::ExtACTree;
19124
 
  friend class ::ExtACKeywords;
19125
 
  friend class ::WinAsm;
19126
 
  friend class ::WinDeclSpecs;
19127
 
  friend class ::WinMemberExplSpec;
19128
 
  friend class ::WinTypeKeywords;
19129
 
  friend class ::PragmaOnceUnitState;
19130
 
  friend class ::PragmaOnce;
19131
 
  friend class ::CCExprResolve;
19132
 
  friend class ::CExprResolve;
19133
 
 
19134
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
19135
 
 
19136
25804
  typedef BCList<Item, BUCKET_SIZE> List;
19137
25805
public:
19138
25806
  typedef typename List::Iterator Iterator;
19145
25813
  BCStack () : _length (0L) {}
19146
25814
  long length () const { return _length; }
19147
25815
  void push (Item item) {
19148
 
    if (_tos != BCList<Item, BUCKET_SIZE>::end ())
 
25816
    if (_tos)
19149
25817
      ++_tos;
19150
 
    if (_tos == BCList<Item, BUCKET_SIZE>::end ()) 
 
25818
    if (! _tos) 
19151
25819
      _tos = add (item);
19152
25820
    else
19153
25821
      *_tos = item;
19163
25831
 
19164
25832
#endif /* __bcstack_h__ */
19165
25833
 
19166
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
19167
 
namespace Puma {
19168
 
 
19169
 
 
19170
 
 
19171
 
#line 19172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
19172
 
} // closed Puma
19173
 
class WinIfExists;
19174
 
class WinImportHandler;
19175
 
class WinMacros;
19176
 
class CMatchSyntax;
19177
 
class ExtGnu;
19178
 
class ExtAC;
19179
 
class ExtACBuilderCoupling;
19180
 
class ExtACSyntaxCoupling;
19181
 
class ExtACTree;
19182
 
class ExtACKeywords;
19183
 
class WinAsm;
19184
 
class WinDeclSpecs;
19185
 
class WinMemberExplSpec;
19186
 
class WinTypeKeywords;
19187
 
class PragmaOnceUnitState;
19188
 
class PragmaOnce;
19189
 
class CCExprResolve;
19190
 
class CExprResolve;
19191
 
namespace Puma {
19192
 
 
19193
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
25834
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
25835
namespace Puma {
 
25836
 
 
25837
 
19194
25838
template <class T>
19195
25839
class PtrStack
19196
25840
#ifndef __puma
19197
25841
: private Array<T*>
19198
25842
#endif
19199
25843
 {
19200
 
#line 19201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
19201
 
  friend class ::WinIfExists;
19202
 
  friend class ::WinImportHandler;
19203
 
  friend class ::WinMacros;
19204
 
  friend class ::CMatchSyntax;
19205
 
  friend class ::ExtGnu;
19206
 
  friend class ::ExtAC;
19207
 
  friend class ::ExtACBuilderCoupling;
19208
 
  friend class ::ExtACSyntaxCoupling;
19209
 
  friend class ::ExtACTree;
19210
 
  friend class ::ExtACKeywords;
19211
 
  friend class ::WinAsm;
19212
 
  friend class ::WinDeclSpecs;
19213
 
  friend class ::WinMemberExplSpec;
19214
 
  friend class ::WinTypeKeywords;
19215
 
  friend class ::PragmaOnceUnitState;
19216
 
  friend class ::PragmaOnce;
19217
 
  friend class ::CCExprResolve;
19218
 
  friend class ::CExprResolve;
19219
 
 
19220
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
19221
 
 
19222
25844
  BCStack<long, 8192> _Indices;   // start indices
19223
25845
  
19224
25846
public:
19359
25981
 
19360
25982
#endif /* __PtrStack_h__ */
19361
25983
 
19362
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25984
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19363
25985
 
19364
 
#line 19365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
25986
#line 25987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19365
25987
 
19366
25988
#ifndef __ac_fwd_ExtACTree__
19367
25989
#define __ac_fwd_ExtACTree__
19368
25990
class ExtACTree;
19369
25991
namespace AC {
19370
25992
  template <class JoinPoint>
19371
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
25993
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
19372
25994
  template <class JoinPoint>
19373
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
25995
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
19374
25996
}
19375
25997
#endif
19376
25998
 
19377
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
19378
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
25999
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
26000
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
19379
26001
#endif
19380
26002
 
19381
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19382
 
 
19383
 
#line 19384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
19384
 
 
19385
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19386
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
19387
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
19388
 
 
19389
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26003
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19390
26004
// This file is part of PUMA.
19391
26005
// Copyright (C) 1999-2003  The PUMA developer team.
19392
26006
//                                                                
19431
26045
class     CT_DefaultStmt;
19432
26046
class     CT_TryStmt;
19433
26047
class   CT_Expression;
 
26048
class     CT_Call;
 
26049
class       CT_CallExpr;
 
26050
class       CT_ImplicitCall;
19434
26051
class     CT_ThrowExpr;
19435
26052
class     CT_NewExpr;
19436
26053
class     CT_DeleteExpr;
19451
26068
class     CT_IfThenExpr;
19452
26069
class     CT_CmpdLiteral;
19453
26070
class     CT_IndexExpr;
19454
 
class     CT_CallExpr;
19455
26071
class     CT_CastExpr;
19456
26072
class     CT_StaticCast;
19457
26073
class       CT_ConstCast;
19498
26114
class     CT_NamespaceDef;
19499
26115
class     CT_NamespaceAliasDef;
19500
26116
class     CT_UsingDirective;
 
26117
class     CT_Condition;
19501
26118
class   CT_List;
19502
26119
class     CT_CmpdStmt;
19503
26120
class     CT_DeclSpecSeq;
19528
26145
class     CT_TemplateArgList;
19529
26146
class   CT_Token;
19530
26147
class   CT_Error;
19531
 
class   CT_Condition;
19532
26148
class   CT_BaseSpec;
19533
26149
class   CT_AccessSpec;
19534
26150
class   CT_ArrayDelimiter;
19568
26184
/*                                                                           */
19569
26185
/*****************************************************************************/
19570
26186
 
19571
 
 
19572
 
#line 19573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26187
/** \file
 
26188
 *  C/C++ syntax tree classes.
 
26189
 *  \see Puma::CTree */
 
26190
 
 
26191
/** \class CTree CTree.h Puma/CTree.h
 
26192
 *  Base class for all C/C++ syntax tree classes. */
 
26193
 
 
26194
#line 26195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19573
26195
} // closed Puma
 
26196
class CCExprResolve;
 
26197
class CExprResolve;
19574
26198
class WinIfExists;
19575
26199
class WinImportHandler;
19576
26200
class WinMacros;
19577
 
class CMatchSyntax;
19578
 
class ExtGnu;
 
26201
class WinAsm;
 
26202
class WinDeclSpecs;
 
26203
class WinMemberExplSpec;
 
26204
class WinTypeKeywords;
 
26205
class WinFriend;
19579
26206
class ExtAC;
19580
26207
class ExtACBuilderCoupling;
19581
26208
class ExtACSyntaxCoupling;
19582
26209
class ExtACTree;
19583
26210
class ExtACKeywords;
19584
 
class WinAsm;
19585
 
class WinDeclSpecs;
19586
 
class WinMemberExplSpec;
19587
 
class WinTypeKeywords;
 
26211
class ExtGnu;
19588
26212
class PragmaOnceUnitState;
19589
26213
class PragmaOnce;
19590
 
class CCExprResolve;
19591
 
class CExprResolve;
19592
 
namespace Puma {
19593
 
 
19594
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26214
class CMatchSyntax;
 
26215
namespace Puma {
 
26216
 
 
26217
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26218
 
 
26219
#line 26220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26220
} // closed Puma
 
26221
 
 
26222
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26223
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26224
#include "CCExprResolveH.ah"
 
26225
#endif
 
26226
namespace Puma {
 
26227
 
 
26228
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26229
 
 
26230
#line 26231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26231
} // closed Puma
 
26232
 
 
26233
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26234
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26235
#include "CExprResolveH.ah"
 
26236
#endif
 
26237
namespace Puma {
 
26238
 
 
26239
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19595
26240
class CTree {
19596
 
#line 19597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26241
#line 26242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26242
  friend class ::CCExprResolve;
 
26243
  friend class ::CExprResolve;
19597
26244
  friend class ::WinIfExists;
19598
26245
  friend class ::WinImportHandler;
19599
26246
  friend class ::WinMacros;
19600
 
  friend class ::CMatchSyntax;
19601
 
  friend class ::ExtGnu;
 
26247
  friend class ::WinAsm;
 
26248
  friend class ::WinDeclSpecs;
 
26249
  friend class ::WinMemberExplSpec;
 
26250
  friend class ::WinTypeKeywords;
 
26251
  friend class ::WinFriend;
19602
26252
  friend class ::ExtAC;
19603
26253
  friend class ::ExtACBuilderCoupling;
19604
26254
  friend class ::ExtACSyntaxCoupling;
19605
26255
  friend class ::ExtACTree;
19606
26256
  friend class ::ExtACKeywords;
19607
 
  friend class ::WinAsm;
19608
 
  friend class ::WinDeclSpecs;
19609
 
  friend class ::WinMemberExplSpec;
19610
 
  friend class ::WinTypeKeywords;
 
26257
  friend class ::ExtGnu;
19611
26258
  friend class ::PragmaOnceUnitState;
19612
26259
  friend class ::PragmaOnce;
19613
 
  friend class ::CCExprResolve;
19614
 
  friend class ::CExprResolve;
19615
 
 
19616
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26260
  friend class ::CMatchSyntax;
 
26261
 
 
26262
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26263
 
 
26264
  CTree * _parent;
19617
26265
 
19618
26266
public:
19619
26267
  /*DEBUG*/static int alloc;
19620
26268
  /*DEBUG*/static int release;
19621
26269
 
19622
26270
protected:
19623
 
  CTree *Son (CTree * const *, int, int) const;
19624
 
  int Sons (CTree * const *, int) const;
19625
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
26271
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
26272
   *  \param sons The sons array.
 
26273
   *  \param len Length of the sons array.
 
26274
   *  \param n Index of the son.
 
26275
   *  \return The n-th son or NULL. */
 
26276
  CTree *Son (CTree * const *sons, int len, int n) const;
 
26277
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
26278
   *  \param sons The sons array.
 
26279
   *  \param len Length of the sons array. */
 
26280
  int Sons (CTree * const *sons, int len) const;
 
26281
  /** Replace a son.
 
26282
   *  \param sons The sons array.
 
26283
   *  \param len Length of the sons array.
 
26284
   *  \param old_son The son to replace.
 
26285
   *  \param new_son The new son. */
 
26286
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
26287
  /** Replace a son if it equals the given son.
 
26288
   *  \param son The actual son.
 
26289
   *  \param old_son The son to replace, must match the actual son.
 
26290
   *  \param new_son The new son, overwrites the actual son. */
 
26291
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
26292
  /** Add a new son.
 
26293
   *  \param son The actual son.
 
26294
   *  \param new_son The new son, overwrites the actual son. */
 
26295
  void AddSon (CTree *&son, CTree *new_son);
 
26296
  /** Set the parent tree node.
 
26297
   *  \param parent The new parent tree node. */
 
26298
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
26299
  /** Set the parent tree node of the given tree node.
 
26300
   *  \param node The tree node.
 
26301
   *  \param parent The new parent. */
 
26302
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
19626
26303
  
19627
26304
protected:
19628
 
  CTree () { /*DEBUG*/alloc++; }
 
26305
  /** Default constructor. */
 
26306
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
19629
26307
 
19630
26308
public:
 
26309
  /** Destructor. */
19631
26310
  virtual ~CTree () { /*DEBUG*/release++; }
 
26311
  /** Get the number of sons. */
19632
26312
  virtual int Sons () const = 0;
 
26313
  /** Get the n-th son.
 
26314
   *  \param n The index of the son.
 
26315
   *  \return The n-th son or NULL. */
19633
26316
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
26317
  /** Get the node name (node identifier). */
19634
26318
  virtual const char *NodeName () const = 0;
 
26319
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
26320
   *  \return The token or NULL. */
19635
26321
  virtual Token *token () const;
 
26322
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
26323
   *  \return The token or NULL. */
19636
26324
  virtual Token *end_token () const;
 
26325
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
26326
   *  \return The token node or NULL. */
19637
26327
  virtual CT_Token *token_node () const;
 
26328
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
26329
   *  \return The token node or NULL. */
19638
26330
  virtual CT_Token *end_token_node () const;
19639
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
26331
  /** Replace a son.
 
26332
   *  \param old_son The son to replace.
 
26333
   *  \param new_son The son with which to replace. */
 
26334
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
26335
  /** Get the parent node.
 
26336
   *  \return The parent node or NULL. */
 
26337
  virtual CTree *Parent () const { return (CTree*)_parent; }
19640
26338
 
19641
26339
public: // semantic information
 
26340
  /** Get the semantic type of the node.
 
26341
   *  \return The type object or NULL. */
19642
26342
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
26343
  /** Get the calculated value of the expression.
 
26344
   *  \return The value object or NULL. */
19643
26345
  virtual CExprValue *Value () const { return (CExprValue*)0; }
19644
26346
  
 
26347
  /** Get the semantic scope of the node.
 
26348
   *  \return The scope object or NULL. */
 
26349
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
26350
  /** Get the semantic value of the node.
 
26351
   *  \return The value object or NULL. */
19645
26352
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
26353
  /** Get the semantic object of the node.
 
26354
   *  \return The semantic object or NULL. */
19646
26355
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
19647
26356
  
19648
26357
public: // node classification function
 
26358
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
26359
   *  \return The CT_SimpleName node or NULL. */
19649
26360
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
26361
  /** Get a pointer to CT_String if the current node represents a string.
 
26362
   *  \return The CT_String node or NULL. */
 
26363
  virtual CT_String *IsString () { return 0; }
 
26364
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
26365
   *  \return The CT_Declarator pointer or NULL. */
19650
26366
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
26367
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
26368
   *  \return The CT_Statement pointer or NULL. */
 
26369
  virtual CT_Statement *IsStatement () { return 0; }
 
26370
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
26371
   *  \return The CT_Expression pointer or NULL. */
 
26372
  virtual CT_Expression *IsExpression () { return 0; }
 
26373
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
26374
   *  \return The CT_Decl pointer or NULL. */
 
26375
  virtual CT_Decl *IsDeclaration () { return 0; }
 
26376
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
26377
   *  \return The CT_Call pointer or NULL. */
 
26378
  virtual CT_Call *IsCall () { return 0; }
19651
26379
   private:
19652
26380
  typedef CTree CCExprResolveCTree;
19653
26381
 
19654
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26382
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19655
26383
 public :
19656
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
26384
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
19657
26385
  typedef CTree CExprResolveCTree;
19658
26386
 
19659
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26387
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19660
26388
 public :
19661
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19662
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26389
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26390
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19663
26391
};
19664
26392
 
 
26393
/** \class CT_Error CTree.h Puma/CTree.h
 
26394
 *  Error tree node that is inserted into the tree for syntactic constructs
 
26395
 *  that could not be parsed. */
19665
26396
 
19666
 
#line 19667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26397
#line 26398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19667
26398
} // closed Puma
 
26399
class CCExprResolve;
 
26400
class CExprResolve;
19668
26401
class WinIfExists;
19669
26402
class WinImportHandler;
19670
26403
class WinMacros;
19671
 
class CMatchSyntax;
19672
 
class ExtGnu;
 
26404
class WinAsm;
 
26405
class WinDeclSpecs;
 
26406
class WinMemberExplSpec;
 
26407
class WinTypeKeywords;
 
26408
class WinFriend;
19673
26409
class ExtAC;
19674
26410
class ExtACBuilderCoupling;
19675
26411
class ExtACSyntaxCoupling;
19676
26412
class ExtACTree;
19677
26413
class ExtACKeywords;
19678
 
class WinAsm;
19679
 
class WinDeclSpecs;
19680
 
class WinMemberExplSpec;
19681
 
class WinTypeKeywords;
 
26414
class ExtGnu;
19682
26415
class PragmaOnceUnitState;
19683
26416
class PragmaOnce;
19684
 
class CCExprResolve;
19685
 
class CExprResolve;
 
26417
class CMatchSyntax;
19686
26418
namespace Puma {
19687
26419
 
19688
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26420
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19689
26421
class CT_Error : public CTree {
19690
 
#line 19691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26422
#line 26423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26423
  friend class ::CCExprResolve;
 
26424
  friend class ::CExprResolve;
19691
26425
  friend class ::WinIfExists;
19692
26426
  friend class ::WinImportHandler;
19693
26427
  friend class ::WinMacros;
19694
 
  friend class ::CMatchSyntax;
19695
 
  friend class ::ExtGnu;
 
26428
  friend class ::WinAsm;
 
26429
  friend class ::WinDeclSpecs;
 
26430
  friend class ::WinMemberExplSpec;
 
26431
  friend class ::WinTypeKeywords;
 
26432
  friend class ::WinFriend;
19696
26433
  friend class ::ExtAC;
19697
26434
  friend class ::ExtACBuilderCoupling;
19698
26435
  friend class ::ExtACSyntaxCoupling;
19699
26436
  friend class ::ExtACTree;
19700
26437
  friend class ::ExtACKeywords;
19701
 
  friend class ::WinAsm;
19702
 
  friend class ::WinDeclSpecs;
19703
 
  friend class ::WinMemberExplSpec;
19704
 
  friend class ::WinTypeKeywords;
 
26438
  friend class ::ExtGnu;
19705
26439
  friend class ::PragmaOnceUnitState;
19706
26440
  friend class ::PragmaOnce;
19707
 
  friend class ::CCExprResolve;
19708
 
  friend class ::CExprResolve;
 
26441
  friend class ::CMatchSyntax;
19709
26442
 
19710
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26443
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19711
26444
 
19712
26445
public:
 
26446
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19713
26447
  static const char *NodeId ();
 
26448
  /** Get the name of the node. Can be compared with NodeId(). */
19714
26449
  const char *NodeName () const { return NodeId (); }
 
26450
  /** Get the number of sons. */
19715
26451
  int Sons () const { return 0; }
19716
26452
};
19717
26453
 
 
26454
/** \class CT_Token CTree.h Puma/CTree.h
 
26455
 *  Tree node representing a single token in the source code. */
19718
26456
 
19719
 
#line 19720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26457
#line 26458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19720
26458
} // closed Puma
 
26459
class CCExprResolve;
 
26460
class CExprResolve;
19721
26461
class WinIfExists;
19722
26462
class WinImportHandler;
19723
26463
class WinMacros;
19724
 
class CMatchSyntax;
19725
 
class ExtGnu;
 
26464
class WinAsm;
 
26465
class WinDeclSpecs;
 
26466
class WinMemberExplSpec;
 
26467
class WinTypeKeywords;
 
26468
class WinFriend;
19726
26469
class ExtAC;
19727
26470
class ExtACBuilderCoupling;
19728
26471
class ExtACSyntaxCoupling;
19729
26472
class ExtACTree;
19730
26473
class ExtACKeywords;
19731
 
class WinAsm;
19732
 
class WinDeclSpecs;
19733
 
class WinMemberExplSpec;
19734
 
class WinTypeKeywords;
 
26474
class ExtGnu;
19735
26475
class PragmaOnceUnitState;
19736
26476
class PragmaOnce;
19737
 
class CCExprResolve;
19738
 
class CExprResolve;
 
26477
class CMatchSyntax;
19739
26478
namespace Puma {
19740
26479
 
19741
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26480
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19742
26481
class CT_Token : public CTree {
19743
 
#line 19744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26482
#line 26483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26483
  friend class ::CCExprResolve;
 
26484
  friend class ::CExprResolve;
19744
26485
  friend class ::WinIfExists;
19745
26486
  friend class ::WinImportHandler;
19746
26487
  friend class ::WinMacros;
19747
 
  friend class ::CMatchSyntax;
19748
 
  friend class ::ExtGnu;
 
26488
  friend class ::WinAsm;
 
26489
  friend class ::WinDeclSpecs;
 
26490
  friend class ::WinMemberExplSpec;
 
26491
  friend class ::WinTypeKeywords;
 
26492
  friend class ::WinFriend;
19749
26493
  friend class ::ExtAC;
19750
26494
  friend class ::ExtACBuilderCoupling;
19751
26495
  friend class ::ExtACSyntaxCoupling;
19752
26496
  friend class ::ExtACTree;
19753
26497
  friend class ::ExtACKeywords;
19754
 
  friend class ::WinAsm;
19755
 
  friend class ::WinDeclSpecs;
19756
 
  friend class ::WinMemberExplSpec;
19757
 
  friend class ::WinTypeKeywords;
 
26498
  friend class ::ExtGnu;
19758
26499
  friend class ::PragmaOnceUnitState;
19759
26500
  friend class ::PragmaOnce;
19760
 
  friend class ::CCExprResolve;
19761
 
  friend class ::CExprResolve;
 
26501
  friend class ::CMatchSyntax;
19762
26502
 
19763
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26503
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19764
26504
 
19765
26505
  Token *_token;
19766
26506
  unsigned long int _number;
19767
26507
  
19768
26508
public:
19769
 
  CT_Token (Token *t, unsigned long int n = 0) : 
19770
 
    _token (t), _number (n) {}
 
26509
  /** Constructor. 
 
26510
   *  \param token The represented token.
 
26511
   *  \param number The token number (a consecutive number). */
 
26512
  CT_Token (Token *token, unsigned long int number = 0) : 
 
26513
    _token (token), _number (number) {}
 
26514
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19771
26515
  static const char *NodeId ();
 
26516
  /** Get the name of the node. Can be compared with NodeId(). */
19772
26517
  const char *NodeName () const { return NodeId (); }
 
26518
  /** Get the number of sons. */
19773
26519
  int Sons () const { return 0; }
 
26520
  /** Get the represented token. */
19774
26521
  Token *token () const { return _token; }
 
26522
  /** Get the represented token. */
19775
26523
  Token *end_token () const { return _token; }
 
26524
  /** Get this. */
19776
26525
  CT_Token *token_node () const { return (CT_Token*)this; }
 
26526
  /** Get this. */
19777
26527
  CT_Token *end_token_node () const { return (CT_Token*)this; }
19778
 
  void Number (unsigned long int n) { _number = n; }
 
26528
  /** Set the token number. 
 
26529
   *  \param number The token number. */ 
 
26530
  void Number (unsigned long int number) { _number = number; }
 
26531
  /** Get the token number. Can be used to indentify this token. */
19779
26532
  unsigned long int Number () const { return _number; }
19780
 
  // special new / delete with reusing memory
 
26533
  
 
26534
public:
 
26535
  /** Own new operator reusing memory. */
19781
26536
  void *operator new (size_t);
19782
 
  void  operator delete (void *);
 
26537
  /** Own delete operator. */
 
26538
  void operator delete (void *);
19783
26539
};
19784
26540
 
19785
26541
/*****************************************************************************/
19788
26544
/*                                                                           */
19789
26545
/*****************************************************************************/
19790
26546
 
 
26547
/** \class CT_List CTree.h Puma/CTree.h
 
26548
 *  Base class for tree nodes representing lists. */
19791
26549
 
19792
 
#line 19793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26550
#line 26551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19793
26551
} // closed Puma
 
26552
class CCExprResolve;
 
26553
class CExprResolve;
19794
26554
class WinIfExists;
19795
26555
class WinImportHandler;
19796
26556
class WinMacros;
19797
 
class CMatchSyntax;
19798
 
class ExtGnu;
 
26557
class WinAsm;
 
26558
class WinDeclSpecs;
 
26559
class WinMemberExplSpec;
 
26560
class WinTypeKeywords;
 
26561
class WinFriend;
19799
26562
class ExtAC;
19800
26563
class ExtACBuilderCoupling;
19801
26564
class ExtACSyntaxCoupling;
19802
26565
class ExtACTree;
19803
26566
class ExtACKeywords;
19804
 
class WinAsm;
19805
 
class WinDeclSpecs;
19806
 
class WinMemberExplSpec;
19807
 
class WinTypeKeywords;
 
26567
class ExtGnu;
19808
26568
class PragmaOnceUnitState;
19809
26569
class PragmaOnce;
19810
 
class CCExprResolve;
19811
 
class CExprResolve;
 
26570
class CMatchSyntax;
19812
26571
namespace Puma {
19813
26572
 
19814
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26573
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19815
26574
class CT_List : public CTree {
19816
 
#line 19817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26575
#line 26576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26576
  friend class ::CCExprResolve;
 
26577
  friend class ::CExprResolve;
19817
26578
  friend class ::WinIfExists;
19818
26579
  friend class ::WinImportHandler;
19819
26580
  friend class ::WinMacros;
19820
 
  friend class ::CMatchSyntax;
19821
 
  friend class ::ExtGnu;
 
26581
  friend class ::WinAsm;
 
26582
  friend class ::WinDeclSpecs;
 
26583
  friend class ::WinMemberExplSpec;
 
26584
  friend class ::WinTypeKeywords;
 
26585
  friend class ::WinFriend;
19822
26586
  friend class ::ExtAC;
19823
26587
  friend class ::ExtACBuilderCoupling;
19824
26588
  friend class ::ExtACSyntaxCoupling;
19825
26589
  friend class ::ExtACTree;
19826
26590
  friend class ::ExtACKeywords;
19827
 
  friend class ::WinAsm;
19828
 
  friend class ::WinDeclSpecs;
19829
 
  friend class ::WinMemberExplSpec;
19830
 
  friend class ::WinTypeKeywords;
 
26591
  friend class ::ExtGnu;
19831
26592
  friend class ::PragmaOnceUnitState;
19832
26593
  friend class ::PragmaOnce;
19833
 
  friend class ::CCExprResolve;
19834
 
  friend class ::CExprResolve;
 
26594
  friend class ::CMatchSyntax;
19835
26595
 
19836
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26596
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19837
26597
 
19838
26598
  Array<CTree*> _sons;
19839
26599
  int _properties;
19840
26600
 
19841
26601
protected:
 
26602
  /** Constructor.
 
26603
   *  \param size The initial list size.
 
26604
   *  \param incr The initial increment count. 
 
26605
   *  \param props The list properties (bit array). */
19842
26606
  CT_List(int size = 5, int incr = 5, int props = 0) : 
19843
26607
    _sons (size, incr), _properties (props) {}
19844
26608
 
19845
26609
public:
 
26610
  /** List properties. */
19846
26611
  enum {
19847
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
19848
 
    CLOSE = 2,
19849
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
19850
 
    SEPARATORS = 4,   // the list has separators like ','
19851
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
19852
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
19853
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
19854
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
26612
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
26613
    CLOSE = 2,        /** List has an end token */
 
26614
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
26615
    SEPARATORS = 4,   /** List has separators, like ',' */
 
26616
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
26617
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
26618
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
26619
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
19855
26620
  };
19856
26621
 
 
26622
  /** Get the number of list entries. */
19857
26623
  int Entries () const;
19858
 
  CTree *Entry (int no) const;
 
26624
  /** Get the n-th list entry.
 
26625
   *  \param n The index of the entry. 
 
26626
   *  \return The list entry or NULL. */
 
26627
  CTree *Entry (int n) const;
 
26628
  /** Get the number of sons. */
19859
26629
  int Sons () const { return _sons.length (); }
 
26630
  /** Get the n-th son.
 
26631
   *  \param n The index of the son. 
 
26632
   *  \return The n-th son or NULL. */
19860
26633
  CTree *Son (int n) const { return _sons.lookup (n); }
 
26634
  /** Get the list properties. */
19861
26635
  int GetProperties () const { return _properties; }
 
26636
  /** Add a list property.
 
26637
   *  \param p The property to add. */
19862
26638
  void AddProperties (int p) { _properties |= p; }
19863
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
19864
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
19865
 
  void InsertSon (CTree *, CTree *);  // before given son
19866
 
  void ReplaceSon (CTree *, CTree *);
19867
 
  void RemoveSon (CTree *);
 
26639
  /** Add a son.
 
26640
   *  \param s The son to add. */
 
26641
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
26642
  /** Prepend a son.
 
26643
   *  \param s The son to prepend. */
 
26644
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
26645
  /** Insert a son before another son.
 
26646
   *  \param before The son to insert the new son before.
 
26647
   *  \param son The son to insert. */
 
26648
  void InsertSon (CTree *before, CTree *son); 
 
26649
  /** Replace a son.
 
26650
   *  \param old_son The son to replace.
 
26651
   *  \param new_son The new son. */
 
26652
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
26653
  /** Remove a son.
 
26654
   *  \param son The son to remove. */
 
26655
  void RemoveSon (CTree *son);
 
26656
  /** Insert a son at the given index. 
 
26657
   *  \param idx The index at which to insert.
 
26658
   *  \param s The son to insert. */
19868
26659
  void InsertSon (int idx, CTree *s)
19869
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
26660
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
26661
  /** Replace the son at the given index.
 
26662
   *  \param idx The index of the son to replace.
 
26663
   *  \param s The new son. */
19870
26664
  void ReplaceSon (int idx, CTree *s) 
19871
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
26665
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
26666
  /** Remove the son at the given index. 
 
26667
   *  \param idx The index of the son to remove. */
19872
26668
  void RemoveSon (int idx) 
19873
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
26669
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
19874
26670
};
19875
26671
 
 
26672
/** \class CT_ExprList CTree.h Puma/CTree.h
 
26673
 *  Tree node representing an expression list. */
19876
26674
 
19877
 
#line 19878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26675
#line 26676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19878
26676
} // closed Puma
 
26677
class CCExprResolve;
 
26678
class CExprResolve;
19879
26679
class WinIfExists;
19880
26680
class WinImportHandler;
19881
26681
class WinMacros;
19882
 
class CMatchSyntax;
19883
 
class ExtGnu;
 
26682
class WinAsm;
 
26683
class WinDeclSpecs;
 
26684
class WinMemberExplSpec;
 
26685
class WinTypeKeywords;
 
26686
class WinFriend;
19884
26687
class ExtAC;
19885
26688
class ExtACBuilderCoupling;
19886
26689
class ExtACSyntaxCoupling;
19887
26690
class ExtACTree;
19888
26691
class ExtACKeywords;
19889
 
class WinAsm;
19890
 
class WinDeclSpecs;
19891
 
class WinMemberExplSpec;
19892
 
class WinTypeKeywords;
 
26692
class ExtGnu;
19893
26693
class PragmaOnceUnitState;
19894
26694
class PragmaOnce;
19895
 
class CCExprResolve;
19896
 
class CExprResolve;
 
26695
class CMatchSyntax;
19897
26696
namespace Puma {
19898
26697
 
19899
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26698
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19900
26699
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
19901
 
#line 19902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26700
#line 26701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26701
  friend class ::CCExprResolve;
 
26702
  friend class ::CExprResolve;
19902
26703
  friend class ::WinIfExists;
19903
26704
  friend class ::WinImportHandler;
19904
26705
  friend class ::WinMacros;
19905
 
  friend class ::CMatchSyntax;
19906
 
  friend class ::ExtGnu;
 
26706
  friend class ::WinAsm;
 
26707
  friend class ::WinDeclSpecs;
 
26708
  friend class ::WinMemberExplSpec;
 
26709
  friend class ::WinTypeKeywords;
 
26710
  friend class ::WinFriend;
19907
26711
  friend class ::ExtAC;
19908
26712
  friend class ::ExtACBuilderCoupling;
19909
26713
  friend class ::ExtACSyntaxCoupling;
19910
26714
  friend class ::ExtACTree;
19911
26715
  friend class ::ExtACKeywords;
19912
 
  friend class ::WinAsm;
19913
 
  friend class ::WinDeclSpecs;
19914
 
  friend class ::WinMemberExplSpec;
19915
 
  friend class ::WinTypeKeywords;
 
26716
  friend class ::ExtGnu;
19916
26717
  friend class ::PragmaOnceUnitState;
19917
26718
  friend class ::PragmaOnce;
19918
 
  friend class ::CCExprResolve;
19919
 
  friend class ::CExprResolve;
 
26719
  friend class ::CMatchSyntax;
19920
26720
 
19921
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26721
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19922
26722
 
19923
26723
public:
 
26724
  /** Constructor. */
19924
26725
  CT_ExprList () { AddProperties (SEPARATORS); }
 
26726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19925
26727
  static const char *NodeId ();
 
26728
  /** Get the name of the node. Can be compared with NodeId(). */
19926
26729
  const char *NodeName () const { return NodeId (); }
19927
26730
 
 
26731
  /** Get the type of the last expression in the expression list.
 
26732
   *  \return The type or NULL. */
19928
26733
  CTypeInfo *Type () const { return type; }
 
26734
  /** Get the value of the last expression in the expression list.
 
26735
   *  \return The value of NULL. */
19929
26736
  CExprValue *Value () const { return value; }
 
26737
  /** Get the semantic value of the node. */
19930
26738
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
26739
  /** Get the semantic object of the node. */
19931
26740
  CSemObject *SemObject () const { return (CSemObject*)this; }
19932
26741
};
19933
26742
 
 
26743
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
26744
 *  Tree node representing a list of declarators. */
19934
26745
 
19935
 
#line 19936 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26746
#line 26747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19936
26747
} // closed Puma
 
26748
class CCExprResolve;
 
26749
class CExprResolve;
19937
26750
class WinIfExists;
19938
26751
class WinImportHandler;
19939
26752
class WinMacros;
19940
 
class CMatchSyntax;
19941
 
class ExtGnu;
 
26753
class WinAsm;
 
26754
class WinDeclSpecs;
 
26755
class WinMemberExplSpec;
 
26756
class WinTypeKeywords;
 
26757
class WinFriend;
19942
26758
class ExtAC;
19943
26759
class ExtACBuilderCoupling;
19944
26760
class ExtACSyntaxCoupling;
19945
26761
class ExtACTree;
19946
26762
class ExtACKeywords;
19947
 
class WinAsm;
19948
 
class WinDeclSpecs;
19949
 
class WinMemberExplSpec;
19950
 
class WinTypeKeywords;
 
26763
class ExtGnu;
19951
26764
class PragmaOnceUnitState;
19952
26765
class PragmaOnce;
19953
 
class CCExprResolve;
19954
 
class CExprResolve;
 
26766
class CMatchSyntax;
19955
26767
namespace Puma {
19956
26768
 
19957
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26769
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19958
26770
class CT_DeclaratorList : public CT_List {
19959
 
#line 19960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26771
#line 26772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26772
  friend class ::CCExprResolve;
 
26773
  friend class ::CExprResolve;
19960
26774
  friend class ::WinIfExists;
19961
26775
  friend class ::WinImportHandler;
19962
26776
  friend class ::WinMacros;
19963
 
  friend class ::CMatchSyntax;
19964
 
  friend class ::ExtGnu;
 
26777
  friend class ::WinAsm;
 
26778
  friend class ::WinDeclSpecs;
 
26779
  friend class ::WinMemberExplSpec;
 
26780
  friend class ::WinTypeKeywords;
 
26781
  friend class ::WinFriend;
19965
26782
  friend class ::ExtAC;
19966
26783
  friend class ::ExtACBuilderCoupling;
19967
26784
  friend class ::ExtACSyntaxCoupling;
19968
26785
  friend class ::ExtACTree;
19969
26786
  friend class ::ExtACKeywords;
19970
 
  friend class ::WinAsm;
19971
 
  friend class ::WinDeclSpecs;
19972
 
  friend class ::WinMemberExplSpec;
19973
 
  friend class ::WinTypeKeywords;
 
26787
  friend class ::ExtGnu;
19974
26788
  friend class ::PragmaOnceUnitState;
19975
26789
  friend class ::PragmaOnce;
19976
 
  friend class ::CCExprResolve;
19977
 
  friend class ::CExprResolve;
 
26790
  friend class ::CMatchSyntax;
19978
26791
 
19979
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26792
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
19980
26793
 
19981
26794
public:
 
26795
  /** Get the identifier for this node type. Can be compared with NodeName(). */
19982
26796
  static const char *NodeId ();
 
26797
  /** Get the name of the node. Can be compared with NodeId(). */
19983
26798
  const char *NodeName () const { return NodeId (); }
19984
26799
};
19985
26800
 
 
26801
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
26802
 *  Tree node representing a list of enumerator constants. */
19986
26803
 
19987
 
#line 19988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26804
#line 26805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
19988
26805
} // closed Puma
 
26806
class CCExprResolve;
 
26807
class CExprResolve;
19989
26808
class WinIfExists;
19990
26809
class WinImportHandler;
19991
26810
class WinMacros;
19992
 
class CMatchSyntax;
19993
 
class ExtGnu;
 
26811
class WinAsm;
 
26812
class WinDeclSpecs;
 
26813
class WinMemberExplSpec;
 
26814
class WinTypeKeywords;
 
26815
class WinFriend;
19994
26816
class ExtAC;
19995
26817
class ExtACBuilderCoupling;
19996
26818
class ExtACSyntaxCoupling;
19997
26819
class ExtACTree;
19998
26820
class ExtACKeywords;
19999
 
class WinAsm;
20000
 
class WinDeclSpecs;
20001
 
class WinMemberExplSpec;
20002
 
class WinTypeKeywords;
 
26821
class ExtGnu;
20003
26822
class PragmaOnceUnitState;
20004
26823
class PragmaOnce;
20005
 
class CCExprResolve;
20006
 
class CExprResolve;
 
26824
class CMatchSyntax;
20007
26825
namespace Puma {
20008
26826
 
20009
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26827
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20010
26828
class CT_EnumeratorList : public CT_List {
20011
 
#line 20012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26829
#line 26830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26830
  friend class ::CCExprResolve;
 
26831
  friend class ::CExprResolve;
20012
26832
  friend class ::WinIfExists;
20013
26833
  friend class ::WinImportHandler;
20014
26834
  friend class ::WinMacros;
20015
 
  friend class ::CMatchSyntax;
20016
 
  friend class ::ExtGnu;
 
26835
  friend class ::WinAsm;
 
26836
  friend class ::WinDeclSpecs;
 
26837
  friend class ::WinMemberExplSpec;
 
26838
  friend class ::WinTypeKeywords;
 
26839
  friend class ::WinFriend;
20017
26840
  friend class ::ExtAC;
20018
26841
  friend class ::ExtACBuilderCoupling;
20019
26842
  friend class ::ExtACSyntaxCoupling;
20020
26843
  friend class ::ExtACTree;
20021
26844
  friend class ::ExtACKeywords;
20022
 
  friend class ::WinAsm;
20023
 
  friend class ::WinDeclSpecs;
20024
 
  friend class ::WinMemberExplSpec;
20025
 
  friend class ::WinTypeKeywords;
 
26845
  friend class ::ExtGnu;
20026
26846
  friend class ::PragmaOnceUnitState;
20027
26847
  friend class ::PragmaOnce;
20028
 
  friend class ::CCExprResolve;
20029
 
  friend class ::CExprResolve;
 
26848
  friend class ::CMatchSyntax;
20030
26849
 
20031
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26850
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20032
26851
 
20033
26852
public:
 
26853
  /** Constructor. */
20034
26854
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
26855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20035
26856
  static const char *NodeId ();
 
26857
  /** Get the name of the node. Can be compared with NodeId(). */
20036
26858
  const char *NodeName () const { return NodeId (); }
20037
26859
};
20038
26860
   
 
26861
/** \class CT_DeclList CTree.h Puma/CTree.h
 
26862
 *  Tree node representing a list of declarations. */
20039
26863
 
20040
 
#line 20041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26864
#line 26865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20041
26865
} // closed Puma
 
26866
class CCExprResolve;
 
26867
class CExprResolve;
20042
26868
class WinIfExists;
20043
26869
class WinImportHandler;
20044
26870
class WinMacros;
20045
 
class CMatchSyntax;
20046
 
class ExtGnu;
 
26871
class WinAsm;
 
26872
class WinDeclSpecs;
 
26873
class WinMemberExplSpec;
 
26874
class WinTypeKeywords;
 
26875
class WinFriend;
20047
26876
class ExtAC;
20048
26877
class ExtACBuilderCoupling;
20049
26878
class ExtACSyntaxCoupling;
20050
26879
class ExtACTree;
20051
26880
class ExtACKeywords;
20052
 
class WinAsm;
20053
 
class WinDeclSpecs;
20054
 
class WinMemberExplSpec;
20055
 
class WinTypeKeywords;
 
26881
class ExtGnu;
20056
26882
class PragmaOnceUnitState;
20057
26883
class PragmaOnce;
20058
 
class CCExprResolve;
20059
 
class CExprResolve;
 
26884
class CMatchSyntax;
20060
26885
namespace Puma {
20061
26886
 
20062
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26887
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20063
26888
class CT_DeclList : public CT_List {
20064
 
#line 20065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26889
#line 26890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26890
  friend class ::CCExprResolve;
 
26891
  friend class ::CExprResolve;
20065
26892
  friend class ::WinIfExists;
20066
26893
  friend class ::WinImportHandler;
20067
26894
  friend class ::WinMacros;
20068
 
  friend class ::CMatchSyntax;
20069
 
  friend class ::ExtGnu;
 
26895
  friend class ::WinAsm;
 
26896
  friend class ::WinDeclSpecs;
 
26897
  friend class ::WinMemberExplSpec;
 
26898
  friend class ::WinTypeKeywords;
 
26899
  friend class ::WinFriend;
20070
26900
  friend class ::ExtAC;
20071
26901
  friend class ::ExtACBuilderCoupling;
20072
26902
  friend class ::ExtACSyntaxCoupling;
20073
26903
  friend class ::ExtACTree;
20074
26904
  friend class ::ExtACKeywords;
20075
 
  friend class ::WinAsm;
20076
 
  friend class ::WinDeclSpecs;
20077
 
  friend class ::WinMemberExplSpec;
20078
 
  friend class ::WinTypeKeywords;
 
26905
  friend class ::ExtGnu;
20079
26906
  friend class ::PragmaOnceUnitState;
20080
26907
  friend class ::PragmaOnce;
20081
 
  friend class ::CCExprResolve;
20082
 
  friend class ::CExprResolve;
 
26908
  friend class ::CMatchSyntax;
20083
26909
 
20084
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26910
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20085
26911
 
20086
26912
public:
 
26913
  /** Constructor. 
 
26914
   *  \param size The initial size of the list.
 
26915
   *  \param incr The initial increment count of the list. */
20087
26916
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
26917
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20088
26918
  static const char *NodeId ();
 
26919
  /** Get the name of the node. Can be compared with NodeId(). */
20089
26920
  const char *NodeName () const { return NodeId (); }
 
26921
  /** Set the linkage specifiers to each declaration in the list.
 
26922
   *  \param l The linkage specifiers node. */
20090
26923
  void Linkage (CT_LinkageSpec *l);
20091
26924
};
20092
26925
 
 
26926
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
26927
 *  Tree node representing a sequence of declaration specifiers. */
20093
26928
 
20094
 
#line 20095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26929
#line 26930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20095
26930
} // closed Puma
 
26931
class CCExprResolve;
 
26932
class CExprResolve;
20096
26933
class WinIfExists;
20097
26934
class WinImportHandler;
20098
26935
class WinMacros;
20099
 
class CMatchSyntax;
20100
 
class ExtGnu;
 
26936
class WinAsm;
 
26937
class WinDeclSpecs;
 
26938
class WinMemberExplSpec;
 
26939
class WinTypeKeywords;
 
26940
class WinFriend;
20101
26941
class ExtAC;
20102
26942
class ExtACBuilderCoupling;
20103
26943
class ExtACSyntaxCoupling;
20104
26944
class ExtACTree;
20105
26945
class ExtACKeywords;
20106
 
class WinAsm;
20107
 
class WinDeclSpecs;
20108
 
class WinMemberExplSpec;
20109
 
class WinTypeKeywords;
 
26946
class ExtGnu;
20110
26947
class PragmaOnceUnitState;
20111
26948
class PragmaOnce;
20112
 
class CCExprResolve;
20113
 
class CExprResolve;
 
26949
class CMatchSyntax;
20114
26950
namespace Puma {
20115
26951
 
20116
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26952
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20117
26953
class CT_DeclSpecSeq : public CT_List {
20118
 
#line 20119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26954
#line 26955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
26955
  friend class ::CCExprResolve;
 
26956
  friend class ::CExprResolve;
20119
26957
  friend class ::WinIfExists;
20120
26958
  friend class ::WinImportHandler;
20121
26959
  friend class ::WinMacros;
20122
 
  friend class ::CMatchSyntax;
20123
 
  friend class ::ExtGnu;
 
26960
  friend class ::WinAsm;
 
26961
  friend class ::WinDeclSpecs;
 
26962
  friend class ::WinMemberExplSpec;
 
26963
  friend class ::WinTypeKeywords;
 
26964
  friend class ::WinFriend;
20124
26965
  friend class ::ExtAC;
20125
26966
  friend class ::ExtACBuilderCoupling;
20126
26967
  friend class ::ExtACSyntaxCoupling;
20127
26968
  friend class ::ExtACTree;
20128
26969
  friend class ::ExtACKeywords;
20129
 
  friend class ::WinAsm;
20130
 
  friend class ::WinDeclSpecs;
20131
 
  friend class ::WinMemberExplSpec;
20132
 
  friend class ::WinTypeKeywords;
 
26970
  friend class ::ExtGnu;
20133
26971
  friend class ::PragmaOnceUnitState;
20134
26972
  friend class ::PragmaOnce;
20135
 
  friend class ::CCExprResolve;
20136
 
  friend class ::CExprResolve;
 
26973
  friend class ::CMatchSyntax;
20137
26974
 
20138
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26975
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20139
26976
 
20140
26977
public:
 
26978
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20141
26979
  static const char *NodeId ();
 
26980
  /** Get the name of the node. Can be compared with NodeId(). */
20142
26981
  const char *NodeName () const { return NodeId (); }
20143
26982
};
20144
26983
 
 
26984
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
26985
 *  Tree node representing a compound statement. */
20145
26986
 
20146
 
#line 20147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
26987
#line 26988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20147
26988
} // closed Puma
 
26989
class CCExprResolve;
 
26990
class CExprResolve;
20148
26991
class WinIfExists;
20149
26992
class WinImportHandler;
20150
26993
class WinMacros;
20151
 
class CMatchSyntax;
20152
 
class ExtGnu;
 
26994
class WinAsm;
 
26995
class WinDeclSpecs;
 
26996
class WinMemberExplSpec;
 
26997
class WinTypeKeywords;
 
26998
class WinFriend;
20153
26999
class ExtAC;
20154
27000
class ExtACBuilderCoupling;
20155
27001
class ExtACSyntaxCoupling;
20156
27002
class ExtACTree;
20157
27003
class ExtACKeywords;
20158
 
class WinAsm;
20159
 
class WinDeclSpecs;
20160
 
class WinMemberExplSpec;
20161
 
class WinTypeKeywords;
 
27004
class ExtGnu;
20162
27005
class PragmaOnceUnitState;
20163
27006
class PragmaOnce;
20164
 
class CCExprResolve;
20165
 
class CExprResolve;
 
27007
class CMatchSyntax;
20166
27008
namespace Puma {
20167
27009
 
20168
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27010
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20169
27011
class CT_CmpdStmt : public CT_List, public CSemScope {
20170
 
#line 20171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27012
#line 27013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27013
  friend class ::CCExprResolve;
 
27014
  friend class ::CExprResolve;
20171
27015
  friend class ::WinIfExists;
20172
27016
  friend class ::WinImportHandler;
20173
27017
  friend class ::WinMacros;
20174
 
  friend class ::CMatchSyntax;
20175
 
  friend class ::ExtGnu;
 
27018
  friend class ::WinAsm;
 
27019
  friend class ::WinDeclSpecs;
 
27020
  friend class ::WinMemberExplSpec;
 
27021
  friend class ::WinTypeKeywords;
 
27022
  friend class ::WinFriend;
20176
27023
  friend class ::ExtAC;
20177
27024
  friend class ::ExtACBuilderCoupling;
20178
27025
  friend class ::ExtACSyntaxCoupling;
20179
27026
  friend class ::ExtACTree;
20180
27027
  friend class ::ExtACKeywords;
20181
 
  friend class ::WinAsm;
20182
 
  friend class ::WinDeclSpecs;
20183
 
  friend class ::WinMemberExplSpec;
20184
 
  friend class ::WinTypeKeywords;
 
27028
  friend class ::ExtGnu;
20185
27029
  friend class ::PragmaOnceUnitState;
20186
27030
  friend class ::PragmaOnce;
20187
 
  friend class ::CCExprResolve;
20188
 
  friend class ::CExprResolve;
 
27031
  friend class ::CMatchSyntax;
20189
27032
 
20190
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27033
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20191
27034
 
20192
27035
public:
 
27036
  /* Constructor. */
20193
27037
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
27038
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20194
27039
  static const char *NodeId ();
 
27040
  /** Get the name of the node. Can be compared with NodeId(). */
20195
27041
  const char *NodeName () const { return NodeId (); }
 
27042
  /** Get the local scope of the compound statement. */
 
27043
  CSemScope *SemScope () const { return (CSemScope*)this; }
20196
27044
};
20197
27045
 
 
27046
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
27047
 *  Tree node representing an exception handler sequence. */
20198
27048
 
20199
 
#line 20200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27049
#line 27050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20200
27050
} // closed Puma
 
27051
class CCExprResolve;
 
27052
class CExprResolve;
20201
27053
class WinIfExists;
20202
27054
class WinImportHandler;
20203
27055
class WinMacros;
20204
 
class CMatchSyntax;
20205
 
class ExtGnu;
 
27056
class WinAsm;
 
27057
class WinDeclSpecs;
 
27058
class WinMemberExplSpec;
 
27059
class WinTypeKeywords;
 
27060
class WinFriend;
20206
27061
class ExtAC;
20207
27062
class ExtACBuilderCoupling;
20208
27063
class ExtACSyntaxCoupling;
20209
27064
class ExtACTree;
20210
27065
class ExtACKeywords;
20211
 
class WinAsm;
20212
 
class WinDeclSpecs;
20213
 
class WinMemberExplSpec;
20214
 
class WinTypeKeywords;
 
27066
class ExtGnu;
20215
27067
class PragmaOnceUnitState;
20216
27068
class PragmaOnce;
20217
 
class CCExprResolve;
20218
 
class CExprResolve;
 
27069
class CMatchSyntax;
20219
27070
namespace Puma {
20220
27071
 
20221
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27072
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20222
27073
class CT_HandlerSeq : public CT_List {
20223
 
#line 20224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27074
#line 27075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27075
  friend class ::CCExprResolve;
 
27076
  friend class ::CExprResolve;
20224
27077
  friend class ::WinIfExists;
20225
27078
  friend class ::WinImportHandler;
20226
27079
  friend class ::WinMacros;
20227
 
  friend class ::CMatchSyntax;
20228
 
  friend class ::ExtGnu;
 
27080
  friend class ::WinAsm;
 
27081
  friend class ::WinDeclSpecs;
 
27082
  friend class ::WinMemberExplSpec;
 
27083
  friend class ::WinTypeKeywords;
 
27084
  friend class ::WinFriend;
20229
27085
  friend class ::ExtAC;
20230
27086
  friend class ::ExtACBuilderCoupling;
20231
27087
  friend class ::ExtACSyntaxCoupling;
20232
27088
  friend class ::ExtACTree;
20233
27089
  friend class ::ExtACKeywords;
20234
 
  friend class ::WinAsm;
20235
 
  friend class ::WinDeclSpecs;
20236
 
  friend class ::WinMemberExplSpec;
20237
 
  friend class ::WinTypeKeywords;
 
27090
  friend class ::ExtGnu;
20238
27091
  friend class ::PragmaOnceUnitState;
20239
27092
  friend class ::PragmaOnce;
20240
 
  friend class ::CCExprResolve;
20241
 
  friend class ::CExprResolve;
 
27093
  friend class ::CMatchSyntax;
20242
27094
 
20243
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27095
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20244
27096
 
20245
27097
public:
 
27098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20246
27099
  static const char *NodeId ();
 
27100
  /** Get the name of the node. Can be compared with NodeId(). */
20247
27101
  const char *NodeName () const { return NodeId (); }
20248
27102
};
20249
27103
 
 
27104
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
27105
 *  Tree node representing a template parameter list. */
20250
27106
 
20251
 
#line 20252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27107
#line 27108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20252
27108
} // closed Puma
 
27109
class CCExprResolve;
 
27110
class CExprResolve;
20253
27111
class WinIfExists;
20254
27112
class WinImportHandler;
20255
27113
class WinMacros;
20256
 
class CMatchSyntax;
20257
 
class ExtGnu;
 
27114
class WinAsm;
 
27115
class WinDeclSpecs;
 
27116
class WinMemberExplSpec;
 
27117
class WinTypeKeywords;
 
27118
class WinFriend;
20258
27119
class ExtAC;
20259
27120
class ExtACBuilderCoupling;
20260
27121
class ExtACSyntaxCoupling;
20261
27122
class ExtACTree;
20262
27123
class ExtACKeywords;
20263
 
class WinAsm;
20264
 
class WinDeclSpecs;
20265
 
class WinMemberExplSpec;
20266
 
class WinTypeKeywords;
 
27124
class ExtGnu;
20267
27125
class PragmaOnceUnitState;
20268
27126
class PragmaOnce;
20269
 
class CCExprResolve;
20270
 
class CExprResolve;
 
27127
class CMatchSyntax;
20271
27128
namespace Puma {
20272
27129
 
20273
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27130
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20274
27131
class CT_TemplateParamList : public CT_List, public CSemScope {
20275
 
#line 20276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27132
#line 27133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27133
  friend class ::CCExprResolve;
 
27134
  friend class ::CExprResolve;
20276
27135
  friend class ::WinIfExists;
20277
27136
  friend class ::WinImportHandler;
20278
27137
  friend class ::WinMacros;
20279
 
  friend class ::CMatchSyntax;
20280
 
  friend class ::ExtGnu;
 
27138
  friend class ::WinAsm;
 
27139
  friend class ::WinDeclSpecs;
 
27140
  friend class ::WinMemberExplSpec;
 
27141
  friend class ::WinTypeKeywords;
 
27142
  friend class ::WinFriend;
20281
27143
  friend class ::ExtAC;
20282
27144
  friend class ::ExtACBuilderCoupling;
20283
27145
  friend class ::ExtACSyntaxCoupling;
20284
27146
  friend class ::ExtACTree;
20285
27147
  friend class ::ExtACKeywords;
20286
 
  friend class ::WinAsm;
20287
 
  friend class ::WinDeclSpecs;
20288
 
  friend class ::WinMemberExplSpec;
20289
 
  friend class ::WinTypeKeywords;
 
27148
  friend class ::ExtGnu;
20290
27149
  friend class ::PragmaOnceUnitState;
20291
27150
  friend class ::PragmaOnce;
20292
 
  friend class ::CCExprResolve;
20293
 
  friend class ::CExprResolve;
 
27151
  friend class ::CMatchSyntax;
20294
27152
 
20295
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27153
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20296
27154
 
20297
27155
public:
20298
27156
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
27157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20299
27158
  static const char *NodeId ();
 
27159
  /** Get the name of the node. Can be compared with NodeId(). */
20300
27160
  const char *NodeName () const { return NodeId (); }
 
27161
  /** Get the scope of the template parameter list. */
 
27162
  CSemScope *SemScope () const { return (CSemScope*)this; }
20301
27163
};
20302
27164
 
 
27165
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
27166
 *  Tree node representing a template argument list. */
20303
27167
 
20304
 
#line 20305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27168
#line 27169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20305
27169
} // closed Puma
 
27170
class CCExprResolve;
 
27171
class CExprResolve;
20306
27172
class WinIfExists;
20307
27173
class WinImportHandler;
20308
27174
class WinMacros;
20309
 
class CMatchSyntax;
20310
 
class ExtGnu;
 
27175
class WinAsm;
 
27176
class WinDeclSpecs;
 
27177
class WinMemberExplSpec;
 
27178
class WinTypeKeywords;
 
27179
class WinFriend;
20311
27180
class ExtAC;
20312
27181
class ExtACBuilderCoupling;
20313
27182
class ExtACSyntaxCoupling;
20314
27183
class ExtACTree;
20315
27184
class ExtACKeywords;
20316
 
class WinAsm;
20317
 
class WinDeclSpecs;
20318
 
class WinMemberExplSpec;
20319
 
class WinTypeKeywords;
 
27185
class ExtGnu;
20320
27186
class PragmaOnceUnitState;
20321
27187
class PragmaOnce;
20322
 
class CCExprResolve;
20323
 
class CExprResolve;
 
27188
class CMatchSyntax;
20324
27189
namespace Puma {
20325
27190
 
20326
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27191
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20327
27192
class CT_TemplateArgList : public CT_List {
20328
 
#line 20329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27193
#line 27194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27194
  friend class ::CCExprResolve;
 
27195
  friend class ::CExprResolve;
20329
27196
  friend class ::WinIfExists;
20330
27197
  friend class ::WinImportHandler;
20331
27198
  friend class ::WinMacros;
20332
 
  friend class ::CMatchSyntax;
20333
 
  friend class ::ExtGnu;
 
27199
  friend class ::WinAsm;
 
27200
  friend class ::WinDeclSpecs;
 
27201
  friend class ::WinMemberExplSpec;
 
27202
  friend class ::WinTypeKeywords;
 
27203
  friend class ::WinFriend;
20334
27204
  friend class ::ExtAC;
20335
27205
  friend class ::ExtACBuilderCoupling;
20336
27206
  friend class ::ExtACSyntaxCoupling;
20337
27207
  friend class ::ExtACTree;
20338
27208
  friend class ::ExtACKeywords;
20339
 
  friend class ::WinAsm;
20340
 
  friend class ::WinDeclSpecs;
20341
 
  friend class ::WinMemberExplSpec;
20342
 
  friend class ::WinTypeKeywords;
 
27209
  friend class ::ExtGnu;
20343
27210
  friend class ::PragmaOnceUnitState;
20344
27211
  friend class ::PragmaOnce;
20345
 
  friend class ::CCExprResolve;
20346
 
  friend class ::CExprResolve;
 
27212
  friend class ::CMatchSyntax;
20347
27213
 
20348
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27214
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20349
27215
 
20350
27216
public:
 
27217
  /** Constructor. */
20351
27218
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
27219
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20352
27220
  static const char *NodeId ();
 
27221
  /** Get the name of the node. Can be compared with NodeId(). */
20353
27222
  const char *NodeName () const { return NodeId (); }
20354
27223
};
20355
27224
 
20359
27228
/*                                                                           */
20360
27229
/*****************************************************************************/
20361
27230
 
 
27231
/** \class CT_Expression CTree.h Puma/CTree.h
 
27232
 *  Base class for all expression tree nodes. */
20362
27233
 
20363
 
#line 20364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27234
#line 27235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20364
27235
} // closed Puma
 
27236
class CCExprResolve;
 
27237
class CExprResolve;
20365
27238
class WinIfExists;
20366
27239
class WinImportHandler;
20367
27240
class WinMacros;
20368
 
class CMatchSyntax;
20369
 
class ExtGnu;
 
27241
class WinAsm;
 
27242
class WinDeclSpecs;
 
27243
class WinMemberExplSpec;
 
27244
class WinTypeKeywords;
 
27245
class WinFriend;
20370
27246
class ExtAC;
20371
27247
class ExtACBuilderCoupling;
20372
27248
class ExtACSyntaxCoupling;
20373
27249
class ExtACTree;
20374
27250
class ExtACKeywords;
20375
 
class WinAsm;
20376
 
class WinDeclSpecs;
20377
 
class WinMemberExplSpec;
20378
 
class WinTypeKeywords;
 
27251
class ExtGnu;
20379
27252
class PragmaOnceUnitState;
20380
27253
class PragmaOnce;
20381
 
class CCExprResolve;
20382
 
class CExprResolve;
20383
 
namespace Puma {
20384
 
 
20385
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27254
class CMatchSyntax;
 
27255
namespace Puma {
 
27256
 
 
27257
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27258
 
 
27259
#line 27260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27260
} // closed Puma
 
27261
 
 
27262
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27263
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27264
#include "CCExprResolveH.ah"
 
27265
#endif
 
27266
namespace Puma {
 
27267
 
 
27268
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27269
 
 
27270
#line 27271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27271
} // closed Puma
 
27272
 
 
27273
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27274
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27275
#include "CExprResolveH.ah"
 
27276
#endif
 
27277
namespace Puma {
 
27278
 
 
27279
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20386
27280
class CT_Expression : public CTree, public CSemValue {
20387
 
#line 20388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27281
#line 27282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27282
  friend class ::CCExprResolve;
 
27283
  friend class ::CExprResolve;
20388
27284
  friend class ::WinIfExists;
20389
27285
  friend class ::WinImportHandler;
20390
27286
  friend class ::WinMacros;
20391
 
  friend class ::CMatchSyntax;
20392
 
  friend class ::ExtGnu;
 
27287
  friend class ::WinAsm;
 
27288
  friend class ::WinDeclSpecs;
 
27289
  friend class ::WinMemberExplSpec;
 
27290
  friend class ::WinTypeKeywords;
 
27291
  friend class ::WinFriend;
20393
27292
  friend class ::ExtAC;
20394
27293
  friend class ::ExtACBuilderCoupling;
20395
27294
  friend class ::ExtACSyntaxCoupling;
20396
27295
  friend class ::ExtACTree;
20397
27296
  friend class ::ExtACKeywords;
20398
 
  friend class ::WinAsm;
20399
 
  friend class ::WinDeclSpecs;
20400
 
  friend class ::WinMemberExplSpec;
20401
 
  friend class ::WinTypeKeywords;
 
27297
  friend class ::ExtGnu;
20402
27298
  friend class ::PragmaOnceUnitState;
20403
27299
  friend class ::PragmaOnce;
20404
 
  friend class ::CCExprResolve;
20405
 
  friend class ::CExprResolve;
 
27300
  friend class ::CMatchSyntax;
20406
27301
 
20407
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27302
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20408
27303
 
20409
27304
protected:
 
27305
  /** Constructor. */
20410
27306
  CT_Expression () {}
20411
27307
 
20412
27308
public:
 
27309
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20413
27310
  static const char *NodeId ();
 
27311
  /** Get the name of the node. Can be compared with NodeId(). */
20414
27312
  const char *NodeName () const { return NodeId (); }
 
27313
  /** Get the type of the expression.
 
27314
   *  \return The type information object or NULL. */
20415
27315
  CTypeInfo *Type () const { return type; }
 
27316
  /** Get the value of the expression.
 
27317
   *  \return The value object or NULL. */
20416
27318
  CExprValue *Value () const { return value; }
 
27319
  /** Get the semantic value information of the expression.
 
27320
   *  \return The value object or NULL. */
20417
27321
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
27322
  /** Get this. */
 
27323
  virtual CT_Expression *IsExpression () { return this; }
20418
27324
   private:
20419
27325
  typedef CT_Expression CCExprResolveExpr;
20420
27326
 
20421
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27327
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20422
27328
 public :
20423
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
27329
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20424
27330
  typedef CT_Expression CExprResolveExpr;
20425
27331
 
20426
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20427
 
 public :
20428
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20429
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20430
 
};
20431
 
 
20432
 
 
20433
 
#line 20434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
20434
 
} // closed Puma
20435
 
class WinIfExists;
20436
 
class WinImportHandler;
20437
 
class WinMacros;
20438
 
class CMatchSyntax;
20439
 
class ExtGnu;
20440
 
class ExtAC;
20441
 
class ExtACBuilderCoupling;
20442
 
class ExtACSyntaxCoupling;
20443
 
class ExtACTree;
20444
 
class ExtACKeywords;
20445
 
class WinAsm;
20446
 
class WinDeclSpecs;
20447
 
class WinMemberExplSpec;
20448
 
class WinTypeKeywords;
20449
 
class PragmaOnceUnitState;
20450
 
class PragmaOnce;
20451
 
class CCExprResolve;
20452
 
class CExprResolve;
20453
 
namespace Puma {
20454
 
 
20455
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27332
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27333
 public :
 
27334
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27335
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27336
};
 
27337
 
 
27338
/** \class CT_Call CTree.h Puma/CTree.h
 
27339
 *  Tree node representing explicit or implicit function calls 
 
27340
 *  including built-in or user-defined functions and overloaded
 
27341
 *  operators. */
 
27342
 
 
27343
#line 27344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27344
} // closed Puma
 
27345
class CCExprResolve;
 
27346
class CExprResolve;
 
27347
class WinIfExists;
 
27348
class WinImportHandler;
 
27349
class WinMacros;
 
27350
class WinAsm;
 
27351
class WinDeclSpecs;
 
27352
class WinMemberExplSpec;
 
27353
class WinTypeKeywords;
 
27354
class WinFriend;
 
27355
class ExtAC;
 
27356
class ExtACBuilderCoupling;
 
27357
class ExtACSyntaxCoupling;
 
27358
class ExtACTree;
 
27359
class ExtACKeywords;
 
27360
class ExtGnu;
 
27361
class PragmaOnceUnitState;
 
27362
class PragmaOnce;
 
27363
class CMatchSyntax;
 
27364
namespace Puma {
 
27365
 
 
27366
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27367
 
 
27368
#line 27369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27369
} // closed Puma
 
27370
 
 
27371
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27372
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27373
#include "CCExprResolveH.ah"
 
27374
#endif
 
27375
namespace Puma {
 
27376
 
 
27377
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27378
 
 
27379
#line 27380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27380
} // closed Puma
 
27381
 
 
27382
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27383
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27384
#include "CExprResolveH.ah"
 
27385
#endif
 
27386
namespace Puma {
 
27387
 
 
27388
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27389
class CT_Call : public CT_Expression, public CSemObject {
 
27390
#line 27391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27391
  friend class ::CCExprResolve;
 
27392
  friend class ::CExprResolve;
 
27393
  friend class ::WinIfExists;
 
27394
  friend class ::WinImportHandler;
 
27395
  friend class ::WinMacros;
 
27396
  friend class ::WinAsm;
 
27397
  friend class ::WinDeclSpecs;
 
27398
  friend class ::WinMemberExplSpec;
 
27399
  friend class ::WinTypeKeywords;
 
27400
  friend class ::WinFriend;
 
27401
  friend class ::ExtAC;
 
27402
  friend class ::ExtACBuilderCoupling;
 
27403
  friend class ::ExtACSyntaxCoupling;
 
27404
  friend class ::ExtACTree;
 
27405
  friend class ::ExtACKeywords;
 
27406
  friend class ::ExtGnu;
 
27407
  friend class ::PragmaOnceUnitState;
 
27408
  friend class ::PragmaOnce;
 
27409
  friend class ::CMatchSyntax;
 
27410
 
 
27411
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27412
 
 
27413
protected:
 
27414
  /** Constructor. */
 
27415
  CT_Call () {}
 
27416
  
 
27417
public:
 
27418
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27419
  static const char *NodeId ();
 
27420
  /** Get the name of the node. Can be compared with NodeId(). */
 
27421
  const char *NodeName () const { return NodeId (); }
 
27422
  /** Get the semantic information of the call.
 
27423
   *  \return The semantic information or NULL. */
 
27424
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
27425
  /** Get this. */
 
27426
  CT_Call *IsCall () { return this; }
 
27427
   private:
 
27428
  typedef CT_Call CCExprResolveExpr;
 
27429
 
 
27430
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27431
 public :
 
27432
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27433
  typedef CT_Call CExprResolveExpr;
 
27434
 
 
27435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27436
 public :
 
27437
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27438
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27439
};
 
27440
 
 
27441
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
27442
 *  Tree node representing implicit function calls detected by
 
27443
 *  the semantic analysis. */
 
27444
 
 
27445
#line 27446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27446
} // closed Puma
 
27447
class CCExprResolve;
 
27448
class CExprResolve;
 
27449
class WinIfExists;
 
27450
class WinImportHandler;
 
27451
class WinMacros;
 
27452
class WinAsm;
 
27453
class WinDeclSpecs;
 
27454
class WinMemberExplSpec;
 
27455
class WinTypeKeywords;
 
27456
class WinFriend;
 
27457
class ExtAC;
 
27458
class ExtACBuilderCoupling;
 
27459
class ExtACSyntaxCoupling;
 
27460
class ExtACTree;
 
27461
class ExtACKeywords;
 
27462
class ExtGnu;
 
27463
class PragmaOnceUnitState;
 
27464
class PragmaOnce;
 
27465
class CMatchSyntax;
 
27466
namespace Puma {
 
27467
 
 
27468
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27469
 
 
27470
#line 27471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27471
} // closed Puma
 
27472
 
 
27473
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27474
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27475
#include "CCExprResolveH.ah"
 
27476
#endif
 
27477
namespace Puma {
 
27478
 
 
27479
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27480
 
 
27481
#line 27482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27482
} // closed Puma
 
27483
 
 
27484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27486
#include "CExprResolveH.ah"
 
27487
#endif
 
27488
namespace Puma {
 
27489
 
 
27490
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27491
class CT_ImplicitCall : public CT_Call {
 
27492
#line 27493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27493
  friend class ::CCExprResolve;
 
27494
  friend class ::CExprResolve;
 
27495
  friend class ::WinIfExists;
 
27496
  friend class ::WinImportHandler;
 
27497
  friend class ::WinMacros;
 
27498
  friend class ::WinAsm;
 
27499
  friend class ::WinDeclSpecs;
 
27500
  friend class ::WinMemberExplSpec;
 
27501
  friend class ::WinTypeKeywords;
 
27502
  friend class ::WinFriend;
 
27503
  friend class ::ExtAC;
 
27504
  friend class ::ExtACBuilderCoupling;
 
27505
  friend class ::ExtACSyntaxCoupling;
 
27506
  friend class ::ExtACTree;
 
27507
  friend class ::ExtACKeywords;
 
27508
  friend class ::ExtGnu;
 
27509
  friend class ::PragmaOnceUnitState;
 
27510
  friend class ::PragmaOnce;
 
27511
  friend class ::CMatchSyntax;
 
27512
 
 
27513
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27514
 
 
27515
  CTree *_arg;
 
27516
 
 
27517
public:
 
27518
  /** Constructor.
 
27519
   *  \param arg The call argument. */
 
27520
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
27521
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27522
  static const char *NodeId ();
 
27523
  /** Get the name of the node. Can be compared with NodeId(). */
 
27524
  const char *NodeName () const { return NodeId (); }
 
27525
  /** Get the number of sons. */
 
27526
  int Sons () const { return 1; }
 
27527
  /** Get the n-th son.
 
27528
   *  \param n The index of the son.
 
27529
   *  \return The n-th son or NULL. */
 
27530
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
27531
  /** Replace a son.
 
27532
   *  \param old_son The son to replace.
 
27533
   *  \param new_son The new son. */
 
27534
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
27535
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
27536
   private:
 
27537
  typedef CT_ImplicitCall CCExprResolveExpr;
 
27538
 
 
27539
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27540
 public :
 
27541
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27542
  typedef CT_ImplicitCall CExprResolveExpr;
 
27543
 
 
27544
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27545
 public :
 
27546
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27547
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27548
};
 
27549
 
 
27550
/** \class CT_String CTree.h Puma/CTree.h
 
27551
 *  Tree node representing a string literal. */
 
27552
 
 
27553
#line 27554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27554
} // closed Puma
 
27555
class CCExprResolve;
 
27556
class CExprResolve;
 
27557
class WinIfExists;
 
27558
class WinImportHandler;
 
27559
class WinMacros;
 
27560
class WinAsm;
 
27561
class WinDeclSpecs;
 
27562
class WinMemberExplSpec;
 
27563
class WinTypeKeywords;
 
27564
class WinFriend;
 
27565
class ExtAC;
 
27566
class ExtACBuilderCoupling;
 
27567
class ExtACSyntaxCoupling;
 
27568
class ExtACTree;
 
27569
class ExtACKeywords;
 
27570
class ExtGnu;
 
27571
class PragmaOnceUnitState;
 
27572
class PragmaOnce;
 
27573
class CMatchSyntax;
 
27574
namespace Puma {
 
27575
 
 
27576
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27577
 
 
27578
#line 27579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27579
} // closed Puma
 
27580
 
 
27581
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27582
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27583
#include "CCExprResolveH.ah"
 
27584
#endif
 
27585
namespace Puma {
 
27586
 
 
27587
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27588
 
 
27589
#line 27590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27590
} // closed Puma
 
27591
 
 
27592
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27593
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27594
#include "CExprResolveH.ah"
 
27595
#endif
 
27596
namespace Puma {
 
27597
 
 
27598
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20456
27599
class CT_String : public CT_List, public CSemValue {
20457
 
#line 20458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27600
#line 27601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27601
  friend class ::CCExprResolve;
 
27602
  friend class ::CExprResolve;
20458
27603
  friend class ::WinIfExists;
20459
27604
  friend class ::WinImportHandler;
20460
27605
  friend class ::WinMacros;
20461
 
  friend class ::CMatchSyntax;
20462
 
  friend class ::ExtGnu;
 
27606
  friend class ::WinAsm;
 
27607
  friend class ::WinDeclSpecs;
 
27608
  friend class ::WinMemberExplSpec;
 
27609
  friend class ::WinTypeKeywords;
 
27610
  friend class ::WinFriend;
20463
27611
  friend class ::ExtAC;
20464
27612
  friend class ::ExtACBuilderCoupling;
20465
27613
  friend class ::ExtACSyntaxCoupling;
20466
27614
  friend class ::ExtACTree;
20467
27615
  friend class ::ExtACKeywords;
20468
 
  friend class ::WinAsm;
20469
 
  friend class ::WinDeclSpecs;
20470
 
  friend class ::WinMemberExplSpec;
20471
 
  friend class ::WinTypeKeywords;
 
27616
  friend class ::ExtGnu;
20472
27617
  friend class ::PragmaOnceUnitState;
20473
27618
  friend class ::PragmaOnce;
20474
 
  friend class ::CCExprResolve;
20475
 
  friend class ::CExprResolve;
 
27619
  friend class ::CMatchSyntax;
20476
27620
 
20477
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27621
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20478
27622
 
20479
27623
public:
 
27624
  /** Constructor. 
 
27625
   *  \param size The number of sub-strings. */
20480
27626
  CT_String (int size) : CT_List (size, 1) {}
 
27627
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20481
27628
  static const char *NodeId ();
 
27629
  /** Get the name of the node. Can be compared with NodeId(). */
20482
27630
  const char *NodeName () const { return NodeId (); }
20483
27631
 
 
27632
  /** Get the type of the string. 
 
27633
   *  \return The type or NULL. */
20484
27634
  CTypeInfo *Type () const { return type; }
 
27635
  /** Get the string value.
 
27636
   *  \return The value or NULL. */
20485
27637
  CExprValue *Value () const { return value; }
 
27638
  /** Get the semantic value info object.
 
27639
   *  \return The semantic value object or NULL. */
20486
27640
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
27641
  /** Get this. */
 
27642
  virtual CT_String *IsString () { return this; }
20487
27643
   private:
20488
27644
  typedef CT_String CCExprResolveExpr;
20489
27645
 
20490
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27646
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20491
27647
 public :
20492
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
27648
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20493
27649
  typedef CT_String CExprResolveExpr;
20494
27650
 
20495
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27651
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20496
27652
 public :
20497
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20498
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27653
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27654
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20499
27655
};
20500
27656
 
 
27657
/** \class CT_WideString CTree.h Puma/CTree.h
 
27658
 *  Tree node representing a wide string literal. */
20501
27659
 
20502
 
#line 20503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27660
#line 27661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20503
27661
} // closed Puma
 
27662
class CCExprResolve;
 
27663
class CExprResolve;
20504
27664
class WinIfExists;
20505
27665
class WinImportHandler;
20506
27666
class WinMacros;
20507
 
class CMatchSyntax;
20508
 
class ExtGnu;
 
27667
class WinAsm;
 
27668
class WinDeclSpecs;
 
27669
class WinMemberExplSpec;
 
27670
class WinTypeKeywords;
 
27671
class WinFriend;
20509
27672
class ExtAC;
20510
27673
class ExtACBuilderCoupling;
20511
27674
class ExtACSyntaxCoupling;
20512
27675
class ExtACTree;
20513
27676
class ExtACKeywords;
20514
 
class WinAsm;
20515
 
class WinDeclSpecs;
20516
 
class WinMemberExplSpec;
20517
 
class WinTypeKeywords;
 
27677
class ExtGnu;
20518
27678
class PragmaOnceUnitState;
20519
27679
class PragmaOnce;
20520
 
class CCExprResolve;
20521
 
class CExprResolve;
20522
 
namespace Puma {
20523
 
 
20524
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27680
class CMatchSyntax;
 
27681
namespace Puma {
 
27682
 
 
27683
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27684
 
 
27685
#line 27686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27686
} // closed Puma
 
27687
 
 
27688
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27689
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27690
#include "CCExprResolveH.ah"
 
27691
#endif
 
27692
namespace Puma {
 
27693
 
 
27694
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27695
 
 
27696
#line 27697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27697
} // closed Puma
 
27698
 
 
27699
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27700
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27701
#include "CExprResolveH.ah"
 
27702
#endif
 
27703
namespace Puma {
 
27704
 
 
27705
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20525
27706
class CT_WideString : public CT_String {
20526
 
#line 20527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27707
#line 27708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27708
  friend class ::CCExprResolve;
 
27709
  friend class ::CExprResolve;
20527
27710
  friend class ::WinIfExists;
20528
27711
  friend class ::WinImportHandler;
20529
27712
  friend class ::WinMacros;
20530
 
  friend class ::CMatchSyntax;
20531
 
  friend class ::ExtGnu;
 
27713
  friend class ::WinAsm;
 
27714
  friend class ::WinDeclSpecs;
 
27715
  friend class ::WinMemberExplSpec;
 
27716
  friend class ::WinTypeKeywords;
 
27717
  friend class ::WinFriend;
20532
27718
  friend class ::ExtAC;
20533
27719
  friend class ::ExtACBuilderCoupling;
20534
27720
  friend class ::ExtACSyntaxCoupling;
20535
27721
  friend class ::ExtACTree;
20536
27722
  friend class ::ExtACKeywords;
20537
 
  friend class ::WinAsm;
20538
 
  friend class ::WinDeclSpecs;
20539
 
  friend class ::WinMemberExplSpec;
20540
 
  friend class ::WinTypeKeywords;
 
27723
  friend class ::ExtGnu;
20541
27724
  friend class ::PragmaOnceUnitState;
20542
27725
  friend class ::PragmaOnce;
20543
 
  friend class ::CCExprResolve;
20544
 
  friend class ::CExprResolve;
 
27726
  friend class ::CMatchSyntax;
20545
27727
 
20546
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27728
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20547
27729
 
20548
27730
public:
 
27731
  /** Constructor.
 
27732
   *  \param size The number of sub-strings. */
20549
27733
  CT_WideString (int size) : CT_String (size) {}
 
27734
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20550
27735
  static const char *NodeId ();
 
27736
  /** Get the name of the node. Can be compared with NodeId(). */
20551
27737
  const char *NodeName () const { return NodeId (); }
20552
27738
   private:
20553
27739
  typedef CT_WideString CCExprResolveExpr;
20554
27740
 
20555
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27741
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20556
27742
 public :
20557
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
27743
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20558
27744
  typedef CT_WideString CExprResolveExpr;
20559
27745
 
20560
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27746
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20561
27747
 public :
20562
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20563
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27748
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27749
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20564
27750
};
20565
27751
 
 
27752
/** \class CT_Integer CTree.h Puma/CTree.h
 
27753
 *  Tree node representing an integer constant. */
20566
27754
 
20567
 
#line 20568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27755
#line 27756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20568
27756
} // closed Puma
 
27757
class CCExprResolve;
 
27758
class CExprResolve;
20569
27759
class WinIfExists;
20570
27760
class WinImportHandler;
20571
27761
class WinMacros;
20572
 
class CMatchSyntax;
20573
 
class ExtGnu;
 
27762
class WinAsm;
 
27763
class WinDeclSpecs;
 
27764
class WinMemberExplSpec;
 
27765
class WinTypeKeywords;
 
27766
class WinFriend;
20574
27767
class ExtAC;
20575
27768
class ExtACBuilderCoupling;
20576
27769
class ExtACSyntaxCoupling;
20577
27770
class ExtACTree;
20578
27771
class ExtACKeywords;
20579
 
class WinAsm;
20580
 
class WinDeclSpecs;
20581
 
class WinMemberExplSpec;
20582
 
class WinTypeKeywords;
 
27772
class ExtGnu;
20583
27773
class PragmaOnceUnitState;
20584
27774
class PragmaOnce;
20585
 
class CCExprResolve;
20586
 
class CExprResolve;
20587
 
namespace Puma {
20588
 
 
20589
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27775
class CMatchSyntax;
 
27776
namespace Puma {
 
27777
 
 
27778
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27779
 
 
27780
#line 27781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27781
} // closed Puma
 
27782
 
 
27783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27785
#include "CCExprResolveH.ah"
 
27786
#endif
 
27787
namespace Puma {
 
27788
 
 
27789
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27790
 
 
27791
#line 27792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27792
} // closed Puma
 
27793
 
 
27794
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27795
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27796
#include "CExprResolveH.ah"
 
27797
#endif
 
27798
namespace Puma {
 
27799
 
 
27800
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20590
27801
class CT_Integer : public CT_Expression {
20591
 
#line 20592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27802
#line 27803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27803
  friend class ::CCExprResolve;
 
27804
  friend class ::CExprResolve;
20592
27805
  friend class ::WinIfExists;
20593
27806
  friend class ::WinImportHandler;
20594
27807
  friend class ::WinMacros;
20595
 
  friend class ::CMatchSyntax;
20596
 
  friend class ::ExtGnu;
 
27808
  friend class ::WinAsm;
 
27809
  friend class ::WinDeclSpecs;
 
27810
  friend class ::WinMemberExplSpec;
 
27811
  friend class ::WinTypeKeywords;
 
27812
  friend class ::WinFriend;
20597
27813
  friend class ::ExtAC;
20598
27814
  friend class ::ExtACBuilderCoupling;
20599
27815
  friend class ::ExtACSyntaxCoupling;
20600
27816
  friend class ::ExtACTree;
20601
27817
  friend class ::ExtACKeywords;
20602
 
  friend class ::WinAsm;
20603
 
  friend class ::WinDeclSpecs;
20604
 
  friend class ::WinMemberExplSpec;
20605
 
  friend class ::WinTypeKeywords;
 
27818
  friend class ::ExtGnu;
20606
27819
  friend class ::PragmaOnceUnitState;
20607
27820
  friend class ::PragmaOnce;
20608
 
  friend class ::CCExprResolve;
20609
 
  friend class ::CExprResolve;
 
27821
  friend class ::CMatchSyntax;
20610
27822
 
20611
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27823
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20612
27824
 
20613
27825
  CTree *_value;  // CT_Token
20614
27826
 
20615
27827
public:
20616
 
  CT_Integer (CTree *t) : _value (t) {}
 
27828
  /** Constructor.
 
27829
   *  \param token The token containing the integer value. */
 
27830
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
27831
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20617
27832
  static const char *NodeId ();
 
27833
  /** Get the name of the node. Can be compared with NodeId(). */
20618
27834
  const char *NodeName () const { return NodeId (); }
 
27835
  /** Get the number of sons. */
20619
27836
  int Sons () const { return _value ? 1 : 0; }
 
27837
  /** Get the n-th son.
 
27838
   *  \param n The index of the son.
 
27839
   *  \return The n-th son or NULL. */
20620
27840
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
27841
  /** Replace a son.
 
27842
   *  \param old_son The son to replace.
 
27843
   *  \param new_son The new son. */
20621
27844
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20622
 
   { if (old_son == _value) _value = new_son; }
 
27845
   { CTree::ReplaceSon (_value, old_son, new_son); }
20623
27846
   private:
20624
27847
  typedef CT_Integer CCExprResolveExpr;
20625
27848
 
20626
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27849
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20627
27850
 public :
20628
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
27851
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20629
27852
  typedef CT_Integer CExprResolveExpr;
20630
27853
 
20631
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27854
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20632
27855
 public :
20633
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20634
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27856
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27857
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20635
27858
};
20636
27859
 
 
27860
/** \class CT_Character CTree.h Puma/CTree.h
 
27861
 *  Tree node representing a single character constant. */
20637
27862
 
20638
 
#line 20639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27863
#line 27864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20639
27864
} // closed Puma
 
27865
class CCExprResolve;
 
27866
class CExprResolve;
20640
27867
class WinIfExists;
20641
27868
class WinImportHandler;
20642
27869
class WinMacros;
20643
 
class CMatchSyntax;
20644
 
class ExtGnu;
 
27870
class WinAsm;
 
27871
class WinDeclSpecs;
 
27872
class WinMemberExplSpec;
 
27873
class WinTypeKeywords;
 
27874
class WinFriend;
20645
27875
class ExtAC;
20646
27876
class ExtACBuilderCoupling;
20647
27877
class ExtACSyntaxCoupling;
20648
27878
class ExtACTree;
20649
27879
class ExtACKeywords;
20650
 
class WinAsm;
20651
 
class WinDeclSpecs;
20652
 
class WinMemberExplSpec;
20653
 
class WinTypeKeywords;
 
27880
class ExtGnu;
20654
27881
class PragmaOnceUnitState;
20655
27882
class PragmaOnce;
20656
 
class CCExprResolve;
20657
 
class CExprResolve;
20658
 
namespace Puma {
20659
 
 
20660
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27883
class CMatchSyntax;
 
27884
namespace Puma {
 
27885
 
 
27886
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27887
 
 
27888
#line 27889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27889
} // closed Puma
 
27890
 
 
27891
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27892
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27893
#include "CCExprResolveH.ah"
 
27894
#endif
 
27895
namespace Puma {
 
27896
 
 
27897
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27898
 
 
27899
#line 27900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27900
} // closed Puma
 
27901
 
 
27902
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27903
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27904
#include "CExprResolveH.ah"
 
27905
#endif
 
27906
namespace Puma {
 
27907
 
 
27908
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20661
27909
class CT_Character : public CT_Expression {
20662
 
#line 20663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27910
#line 27911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27911
  friend class ::CCExprResolve;
 
27912
  friend class ::CExprResolve;
20663
27913
  friend class ::WinIfExists;
20664
27914
  friend class ::WinImportHandler;
20665
27915
  friend class ::WinMacros;
20666
 
  friend class ::CMatchSyntax;
20667
 
  friend class ::ExtGnu;
 
27916
  friend class ::WinAsm;
 
27917
  friend class ::WinDeclSpecs;
 
27918
  friend class ::WinMemberExplSpec;
 
27919
  friend class ::WinTypeKeywords;
 
27920
  friend class ::WinFriend;
20668
27921
  friend class ::ExtAC;
20669
27922
  friend class ::ExtACBuilderCoupling;
20670
27923
  friend class ::ExtACSyntaxCoupling;
20671
27924
  friend class ::ExtACTree;
20672
27925
  friend class ::ExtACKeywords;
20673
 
  friend class ::WinAsm;
20674
 
  friend class ::WinDeclSpecs;
20675
 
  friend class ::WinMemberExplSpec;
20676
 
  friend class ::WinTypeKeywords;
 
27926
  friend class ::ExtGnu;
20677
27927
  friend class ::PragmaOnceUnitState;
20678
27928
  friend class ::PragmaOnce;
20679
 
  friend class ::CCExprResolve;
20680
 
  friend class ::CExprResolve;
 
27929
  friend class ::CMatchSyntax;
20681
27930
 
20682
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27931
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20683
27932
 
20684
27933
  CTree *_value;  // CT_Token
20685
27934
 
20686
27935
public:
20687
 
  CT_Character (CTree *t) : _value (t) {}
 
27936
  /** Constructor.
 
27937
   *  \param token The token containing the character value. */
 
27938
  CT_Character (CTree *token) { AddSon (_value, token); }
 
27939
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20688
27940
  static const char *NodeId ();
 
27941
  /** Get the name of the node. Can be compared with NodeId(). */
20689
27942
  const char *NodeName () const { return NodeId (); }
 
27943
  /** Get the number of sons. */
20690
27944
  int Sons () const { return 1; }
 
27945
  /** Get the n-th son.
 
27946
   *  \param n The index of the son.
 
27947
   *  \return The n-th son or NULL. */
20691
27948
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
27949
  /** Replace a son.
 
27950
   *  \param old_son The son to replace.
 
27951
   *  \param new_son The new son. */
20692
27952
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20693
 
   { if (old_son == _value) _value = new_son; }
 
27953
   { CTree::ReplaceSon (_value, old_son, new_son); }
20694
27954
   private:
20695
27955
  typedef CT_Character CCExprResolveExpr;
20696
27956
 
20697
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27957
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20698
27958
 public :
20699
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
27959
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20700
27960
  typedef CT_Character CExprResolveExpr;
20701
27961
 
20702
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27962
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20703
27963
 public :
20704
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20705
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27964
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27965
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20706
27966
};
20707
27967
 
 
27968
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
27969
 *  Tree node representing a wide character constant. */
20708
27970
 
20709
 
#line 20710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
27971
#line 27972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20710
27972
} // closed Puma
 
27973
class CCExprResolve;
 
27974
class CExprResolve;
20711
27975
class WinIfExists;
20712
27976
class WinImportHandler;
20713
27977
class WinMacros;
20714
 
class CMatchSyntax;
20715
 
class ExtGnu;
 
27978
class WinAsm;
 
27979
class WinDeclSpecs;
 
27980
class WinMemberExplSpec;
 
27981
class WinTypeKeywords;
 
27982
class WinFriend;
20716
27983
class ExtAC;
20717
27984
class ExtACBuilderCoupling;
20718
27985
class ExtACSyntaxCoupling;
20719
27986
class ExtACTree;
20720
27987
class ExtACKeywords;
20721
 
class WinAsm;
20722
 
class WinDeclSpecs;
20723
 
class WinMemberExplSpec;
20724
 
class WinTypeKeywords;
 
27988
class ExtGnu;
20725
27989
class PragmaOnceUnitState;
20726
27990
class PragmaOnce;
20727
 
class CCExprResolve;
20728
 
class CExprResolve;
20729
 
namespace Puma {
20730
 
 
20731
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27991
class CMatchSyntax;
 
27992
namespace Puma {
 
27993
 
 
27994
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27995
 
 
27996
#line 27997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
27997
} // closed Puma
 
27998
 
 
27999
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28000
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28001
#include "CCExprResolveH.ah"
 
28002
#endif
 
28003
namespace Puma {
 
28004
 
 
28005
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28006
 
 
28007
#line 28008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28008
} // closed Puma
 
28009
 
 
28010
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28011
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28012
#include "CExprResolveH.ah"
 
28013
#endif
 
28014
namespace Puma {
 
28015
 
 
28016
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20732
28017
class CT_WideCharacter : public CT_Character {
20733
 
#line 20734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28018
#line 28019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28019
  friend class ::CCExprResolve;
 
28020
  friend class ::CExprResolve;
20734
28021
  friend class ::WinIfExists;
20735
28022
  friend class ::WinImportHandler;
20736
28023
  friend class ::WinMacros;
20737
 
  friend class ::CMatchSyntax;
20738
 
  friend class ::ExtGnu;
 
28024
  friend class ::WinAsm;
 
28025
  friend class ::WinDeclSpecs;
 
28026
  friend class ::WinMemberExplSpec;
 
28027
  friend class ::WinTypeKeywords;
 
28028
  friend class ::WinFriend;
20739
28029
  friend class ::ExtAC;
20740
28030
  friend class ::ExtACBuilderCoupling;
20741
28031
  friend class ::ExtACSyntaxCoupling;
20742
28032
  friend class ::ExtACTree;
20743
28033
  friend class ::ExtACKeywords;
20744
 
  friend class ::WinAsm;
20745
 
  friend class ::WinDeclSpecs;
20746
 
  friend class ::WinMemberExplSpec;
20747
 
  friend class ::WinTypeKeywords;
 
28034
  friend class ::ExtGnu;
20748
28035
  friend class ::PragmaOnceUnitState;
20749
28036
  friend class ::PragmaOnce;
20750
 
  friend class ::CCExprResolve;
20751
 
  friend class ::CExprResolve;
20752
 
 
20753
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20754
 
 
20755
 
  CTree *_value;  // CT_Token
 
28037
  friend class ::CMatchSyntax;
 
28038
 
 
28039
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20756
28040
 
20757
28041
public:
20758
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
28042
  /** Constructor.
 
28043
   *  \param token The token containing the wide character value. */
 
28044
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
28045
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20759
28046
  static const char *NodeId ();
 
28047
  /** Get the name of the node. Can be compared with NodeId(). */
20760
28048
  const char *NodeName () const { return NodeId (); }
20761
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20762
 
   { if (old_son == _value) _value = new_son; }
20763
28049
   private:
20764
28050
  typedef CT_WideCharacter CCExprResolveExpr;
20765
28051
 
20766
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28052
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20767
28053
 public :
20768
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28054
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20769
28055
  typedef CT_WideCharacter CExprResolveExpr;
20770
28056
 
20771
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28057
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20772
28058
 public :
20773
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20774
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28059
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28060
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20775
28061
};
20776
28062
 
 
28063
/** \class CT_Float CTree.h Puma/CTree.h
 
28064
 *  Tree node representing a floating point constant. */
20777
28065
 
20778
 
#line 20779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28066
#line 28067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20779
28067
} // closed Puma
 
28068
class CCExprResolve;
 
28069
class CExprResolve;
20780
28070
class WinIfExists;
20781
28071
class WinImportHandler;
20782
28072
class WinMacros;
20783
 
class CMatchSyntax;
20784
 
class ExtGnu;
 
28073
class WinAsm;
 
28074
class WinDeclSpecs;
 
28075
class WinMemberExplSpec;
 
28076
class WinTypeKeywords;
 
28077
class WinFriend;
20785
28078
class ExtAC;
20786
28079
class ExtACBuilderCoupling;
20787
28080
class ExtACSyntaxCoupling;
20788
28081
class ExtACTree;
20789
28082
class ExtACKeywords;
20790
 
class WinAsm;
20791
 
class WinDeclSpecs;
20792
 
class WinMemberExplSpec;
20793
 
class WinTypeKeywords;
 
28083
class ExtGnu;
20794
28084
class PragmaOnceUnitState;
20795
28085
class PragmaOnce;
20796
 
class CCExprResolve;
20797
 
class CExprResolve;
20798
 
namespace Puma {
20799
 
 
20800
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28086
class CMatchSyntax;
 
28087
namespace Puma {
 
28088
 
 
28089
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28090
 
 
28091
#line 28092 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28092
} // closed Puma
 
28093
 
 
28094
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28095
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28096
#include "CCExprResolveH.ah"
 
28097
#endif
 
28098
namespace Puma {
 
28099
 
 
28100
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28101
 
 
28102
#line 28103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28103
} // closed Puma
 
28104
 
 
28105
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28106
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28107
#include "CExprResolveH.ah"
 
28108
#endif
 
28109
namespace Puma {
 
28110
 
 
28111
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20801
28112
class CT_Float : public CT_Expression {
20802
 
#line 20803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28113
#line 28114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28114
  friend class ::CCExprResolve;
 
28115
  friend class ::CExprResolve;
20803
28116
  friend class ::WinIfExists;
20804
28117
  friend class ::WinImportHandler;
20805
28118
  friend class ::WinMacros;
20806
 
  friend class ::CMatchSyntax;
20807
 
  friend class ::ExtGnu;
 
28119
  friend class ::WinAsm;
 
28120
  friend class ::WinDeclSpecs;
 
28121
  friend class ::WinMemberExplSpec;
 
28122
  friend class ::WinTypeKeywords;
 
28123
  friend class ::WinFriend;
20808
28124
  friend class ::ExtAC;
20809
28125
  friend class ::ExtACBuilderCoupling;
20810
28126
  friend class ::ExtACSyntaxCoupling;
20811
28127
  friend class ::ExtACTree;
20812
28128
  friend class ::ExtACKeywords;
20813
 
  friend class ::WinAsm;
20814
 
  friend class ::WinDeclSpecs;
20815
 
  friend class ::WinMemberExplSpec;
20816
 
  friend class ::WinTypeKeywords;
 
28129
  friend class ::ExtGnu;
20817
28130
  friend class ::PragmaOnceUnitState;
20818
28131
  friend class ::PragmaOnce;
20819
 
  friend class ::CCExprResolve;
20820
 
  friend class ::CExprResolve;
 
28132
  friend class ::CMatchSyntax;
20821
28133
 
20822
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28134
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20823
28135
 
20824
28136
  CTree *_value;  // CT_Token
20825
28137
 
20826
28138
public:
20827
 
  CT_Float (CTree *t) : _value (t) {}
 
28139
  /** Constructor.
 
28140
   *  \param token The token containing the floating point value. */
 
28141
  CT_Float (CTree *token) { AddSon (_value, token); }
 
28142
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20828
28143
  static const char *NodeId ();
 
28144
  /** Get the name of the node. Can be compared with NodeId(). */
20829
28145
  const char *NodeName () const { return NodeId (); }
 
28146
  /** Get the number of sons. */
20830
28147
  int Sons () const { return 1; }
 
28148
  /** Get the n-th son.
 
28149
   *  \param n The index of the son.
 
28150
   *  \return The n-th son or NULL. */
20831
28151
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
28152
  /** Replace a son.
 
28153
   *  \param old_son The son to replace.
 
28154
   *  \param new_son The new son. */
20832
28155
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20833
 
   { if (old_son == _value) _value = new_son; }
 
28156
   { CTree::ReplaceSon (_value, old_son, new_son); }
20834
28157
   private:
20835
28158
  typedef CT_Float CCExprResolveExpr;
20836
28159
 
20837
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28160
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20838
28161
 public :
20839
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28162
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20840
28163
  typedef CT_Float CExprResolveExpr;
20841
28164
 
20842
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28165
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20843
28166
 public :
20844
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20845
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28167
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28168
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20846
28169
};
20847
28170
 
 
28171
/** \class CT_Bool CTree.h Puma/CTree.h
 
28172
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
20848
28173
 
20849
 
#line 20850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28174
#line 28175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20850
28175
} // closed Puma
 
28176
class CCExprResolve;
 
28177
class CExprResolve;
20851
28178
class WinIfExists;
20852
28179
class WinImportHandler;
20853
28180
class WinMacros;
20854
 
class CMatchSyntax;
20855
 
class ExtGnu;
 
28181
class WinAsm;
 
28182
class WinDeclSpecs;
 
28183
class WinMemberExplSpec;
 
28184
class WinTypeKeywords;
 
28185
class WinFriend;
20856
28186
class ExtAC;
20857
28187
class ExtACBuilderCoupling;
20858
28188
class ExtACSyntaxCoupling;
20859
28189
class ExtACTree;
20860
28190
class ExtACKeywords;
20861
 
class WinAsm;
20862
 
class WinDeclSpecs;
20863
 
class WinMemberExplSpec;
20864
 
class WinTypeKeywords;
 
28191
class ExtGnu;
20865
28192
class PragmaOnceUnitState;
20866
28193
class PragmaOnce;
20867
 
class CCExprResolve;
20868
 
class CExprResolve;
20869
 
namespace Puma {
20870
 
 
20871
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28194
class CMatchSyntax;
 
28195
namespace Puma {
 
28196
 
 
28197
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28198
 
 
28199
#line 28200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28200
} // closed Puma
 
28201
 
 
28202
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28203
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28204
#include "CCExprResolveH.ah"
 
28205
#endif
 
28206
namespace Puma {
 
28207
 
 
28208
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28209
 
 
28210
#line 28211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28211
} // closed Puma
 
28212
 
 
28213
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28214
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28215
#include "CExprResolveH.ah"
 
28216
#endif
 
28217
namespace Puma {
 
28218
 
 
28219
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20872
28220
class CT_Bool : public CT_Expression {
20873
 
#line 20874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28221
#line 28222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28222
  friend class ::CCExprResolve;
 
28223
  friend class ::CExprResolve;
20874
28224
  friend class ::WinIfExists;
20875
28225
  friend class ::WinImportHandler;
20876
28226
  friend class ::WinMacros;
20877
 
  friend class ::CMatchSyntax;
20878
 
  friend class ::ExtGnu;
 
28227
  friend class ::WinAsm;
 
28228
  friend class ::WinDeclSpecs;
 
28229
  friend class ::WinMemberExplSpec;
 
28230
  friend class ::WinTypeKeywords;
 
28231
  friend class ::WinFriend;
20879
28232
  friend class ::ExtAC;
20880
28233
  friend class ::ExtACBuilderCoupling;
20881
28234
  friend class ::ExtACSyntaxCoupling;
20882
28235
  friend class ::ExtACTree;
20883
28236
  friend class ::ExtACKeywords;
20884
 
  friend class ::WinAsm;
20885
 
  friend class ::WinDeclSpecs;
20886
 
  friend class ::WinMemberExplSpec;
20887
 
  friend class ::WinTypeKeywords;
 
28237
  friend class ::ExtGnu;
20888
28238
  friend class ::PragmaOnceUnitState;
20889
28239
  friend class ::PragmaOnce;
20890
 
  friend class ::CCExprResolve;
20891
 
  friend class ::CExprResolve;
 
28240
  friend class ::CMatchSyntax;
20892
28241
 
20893
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28242
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20894
28243
 
20895
28244
  CTree *_value;  // CT_Token
20896
28245
 
20897
28246
public:
20898
 
  CT_Bool (CTree *t) : _value (t) {}
 
28247
  /** Constructor.
 
28248
   *  \param token The token containing the boolean value. */
 
28249
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
28250
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20899
28251
  static const char *NodeId ();
 
28252
  /** Get the name of the node. Can be compared with NodeId(). */
20900
28253
  const char *NodeName () const { return NodeId (); }
 
28254
  /** Get the number of sons. */
20901
28255
  int Sons () const { return 1; }
 
28256
  /** Get the n-th son.
 
28257
   *  \param n The index of the son.
 
28258
   *  \return The n-th son or NULL. */
20902
28259
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
28260
  /** Replace a son.
 
28261
   *  \param old_son The son to replace.
 
28262
   *  \param new_son The new son. */
20903
28263
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20904
 
   { if (old_son == _value) _value = new_son; }
 
28264
   { CTree::ReplaceSon (_value, old_son, new_son); }
20905
28265
   private:
20906
28266
  typedef CT_Bool CCExprResolveExpr;
20907
28267
 
20908
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28268
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20909
28269
 public :
20910
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28270
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20911
28271
  typedef CT_Bool CExprResolveExpr;
20912
28272
 
20913
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28273
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20914
28274
 public :
20915
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20916
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28275
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28276
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20917
28277
};
20918
28278
 
 
28279
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
28280
 *  Tree node representing a braced expression, e.g. (a+b). */
20919
28281
 
20920
 
#line 20921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28282
#line 28283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20921
28283
} // closed Puma
 
28284
class CCExprResolve;
 
28285
class CExprResolve;
20922
28286
class WinIfExists;
20923
28287
class WinImportHandler;
20924
28288
class WinMacros;
20925
 
class CMatchSyntax;
20926
 
class ExtGnu;
 
28289
class WinAsm;
 
28290
class WinDeclSpecs;
 
28291
class WinMemberExplSpec;
 
28292
class WinTypeKeywords;
 
28293
class WinFriend;
20927
28294
class ExtAC;
20928
28295
class ExtACBuilderCoupling;
20929
28296
class ExtACSyntaxCoupling;
20930
28297
class ExtACTree;
20931
28298
class ExtACKeywords;
20932
 
class WinAsm;
20933
 
class WinDeclSpecs;
20934
 
class WinMemberExplSpec;
20935
 
class WinTypeKeywords;
 
28299
class ExtGnu;
20936
28300
class PragmaOnceUnitState;
20937
28301
class PragmaOnce;
20938
 
class CCExprResolve;
20939
 
class CExprResolve;
20940
 
namespace Puma {
20941
 
 
20942
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28302
class CMatchSyntax;
 
28303
namespace Puma {
 
28304
 
 
28305
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28306
 
 
28307
#line 28308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28308
} // closed Puma
 
28309
 
 
28310
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28311
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28312
#include "CCExprResolveH.ah"
 
28313
#endif
 
28314
namespace Puma {
 
28315
 
 
28316
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28317
 
 
28318
#line 28319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28319
} // closed Puma
 
28320
 
 
28321
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28322
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28323
#include "CExprResolveH.ah"
 
28324
#endif
 
28325
namespace Puma {
 
28326
 
 
28327
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20943
28328
class CT_BracedExpr : public CT_Expression {
20944
 
#line 20945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28329
#line 28330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28330
  friend class ::CCExprResolve;
 
28331
  friend class ::CExprResolve;
20945
28332
  friend class ::WinIfExists;
20946
28333
  friend class ::WinImportHandler;
20947
28334
  friend class ::WinMacros;
20948
 
  friend class ::CMatchSyntax;
20949
 
  friend class ::ExtGnu;
 
28335
  friend class ::WinAsm;
 
28336
  friend class ::WinDeclSpecs;
 
28337
  friend class ::WinMemberExplSpec;
 
28338
  friend class ::WinTypeKeywords;
 
28339
  friend class ::WinFriend;
20950
28340
  friend class ::ExtAC;
20951
28341
  friend class ::ExtACBuilderCoupling;
20952
28342
  friend class ::ExtACSyntaxCoupling;
20953
28343
  friend class ::ExtACTree;
20954
28344
  friend class ::ExtACKeywords;
20955
 
  friend class ::WinAsm;
20956
 
  friend class ::WinDeclSpecs;
20957
 
  friend class ::WinMemberExplSpec;
20958
 
  friend class ::WinTypeKeywords;
 
28345
  friend class ::ExtGnu;
20959
28346
  friend class ::PragmaOnceUnitState;
20960
28347
  friend class ::PragmaOnce;
20961
 
  friend class ::CCExprResolve;
20962
 
  friend class ::CExprResolve;
 
28348
  friend class ::CMatchSyntax;
20963
28349
 
20964
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28350
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20965
28351
 
20966
28352
  CTree *sons[3]; // open, expr, close
20967
28353
 
20968
28354
public:
 
28355
  /** Constructor.
 
28356
   *  \param o The opening brace.
 
28357
   *  \param e The enclosed expression.
 
28358
   *  \param c The closing brace. */
20969
28359
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
20970
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
28360
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
20971
28361
  }
 
28362
  /** Get the identifier for this node type. Can be compared with NodeName(). */
20972
28363
  static const char *NodeId ();
 
28364
  /** Get the name of the node. Can be compared with NodeId(). */
20973
28365
  const char *NodeName () const { return NodeId (); }
 
28366
  /** Get the number of sons. */
20974
28367
  int Sons () const { return 3; }
 
28368
  /** Get the n-th son.
 
28369
   *  \param n The index of the son.
 
28370
   *  \return The n-th son or NULL. */
20975
28371
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
28372
  /** Get the enclosed expression. */
20976
28373
  CTree *Expr () const { return sons[1]; }
 
28374
  /** Get the type of the enclosed expression. */
20977
28375
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
28376
  /** Get the value of the enclosed expression. */
20978
28377
  CExprValue *Value () const { return Expr ()->Value (); }
 
28378
  /** Get the semantic value object. */
20979
28379
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
28380
  /** Replace a son.
 
28381
   *  \param old_son The son to replace.
 
28382
   *  \param new_son The new son. */
20980
28383
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20981
28384
    CTree::ReplaceSon (sons, 3, old_son, new_son);
20982
28385
  }
20983
28386
   private:
20984
28387
  typedef CT_BracedExpr CCExprResolveExpr;
20985
28388
 
20986
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28389
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20987
28390
 public :
20988
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28391
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
20989
28392
  typedef CT_BracedExpr CExprResolveExpr;
20990
28393
 
20991
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28394
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20992
28395
 public :
20993
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20994
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28396
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28397
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
20995
28398
};
20996
28399
 
 
28400
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
28401
 *  Base class for all tree nodes representing a name. */
20997
28402
 
20998
 
#line 20999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28403
#line 28404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
20999
28404
} // closed Puma
 
28405
class CCExprResolve;
 
28406
class CExprResolve;
21000
28407
class WinIfExists;
21001
28408
class WinImportHandler;
21002
28409
class WinMacros;
21003
 
class CMatchSyntax;
21004
 
class ExtGnu;
 
28410
class WinAsm;
 
28411
class WinDeclSpecs;
 
28412
class WinMemberExplSpec;
 
28413
class WinTypeKeywords;
 
28414
class WinFriend;
21005
28415
class ExtAC;
21006
28416
class ExtACBuilderCoupling;
21007
28417
class ExtACSyntaxCoupling;
21008
28418
class ExtACTree;
21009
28419
class ExtACKeywords;
21010
 
class WinAsm;
21011
 
class WinDeclSpecs;
21012
 
class WinMemberExplSpec;
21013
 
class WinTypeKeywords;
 
28420
class ExtGnu;
21014
28421
class PragmaOnceUnitState;
21015
28422
class PragmaOnce;
21016
 
class CCExprResolve;
21017
 
class CExprResolve;
21018
 
namespace Puma {
21019
 
 
21020
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28423
class CMatchSyntax;
 
28424
namespace Puma {
 
28425
 
 
28426
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28427
 
 
28428
#line 28429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28429
} // closed Puma
 
28430
 
 
28431
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28432
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28433
#include "CCExprResolveH.ah"
 
28434
#endif
 
28435
namespace Puma {
 
28436
 
 
28437
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28438
 
 
28439
#line 28440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28440
} // closed Puma
 
28441
 
 
28442
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28443
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28444
#include "CExprResolveH.ah"
 
28445
#endif
 
28446
namespace Puma {
 
28447
 
 
28448
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21021
28449
class CT_SimpleName : public CT_List, public Printable, 
21022
28450
                      public CSemValue, public CSemObject {
21023
 
#line 21024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28451
#line 28452 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28452
  friend class ::CCExprResolve;
 
28453
  friend class ::CExprResolve;
21024
28454
  friend class ::WinIfExists;
21025
28455
  friend class ::WinImportHandler;
21026
28456
  friend class ::WinMacros;
21027
 
  friend class ::CMatchSyntax;
21028
 
  friend class ::ExtGnu;
 
28457
  friend class ::WinAsm;
 
28458
  friend class ::WinDeclSpecs;
 
28459
  friend class ::WinMemberExplSpec;
 
28460
  friend class ::WinTypeKeywords;
 
28461
  friend class ::WinFriend;
21029
28462
  friend class ::ExtAC;
21030
28463
  friend class ::ExtACBuilderCoupling;
21031
28464
  friend class ::ExtACSyntaxCoupling;
21032
28465
  friend class ::ExtACTree;
21033
28466
  friend class ::ExtACKeywords;
21034
 
  friend class ::WinAsm;
21035
 
  friend class ::WinDeclSpecs;
21036
 
  friend class ::WinMemberExplSpec;
21037
 
  friend class ::WinTypeKeywords;
 
28467
  friend class ::ExtGnu;
21038
28468
  friend class ::PragmaOnceUnitState;
21039
28469
  friend class ::PragmaOnce;
21040
 
  friend class ::CCExprResolve;
21041
 
  friend class ::CExprResolve;
 
28470
  friend class ::CMatchSyntax;
21042
28471
 
21043
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28472
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21044
28473
 
21045
28474
protected:
 
28475
  /** Constructor.
 
28476
   *  \param size The number of sub-names (for qualified names). */
21046
28477
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
28478
  /** Constructor.
 
28479
   *  \param size The number of sub-names (for qualified names). 
 
28480
   *  \param properties Additional name list properties (for root qualified names). */
21047
28481
  CT_SimpleName (int size, int properties) : 
21048
28482
    CT_List (size, 2, properties) {}
21049
28483
  
21050
28484
public:
 
28485
  /** Constructor.
 
28486
   *  \param n The sub-tree containing the name. */
21051
28487
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
28488
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21052
28489
  static const char *NodeId ();
 
28490
  /** Get the name of the node. Can be compared with NodeId(). */
21053
28491
  const char *NodeName () const { return NodeId (); }
 
28492
  /** Get the string containing the name. */
21054
28493
  virtual const char *Text () const 
21055
28494
   { return Son (Sons ()-1)->token ()->text (); }
 
28495
  /** Print the name on the given stream. 
 
28496
   *  \param os The output stream. */
21056
28497
  virtual void print (ostream &os) const { os << Text (); }
 
28498
  /** Get this. */
21057
28499
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
28500
  /** Get the type of the entity represented by the name. */
21058
28501
  CTypeInfo *Type () const { return type; }
 
28502
  /** Get the value of the entity represented by the name. */ 
21059
28503
  CExprValue *Value () const { return value; }
 
28504
  /** Get the sematic value information object. */
21060
28505
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
28506
  /** Get the sematic information object. */
21061
28507
  CSemObject *SemObject () const { return (CSemObject*)this; }
21062
 
  // special new / delete with reusing memory
21063
 
  void *operator new (size_t);
21064
 
  void  operator delete (void *);
21065
 
  // classification function
 
28508
  /** Get this. */
21066
28509
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
28510
 
 
28511
public:
 
28512
  /** Own new operator reusing memory. */
 
28513
  void *operator new (size_t);
 
28514
  /** Own delete operator. */
 
28515
  void operator delete (void *);
21067
28516
   private:
21068
28517
  typedef CT_SimpleName CCExprResolveExpr;
21069
28518
 
21070
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28519
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21071
28520
 public :
21072
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28521
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21073
28522
  typedef CT_SimpleName CExprResolveExpr;
21074
28523
 
21075
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28524
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21076
28525
 public :
21077
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21078
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28526
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28527
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21079
28528
};
21080
28529
 
 
28530
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
28531
 *  Base class for tree nodes representing a special name, like destructor names. */
21081
28532
 
21082
 
#line 21083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28533
#line 28534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21083
28534
} // closed Puma
 
28535
class CCExprResolve;
 
28536
class CExprResolve;
21084
28537
class WinIfExists;
21085
28538
class WinImportHandler;
21086
28539
class WinMacros;
21087
 
class CMatchSyntax;
21088
 
class ExtGnu;
 
28540
class WinAsm;
 
28541
class WinDeclSpecs;
 
28542
class WinMemberExplSpec;
 
28543
class WinTypeKeywords;
 
28544
class WinFriend;
21089
28545
class ExtAC;
21090
28546
class ExtACBuilderCoupling;
21091
28547
class ExtACSyntaxCoupling;
21092
28548
class ExtACTree;
21093
28549
class ExtACKeywords;
21094
 
class WinAsm;
21095
 
class WinDeclSpecs;
21096
 
class WinMemberExplSpec;
21097
 
class WinTypeKeywords;
 
28550
class ExtGnu;
21098
28551
class PragmaOnceUnitState;
21099
28552
class PragmaOnce;
21100
 
class CCExprResolve;
21101
 
class CExprResolve;
21102
 
namespace Puma {
21103
 
 
21104
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28553
class CMatchSyntax;
 
28554
namespace Puma {
 
28555
 
 
28556
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28557
 
 
28558
#line 28559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28559
} // closed Puma
 
28560
 
 
28561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28563
#include "CCExprResolveH.ah"
 
28564
#endif
 
28565
namespace Puma {
 
28566
 
 
28567
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28568
 
 
28569
#line 28570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28570
} // closed Puma
 
28571
 
 
28572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28574
#include "CExprResolveH.ah"
 
28575
#endif
 
28576
namespace Puma {
 
28577
 
 
28578
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21105
28579
class CT_SpecialName : public CT_SimpleName {
21106
 
#line 21107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28580
#line 28581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28581
  friend class ::CCExprResolve;
 
28582
  friend class ::CExprResolve;
21107
28583
  friend class ::WinIfExists;
21108
28584
  friend class ::WinImportHandler;
21109
28585
  friend class ::WinMacros;
21110
 
  friend class ::CMatchSyntax;
21111
 
  friend class ::ExtGnu;
 
28586
  friend class ::WinAsm;
 
28587
  friend class ::WinDeclSpecs;
 
28588
  friend class ::WinMemberExplSpec;
 
28589
  friend class ::WinTypeKeywords;
 
28590
  friend class ::WinFriend;
21112
28591
  friend class ::ExtAC;
21113
28592
  friend class ::ExtACBuilderCoupling;
21114
28593
  friend class ::ExtACSyntaxCoupling;
21115
28594
  friend class ::ExtACTree;
21116
28595
  friend class ::ExtACKeywords;
21117
 
  friend class ::WinAsm;
21118
 
  friend class ::WinDeclSpecs;
21119
 
  friend class ::WinMemberExplSpec;
21120
 
  friend class ::WinTypeKeywords;
 
28596
  friend class ::ExtGnu;
21121
28597
  friend class ::PragmaOnceUnitState;
21122
28598
  friend class ::PragmaOnce;
21123
 
  friend class ::CCExprResolve;
21124
 
  friend class ::CExprResolve;
 
28599
  friend class ::CMatchSyntax;
21125
28600
 
21126
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28601
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21127
28602
 
21128
28603
  char *_name;
21129
28604
  
21130
28605
protected:
 
28606
  /** Constructor.
 
28607
   *  \param size The number of sub-names (for qualified names). */
21131
28608
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
21132
28609
  
21133
28610
public:
 
28611
  /** Destructor. Deletes the name string. */
21134
28612
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
28613
  /** Get the string containing the name. */
21135
28614
  const char *Text () const { return _name; }
 
28615
  /** Set the name. The name is copied.
 
28616
   *  \param n The name. */
21136
28617
  void Name (const char *n) { 
21137
28618
    if (n) { 
21138
28619
      _name = new char[strlen(n) + 1];
21139
28620
      strcpy (_name,n);
21140
28621
    }
21141
28622
  }
21142
 
  // special new / delete with reusing memory
 
28623
 
 
28624
public:
 
28625
  /** Own new operator reusing memory. */
21143
28626
  void *operator new (size_t);
21144
 
  void  operator delete (void *);
 
28627
  /** Own delete operator. */
 
28628
  void operator delete (void *);
21145
28629
   private:
21146
28630
  typedef CT_SpecialName CCExprResolveExpr;
21147
28631
 
21148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28632
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21149
28633
 public :
21150
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28634
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21151
28635
  typedef CT_SpecialName CExprResolveExpr;
21152
28636
 
21153
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28637
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21154
28638
 public :
21155
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21156
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28639
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28640
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21157
28641
};
21158
28642
 
 
28643
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
28644
 *  Tree node representing a private name. Private names 
 
28645
 *  are generated names for abstract declarators etc. */
21159
28646
 
21160
 
#line 21161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28647
#line 28648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21161
28648
} // closed Puma
 
28649
class CCExprResolve;
 
28650
class CExprResolve;
21162
28651
class WinIfExists;
21163
28652
class WinImportHandler;
21164
28653
class WinMacros;
21165
 
class CMatchSyntax;
21166
 
class ExtGnu;
 
28654
class WinAsm;
 
28655
class WinDeclSpecs;
 
28656
class WinMemberExplSpec;
 
28657
class WinTypeKeywords;
 
28658
class WinFriend;
21167
28659
class ExtAC;
21168
28660
class ExtACBuilderCoupling;
21169
28661
class ExtACSyntaxCoupling;
21170
28662
class ExtACTree;
21171
28663
class ExtACKeywords;
21172
 
class WinAsm;
21173
 
class WinDeclSpecs;
21174
 
class WinMemberExplSpec;
21175
 
class WinTypeKeywords;
 
28664
class ExtGnu;
21176
28665
class PragmaOnceUnitState;
21177
28666
class PragmaOnce;
21178
 
class CCExprResolve;
21179
 
class CExprResolve;
21180
 
namespace Puma {
21181
 
 
21182
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28667
class CMatchSyntax;
 
28668
namespace Puma {
 
28669
 
 
28670
#line 919 "/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/CMatchParser.cc"
 
28673
} // closed Puma
 
28674
 
 
28675
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28676
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28677
#include "CCExprResolveH.ah"
 
28678
#endif
 
28679
namespace Puma {
 
28680
 
 
28681
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28682
 
 
28683
#line 28684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28684
} // closed Puma
 
28685
 
 
28686
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28687
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28688
#include "CExprResolveH.ah"
 
28689
#endif
 
28690
namespace Puma {
 
28691
 
 
28692
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21183
28693
class CT_PrivateName : public CT_SpecialName {
21184
 
#line 21185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28694
#line 28695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28695
  friend class ::CCExprResolve;
 
28696
  friend class ::CExprResolve;
21185
28697
  friend class ::WinIfExists;
21186
28698
  friend class ::WinImportHandler;
21187
28699
  friend class ::WinMacros;
21188
 
  friend class ::CMatchSyntax;
21189
 
  friend class ::ExtGnu;
 
28700
  friend class ::WinAsm;
 
28701
  friend class ::WinDeclSpecs;
 
28702
  friend class ::WinMemberExplSpec;
 
28703
  friend class ::WinTypeKeywords;
 
28704
  friend class ::WinFriend;
21190
28705
  friend class ::ExtAC;
21191
28706
  friend class ::ExtACBuilderCoupling;
21192
28707
  friend class ::ExtACSyntaxCoupling;
21193
28708
  friend class ::ExtACTree;
21194
28709
  friend class ::ExtACKeywords;
21195
 
  friend class ::WinAsm;
21196
 
  friend class ::WinDeclSpecs;
21197
 
  friend class ::WinMemberExplSpec;
21198
 
  friend class ::WinTypeKeywords;
 
28710
  friend class ::ExtGnu;
21199
28711
  friend class ::PragmaOnceUnitState;
21200
28712
  friend class ::PragmaOnce;
21201
 
  friend class ::CCExprResolve;
21202
 
  friend class ::CExprResolve;
 
28713
  friend class ::CMatchSyntax;
21203
28714
 
21204
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28715
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21205
28716
 
21206
28717
public:
 
28718
  /** Constructor.
 
28719
   *  \param n The private (generated) name. */
21207
28720
  CT_PrivateName (const char *n) { Name (n); }
 
28721
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21208
28722
  static const char *NodeId ();
 
28723
  /** Get the name of the node. Can be compared with NodeId(). */
21209
28724
  const char *NodeName () const { return NodeId (); }
 
28725
  /** Get the number of sons. */
21210
28726
  int Sons () const { return 0; }
 
28727
  /** Get the n-th son.
 
28728
   *  \param n The index of the son.
 
28729
   *  \return The n-th son or NULL. */
21211
28730
  CTree *Son (int n) const { return (CTree*)0; }
21212
 
  // special new / delete with reusing memory
 
28731
 
 
28732
public:
 
28733
  /** Own new operator reusing memory. */
21213
28734
  void *operator new (size_t);
21214
 
  void  operator delete (void *);
 
28735
  /** Own delete operator. */
 
28736
  void operator delete (void *);
21215
28737
   private:
21216
28738
  typedef CT_PrivateName CCExprResolveExpr;
21217
28739
 
21218
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28740
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21219
28741
 public :
21220
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28742
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21221
28743
  typedef CT_PrivateName CExprResolveExpr;
21222
28744
 
21223
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28745
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21224
28746
 public :
21225
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21226
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28747
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28748
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21227
28749
};
21228
28750
 
 
28751
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
28752
 *  Tree node representing a destructor name. */
21229
28753
 
21230
 
#line 21231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28754
#line 28755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21231
28755
} // closed Puma
 
28756
class CCExprResolve;
 
28757
class CExprResolve;
21232
28758
class WinIfExists;
21233
28759
class WinImportHandler;
21234
28760
class WinMacros;
21235
 
class CMatchSyntax;
21236
 
class ExtGnu;
 
28761
class WinAsm;
 
28762
class WinDeclSpecs;
 
28763
class WinMemberExplSpec;
 
28764
class WinTypeKeywords;
 
28765
class WinFriend;
21237
28766
class ExtAC;
21238
28767
class ExtACBuilderCoupling;
21239
28768
class ExtACSyntaxCoupling;
21240
28769
class ExtACTree;
21241
28770
class ExtACKeywords;
21242
 
class WinAsm;
21243
 
class WinDeclSpecs;
21244
 
class WinMemberExplSpec;
21245
 
class WinTypeKeywords;
 
28771
class ExtGnu;
21246
28772
class PragmaOnceUnitState;
21247
28773
class PragmaOnce;
21248
 
class CCExprResolve;
21249
 
class CExprResolve;
21250
 
namespace Puma {
21251
 
 
21252
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28774
class CMatchSyntax;
 
28775
namespace Puma {
 
28776
 
 
28777
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28778
 
 
28779
#line 28780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28780
} // closed Puma
 
28781
 
 
28782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28784
#include "CCExprResolveH.ah"
 
28785
#endif
 
28786
namespace Puma {
 
28787
 
 
28788
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28789
 
 
28790
#line 28791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28791
} // closed Puma
 
28792
 
 
28793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28795
#include "CExprResolveH.ah"
 
28796
#endif
 
28797
namespace Puma {
 
28798
 
 
28799
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21253
28800
class CT_DestructorName : public CT_SpecialName {
21254
 
#line 21255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28801
#line 28802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28802
  friend class ::CCExprResolve;
 
28803
  friend class ::CExprResolve;
21255
28804
  friend class ::WinIfExists;
21256
28805
  friend class ::WinImportHandler;
21257
28806
  friend class ::WinMacros;
21258
 
  friend class ::CMatchSyntax;
21259
 
  friend class ::ExtGnu;
 
28807
  friend class ::WinAsm;
 
28808
  friend class ::WinDeclSpecs;
 
28809
  friend class ::WinMemberExplSpec;
 
28810
  friend class ::WinTypeKeywords;
 
28811
  friend class ::WinFriend;
21260
28812
  friend class ::ExtAC;
21261
28813
  friend class ::ExtACBuilderCoupling;
21262
28814
  friend class ::ExtACSyntaxCoupling;
21263
28815
  friend class ::ExtACTree;
21264
28816
  friend class ::ExtACKeywords;
21265
 
  friend class ::WinAsm;
21266
 
  friend class ::WinDeclSpecs;
21267
 
  friend class ::WinMemberExplSpec;
21268
 
  friend class ::WinTypeKeywords;
 
28817
  friend class ::ExtGnu;
21269
28818
  friend class ::PragmaOnceUnitState;
21270
28819
  friend class ::PragmaOnce;
21271
 
  friend class ::CCExprResolve;
21272
 
  friend class ::CExprResolve;
 
28820
  friend class ::CMatchSyntax;
21273
28821
 
21274
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28822
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21275
28823
 
21276
28824
public:
21277
 
  CT_DestructorName (CTree *, CTree *);
 
28825
  /** Constructor.
 
28826
   *  \param t The tilde operator.
 
28827
   *  \param n The class name. */
 
28828
  CT_DestructorName (CTree *t, CTree *n);
 
28829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21278
28830
  static const char *NodeId ();
 
28831
  /** Get the name of the node. Can be compared with NodeId(). */
21279
28832
  const char *NodeName () const { return NodeId (); }
21280
 
  // special new / delete with reusing memory
 
28833
 
 
28834
public:
 
28835
  /** Own new operator reusing memory. */
21281
28836
  void *operator new (size_t);
21282
 
  void  operator delete (void *);
 
28837
  /** Own delete operator. */
 
28838
  void operator delete (void *);
21283
28839
   private:
21284
28840
  typedef CT_DestructorName CCExprResolveExpr;
21285
28841
 
21286
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28842
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21287
28843
 public :
21288
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28844
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21289
28845
  typedef CT_DestructorName CExprResolveExpr;
21290
28846
 
21291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28847
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21292
28848
 public :
21293
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21294
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28849
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28850
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21295
28851
};
21296
28852
 
 
28853
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
28854
 *  Tree node representing a template name. */
21297
28855
 
21298
 
#line 21299 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28856
#line 28857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21299
28857
} // closed Puma
 
28858
class CCExprResolve;
 
28859
class CExprResolve;
21300
28860
class WinIfExists;
21301
28861
class WinImportHandler;
21302
28862
class WinMacros;
21303
 
class CMatchSyntax;
21304
 
class ExtGnu;
 
28863
class WinAsm;
 
28864
class WinDeclSpecs;
 
28865
class WinMemberExplSpec;
 
28866
class WinTypeKeywords;
 
28867
class WinFriend;
21305
28868
class ExtAC;
21306
28869
class ExtACBuilderCoupling;
21307
28870
class ExtACSyntaxCoupling;
21308
28871
class ExtACTree;
21309
28872
class ExtACKeywords;
21310
 
class WinAsm;
21311
 
class WinDeclSpecs;
21312
 
class WinMemberExplSpec;
21313
 
class WinTypeKeywords;
 
28873
class ExtGnu;
21314
28874
class PragmaOnceUnitState;
21315
28875
class PragmaOnce;
21316
 
class CCExprResolve;
21317
 
class CExprResolve;
21318
 
namespace Puma {
21319
 
 
21320
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28876
class CMatchSyntax;
 
28877
namespace Puma {
 
28878
 
 
28879
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28880
 
 
28881
#line 28882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28882
} // closed Puma
 
28883
 
 
28884
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28885
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28886
#include "CCExprResolveH.ah"
 
28887
#endif
 
28888
namespace Puma {
 
28889
 
 
28890
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28891
 
 
28892
#line 28893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28893
} // closed Puma
 
28894
 
 
28895
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28896
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28897
#include "CExprResolveH.ah"
 
28898
#endif
 
28899
namespace Puma {
 
28900
 
 
28901
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21321
28902
class CT_TemplateName : public CT_SpecialName {
21322
 
#line 21323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28903
#line 28904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28904
  friend class ::CCExprResolve;
 
28905
  friend class ::CExprResolve;
21323
28906
  friend class ::WinIfExists;
21324
28907
  friend class ::WinImportHandler;
21325
28908
  friend class ::WinMacros;
21326
 
  friend class ::CMatchSyntax;
21327
 
  friend class ::ExtGnu;
 
28909
  friend class ::WinAsm;
 
28910
  friend class ::WinDeclSpecs;
 
28911
  friend class ::WinMemberExplSpec;
 
28912
  friend class ::WinTypeKeywords;
 
28913
  friend class ::WinFriend;
21328
28914
  friend class ::ExtAC;
21329
28915
  friend class ::ExtACBuilderCoupling;
21330
28916
  friend class ::ExtACSyntaxCoupling;
21331
28917
  friend class ::ExtACTree;
21332
28918
  friend class ::ExtACKeywords;
21333
 
  friend class ::WinAsm;
21334
 
  friend class ::WinDeclSpecs;
21335
 
  friend class ::WinMemberExplSpec;
21336
 
  friend class ::WinTypeKeywords;
 
28919
  friend class ::ExtGnu;
21337
28920
  friend class ::PragmaOnceUnitState;
21338
28921
  friend class ::PragmaOnce;
21339
 
  friend class ::CCExprResolve;
21340
 
  friend class ::CExprResolve;
 
28922
  friend class ::CMatchSyntax;
21341
28923
 
21342
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28924
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21343
28925
 
21344
28926
public:
 
28927
  /** Constructor.
 
28928
   *  \param n The template class or function name.
 
28929
   *  \param a The template argument list. */
21345
28930
  CT_TemplateName (CTree *n, CTree *a) 
21346
28931
   { AddSon (n); AddSon (a); }
 
28932
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21347
28933
  static const char *NodeId ();
 
28934
  /** Get the name of the node. Can be compared with NodeId(). */
21348
28935
  const char *NodeName () const { return NodeId (); }
 
28936
  /** Get the template argument list. */
21349
28937
  CT_TemplateArgList *Arguments () const 
21350
28938
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
28939
  /** Get the template class or function name. */
21351
28940
  CT_SimpleName *TemplateName () const 
21352
28941
   { return (CT_SimpleName*)Son (Sons ()-2); }
21353
28942
  // may change in the future
21354
28943
  const char *Text () const { return TemplateName ()->Text (); }
21355
 
  // special new / delete with reusing memory
 
28944
 
 
28945
public:
 
28946
  /** Own new operator reusing memory. */
21356
28947
  void *operator new (size_t);
21357
 
  void  operator delete (void *);
 
28948
  /** Own delete operator. */
 
28949
  void operator delete (void *);
21358
28950
   private:
21359
28951
  typedef CT_TemplateName CCExprResolveExpr;
21360
28952
 
21361
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28953
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21362
28954
 public :
21363
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
28955
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21364
28956
  typedef CT_TemplateName CExprResolveExpr;
21365
28957
 
21366
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28958
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21367
28959
 public :
21368
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21369
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28960
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28961
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21370
28962
};
21371
28963
 
 
28964
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
28965
 *  Tree node representing the name of an overloaded operator. */
21372
28966
 
21373
 
#line 21374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
28967
#line 28968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21374
28968
} // closed Puma
 
28969
class CCExprResolve;
 
28970
class CExprResolve;
21375
28971
class WinIfExists;
21376
28972
class WinImportHandler;
21377
28973
class WinMacros;
21378
 
class CMatchSyntax;
21379
 
class ExtGnu;
 
28974
class WinAsm;
 
28975
class WinDeclSpecs;
 
28976
class WinMemberExplSpec;
 
28977
class WinTypeKeywords;
 
28978
class WinFriend;
21380
28979
class ExtAC;
21381
28980
class ExtACBuilderCoupling;
21382
28981
class ExtACSyntaxCoupling;
21383
28982
class ExtACTree;
21384
28983
class ExtACKeywords;
21385
 
class WinAsm;
21386
 
class WinDeclSpecs;
21387
 
class WinMemberExplSpec;
21388
 
class WinTypeKeywords;
 
28984
class ExtGnu;
21389
28985
class PragmaOnceUnitState;
21390
28986
class PragmaOnce;
21391
 
class CCExprResolve;
21392
 
class CExprResolve;
21393
 
namespace Puma {
21394
 
 
21395
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28987
class CMatchSyntax;
 
28988
namespace Puma {
 
28989
 
 
28990
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28991
 
 
28992
#line 28993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
28993
} // closed Puma
 
28994
 
 
28995
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28996
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28997
#include "CCExprResolveH.ah"
 
28998
#endif
 
28999
namespace Puma {
 
29000
 
 
29001
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29002
 
 
29003
#line 29004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29004
} // closed Puma
 
29005
 
 
29006
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29007
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29008
#include "CExprResolveH.ah"
 
29009
#endif
 
29010
namespace Puma {
 
29011
 
 
29012
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21396
29013
class CT_OperatorName : public CT_SpecialName {
21397
 
#line 21398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29014
#line 29015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29015
  friend class ::CCExprResolve;
 
29016
  friend class ::CExprResolve;
21398
29017
  friend class ::WinIfExists;
21399
29018
  friend class ::WinImportHandler;
21400
29019
  friend class ::WinMacros;
21401
 
  friend class ::CMatchSyntax;
21402
 
  friend class ::ExtGnu;
 
29020
  friend class ::WinAsm;
 
29021
  friend class ::WinDeclSpecs;
 
29022
  friend class ::WinMemberExplSpec;
 
29023
  friend class ::WinTypeKeywords;
 
29024
  friend class ::WinFriend;
21403
29025
  friend class ::ExtAC;
21404
29026
  friend class ::ExtACBuilderCoupling;
21405
29027
  friend class ::ExtACSyntaxCoupling;
21406
29028
  friend class ::ExtACTree;
21407
29029
  friend class ::ExtACKeywords;
21408
 
  friend class ::WinAsm;
21409
 
  friend class ::WinDeclSpecs;
21410
 
  friend class ::WinMemberExplSpec;
21411
 
  friend class ::WinTypeKeywords;
 
29030
  friend class ::ExtGnu;
21412
29031
  friend class ::PragmaOnceUnitState;
21413
29032
  friend class ::PragmaOnce;
21414
 
  friend class ::CCExprResolve;
21415
 
  friend class ::CExprResolve;
 
29033
  friend class ::CMatchSyntax;
21416
29034
 
21417
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29035
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21418
29036
 
21419
29037
  int _oper;
21420
29038
 
21421
29039
public:
21422
 
  enum { // complex operators
21423
 
    FCT_CALL = -100,
21424
 
    SUBSCRIPT,
21425
 
    NEW_ARRAY,
21426
 
    DEL_ARRAY
 
29040
  /** Complex operator types. */
 
29041
  enum { 
 
29042
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
29043
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
29044
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
29045
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
21427
29046
  };
21428
29047
 
21429
29048
public:
21430
 
  CT_OperatorName (CTree *);
21431
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
29049
  /** Constructor.
 
29050
   *  \param op The token containing the operator. */
 
29051
  CT_OperatorName (CTree *op);
 
29052
  /** Constructor.
 
29053
   *  \param f The operator function keyword 'operator'.
 
29054
   *  \param op The token containing the operator. 
 
29055
   *  \param o The token of '[' or '('.
 
29056
   *  \param c The token of ']' or ')'. */
 
29057
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
29058
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21432
29059
  static const char *NodeId ();
 
29060
  /** Get the name of the node. Can be compared with NodeId(). */
21433
29061
  const char *NodeName () const { return NodeId (); }
 
29062
  /** Get the operator type (either the token type or one of 
 
29063
   *  the complex operator types). */
21434
29064
  int Operator () const { return _oper; }
21435
 
  // special new / delete with reusing memory
 
29065
 
 
29066
public:
 
29067
  /** Own new operator reusing memory. */
21436
29068
  void *operator new (size_t);
21437
 
  void  operator delete (void *);
 
29069
  /** Own delete operator. */
 
29070
  void operator delete (void *);
21438
29071
   private:
21439
29072
  typedef CT_OperatorName CCExprResolveExpr;
21440
29073
 
21441
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29074
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21442
29075
 public :
21443
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29076
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21444
29077
  typedef CT_OperatorName CExprResolveExpr;
21445
29078
 
21446
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29079
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21447
29080
 public :
21448
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21449
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29081
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29082
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21450
29083
};
21451
29084
 
 
29085
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
29086
 *  Tree node representing the name of a conversion function. */
21452
29087
 
21453
 
#line 21454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29088
#line 29089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21454
29089
} // closed Puma
 
29090
class CCExprResolve;
 
29091
class CExprResolve;
21455
29092
class WinIfExists;
21456
29093
class WinImportHandler;
21457
29094
class WinMacros;
21458
 
class CMatchSyntax;
21459
 
class ExtGnu;
 
29095
class WinAsm;
 
29096
class WinDeclSpecs;
 
29097
class WinMemberExplSpec;
 
29098
class WinTypeKeywords;
 
29099
class WinFriend;
21460
29100
class ExtAC;
21461
29101
class ExtACBuilderCoupling;
21462
29102
class ExtACSyntaxCoupling;
21463
29103
class ExtACTree;
21464
29104
class ExtACKeywords;
21465
 
class WinAsm;
21466
 
class WinDeclSpecs;
21467
 
class WinMemberExplSpec;
21468
 
class WinTypeKeywords;
 
29105
class ExtGnu;
21469
29106
class PragmaOnceUnitState;
21470
29107
class PragmaOnce;
21471
 
class CCExprResolve;
21472
 
class CExprResolve;
21473
 
namespace Puma {
21474
 
 
21475
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29108
class CMatchSyntax;
 
29109
namespace Puma {
 
29110
 
 
29111
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29112
 
 
29113
#line 29114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29114
} // closed Puma
 
29115
 
 
29116
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29117
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29118
#include "CCExprResolveH.ah"
 
29119
#endif
 
29120
namespace Puma {
 
29121
 
 
29122
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29123
 
 
29124
#line 29125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29125
} // closed Puma
 
29126
 
 
29127
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29128
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29129
#include "CExprResolveH.ah"
 
29130
#endif
 
29131
namespace Puma {
 
29132
 
 
29133
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21476
29134
class CT_ConversionName : public CT_SpecialName {
21477
 
#line 21478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29135
#line 29136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29136
  friend class ::CCExprResolve;
 
29137
  friend class ::CExprResolve;
21478
29138
  friend class ::WinIfExists;
21479
29139
  friend class ::WinImportHandler;
21480
29140
  friend class ::WinMacros;
21481
 
  friend class ::CMatchSyntax;
21482
 
  friend class ::ExtGnu;
 
29141
  friend class ::WinAsm;
 
29142
  friend class ::WinDeclSpecs;
 
29143
  friend class ::WinMemberExplSpec;
 
29144
  friend class ::WinTypeKeywords;
 
29145
  friend class ::WinFriend;
21483
29146
  friend class ::ExtAC;
21484
29147
  friend class ::ExtACBuilderCoupling;
21485
29148
  friend class ::ExtACSyntaxCoupling;
21486
29149
  friend class ::ExtACTree;
21487
29150
  friend class ::ExtACKeywords;
21488
 
  friend class ::WinAsm;
21489
 
  friend class ::WinDeclSpecs;
21490
 
  friend class ::WinMemberExplSpec;
21491
 
  friend class ::WinTypeKeywords;
 
29151
  friend class ::ExtGnu;
21492
29152
  friend class ::PragmaOnceUnitState;
21493
29153
  friend class ::PragmaOnce;
21494
 
  friend class ::CCExprResolve;
21495
 
  friend class ::CExprResolve;
 
29154
  friend class ::CMatchSyntax;
21496
29155
 
21497
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29156
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21498
29157
 
21499
29158
public:
21500
 
  CT_ConversionName (CTree *, CTree *);
 
29159
  /** Constructor.
 
29160
   *  \param f The operator function keyword 'operator'.
 
29161
   *  \param t The sub-tree containing the conversion type. */
 
29162
  CT_ConversionName (CTree *f, CTree *t);
 
29163
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21501
29164
  static const char *NodeId ();
 
29165
  /** Get the name of the node. Can be compared with NodeId(). */
21502
29166
  const char *NodeName () const { return NodeId (); }
 
29167
  /** Get the conversion type. */
21503
29168
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
21504
 
  // special new / delete with reusing memory
 
29169
 
 
29170
public:
 
29171
  /** Own new operator reusing memory. */
21505
29172
  void *operator new (size_t);
21506
 
  void  operator delete (void *);
 
29173
  /** Own delete operator. */
 
29174
  void operator delete (void *);
21507
29175
   private:
21508
29176
  typedef CT_ConversionName CCExprResolveExpr;
21509
29177
 
21510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29178
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21511
29179
 public :
21512
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29180
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21513
29181
  typedef CT_ConversionName CExprResolveExpr;
21514
29182
 
21515
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29183
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21516
29184
 public :
21517
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21518
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29185
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29186
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21519
29187
};
21520
29188
 
 
29189
/** \class CT_QualName CTree.h Puma/CTree.h
 
29190
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
21521
29191
 
21522
 
#line 21523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29192
#line 29193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21523
29193
} // closed Puma
 
29194
class CCExprResolve;
 
29195
class CExprResolve;
21524
29196
class WinIfExists;
21525
29197
class WinImportHandler;
21526
29198
class WinMacros;
21527
 
class CMatchSyntax;
21528
 
class ExtGnu;
 
29199
class WinAsm;
 
29200
class WinDeclSpecs;
 
29201
class WinMemberExplSpec;
 
29202
class WinTypeKeywords;
 
29203
class WinFriend;
21529
29204
class ExtAC;
21530
29205
class ExtACBuilderCoupling;
21531
29206
class ExtACSyntaxCoupling;
21532
29207
class ExtACTree;
21533
29208
class ExtACKeywords;
21534
 
class WinAsm;
21535
 
class WinDeclSpecs;
21536
 
class WinMemberExplSpec;
21537
 
class WinTypeKeywords;
 
29209
class ExtGnu;
21538
29210
class PragmaOnceUnitState;
21539
29211
class PragmaOnce;
21540
 
class CCExprResolve;
21541
 
class CExprResolve;
21542
 
namespace Puma {
21543
 
 
21544
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29212
class CMatchSyntax;
 
29213
namespace Puma {
 
29214
 
 
29215
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29216
 
 
29217
#line 29218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29218
} // closed Puma
 
29219
 
 
29220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29222
#include "CCExprResolveH.ah"
 
29223
#endif
 
29224
namespace Puma {
 
29225
 
 
29226
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29227
 
 
29228
#line 29229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29229
} // closed Puma
 
29230
 
 
29231
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29232
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29233
#include "CExprResolveH.ah"
 
29234
#endif
 
29235
namespace Puma {
 
29236
 
 
29237
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21545
29238
class CT_QualName : public CT_SimpleName {
21546
 
#line 21547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29239
#line 29240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29240
  friend class ::CCExprResolve;
 
29241
  friend class ::CExprResolve;
21547
29242
  friend class ::WinIfExists;
21548
29243
  friend class ::WinImportHandler;
21549
29244
  friend class ::WinMacros;
21550
 
  friend class ::CMatchSyntax;
21551
 
  friend class ::ExtGnu;
 
29245
  friend class ::WinAsm;
 
29246
  friend class ::WinDeclSpecs;
 
29247
  friend class ::WinMemberExplSpec;
 
29248
  friend class ::WinTypeKeywords;
 
29249
  friend class ::WinFriend;
21552
29250
  friend class ::ExtAC;
21553
29251
  friend class ::ExtACBuilderCoupling;
21554
29252
  friend class ::ExtACSyntaxCoupling;
21555
29253
  friend class ::ExtACTree;
21556
29254
  friend class ::ExtACKeywords;
21557
 
  friend class ::WinAsm;
21558
 
  friend class ::WinDeclSpecs;
21559
 
  friend class ::WinMemberExplSpec;
21560
 
  friend class ::WinTypeKeywords;
 
29255
  friend class ::ExtGnu;
21561
29256
  friend class ::PragmaOnceUnitState;
21562
29257
  friend class ::PragmaOnce;
21563
 
  friend class ::CCExprResolve;
21564
 
  friend class ::CExprResolve;
 
29258
  friend class ::CMatchSyntax;
21565
29259
 
21566
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29260
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21567
29261
 
21568
29262
public:
 
29263
  /** Constructor.
 
29264
   *  \param size The initial number sub-names plus separators. */
21569
29265
  CT_QualName (int size = 3) : 
21570
29266
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
29267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21571
29268
  static const char *NodeId ();
 
29269
  /** Get the name of the node. Can be compared with NodeId(). */
21572
29270
  const char *NodeName () const { return NodeId (); }
21573
 
  void print (ostream &) const;
 
29271
  /** Print the qualified name on the given stream. 
 
29272
   *  \param os The output stream. */
 
29273
  void print (ostream &os) const;
 
29274
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
21574
29275
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
29276
  /** Get the string containing the last name of the qualified name. */
21575
29277
  const char *Text () const { return Name ()->Text (); }
 
29278
  /** Get the type of the last name. */
21576
29279
  CTypeInfo *Type () const { return Name ()->Type (); }
 
29280
  /** Get the value of the last name. */
21577
29281
  CExprValue *Value () const { return Name ()->Value (); }
 
29282
  /** Get the semantic value object of the last name. */
21578
29283
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
29284
  /** Get the semantic information object of the last name. */
21579
29285
  CSemObject *SemObject () const { return Name ()->SemObject (); }
21580
 
  // special new / delete with reusing memory
 
29286
 
 
29287
public:
 
29288
  /** Own new operator reusing memory. */
21581
29289
  void *operator new (size_t);
21582
 
  void  operator delete (void *);
 
29290
  /** Own delete operator. */
 
29291
  void operator delete (void *);
21583
29292
   private:
21584
29293
  typedef CT_QualName CCExprResolveExpr;
21585
29294
 
21586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29295
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21587
29296
 public :
21588
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29297
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21589
29298
  typedef CT_QualName CExprResolveExpr;
21590
29299
 
21591
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29300
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21592
29301
 public :
21593
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21594
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29302
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29303
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21595
29304
};
21596
29305
 
 
29306
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
29307
 *  Tree node representing a qualified name with introducing name separator,
 
29308
 *  e.g. ::X::Y::Z. */
21597
29309
 
21598
 
#line 21599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29310
#line 29311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21599
29311
} // closed Puma
 
29312
class CCExprResolve;
 
29313
class CExprResolve;
21600
29314
class WinIfExists;
21601
29315
class WinImportHandler;
21602
29316
class WinMacros;
21603
 
class CMatchSyntax;
21604
 
class ExtGnu;
 
29317
class WinAsm;
 
29318
class WinDeclSpecs;
 
29319
class WinMemberExplSpec;
 
29320
class WinTypeKeywords;
 
29321
class WinFriend;
21605
29322
class ExtAC;
21606
29323
class ExtACBuilderCoupling;
21607
29324
class ExtACSyntaxCoupling;
21608
29325
class ExtACTree;
21609
29326
class ExtACKeywords;
21610
 
class WinAsm;
21611
 
class WinDeclSpecs;
21612
 
class WinMemberExplSpec;
21613
 
class WinTypeKeywords;
 
29327
class ExtGnu;
21614
29328
class PragmaOnceUnitState;
21615
29329
class PragmaOnce;
21616
 
class CCExprResolve;
21617
 
class CExprResolve;
21618
 
namespace Puma {
21619
 
 
21620
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29330
class CMatchSyntax;
 
29331
namespace Puma {
 
29332
 
 
29333
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29334
 
 
29335
#line 29336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29336
} // closed Puma
 
29337
 
 
29338
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29339
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29340
#include "CCExprResolveH.ah"
 
29341
#endif
 
29342
namespace Puma {
 
29343
 
 
29344
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29345
 
 
29346
#line 29347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29347
} // closed Puma
 
29348
 
 
29349
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29350
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29351
#include "CExprResolveH.ah"
 
29352
#endif
 
29353
namespace Puma {
 
29354
 
 
29355
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21621
29356
class CT_RootQualName : public CT_QualName {
21622
 
#line 21623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29357
#line 29358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29358
  friend class ::CCExprResolve;
 
29359
  friend class ::CExprResolve;
21623
29360
  friend class ::WinIfExists;
21624
29361
  friend class ::WinImportHandler;
21625
29362
  friend class ::WinMacros;
21626
 
  friend class ::CMatchSyntax;
21627
 
  friend class ::ExtGnu;
 
29363
  friend class ::WinAsm;
 
29364
  friend class ::WinDeclSpecs;
 
29365
  friend class ::WinMemberExplSpec;
 
29366
  friend class ::WinTypeKeywords;
 
29367
  friend class ::WinFriend;
21628
29368
  friend class ::ExtAC;
21629
29369
  friend class ::ExtACBuilderCoupling;
21630
29370
  friend class ::ExtACSyntaxCoupling;
21631
29371
  friend class ::ExtACTree;
21632
29372
  friend class ::ExtACKeywords;
21633
 
  friend class ::WinAsm;
21634
 
  friend class ::WinDeclSpecs;
21635
 
  friend class ::WinMemberExplSpec;
21636
 
  friend class ::WinTypeKeywords;
 
29373
  friend class ::ExtGnu;
21637
29374
  friend class ::PragmaOnceUnitState;
21638
29375
  friend class ::PragmaOnce;
21639
 
  friend class ::CCExprResolve;
21640
 
  friend class ::CExprResolve;
 
29376
  friend class ::CMatchSyntax;
21641
29377
 
21642
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29378
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21643
29379
 
21644
29380
public:
 
29381
  /** Constructor.
 
29382
   *  \param size Initial number of sub-name plus separator. */
21645
29383
  CT_RootQualName (int size = 2) : 
21646
29384
    CT_QualName (size) { AddProperties (INTRO); }
 
29385
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21647
29386
  static const char *NodeId ();
 
29387
  /** Get the name of the node. Can be compared with NodeId(). */
21648
29388
  const char *NodeName () const { return NodeId (); }
21649
 
  // special new / delete with reusing memory
 
29389
 
 
29390
public:
 
29391
  /** Own new operator reusing memory. */
21650
29392
  void *operator new (size_t);
21651
 
  void  operator delete (void *);
 
29393
  /** Own delete operator. */
 
29394
  void operator delete (void *);
21652
29395
   private:
21653
29396
  typedef CT_RootQualName CCExprResolveExpr;
21654
29397
 
21655
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29398
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21656
29399
 public :
21657
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29400
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21658
29401
  typedef CT_RootQualName CExprResolveExpr;
21659
29402
 
21660
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29403
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21661
29404
 public :
21662
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21663
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29405
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29406
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21664
29407
};
21665
29408
 
 
29409
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
29410
 *  Tree node representing a binary expression, e.g. a+b. */
21666
29411
 
21667
 
#line 21668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29412
#line 29413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21668
29413
} // closed Puma
 
29414
class CCExprResolve;
 
29415
class CExprResolve;
21669
29416
class WinIfExists;
21670
29417
class WinImportHandler;
21671
29418
class WinMacros;
21672
 
class CMatchSyntax;
21673
 
class ExtGnu;
 
29419
class WinAsm;
 
29420
class WinDeclSpecs;
 
29421
class WinMemberExplSpec;
 
29422
class WinTypeKeywords;
 
29423
class WinFriend;
21674
29424
class ExtAC;
21675
29425
class ExtACBuilderCoupling;
21676
29426
class ExtACSyntaxCoupling;
21677
29427
class ExtACTree;
21678
29428
class ExtACKeywords;
21679
 
class WinAsm;
21680
 
class WinDeclSpecs;
21681
 
class WinMemberExplSpec;
21682
 
class WinTypeKeywords;
 
29429
class ExtGnu;
21683
29430
class PragmaOnceUnitState;
21684
29431
class PragmaOnce;
21685
 
class CCExprResolve;
21686
 
class CExprResolve;
21687
 
namespace Puma {
21688
 
 
21689
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21690
 
class CT_BinaryExpr : public CT_Expression {
21691
 
#line 21692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29432
class CMatchSyntax;
 
29433
namespace Puma {
 
29434
 
 
29435
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29436
 
 
29437
#line 29438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29438
} // closed Puma
 
29439
 
 
29440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29442
#include "CCExprResolveH.ah"
 
29443
#endif
 
29444
namespace Puma {
 
29445
 
 
29446
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29447
 
 
29448
#line 29449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29449
} // closed Puma
 
29450
 
 
29451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29453
#include "CExprResolveH.ah"
 
29454
#endif
 
29455
namespace Puma {
 
29456
 
 
29457
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29458
class CT_BinaryExpr : public CT_Call {
 
29459
#line 29460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29460
  friend class ::CCExprResolve;
 
29461
  friend class ::CExprResolve;
21692
29462
  friend class ::WinIfExists;
21693
29463
  friend class ::WinImportHandler;
21694
29464
  friend class ::WinMacros;
21695
 
  friend class ::CMatchSyntax;
21696
 
  friend class ::ExtGnu;
 
29465
  friend class ::WinAsm;
 
29466
  friend class ::WinDeclSpecs;
 
29467
  friend class ::WinMemberExplSpec;
 
29468
  friend class ::WinTypeKeywords;
 
29469
  friend class ::WinFriend;
21697
29470
  friend class ::ExtAC;
21698
29471
  friend class ::ExtACBuilderCoupling;
21699
29472
  friend class ::ExtACSyntaxCoupling;
21700
29473
  friend class ::ExtACTree;
21701
29474
  friend class ::ExtACKeywords;
21702
 
  friend class ::WinAsm;
21703
 
  friend class ::WinDeclSpecs;
21704
 
  friend class ::WinMemberExplSpec;
21705
 
  friend class ::WinTypeKeywords;
 
29475
  friend class ::ExtGnu;
21706
29476
  friend class ::PragmaOnceUnitState;
21707
29477
  friend class ::PragmaOnce;
21708
 
  friend class ::CCExprResolve;
21709
 
  friend class ::CExprResolve;
 
29478
  friend class ::CMatchSyntax;
21710
29479
 
21711
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29480
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21712
29481
 
21713
29482
  CTree *sons[3]; // expr, oper, expr
21714
29483
 
21715
29484
public:
 
29485
  /** Constructor. 
 
29486
   *  \param l Left hand side of the expression. 
 
29487
   *  \param o The operator token. 
 
29488
   *  \param r Right hand side of the expression. */
21716
29489
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
21717
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
29490
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
21718
29491
  }
 
29492
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21719
29493
  static const char *NodeId ();
 
29494
  /** Get the name of the node. Can be compared with NodeId(). */
21720
29495
  const char *NodeName () const { return NodeId (); }
 
29496
  /** Get the number of sons. */
21721
29497
  int Sons () const { return 3; }
 
29498
  /** Get the n-th son.
 
29499
   *  \param n The index of the son.
 
29500
   *  \return The n-th son or NULL. */
21722
29501
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
29502
  /** Replace a son.
 
29503
   *  \param old_son The son to replace.
 
29504
   *  \param new_son The new son. */
21723
29505
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21724
29506
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21725
29507
  }
21726
29508
   private:
21727
29509
  typedef CT_BinaryExpr CCExprResolveExpr;
21728
29510
 
21729
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29511
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21730
29512
 public :
21731
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29513
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21732
29514
  typedef CT_BinaryExpr CExprResolveExpr;
21733
29515
 
21734
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29516
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21735
29517
 public :
21736
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21737
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29518
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29519
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21738
29520
};
21739
29521
 
 
29522
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
29523
 *  Tree node representing a member pointer expression, e.g. a->b. */
21740
29524
 
21741
 
#line 21742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29525
#line 29526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21742
29526
} // closed Puma
 
29527
class CCExprResolve;
 
29528
class CExprResolve;
21743
29529
class WinIfExists;
21744
29530
class WinImportHandler;
21745
29531
class WinMacros;
21746
 
class CMatchSyntax;
21747
 
class ExtGnu;
 
29532
class WinAsm;
 
29533
class WinDeclSpecs;
 
29534
class WinMemberExplSpec;
 
29535
class WinTypeKeywords;
 
29536
class WinFriend;
21748
29537
class ExtAC;
21749
29538
class ExtACBuilderCoupling;
21750
29539
class ExtACSyntaxCoupling;
21751
29540
class ExtACTree;
21752
29541
class ExtACKeywords;
21753
 
class WinAsm;
21754
 
class WinDeclSpecs;
21755
 
class WinMemberExplSpec;
21756
 
class WinTypeKeywords;
 
29542
class ExtGnu;
21757
29543
class PragmaOnceUnitState;
21758
29544
class PragmaOnce;
21759
 
class CCExprResolve;
21760
 
class CExprResolve;
21761
 
namespace Puma {
21762
 
 
21763
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21764
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
21765
 
#line 21766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29545
class CMatchSyntax;
 
29546
namespace Puma {
 
29547
 
 
29548
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29549
 
 
29550
#line 29551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29551
} // closed Puma
 
29552
 
 
29553
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29554
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29555
#include "CCExprResolveH.ah"
 
29556
#endif
 
29557
namespace Puma {
 
29558
 
 
29559
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29560
 
 
29561
#line 29562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29562
} // closed Puma
 
29563
 
 
29564
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29565
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29566
#include "CExprResolveH.ah"
 
29567
#endif
 
29568
namespace Puma {
 
29569
 
 
29570
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29571
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
29572
#line 29573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29573
  friend class ::CCExprResolve;
 
29574
  friend class ::CExprResolve;
21766
29575
  friend class ::WinIfExists;
21767
29576
  friend class ::WinImportHandler;
21768
29577
  friend class ::WinMacros;
21769
 
  friend class ::CMatchSyntax;
21770
 
  friend class ::ExtGnu;
 
29578
  friend class ::WinAsm;
 
29579
  friend class ::WinDeclSpecs;
 
29580
  friend class ::WinMemberExplSpec;
 
29581
  friend class ::WinTypeKeywords;
 
29582
  friend class ::WinFriend;
21771
29583
  friend class ::ExtAC;
21772
29584
  friend class ::ExtACBuilderCoupling;
21773
29585
  friend class ::ExtACSyntaxCoupling;
21774
29586
  friend class ::ExtACTree;
21775
29587
  friend class ::ExtACKeywords;
21776
 
  friend class ::WinAsm;
21777
 
  friend class ::WinDeclSpecs;
21778
 
  friend class ::WinMemberExplSpec;
21779
 
  friend class ::WinTypeKeywords;
 
29588
  friend class ::ExtGnu;
21780
29589
  friend class ::PragmaOnceUnitState;
21781
29590
  friend class ::PragmaOnce;
21782
 
  friend class ::CCExprResolve;
21783
 
  friend class ::CExprResolve;
21784
 
 
21785
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21786
 
 
 
29591
  friend class ::CMatchSyntax;
 
29592
 
 
29593
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29594
 
 
29595
  CTree *sons[3]; // expr, oper, expr
 
29596
  
21787
29597
public:
21788
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
21789
 
    CT_BinaryExpr (e, o, i) {}
 
29598
  /** Constructor.
 
29599
   *  \param e Expression on which to call the member.
 
29600
   *  \param o The arrow operator token.
 
29601
   *  \param i The member name. */
 
29602
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
29603
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
29604
  }
 
29605
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21790
29606
  static const char *NodeId ();
 
29607
  /** Get the name of the node. Can be compared with NodeId(). */
21791
29608
  const char *NodeName () const { return NodeId (); }
21792
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
29609
  /** Get the number of sons. */
 
29610
  int Sons () const { return 3; }
 
29611
  /** Get the n-th son.
 
29612
   *  \param n The index of the son.
 
29613
   *  \return The n-th son or NULL. */
 
29614
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
29615
  /** Replace a son.
 
29616
   *  \param old_son The son to replace.
 
29617
   *  \param new_son The new son. */
 
29618
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29619
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
29620
  }
21793
29621
   private:
21794
29622
  typedef CT_MembPtrExpr CCExprResolveExpr;
21795
29623
 
21796
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29624
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21797
29625
 public :
21798
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29626
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21799
29627
  typedef CT_MembPtrExpr CExprResolveExpr;
21800
29628
 
21801
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29629
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21802
29630
 public :
21803
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21804
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29631
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29632
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21805
29633
};
21806
29634
 
 
29635
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
29636
 *  Tree node representing a member reference expression, e.g. a.b. */
21807
29637
 
21808
 
#line 21809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29638
#line 29639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21809
29639
} // closed Puma
 
29640
class CCExprResolve;
 
29641
class CExprResolve;
21810
29642
class WinIfExists;
21811
29643
class WinImportHandler;
21812
29644
class WinMacros;
21813
 
class CMatchSyntax;
21814
 
class ExtGnu;
 
29645
class WinAsm;
 
29646
class WinDeclSpecs;
 
29647
class WinMemberExplSpec;
 
29648
class WinTypeKeywords;
 
29649
class WinFriend;
21815
29650
class ExtAC;
21816
29651
class ExtACBuilderCoupling;
21817
29652
class ExtACSyntaxCoupling;
21818
29653
class ExtACTree;
21819
29654
class ExtACKeywords;
21820
 
class WinAsm;
21821
 
class WinDeclSpecs;
21822
 
class WinMemberExplSpec;
21823
 
class WinTypeKeywords;
 
29655
class ExtGnu;
21824
29656
class PragmaOnceUnitState;
21825
29657
class PragmaOnce;
21826
 
class CCExprResolve;
21827
 
class CExprResolve;
21828
 
namespace Puma {
21829
 
 
21830
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29658
class CMatchSyntax;
 
29659
namespace Puma {
 
29660
 
 
29661
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29662
 
 
29663
#line 29664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29664
} // closed Puma
 
29665
 
 
29666
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29667
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29668
#include "CCExprResolveH.ah"
 
29669
#endif
 
29670
namespace Puma {
 
29671
 
 
29672
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29673
 
 
29674
#line 29675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29675
} // closed Puma
 
29676
 
 
29677
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29678
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29679
#include "CExprResolveH.ah"
 
29680
#endif
 
29681
namespace Puma {
 
29682
 
 
29683
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21831
29684
class CT_MembRefExpr : public CT_MembPtrExpr {
21832
 
#line 21833 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29685
#line 29686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29686
  friend class ::CCExprResolve;
 
29687
  friend class ::CExprResolve;
21833
29688
  friend class ::WinIfExists;
21834
29689
  friend class ::WinImportHandler;
21835
29690
  friend class ::WinMacros;
21836
 
  friend class ::CMatchSyntax;
21837
 
  friend class ::ExtGnu;
 
29691
  friend class ::WinAsm;
 
29692
  friend class ::WinDeclSpecs;
 
29693
  friend class ::WinMemberExplSpec;
 
29694
  friend class ::WinTypeKeywords;
 
29695
  friend class ::WinFriend;
21838
29696
  friend class ::ExtAC;
21839
29697
  friend class ::ExtACBuilderCoupling;
21840
29698
  friend class ::ExtACSyntaxCoupling;
21841
29699
  friend class ::ExtACTree;
21842
29700
  friend class ::ExtACKeywords;
21843
 
  friend class ::WinAsm;
21844
 
  friend class ::WinDeclSpecs;
21845
 
  friend class ::WinMemberExplSpec;
21846
 
  friend class ::WinTypeKeywords;
 
29701
  friend class ::ExtGnu;
21847
29702
  friend class ::PragmaOnceUnitState;
21848
29703
  friend class ::PragmaOnce;
21849
 
  friend class ::CCExprResolve;
21850
 
  friend class ::CExprResolve;
 
29704
  friend class ::CMatchSyntax;
21851
29705
 
21852
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29706
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21853
29707
 
21854
29708
public:
 
29709
  /** Constructor.
 
29710
   *  \param e Expression on which to call the member.
 
29711
   *  \param o The dot operator.
 
29712
   *  \param i The member name. */
21855
29713
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
21856
29714
    CT_MembPtrExpr (e, o, i) {}
 
29715
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21857
29716
  static const char *NodeId ();
 
29717
  /** Get the name of the node. Can be compared with NodeId(). */
21858
29718
  const char *NodeName () const { return NodeId (); }
21859
29719
   private:
21860
29720
  typedef CT_MembRefExpr CCExprResolveExpr;
21861
29721
 
21862
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29722
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21863
29723
 public :
21864
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29724
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21865
29725
  typedef CT_MembRefExpr CExprResolveExpr;
21866
29726
 
21867
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29727
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21868
29728
 public :
21869
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21870
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29729
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29730
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21871
29731
};
21872
29732
 
 
29733
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
29734
 *  Base class for tree nodes representing unary expressions. */
21873
29735
 
21874
 
#line 21875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29736
#line 29737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21875
29737
} // closed Puma
 
29738
class CCExprResolve;
 
29739
class CExprResolve;
21876
29740
class WinIfExists;
21877
29741
class WinImportHandler;
21878
29742
class WinMacros;
21879
 
class CMatchSyntax;
21880
 
class ExtGnu;
 
29743
class WinAsm;
 
29744
class WinDeclSpecs;
 
29745
class WinMemberExplSpec;
 
29746
class WinTypeKeywords;
 
29747
class WinFriend;
21881
29748
class ExtAC;
21882
29749
class ExtACBuilderCoupling;
21883
29750
class ExtACSyntaxCoupling;
21884
29751
class ExtACTree;
21885
29752
class ExtACKeywords;
21886
 
class WinAsm;
21887
 
class WinDeclSpecs;
21888
 
class WinMemberExplSpec;
21889
 
class WinTypeKeywords;
 
29753
class ExtGnu;
21890
29754
class PragmaOnceUnitState;
21891
29755
class PragmaOnce;
21892
 
class CCExprResolve;
21893
 
class CExprResolve;
21894
 
namespace Puma {
21895
 
 
21896
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21897
 
class CT_UnaryExpr : public CT_Expression {
21898
 
#line 21899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29756
class CMatchSyntax;
 
29757
namespace Puma {
 
29758
 
 
29759
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29760
 
 
29761
#line 29762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29762
} // closed Puma
 
29763
 
 
29764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29766
#include "CCExprResolveH.ah"
 
29767
#endif
 
29768
namespace Puma {
 
29769
 
 
29770
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29771
 
 
29772
#line 29773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29773
} // closed Puma
 
29774
 
 
29775
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29776
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29777
#include "CExprResolveH.ah"
 
29778
#endif
 
29779
namespace Puma {
 
29780
 
 
29781
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29782
class CT_UnaryExpr : public CT_Call {
 
29783
#line 29784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29784
  friend class ::CCExprResolve;
 
29785
  friend class ::CExprResolve;
21899
29786
  friend class ::WinIfExists;
21900
29787
  friend class ::WinImportHandler;
21901
29788
  friend class ::WinMacros;
21902
 
  friend class ::CMatchSyntax;
21903
 
  friend class ::ExtGnu;
 
29789
  friend class ::WinAsm;
 
29790
  friend class ::WinDeclSpecs;
 
29791
  friend class ::WinMemberExplSpec;
 
29792
  friend class ::WinTypeKeywords;
 
29793
  friend class ::WinFriend;
21904
29794
  friend class ::ExtAC;
21905
29795
  friend class ::ExtACBuilderCoupling;
21906
29796
  friend class ::ExtACSyntaxCoupling;
21907
29797
  friend class ::ExtACTree;
21908
29798
  friend class ::ExtACKeywords;
21909
 
  friend class ::WinAsm;
21910
 
  friend class ::WinDeclSpecs;
21911
 
  friend class ::WinMemberExplSpec;
21912
 
  friend class ::WinTypeKeywords;
 
29799
  friend class ::ExtGnu;
21913
29800
  friend class ::PragmaOnceUnitState;
21914
29801
  friend class ::PragmaOnce;
21915
 
  friend class ::CCExprResolve;
21916
 
  friend class ::CExprResolve;
 
29802
  friend class ::CMatchSyntax;
21917
29803
 
21918
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29804
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21919
29805
 
21920
29806
  CTree *sons[2]; // oper, expr
21921
29807
 
21922
29808
public:
21923
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
29809
  /** Constructor.
 
29810
   *  \param o The unary operator.
 
29811
   *  \param e The expression on which the operator is invoked. */
 
29812
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
29813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21924
29814
  static const char *NodeId ();
 
29815
  /** Get the name of the node. Can be compared with NodeId(). */
21925
29816
  const char *NodeName () const { return NodeId (); }
 
29817
  /** Get the number of sons. */
21926
29818
  int Sons () const { return 2; }
 
29819
  /** Get the n-th son.
 
29820
   *  \param n The index of the son.
 
29821
   *  \return The n-th son or NULL. */
21927
29822
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
29823
  /** Replace a son.
 
29824
   *  \param old_son The son to replace.
 
29825
   *  \param new_son The new son. */
21928
29826
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21929
29827
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21930
29828
  }
 
29829
  /** Get the expression node. */
21931
29830
  CTree *Expr () const { return sons[1]; }
21932
29831
   private:
21933
29832
  typedef CT_UnaryExpr CCExprResolveExpr;
21934
29833
 
21935
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29834
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
21936
29835
 public :
21937
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29836
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
21938
29837
  typedef CT_UnaryExpr CExprResolveExpr;
21939
29838
 
21940
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29839
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
21941
29840
 public :
21942
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
21943
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29841
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29842
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21944
29843
};
21945
29844
 
 
29845
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
29846
 *  Tree node representing a postfix expression, e.g. a++. */
21946
29847
 
21947
 
#line 21948 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29848
#line 29849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
21948
29849
} // closed Puma
 
29850
class CCExprResolve;
 
29851
class CExprResolve;
21949
29852
class WinIfExists;
21950
29853
class WinImportHandler;
21951
29854
class WinMacros;
21952
 
class CMatchSyntax;
21953
 
class ExtGnu;
 
29855
class WinAsm;
 
29856
class WinDeclSpecs;
 
29857
class WinMemberExplSpec;
 
29858
class WinTypeKeywords;
 
29859
class WinFriend;
21954
29860
class ExtAC;
21955
29861
class ExtACBuilderCoupling;
21956
29862
class ExtACSyntaxCoupling;
21957
29863
class ExtACTree;
21958
29864
class ExtACKeywords;
21959
 
class WinAsm;
21960
 
class WinDeclSpecs;
21961
 
class WinMemberExplSpec;
21962
 
class WinTypeKeywords;
 
29865
class ExtGnu;
21963
29866
class PragmaOnceUnitState;
21964
29867
class PragmaOnce;
21965
 
class CCExprResolve;
21966
 
class CExprResolve;
21967
 
namespace Puma {
21968
 
 
21969
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29868
class CMatchSyntax;
 
29869
namespace Puma {
 
29870
 
 
29871
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29872
 
 
29873
#line 29874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29874
} // closed Puma
 
29875
 
 
29876
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29877
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29878
#include "CCExprResolveH.ah"
 
29879
#endif
 
29880
namespace Puma {
 
29881
 
 
29882
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29883
 
 
29884
#line 29885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29885
} // closed Puma
 
29886
 
 
29887
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29888
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29889
#include "CExprResolveH.ah"
 
29890
#endif
 
29891
namespace Puma {
 
29892
 
 
29893
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21970
29894
class CT_PostfixExpr : public CT_UnaryExpr {
21971
 
#line 21972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29895
#line 29896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29896
  friend class ::CCExprResolve;
 
29897
  friend class ::CExprResolve;
21972
29898
  friend class ::WinIfExists;
21973
29899
  friend class ::WinImportHandler;
21974
29900
  friend class ::WinMacros;
21975
 
  friend class ::CMatchSyntax;
21976
 
  friend class ::ExtGnu;
 
29901
  friend class ::WinAsm;
 
29902
  friend class ::WinDeclSpecs;
 
29903
  friend class ::WinMemberExplSpec;
 
29904
  friend class ::WinTypeKeywords;
 
29905
  friend class ::WinFriend;
21977
29906
  friend class ::ExtAC;
21978
29907
  friend class ::ExtACBuilderCoupling;
21979
29908
  friend class ::ExtACSyntaxCoupling;
21980
29909
  friend class ::ExtACTree;
21981
29910
  friend class ::ExtACKeywords;
21982
 
  friend class ::WinAsm;
21983
 
  friend class ::WinDeclSpecs;
21984
 
  friend class ::WinMemberExplSpec;
21985
 
  friend class ::WinTypeKeywords;
 
29911
  friend class ::ExtGnu;
21986
29912
  friend class ::PragmaOnceUnitState;
21987
29913
  friend class ::PragmaOnce;
21988
 
  friend class ::CCExprResolve;
21989
 
  friend class ::CExprResolve;
 
29914
  friend class ::CMatchSyntax;
21990
29915
 
21991
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29916
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
21992
29917
 
21993
29918
public:
 
29919
  /** Constructor.
 
29920
   *  \param e The expression on which to invoke the operator. 
 
29921
   *  \param o The postfix operator. */
21994
29922
  CT_PostfixExpr (CTree *e, CTree *o) :
21995
29923
    CT_UnaryExpr (e, o) {}
 
29924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
21996
29925
  static const char *NodeId ();
 
29926
  /** Get the name of the node. Can be compared with NodeId(). */
21997
29927
  const char *NodeName () const { return NodeId (); }
21998
29928
   private:
21999
29929
  typedef CT_PostfixExpr CCExprResolveExpr;
22000
29930
 
22001
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29931
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22002
29932
 public :
22003
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
29933
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22004
29934
  typedef CT_PostfixExpr CExprResolveExpr;
22005
29935
 
22006
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29936
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22007
29937
 public :
22008
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22009
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29938
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29939
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22010
29940
};
22011
29941
 
 
29942
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
29943
 *  Tree node representing an address expression, e.g. &a. */
22012
29944
 
22013
 
#line 22014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29945
#line 29946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22014
29946
} // closed Puma
 
29947
class CCExprResolve;
 
29948
class CExprResolve;
22015
29949
class WinIfExists;
22016
29950
class WinImportHandler;
22017
29951
class WinMacros;
22018
 
class CMatchSyntax;
22019
 
class ExtGnu;
 
29952
class WinAsm;
 
29953
class WinDeclSpecs;
 
29954
class WinMemberExplSpec;
 
29955
class WinTypeKeywords;
 
29956
class WinFriend;
22020
29957
class ExtAC;
22021
29958
class ExtACBuilderCoupling;
22022
29959
class ExtACSyntaxCoupling;
22023
29960
class ExtACTree;
22024
29961
class ExtACKeywords;
22025
 
class WinAsm;
22026
 
class WinDeclSpecs;
22027
 
class WinMemberExplSpec;
22028
 
class WinTypeKeywords;
 
29962
class ExtGnu;
22029
29963
class PragmaOnceUnitState;
22030
29964
class PragmaOnce;
22031
 
class CCExprResolve;
22032
 
class CExprResolve;
22033
 
namespace Puma {
22034
 
 
22035
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29965
class CMatchSyntax;
 
29966
namespace Puma {
 
29967
 
 
29968
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29969
 
 
29970
#line 29971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29971
} // closed Puma
 
29972
 
 
29973
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29974
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29975
#include "CCExprResolveH.ah"
 
29976
#endif
 
29977
namespace Puma {
 
29978
 
 
29979
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29980
 
 
29981
#line 29982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29982
} // closed Puma
 
29983
 
 
29984
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29985
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29986
#include "CExprResolveH.ah"
 
29987
#endif
 
29988
namespace Puma {
 
29989
 
 
29990
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22036
29991
class CT_AddrExpr : public CT_UnaryExpr {
22037
 
#line 22038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
29992
#line 29993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
29993
  friend class ::CCExprResolve;
 
29994
  friend class ::CExprResolve;
22038
29995
  friend class ::WinIfExists;
22039
29996
  friend class ::WinImportHandler;
22040
29997
  friend class ::WinMacros;
22041
 
  friend class ::CMatchSyntax;
22042
 
  friend class ::ExtGnu;
 
29998
  friend class ::WinAsm;
 
29999
  friend class ::WinDeclSpecs;
 
30000
  friend class ::WinMemberExplSpec;
 
30001
  friend class ::WinTypeKeywords;
 
30002
  friend class ::WinFriend;
22043
30003
  friend class ::ExtAC;
22044
30004
  friend class ::ExtACBuilderCoupling;
22045
30005
  friend class ::ExtACSyntaxCoupling;
22046
30006
  friend class ::ExtACTree;
22047
30007
  friend class ::ExtACKeywords;
22048
 
  friend class ::WinAsm;
22049
 
  friend class ::WinDeclSpecs;
22050
 
  friend class ::WinMemberExplSpec;
22051
 
  friend class ::WinTypeKeywords;
 
30008
  friend class ::ExtGnu;
22052
30009
  friend class ::PragmaOnceUnitState;
22053
30010
  friend class ::PragmaOnce;
22054
 
  friend class ::CCExprResolve;
22055
 
  friend class ::CExprResolve;
 
30011
  friend class ::CMatchSyntax;
22056
30012
 
22057
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30013
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22058
30014
 
22059
30015
public:
 
30016
  /** Constructor.
 
30017
   *  \param o The address operator, i.e. '&'.
 
30018
   *  \param e The expression from which to take the address. */
22060
30019
  CT_AddrExpr (CTree *o, CTree *e) :
22061
30020
    CT_UnaryExpr (o, e) {}
 
30021
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22062
30022
  static const char *NodeId ();
 
30023
  /** Get the name of the node. Can be compared with NodeId(). */
22063
30024
  const char *NodeName () const { return NodeId (); }
22064
30025
   private:
22065
30026
  typedef CT_AddrExpr CCExprResolveExpr;
22066
30027
 
22067
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30028
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22068
30029
 public :
22069
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30030
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22070
30031
  typedef CT_AddrExpr CExprResolveExpr;
22071
30032
 
22072
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22073
30034
 public :
22074
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22075
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30035
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30036
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22076
30037
};
22077
30038
 
 
30039
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
30040
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
22078
30041
 
22079
 
#line 22080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30042
#line 30043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22080
30043
} // closed Puma
 
30044
class CCExprResolve;
 
30045
class CExprResolve;
22081
30046
class WinIfExists;
22082
30047
class WinImportHandler;
22083
30048
class WinMacros;
22084
 
class CMatchSyntax;
22085
 
class ExtGnu;
 
30049
class WinAsm;
 
30050
class WinDeclSpecs;
 
30051
class WinMemberExplSpec;
 
30052
class WinTypeKeywords;
 
30053
class WinFriend;
22086
30054
class ExtAC;
22087
30055
class ExtACBuilderCoupling;
22088
30056
class ExtACSyntaxCoupling;
22089
30057
class ExtACTree;
22090
30058
class ExtACKeywords;
22091
 
class WinAsm;
22092
 
class WinDeclSpecs;
22093
 
class WinMemberExplSpec;
22094
 
class WinTypeKeywords;
 
30059
class ExtGnu;
22095
30060
class PragmaOnceUnitState;
22096
30061
class PragmaOnce;
22097
 
class CCExprResolve;
22098
 
class CExprResolve;
22099
 
namespace Puma {
22100
 
 
22101
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30062
class CMatchSyntax;
 
30063
namespace Puma {
 
30064
 
 
30065
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30066
 
 
30067
#line 30068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30068
} // closed Puma
 
30069
 
 
30070
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30071
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30072
#include "CCExprResolveH.ah"
 
30073
#endif
 
30074
namespace Puma {
 
30075
 
 
30076
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30077
 
 
30078
#line 30079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30079
} // closed Puma
 
30080
 
 
30081
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30082
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30083
#include "CExprResolveH.ah"
 
30084
#endif
 
30085
namespace Puma {
 
30086
 
 
30087
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22102
30088
class CT_DerefExpr : public CT_UnaryExpr {
22103
 
#line 22104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30089
#line 30090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30090
  friend class ::CCExprResolve;
 
30091
  friend class ::CExprResolve;
22104
30092
  friend class ::WinIfExists;
22105
30093
  friend class ::WinImportHandler;
22106
30094
  friend class ::WinMacros;
22107
 
  friend class ::CMatchSyntax;
22108
 
  friend class ::ExtGnu;
 
30095
  friend class ::WinAsm;
 
30096
  friend class ::WinDeclSpecs;
 
30097
  friend class ::WinMemberExplSpec;
 
30098
  friend class ::WinTypeKeywords;
 
30099
  friend class ::WinFriend;
22109
30100
  friend class ::ExtAC;
22110
30101
  friend class ::ExtACBuilderCoupling;
22111
30102
  friend class ::ExtACSyntaxCoupling;
22112
30103
  friend class ::ExtACTree;
22113
30104
  friend class ::ExtACKeywords;
22114
 
  friend class ::WinAsm;
22115
 
  friend class ::WinDeclSpecs;
22116
 
  friend class ::WinMemberExplSpec;
22117
 
  friend class ::WinTypeKeywords;
 
30105
  friend class ::ExtGnu;
22118
30106
  friend class ::PragmaOnceUnitState;
22119
30107
  friend class ::PragmaOnce;
22120
 
  friend class ::CCExprResolve;
22121
 
  friend class ::CExprResolve;
 
30108
  friend class ::CMatchSyntax;
22122
30109
 
22123
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30110
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22124
30111
 
22125
30112
public:
 
30113
  /** Constructor.
 
30114
   *  \param o The dereferencing operator, i.e. '*'.
 
30115
   *  \param e The expression to dereference. */
22126
30116
  CT_DerefExpr (CTree *o, CTree *e) :
22127
30117
    CT_UnaryExpr (o, e) {}
 
30118
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22128
30119
  static const char *NodeId ();
 
30120
  /** Get the name of the node. Can be compared with NodeId(). */
22129
30121
  const char *NodeName () const { return NodeId (); }
22130
30122
   private:
22131
30123
  typedef CT_DerefExpr CCExprResolveExpr;
22132
30124
 
22133
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30125
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22134
30126
 public :
22135
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30127
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22136
30128
  typedef CT_DerefExpr CExprResolveExpr;
22137
30129
 
22138
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30130
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22139
30131
 public :
22140
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22141
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30132
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30133
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22142
30134
};
22143
30135
 
 
30136
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
30137
 *  Tree node representing a delete expression, e.g. delete a. */
22144
30138
 
22145
 
#line 22146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30139
#line 30140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22146
30140
} // closed Puma
 
30141
class CCExprResolve;
 
30142
class CExprResolve;
22147
30143
class WinIfExists;
22148
30144
class WinImportHandler;
22149
30145
class WinMacros;
22150
 
class CMatchSyntax;
22151
 
class ExtGnu;
 
30146
class WinAsm;
 
30147
class WinDeclSpecs;
 
30148
class WinMemberExplSpec;
 
30149
class WinTypeKeywords;
 
30150
class WinFriend;
22152
30151
class ExtAC;
22153
30152
class ExtACBuilderCoupling;
22154
30153
class ExtACSyntaxCoupling;
22155
30154
class ExtACTree;
22156
30155
class ExtACKeywords;
22157
 
class WinAsm;
22158
 
class WinDeclSpecs;
22159
 
class WinMemberExplSpec;
22160
 
class WinTypeKeywords;
 
30156
class ExtGnu;
22161
30157
class PragmaOnceUnitState;
22162
30158
class PragmaOnce;
22163
 
class CCExprResolve;
22164
 
class CExprResolve;
22165
 
namespace Puma {
22166
 
 
22167
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30159
class CMatchSyntax;
 
30160
namespace Puma {
 
30161
 
 
30162
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30163
 
 
30164
#line 30165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30165
} // closed Puma
 
30166
 
 
30167
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30168
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30169
#include "CCExprResolveH.ah"
 
30170
#endif
 
30171
namespace Puma {
 
30172
 
 
30173
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30174
 
 
30175
#line 30176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30176
} // closed Puma
 
30177
 
 
30178
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30179
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30180
#include "CExprResolveH.ah"
 
30181
#endif
 
30182
namespace Puma {
 
30183
 
 
30184
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22168
30185
class CT_DeleteExpr : public CT_Expression, public CSemObject {
22169
 
#line 22170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30186
#line 30187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30187
  friend class ::CCExprResolve;
 
30188
  friend class ::CExprResolve;
22170
30189
  friend class ::WinIfExists;
22171
30190
  friend class ::WinImportHandler;
22172
30191
  friend class ::WinMacros;
22173
 
  friend class ::CMatchSyntax;
22174
 
  friend class ::ExtGnu;
 
30192
  friend class ::WinAsm;
 
30193
  friend class ::WinDeclSpecs;
 
30194
  friend class ::WinMemberExplSpec;
 
30195
  friend class ::WinTypeKeywords;
 
30196
  friend class ::WinFriend;
22175
30197
  friend class ::ExtAC;
22176
30198
  friend class ::ExtACBuilderCoupling;
22177
30199
  friend class ::ExtACSyntaxCoupling;
22178
30200
  friend class ::ExtACTree;
22179
30201
  friend class ::ExtACKeywords;
22180
 
  friend class ::WinAsm;
22181
 
  friend class ::WinDeclSpecs;
22182
 
  friend class ::WinMemberExplSpec;
22183
 
  friend class ::WinTypeKeywords;
 
30202
  friend class ::ExtGnu;
22184
30203
  friend class ::PragmaOnceUnitState;
22185
30204
  friend class ::PragmaOnce;
22186
 
  friend class ::CCExprResolve;
22187
 
  friend class ::CExprResolve;
 
30205
  friend class ::CMatchSyntax;
22188
30206
 
22189
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30207
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22190
30208
 
22191
30209
  CTree *sons[2]; // oper, expr
22192
30210
 
22193
30211
public:
22194
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
30212
  /** Constructor.
 
30213
   *  \param op The delete operator.
 
30214
   *  \param e The expression representing the object to delete. */
 
30215
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
30216
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22195
30217
  static const char *NodeId ();
 
30218
  /** Get the name of the node. Can be compared with NodeId(). */
22196
30219
  const char *NodeName () const { return NodeId (); }
 
30220
  /** Get the number of sons. */
22197
30221
  int Sons () const { return 2; }
 
30222
  /** Get the n-th son.
 
30223
   *  \param n The index of the son.
 
30224
   *  \return The n-th son or NULL. */
22198
30225
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30226
  /** Replace a son.
 
30227
   *  \param old_son The son to replace.
 
30228
   *  \param new_son The new son. */
22199
30229
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22200
30230
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22201
30231
  }
 
30232
  /** Get the expression. */
22202
30233
  CTree *Expr () const { return sons[1]; }
 
30234
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
22203
30235
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
30236
  /** Get the semantic information object. */
22204
30237
  CSemObject *SemObject () const { return (CSemObject*)this; }
22205
30238
   private:
22206
30239
  typedef CT_DeleteExpr CCExprResolveExpr;
22207
30240
 
22208
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22209
30242
 public :
22210
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30243
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22211
30244
  typedef CT_DeleteExpr CExprResolveExpr;
22212
30245
 
22213
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22214
30247
 public :
22215
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22216
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30248
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30249
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22217
30250
};
22218
30251
 
 
30252
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
30253
 *  Tree node representing a new expression, e.g. new A(). */
22219
30254
 
22220
 
#line 22221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30255
#line 30256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22221
30256
} // closed Puma
 
30257
class CCExprResolve;
 
30258
class CExprResolve;
22222
30259
class WinIfExists;
22223
30260
class WinImportHandler;
22224
30261
class WinMacros;
22225
 
class CMatchSyntax;
22226
 
class ExtGnu;
 
30262
class WinAsm;
 
30263
class WinDeclSpecs;
 
30264
class WinMemberExplSpec;
 
30265
class WinTypeKeywords;
 
30266
class WinFriend;
22227
30267
class ExtAC;
22228
30268
class ExtACBuilderCoupling;
22229
30269
class ExtACSyntaxCoupling;
22230
30270
class ExtACTree;
22231
30271
class ExtACKeywords;
22232
 
class WinAsm;
22233
 
class WinDeclSpecs;
22234
 
class WinMemberExplSpec;
22235
 
class WinTypeKeywords;
 
30272
class ExtGnu;
22236
30273
class PragmaOnceUnitState;
22237
30274
class PragmaOnce;
22238
 
class CCExprResolve;
22239
 
class CExprResolve;
22240
 
namespace Puma {
22241
 
 
22242
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30275
class CMatchSyntax;
 
30276
namespace Puma {
 
30277
 
 
30278
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30279
 
 
30280
#line 30281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30281
} // closed Puma
 
30282
 
 
30283
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30284
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30285
#include "CCExprResolveH.ah"
 
30286
#endif
 
30287
namespace Puma {
 
30288
 
 
30289
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30290
 
 
30291
#line 30292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30292
} // closed Puma
 
30293
 
 
30294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30296
#include "CExprResolveH.ah"
 
30297
#endif
 
30298
namespace Puma {
 
30299
 
 
30300
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22243
30301
class CT_NewExpr : public CT_Expression, public CSemObject {
22244
 
#line 22245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30302
#line 30303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30303
  friend class ::CCExprResolve;
 
30304
  friend class ::CExprResolve;
22245
30305
  friend class ::WinIfExists;
22246
30306
  friend class ::WinImportHandler;
22247
30307
  friend class ::WinMacros;
22248
 
  friend class ::CMatchSyntax;
22249
 
  friend class ::ExtGnu;
 
30308
  friend class ::WinAsm;
 
30309
  friend class ::WinDeclSpecs;
 
30310
  friend class ::WinMemberExplSpec;
 
30311
  friend class ::WinTypeKeywords;
 
30312
  friend class ::WinFriend;
22250
30313
  friend class ::ExtAC;
22251
30314
  friend class ::ExtACBuilderCoupling;
22252
30315
  friend class ::ExtACSyntaxCoupling;
22253
30316
  friend class ::ExtACTree;
22254
30317
  friend class ::ExtACKeywords;
22255
 
  friend class ::WinAsm;
22256
 
  friend class ::WinDeclSpecs;
22257
 
  friend class ::WinMemberExplSpec;
22258
 
  friend class ::WinTypeKeywords;
 
30318
  friend class ::ExtGnu;
22259
30319
  friend class ::PragmaOnceUnitState;
22260
30320
  friend class ::PragmaOnce;
22261
 
  friend class ::CCExprResolve;
22262
 
  friend class ::CExprResolve;
 
30321
  friend class ::CMatchSyntax;
22263
30322
 
22264
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30323
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22265
30324
 
22266
30325
  CTree *sons[6]; // oper, placement, open, type, close, init
22267
30326
 
22268
30327
public:
 
30328
  /** Constructor.
 
30329
   *  \param op The new operator.
 
30330
   *  \param p The optional placement expression.
 
30331
   *  \param o The optional left parenthesis around the type identifier.
 
30332
   *  \param t The type identifier specifying the type of the object to create.
 
30333
   *  \param c The optional right parenthesis around the type identifier.
 
30334
   *  \param i The optional initializer. */
22269
30335
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
22270
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
30336
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
30337
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
22271
30338
  }
 
30339
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22272
30340
  static const char *NodeId ();
 
30341
  /** Get the name of the node. Can be compared with NodeId(). */
22273
30342
  const char *NodeName () const { return NodeId (); }
 
30343
  /** Get the number of sons. */
22274
30344
  int Sons () const { return CTree::Sons (sons, 6); }
 
30345
  /** Get the n-th son.
 
30346
   *  \param n The index of the son.
 
30347
   *  \return The n-th son or NULL. */
22275
30348
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
30349
  /** Replace a son.
 
30350
   *  \param old_son The son to replace.
 
30351
   *  \param new_son The new son. */
22276
30352
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22277
30353
    CTree::ReplaceSon (sons, 6, old_son, new_son);
22278
30354
  }
 
30355
  /** Get the operator name. */
22279
30356
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
30357
  /** Get the placement expression. */
22280
30358
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
30359
  /** Get the initializer. */
22281
30360
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
30361
  /** Get the type of the object to create. */
22282
30362
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
30363
  /** Get the semantic information object. */
22283
30364
  CSemObject *SemObject () const { return (CSemObject*)this; }
22284
30365
   private:
22285
30366
  typedef CT_NewExpr CCExprResolveExpr;
22286
30367
 
22287
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30368
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22288
30369
 public :
22289
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30370
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22290
30371
  typedef CT_NewExpr CExprResolveExpr;
22291
30372
 
22292
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30373
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22293
30374
 public :
22294
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22295
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30375
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30376
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22296
30377
};
22297
30378
 
 
30379
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
30380
 *  Tree node representing an if-then expression, 
 
30381
 *  e.g. a>0?a:b or a?:b. */
22298
30382
 
22299
 
#line 22300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30383
#line 30384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22300
30384
} // closed Puma
 
30385
class CCExprResolve;
 
30386
class CExprResolve;
22301
30387
class WinIfExists;
22302
30388
class WinImportHandler;
22303
30389
class WinMacros;
22304
 
class CMatchSyntax;
22305
 
class ExtGnu;
 
30390
class WinAsm;
 
30391
class WinDeclSpecs;
 
30392
class WinMemberExplSpec;
 
30393
class WinTypeKeywords;
 
30394
class WinFriend;
22306
30395
class ExtAC;
22307
30396
class ExtACBuilderCoupling;
22308
30397
class ExtACSyntaxCoupling;
22309
30398
class ExtACTree;
22310
30399
class ExtACKeywords;
22311
 
class WinAsm;
22312
 
class WinDeclSpecs;
22313
 
class WinMemberExplSpec;
22314
 
class WinTypeKeywords;
 
30400
class ExtGnu;
22315
30401
class PragmaOnceUnitState;
22316
30402
class PragmaOnce;
22317
 
class CCExprResolve;
22318
 
class CExprResolve;
22319
 
namespace Puma {
22320
 
 
22321
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30403
class CMatchSyntax;
 
30404
namespace Puma {
 
30405
 
 
30406
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30407
 
 
30408
#line 30409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30409
} // closed Puma
 
30410
 
 
30411
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30412
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30413
#include "CCExprResolveH.ah"
 
30414
#endif
 
30415
namespace Puma {
 
30416
 
 
30417
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30418
 
 
30419
#line 30420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30420
} // closed Puma
 
30421
 
 
30422
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30423
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30424
#include "CExprResolveH.ah"
 
30425
#endif
 
30426
namespace Puma {
 
30427
 
 
30428
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22322
30429
class CT_IfThenExpr : public CT_Expression {
22323
 
#line 22324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30430
#line 30431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30431
  friend class ::CCExprResolve;
 
30432
  friend class ::CExprResolve;
22324
30433
  friend class ::WinIfExists;
22325
30434
  friend class ::WinImportHandler;
22326
30435
  friend class ::WinMacros;
22327
 
  friend class ::CMatchSyntax;
22328
 
  friend class ::ExtGnu;
 
30436
  friend class ::WinAsm;
 
30437
  friend class ::WinDeclSpecs;
 
30438
  friend class ::WinMemberExplSpec;
 
30439
  friend class ::WinTypeKeywords;
 
30440
  friend class ::WinFriend;
22329
30441
  friend class ::ExtAC;
22330
30442
  friend class ::ExtACBuilderCoupling;
22331
30443
  friend class ::ExtACSyntaxCoupling;
22332
30444
  friend class ::ExtACTree;
22333
30445
  friend class ::ExtACKeywords;
22334
 
  friend class ::WinAsm;
22335
 
  friend class ::WinDeclSpecs;
22336
 
  friend class ::WinMemberExplSpec;
22337
 
  friend class ::WinTypeKeywords;
 
30446
  friend class ::ExtGnu;
22338
30447
  friend class ::PragmaOnceUnitState;
22339
30448
  friend class ::PragmaOnce;
22340
 
  friend class ::CCExprResolve;
22341
 
  friend class ::CExprResolve;
 
30449
  friend class ::CMatchSyntax;
22342
30450
 
22343
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30451
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22344
30452
 
22345
30453
  CTree *sons[5]; // cond, oper, left, colon, right
22346
30454
 
22347
30455
public:
 
30456
  /** Constructor.
 
30457
   *  \param c1 The condition expression.
 
30458
   *  \param o The question mark operator. 
 
30459
   *  \param l The expression to the left of the colon.
 
30460
   *  \param c2 The colon operator.
 
30461
   *  \param r The expression to the right of the colon. */ 
22348
30462
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
22349
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
30463
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
30464
    AddSon (sons[3], c2); AddSon (sons[4], r);
22350
30465
  }
 
30466
  /** Constructor.
 
30467
   *  \param c1 The condition expression.
 
30468
   *  \param o The question mark operator. 
 
30469
   *  \param c2 The colon operator.
 
30470
   *  \param r The expression to the right of the colon. */ 
22351
30471
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
22352
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
30472
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
30473
    AddSon (sons[3], c2); AddSon (sons[4], r);
22353
30474
  }
 
30475
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22354
30476
  static const char *NodeId ();
 
30477
  /** Get the name of the node. Can be compared with NodeId(). */
22355
30478
  const char *NodeName () const { return NodeId (); }
 
30479
  /** Get the number of sons. */
22356
30480
  int Sons () const { return CTree::Sons (sons, 5); }
 
30481
  /** Get the n-th son.
 
30482
   *  \param n The index of the son.
 
30483
   *  \return The n-th son or NULL. */
22357
30484
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
30485
  /** Get the condition expression. */
22358
30486
  CTree *Condition () const { return sons[0]; }
 
30487
  /** Get the left expression (condition=true). */
22359
30488
  CTree *LeftOperand () const { return sons[2]; }
 
30489
  /** Get the right expression (condition=false). */
22360
30490
  CTree *RightOperand () const { return sons[4]; }
 
30491
  /** Replace a son.
 
30492
   *  \param old_son The son to replace.
 
30493
   *  \param new_son The new son. */
22361
30494
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22362
30495
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22363
30496
  }
22364
30497
   private:
22365
30498
  typedef CT_IfThenExpr CCExprResolveExpr;
22366
30499
 
22367
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30500
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22368
30501
 public :
22369
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30502
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22370
30503
  typedef CT_IfThenExpr CExprResolveExpr;
22371
30504
 
22372
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30505
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22373
30506
 public :
22374
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22375
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30507
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30508
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22376
30509
};
22377
30510
 
 
30511
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
30512
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
22378
30513
 
22379
 
#line 22380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30514
#line 30515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22380
30515
} // closed Puma
 
30516
class CCExprResolve;
 
30517
class CExprResolve;
22381
30518
class WinIfExists;
22382
30519
class WinImportHandler;
22383
30520
class WinMacros;
22384
 
class CMatchSyntax;
22385
 
class ExtGnu;
 
30521
class WinAsm;
 
30522
class WinDeclSpecs;
 
30523
class WinMemberExplSpec;
 
30524
class WinTypeKeywords;
 
30525
class WinFriend;
22386
30526
class ExtAC;
22387
30527
class ExtACBuilderCoupling;
22388
30528
class ExtACSyntaxCoupling;
22389
30529
class ExtACTree;
22390
30530
class ExtACKeywords;
22391
 
class WinAsm;
22392
 
class WinDeclSpecs;
22393
 
class WinMemberExplSpec;
22394
 
class WinTypeKeywords;
 
30531
class ExtGnu;
22395
30532
class PragmaOnceUnitState;
22396
30533
class PragmaOnce;
22397
 
class CCExprResolve;
22398
 
class CExprResolve;
22399
 
namespace Puma {
22400
 
 
22401
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30534
class CMatchSyntax;
 
30535
namespace Puma {
 
30536
 
 
30537
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30538
 
 
30539
#line 30540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30540
} // closed Puma
 
30541
 
 
30542
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30543
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30544
#include "CCExprResolveH.ah"
 
30545
#endif
 
30546
namespace Puma {
 
30547
 
 
30548
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30549
 
 
30550
#line 30551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30551
} // closed Puma
 
30552
 
 
30553
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30554
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30555
#include "CExprResolveH.ah"
 
30556
#endif
 
30557
namespace Puma {
 
30558
 
 
30559
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22402
30560
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
22403
 
#line 22404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30561
#line 30562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30562
  friend class ::CCExprResolve;
 
30563
  friend class ::CExprResolve;
22404
30564
  friend class ::WinIfExists;
22405
30565
  friend class ::WinImportHandler;
22406
30566
  friend class ::WinMacros;
22407
 
  friend class ::CMatchSyntax;
22408
 
  friend class ::ExtGnu;
 
30567
  friend class ::WinAsm;
 
30568
  friend class ::WinDeclSpecs;
 
30569
  friend class ::WinMemberExplSpec;
 
30570
  friend class ::WinTypeKeywords;
 
30571
  friend class ::WinFriend;
22409
30572
  friend class ::ExtAC;
22410
30573
  friend class ::ExtACBuilderCoupling;
22411
30574
  friend class ::ExtACSyntaxCoupling;
22412
30575
  friend class ::ExtACTree;
22413
30576
  friend class ::ExtACKeywords;
22414
 
  friend class ::WinAsm;
22415
 
  friend class ::WinDeclSpecs;
22416
 
  friend class ::WinMemberExplSpec;
22417
 
  friend class ::WinTypeKeywords;
 
30577
  friend class ::ExtGnu;
22418
30578
  friend class ::PragmaOnceUnitState;
22419
30579
  friend class ::PragmaOnce;
22420
 
  friend class ::CCExprResolve;
22421
 
  friend class ::CExprResolve;
 
30580
  friend class ::CMatchSyntax;
22422
30581
 
22423
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30582
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22424
30583
 
22425
30584
  CTree *sons[4]; // open, type, close, init
22426
30585
 
22427
30586
public:
 
30587
  /** Constructor.
 
30588
   *  \param r Left parenthesis of the type name.
 
30589
   *  \param t The type name.
 
30590
   *  \param cr Right parenthesis of the type name.
 
30591
   *  \param i The initializer list. */
22428
30592
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
22429
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
30593
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
30594
    AddSon (sons[2], cr); AddSon (sons[3], i);
22430
30595
  }
 
30596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22431
30597
  static const char *NodeId ();
 
30598
  /** Get the name of the node. Can be compared with NodeId(). */
22432
30599
  const char *NodeName () const { return NodeId (); }
 
30600
  /** Get the number of sons. */
22433
30601
  int Sons () const { return 4; }
 
30602
  /** Get the n-th son.
 
30603
   *  \param n The index of the son.
 
30604
   *  \return The n-th son or NULL. */
22434
30605
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
30606
  /** Replace a son.
 
30607
   *  \param old_son The son to replace.
 
30608
   *  \param new_son The new son. */
22435
30609
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22436
30610
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22437
30611
  }
 
30612
  /** Get the type name. */
22438
30613
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
30614
  /** Get the initializer list. */
22439
30615
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
30616
  /** Get the semantic information object. */
22440
30617
  CSemObject *SemObject () const { return (CSemObject*)this; }
22441
30618
   private:
22442
30619
  typedef CT_CmpdLiteral CCExprResolveExpr;
22443
30620
 
22444
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30621
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22445
30622
 public :
22446
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30623
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22447
30624
  typedef CT_CmpdLiteral CExprResolveExpr;
22448
30625
 
22449
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30626
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22450
30627
 public :
22451
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22452
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30628
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30629
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22453
30630
};
22454
30631
 
 
30632
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
30633
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
22455
30634
 
22456
 
#line 22457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30635
#line 30636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22457
30636
} // closed Puma
 
30637
class CCExprResolve;
 
30638
class CExprResolve;
22458
30639
class WinIfExists;
22459
30640
class WinImportHandler;
22460
30641
class WinMacros;
22461
 
class CMatchSyntax;
22462
 
class ExtGnu;
 
30642
class WinAsm;
 
30643
class WinDeclSpecs;
 
30644
class WinMemberExplSpec;
 
30645
class WinTypeKeywords;
 
30646
class WinFriend;
22463
30647
class ExtAC;
22464
30648
class ExtACBuilderCoupling;
22465
30649
class ExtACSyntaxCoupling;
22466
30650
class ExtACTree;
22467
30651
class ExtACKeywords;
22468
 
class WinAsm;
22469
 
class WinDeclSpecs;
22470
 
class WinMemberExplSpec;
22471
 
class WinTypeKeywords;
 
30652
class ExtGnu;
22472
30653
class PragmaOnceUnitState;
22473
30654
class PragmaOnce;
22474
 
class CCExprResolve;
22475
 
class CExprResolve;
22476
 
namespace Puma {
22477
 
 
22478
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30655
class CMatchSyntax;
 
30656
namespace Puma {
 
30657
 
 
30658
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30659
 
 
30660
#line 30661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30661
} // closed Puma
 
30662
 
 
30663
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30664
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30665
#include "CCExprResolveH.ah"
 
30666
#endif
 
30667
namespace Puma {
 
30668
 
 
30669
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30670
 
 
30671
#line 30672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30672
} // closed Puma
 
30673
 
 
30674
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30675
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30676
#include "CExprResolveH.ah"
 
30677
#endif
 
30678
namespace Puma {
 
30679
 
 
30680
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22479
30681
class CT_ConstructExpr : public CT_Expression, public CSemObject {
22480
 
#line 22481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30682
#line 30683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30683
  friend class ::CCExprResolve;
 
30684
  friend class ::CExprResolve;
22481
30685
  friend class ::WinIfExists;
22482
30686
  friend class ::WinImportHandler;
22483
30687
  friend class ::WinMacros;
22484
 
  friend class ::CMatchSyntax;
22485
 
  friend class ::ExtGnu;
 
30688
  friend class ::WinAsm;
 
30689
  friend class ::WinDeclSpecs;
 
30690
  friend class ::WinMemberExplSpec;
 
30691
  friend class ::WinTypeKeywords;
 
30692
  friend class ::WinFriend;
22486
30693
  friend class ::ExtAC;
22487
30694
  friend class ::ExtACBuilderCoupling;
22488
30695
  friend class ::ExtACSyntaxCoupling;
22489
30696
  friend class ::ExtACTree;
22490
30697
  friend class ::ExtACKeywords;
22491
 
  friend class ::WinAsm;
22492
 
  friend class ::WinDeclSpecs;
22493
 
  friend class ::WinMemberExplSpec;
22494
 
  friend class ::WinTypeKeywords;
 
30698
  friend class ::ExtGnu;
22495
30699
  friend class ::PragmaOnceUnitState;
22496
30700
  friend class ::PragmaOnce;
22497
 
  friend class ::CCExprResolve;
22498
 
  friend class ::CExprResolve;
 
30701
  friend class ::CMatchSyntax;
22499
30702
 
22500
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30703
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22501
30704
 
22502
30705
  CTree *sons[2]; // type, init
22503
30706
 
22504
30707
public:
22505
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
30708
  /** Constructor.
 
30709
   *  \param t The type name.
 
30710
   *  \param i The initializer list. */
 
30711
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
30712
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22506
30713
  static const char *NodeId ();
 
30714
  /** Get the name of the node. Can be compared with NodeId(). */
22507
30715
  const char *NodeName () const { return NodeId (); }
 
30716
  /** Get the number of sons. */
22508
30717
  int Sons () const { return 2; }
 
30718
  /** Get the n-th son.
 
30719
   *  \param n The index of the son.
 
30720
   *  \return The n-th son or NULL. */
22509
30721
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30722
  /** Replace a son.
 
30723
   *  \param old_son The son to replace.
 
30724
   *  \param new_son The new son. */
22510
30725
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22511
30726
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22512
30727
  }
 
30728
  /** Get the type name. */
22513
30729
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
30730
  /** Get the initializer. */
22514
30731
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
30732
  /** Get the semantic information object. */
22515
30733
  CSemObject *SemObject () const { return (CSemObject*)this; }
22516
30734
   private:
22517
30735
  typedef CT_ConstructExpr CCExprResolveExpr;
22518
30736
 
22519
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30737
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22520
30738
 public :
22521
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30739
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22522
30740
  typedef CT_ConstructExpr CExprResolveExpr;
22523
30741
 
22524
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30742
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22525
30743
 public :
22526
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22527
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30744
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30745
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22528
30746
};
22529
30747
 
 
30748
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
30749
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
22530
30750
 
22531
 
#line 22532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30751
#line 30752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22532
30752
} // closed Puma
 
30753
class CCExprResolve;
 
30754
class CExprResolve;
22533
30755
class WinIfExists;
22534
30756
class WinImportHandler;
22535
30757
class WinMacros;
22536
 
class CMatchSyntax;
22537
 
class ExtGnu;
 
30758
class WinAsm;
 
30759
class WinDeclSpecs;
 
30760
class WinMemberExplSpec;
 
30761
class WinTypeKeywords;
 
30762
class WinFriend;
22538
30763
class ExtAC;
22539
30764
class ExtACBuilderCoupling;
22540
30765
class ExtACSyntaxCoupling;
22541
30766
class ExtACTree;
22542
30767
class ExtACKeywords;
22543
 
class WinAsm;
22544
 
class WinDeclSpecs;
22545
 
class WinMemberExplSpec;
22546
 
class WinTypeKeywords;
 
30768
class ExtGnu;
22547
30769
class PragmaOnceUnitState;
22548
30770
class PragmaOnce;
22549
 
class CCExprResolve;
22550
 
class CExprResolve;
22551
 
namespace Puma {
22552
 
 
22553
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30771
class CMatchSyntax;
 
30772
namespace Puma {
 
30773
 
 
30774
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30775
 
 
30776
#line 30777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30777
} // closed Puma
 
30778
 
 
30779
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30780
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30781
#include "CCExprResolveH.ah"
 
30782
#endif
 
30783
namespace Puma {
 
30784
 
 
30785
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30786
 
 
30787
#line 30788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30788
} // closed Puma
 
30789
 
 
30790
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30791
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30792
#include "CExprResolveH.ah"
 
30793
#endif
 
30794
namespace Puma {
 
30795
 
 
30796
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22554
30797
class CT_ThrowExpr : public CT_Expression {
22555
 
#line 22556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30798
#line 30799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30799
  friend class ::CCExprResolve;
 
30800
  friend class ::CExprResolve;
22556
30801
  friend class ::WinIfExists;
22557
30802
  friend class ::WinImportHandler;
22558
30803
  friend class ::WinMacros;
22559
 
  friend class ::CMatchSyntax;
22560
 
  friend class ::ExtGnu;
 
30804
  friend class ::WinAsm;
 
30805
  friend class ::WinDeclSpecs;
 
30806
  friend class ::WinMemberExplSpec;
 
30807
  friend class ::WinTypeKeywords;
 
30808
  friend class ::WinFriend;
22561
30809
  friend class ::ExtAC;
22562
30810
  friend class ::ExtACBuilderCoupling;
22563
30811
  friend class ::ExtACSyntaxCoupling;
22564
30812
  friend class ::ExtACTree;
22565
30813
  friend class ::ExtACKeywords;
22566
 
  friend class ::WinAsm;
22567
 
  friend class ::WinDeclSpecs;
22568
 
  friend class ::WinMemberExplSpec;
22569
 
  friend class ::WinTypeKeywords;
 
30814
  friend class ::ExtGnu;
22570
30815
  friend class ::PragmaOnceUnitState;
22571
30816
  friend class ::PragmaOnce;
22572
 
  friend class ::CCExprResolve;
22573
 
  friend class ::CExprResolve;
 
30817
  friend class ::CMatchSyntax;
22574
30818
 
22575
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30819
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22576
30820
 
22577
30821
  CTree *sons[2]; // throw, expr
22578
30822
 
22579
30823
public:
22580
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
30824
  /** Constructor.
 
30825
   *  \param t The 'throw' keyword.
 
30826
   *  \param e The expression. */
 
30827
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
30828
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22581
30829
  static const char *NodeId ();
 
30830
  /** Get the name of the node. Can be compared with NodeId(). */
22582
30831
  const char *NodeName () const { return NodeId (); }
 
30832
  /** Get the number of sons. */
22583
30833
  int Sons () const { return CTree::Sons (sons, 2); }
 
30834
  /** Get the n-th son.
 
30835
   *  \param n The index of the son.
 
30836
   *  \return The n-th son or NULL. */
22584
30837
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30838
  /** Replace a son.
 
30839
   *  \param old_son The son to replace.
 
30840
   *  \param new_son The new son. */
22585
30841
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22586
30842
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22587
30843
  }
 
30844
  /** Get the expression. */
22588
30845
  CTree *Expr () const { return sons[1]; }
22589
30846
   private:
22590
30847
  typedef CT_ThrowExpr CCExprResolveExpr;
22591
30848
 
22592
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30849
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22593
30850
 public :
22594
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30851
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22595
30852
  typedef CT_ThrowExpr CExprResolveExpr;
22596
30853
 
22597
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30854
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22598
30855
 public :
22599
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22600
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30856
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30857
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22601
30858
};
22602
30859
 
 
30860
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
30861
 *  Tree node representing an index expression. */
22603
30862
 
22604
 
#line 22605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30863
#line 30864 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22605
30864
} // closed Puma
 
30865
class CCExprResolve;
 
30866
class CExprResolve;
22606
30867
class WinIfExists;
22607
30868
class WinImportHandler;
22608
30869
class WinMacros;
22609
 
class CMatchSyntax;
22610
 
class ExtGnu;
 
30870
class WinAsm;
 
30871
class WinDeclSpecs;
 
30872
class WinMemberExplSpec;
 
30873
class WinTypeKeywords;
 
30874
class WinFriend;
22611
30875
class ExtAC;
22612
30876
class ExtACBuilderCoupling;
22613
30877
class ExtACSyntaxCoupling;
22614
30878
class ExtACTree;
22615
30879
class ExtACKeywords;
22616
 
class WinAsm;
22617
 
class WinDeclSpecs;
22618
 
class WinMemberExplSpec;
22619
 
class WinTypeKeywords;
 
30880
class ExtGnu;
22620
30881
class PragmaOnceUnitState;
22621
30882
class PragmaOnce;
22622
 
class CCExprResolve;
22623
 
class CExprResolve;
22624
 
namespace Puma {
22625
 
 
22626
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22627
 
class CT_IndexExpr : public CT_Expression {
22628
 
#line 22629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30883
class CMatchSyntax;
 
30884
namespace Puma {
 
30885
 
 
30886
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30887
 
 
30888
#line 30889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30889
} // closed Puma
 
30890
 
 
30891
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30892
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30893
#include "CCExprResolveH.ah"
 
30894
#endif
 
30895
namespace Puma {
 
30896
 
 
30897
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30898
 
 
30899
#line 30900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30900
} // closed Puma
 
30901
 
 
30902
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30903
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30904
#include "CExprResolveH.ah"
 
30905
#endif
 
30906
namespace Puma {
 
30907
 
 
30908
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30909
class CT_IndexExpr : public CT_Call {
 
30910
#line 30911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
30911
  friend class ::CCExprResolve;
 
30912
  friend class ::CExprResolve;
22629
30913
  friend class ::WinIfExists;
22630
30914
  friend class ::WinImportHandler;
22631
30915
  friend class ::WinMacros;
22632
 
  friend class ::CMatchSyntax;
22633
 
  friend class ::ExtGnu;
 
30916
  friend class ::WinAsm;
 
30917
  friend class ::WinDeclSpecs;
 
30918
  friend class ::WinMemberExplSpec;
 
30919
  friend class ::WinTypeKeywords;
 
30920
  friend class ::WinFriend;
22634
30921
  friend class ::ExtAC;
22635
30922
  friend class ::ExtACBuilderCoupling;
22636
30923
  friend class ::ExtACSyntaxCoupling;
22637
30924
  friend class ::ExtACTree;
22638
30925
  friend class ::ExtACKeywords;
22639
 
  friend class ::WinAsm;
22640
 
  friend class ::WinDeclSpecs;
22641
 
  friend class ::WinMemberExplSpec;
22642
 
  friend class ::WinTypeKeywords;
 
30926
  friend class ::ExtGnu;
22643
30927
  friend class ::PragmaOnceUnitState;
22644
30928
  friend class ::PragmaOnce;
22645
 
  friend class ::CCExprResolve;
22646
 
  friend class ::CExprResolve;
 
30929
  friend class ::CMatchSyntax;
22647
30930
 
22648
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30931
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22649
30932
 
22650
30933
  CTree *sons[4]; // expr, open, index, close
22651
30934
 
22652
30935
public:
 
30936
  /** Constructor.
 
30937
   *  \param e The expression on which to invoke the index operator.
 
30938
   *  \param o Left parenthesis of the index expression.
 
30939
   *  \param i The index expression. 
 
30940
   *  \param c Right parenthesis of the index expression. */
22653
30941
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
22654
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
30942
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
30943
    AddSon (sons[2], i); AddSon (sons[3], c);
22655
30944
  }
 
30945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22656
30946
  static const char *NodeId ();
 
30947
  /** Get the name of the node. Can be compared with NodeId(). */
22657
30948
  const char *NodeName () const { return NodeId (); }
 
30949
  /** Get the number of sons. */
22658
30950
  int Sons () const { return 4; }
 
30951
  /** Get the n-th son.
 
30952
   *  \param n The index of the son.
 
30953
   *  \return The n-th son or NULL. */
22659
30954
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
30955
  /** Replace a son.
 
30956
   *  \param old_son The son to replace.
 
30957
   *  \param new_son The new son. */
22660
30958
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22661
30959
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22662
30960
  }
22663
30961
   private:
22664
30962
  typedef CT_IndexExpr CCExprResolveExpr;
22665
30963
 
22666
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30964
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22667
30965
 public :
22668
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
30966
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22669
30967
  typedef CT_IndexExpr CExprResolveExpr;
22670
30968
 
22671
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30969
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22672
30970
 public :
22673
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22674
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30971
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30972
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22675
30973
};
22676
30974
 
 
30975
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
30976
 *  Tree node representing a function call expression, e.g. f(i). */
22677
30977
 
22678
 
#line 22679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30978
#line 30979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22679
30979
} // closed Puma
 
30980
class CCExprResolve;
 
30981
class CExprResolve;
22680
30982
class WinIfExists;
22681
30983
class WinImportHandler;
22682
30984
class WinMacros;
22683
 
class CMatchSyntax;
22684
 
class ExtGnu;
 
30985
class WinAsm;
 
30986
class WinDeclSpecs;
 
30987
class WinMemberExplSpec;
 
30988
class WinTypeKeywords;
 
30989
class WinFriend;
22685
30990
class ExtAC;
22686
30991
class ExtACBuilderCoupling;
22687
30992
class ExtACSyntaxCoupling;
22688
30993
class ExtACTree;
22689
30994
class ExtACKeywords;
22690
 
class WinAsm;
22691
 
class WinDeclSpecs;
22692
 
class WinMemberExplSpec;
22693
 
class WinTypeKeywords;
 
30995
class ExtGnu;
22694
30996
class PragmaOnceUnitState;
22695
30997
class PragmaOnce;
22696
 
class CCExprResolve;
22697
 
class CExprResolve;
22698
 
namespace Puma {
22699
 
 
22700
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22701
 
class CT_CallExpr : public CT_Expression, public CSemObject {
22702
 
#line 22703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
30998
class CMatchSyntax;
 
30999
namespace Puma {
 
31000
 
 
31001
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31002
 
 
31003
#line 31004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31004
} // closed Puma
 
31005
 
 
31006
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31007
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31008
#include "CCExprResolveH.ah"
 
31009
#endif
 
31010
namespace Puma {
 
31011
 
 
31012
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31013
 
 
31014
#line 31015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31015
} // closed Puma
 
31016
 
 
31017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31019
#include "CExprResolveH.ah"
 
31020
#endif
 
31021
namespace Puma {
 
31022
 
 
31023
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31024
class CT_CallExpr : public CT_Call {
 
31025
#line 31026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31026
  friend class ::CCExprResolve;
 
31027
  friend class ::CExprResolve;
22703
31028
  friend class ::WinIfExists;
22704
31029
  friend class ::WinImportHandler;
22705
31030
  friend class ::WinMacros;
22706
 
  friend class ::CMatchSyntax;
22707
 
  friend class ::ExtGnu;
 
31031
  friend class ::WinAsm;
 
31032
  friend class ::WinDeclSpecs;
 
31033
  friend class ::WinMemberExplSpec;
 
31034
  friend class ::WinTypeKeywords;
 
31035
  friend class ::WinFriend;
22708
31036
  friend class ::ExtAC;
22709
31037
  friend class ::ExtACBuilderCoupling;
22710
31038
  friend class ::ExtACSyntaxCoupling;
22711
31039
  friend class ::ExtACTree;
22712
31040
  friend class ::ExtACKeywords;
22713
 
  friend class ::WinAsm;
22714
 
  friend class ::WinDeclSpecs;
22715
 
  friend class ::WinMemberExplSpec;
22716
 
  friend class ::WinTypeKeywords;
 
31041
  friend class ::ExtGnu;
22717
31042
  friend class ::PragmaOnceUnitState;
22718
31043
  friend class ::PragmaOnce;
22719
 
  friend class ::CCExprResolve;
22720
 
  friend class ::CExprResolve;
 
31044
  friend class ::CMatchSyntax;
22721
31045
 
22722
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31046
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22723
31047
 
22724
31048
  CTree *sons[2]; // expr, args
22725
31049
 
22726
31050
public:
22727
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
22728
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
31051
  /** Constructor.
 
31052
   *  \param e The expression on which the call is invoked. */
 
31053
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
31054
  /** Constructor.
 
31055
   *  \param e The expression on which the call is invoked.
 
31056
   *  \param l The argument list of the call. */
 
31057
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
31058
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22729
31059
  static const char *NodeId ();
 
31060
  /** Get the name of the node. Can be compared with NodeId(). */
22730
31061
  const char *NodeName () const { return NodeId (); }
 
31062
  /** Get the number of sons. */
22731
31063
  int Sons () const { return CTree::Sons (sons, 2); }
 
31064
  /** Get the n-th son.
 
31065
   *  \param n The index of the son.
 
31066
   *  \return The n-th son or NULL. */
22732
31067
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
31068
  /** Replace a son.
 
31069
   *  \param old_son The son to replace.
 
31070
   *  \param new_son The new son. */
22733
31071
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22734
31072
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22735
31073
  }
22736
31074
  CTree *Expr () const { return sons[0]; }
22737
31075
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
22738
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22739
31076
   private:
22740
31077
  typedef CT_CallExpr CCExprResolveExpr;
22741
31078
 
22742
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31079
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22743
31080
 public :
22744
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31081
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22745
31082
  typedef CT_CallExpr CExprResolveExpr;
22746
31083
 
22747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31084
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22748
31085
 public :
22749
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22750
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31086
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31087
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22751
31088
};
22752
31089
 
 
31090
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
31091
 *  Tree node representing a cast expression, e.g. (int)a. */
22753
31092
 
22754
 
#line 22755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31093
#line 31094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22755
31094
} // closed Puma
 
31095
class CCExprResolve;
 
31096
class CExprResolve;
22756
31097
class WinIfExists;
22757
31098
class WinImportHandler;
22758
31099
class WinMacros;
22759
 
class CMatchSyntax;
22760
 
class ExtGnu;
 
31100
class WinAsm;
 
31101
class WinDeclSpecs;
 
31102
class WinMemberExplSpec;
 
31103
class WinTypeKeywords;
 
31104
class WinFriend;
22761
31105
class ExtAC;
22762
31106
class ExtACBuilderCoupling;
22763
31107
class ExtACSyntaxCoupling;
22764
31108
class ExtACTree;
22765
31109
class ExtACKeywords;
22766
 
class WinAsm;
22767
 
class WinDeclSpecs;
22768
 
class WinMemberExplSpec;
22769
 
class WinTypeKeywords;
 
31110
class ExtGnu;
22770
31111
class PragmaOnceUnitState;
22771
31112
class PragmaOnce;
22772
 
class CCExprResolve;
22773
 
class CExprResolve;
22774
 
namespace Puma {
22775
 
 
22776
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31113
class CMatchSyntax;
 
31114
namespace Puma {
 
31115
 
 
31116
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31117
 
 
31118
#line 31119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31119
} // closed Puma
 
31120
 
 
31121
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31122
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31123
#include "CCExprResolveH.ah"
 
31124
#endif
 
31125
namespace Puma {
 
31126
 
 
31127
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31128
 
 
31129
#line 31130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31130
} // closed Puma
 
31131
 
 
31132
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31133
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31134
#include "CExprResolveH.ah"
 
31135
#endif
 
31136
namespace Puma {
 
31137
 
 
31138
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22777
31139
class CT_CastExpr : public CT_Expression {
22778
 
#line 22779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31140
#line 31141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31141
  friend class ::CCExprResolve;
 
31142
  friend class ::CExprResolve;
22779
31143
  friend class ::WinIfExists;
22780
31144
  friend class ::WinImportHandler;
22781
31145
  friend class ::WinMacros;
22782
 
  friend class ::CMatchSyntax;
22783
 
  friend class ::ExtGnu;
 
31146
  friend class ::WinAsm;
 
31147
  friend class ::WinDeclSpecs;
 
31148
  friend class ::WinMemberExplSpec;
 
31149
  friend class ::WinTypeKeywords;
 
31150
  friend class ::WinFriend;
22784
31151
  friend class ::ExtAC;
22785
31152
  friend class ::ExtACBuilderCoupling;
22786
31153
  friend class ::ExtACSyntaxCoupling;
22787
31154
  friend class ::ExtACTree;
22788
31155
  friend class ::ExtACKeywords;
22789
 
  friend class ::WinAsm;
22790
 
  friend class ::WinDeclSpecs;
22791
 
  friend class ::WinMemberExplSpec;
22792
 
  friend class ::WinTypeKeywords;
 
31156
  friend class ::ExtGnu;
22793
31157
  friend class ::PragmaOnceUnitState;
22794
31158
  friend class ::PragmaOnce;
22795
 
  friend class ::CCExprResolve;
22796
 
  friend class ::CExprResolve;
 
31159
  friend class ::CMatchSyntax;
22797
31160
 
22798
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31161
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22799
31162
 
22800
31163
  CTree *sons[4]; // open, type, close, expr
22801
31164
 
22802
31165
public:
 
31166
  /** Constructor.
 
31167
   *  \param o Left parenthesis of the type name.
 
31168
   *  \param t The type to cast to.
 
31169
   *  \param c Right parenthesis of the type name. 
 
31170
   *  \param e The expression to cast. */
22803
31171
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
22804
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
31172
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
31173
    AddSon (sons[2], c); AddSon (sons[3], e);
22805
31174
  }
 
31175
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22806
31176
  static const char *NodeId ();
 
31177
  /** Get the name of the node. Can be compared with NodeId(). */
22807
31178
  const char *NodeName () const { return NodeId (); }
 
31179
  /** Get the number of sons. */
22808
31180
  int Sons () const { return 4; }
 
31181
  /** Get the n-th son.
 
31182
   *  \param n The index of the son.
 
31183
   *  \return The n-th son or NULL. */
22809
31184
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
31185
  /** Replace a son.
 
31186
   *  \param old_son The son to replace.
 
31187
   *  \param new_son The new son. */
22810
31188
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22811
31189
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22812
31190
  }
 
31191
  /** Get the casted expression. */
22813
31192
  CTree *Expr () const { return sons[3]; }
 
31193
  /** Get the type to cast to. */
22814
31194
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
22815
31195
   private:
22816
31196
  typedef CT_CastExpr CCExprResolveExpr;
22817
31197
 
22818
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31198
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22819
31199
 public :
22820
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31200
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22821
31201
  typedef CT_CastExpr CExprResolveExpr;
22822
31202
 
22823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31203
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22824
31204
 public :
22825
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22826
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31205
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31206
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22827
31207
};
22828
31208
 
 
31209
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
31210
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
22829
31211
 
22830
 
#line 22831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31212
#line 31213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22831
31213
} // closed Puma
 
31214
class CCExprResolve;
 
31215
class CExprResolve;
22832
31216
class WinIfExists;
22833
31217
class WinImportHandler;
22834
31218
class WinMacros;
22835
 
class CMatchSyntax;
22836
 
class ExtGnu;
 
31219
class WinAsm;
 
31220
class WinDeclSpecs;
 
31221
class WinMemberExplSpec;
 
31222
class WinTypeKeywords;
 
31223
class WinFriend;
22837
31224
class ExtAC;
22838
31225
class ExtACBuilderCoupling;
22839
31226
class ExtACSyntaxCoupling;
22840
31227
class ExtACTree;
22841
31228
class ExtACKeywords;
22842
 
class WinAsm;
22843
 
class WinDeclSpecs;
22844
 
class WinMemberExplSpec;
22845
 
class WinTypeKeywords;
 
31229
class ExtGnu;
22846
31230
class PragmaOnceUnitState;
22847
31231
class PragmaOnce;
22848
 
class CCExprResolve;
22849
 
class CExprResolve;
22850
 
namespace Puma {
22851
 
 
22852
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31232
class CMatchSyntax;
 
31233
namespace Puma {
 
31234
 
 
31235
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31236
 
 
31237
#line 31238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31238
} // closed Puma
 
31239
 
 
31240
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31241
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31242
#include "CCExprResolveH.ah"
 
31243
#endif
 
31244
namespace Puma {
 
31245
 
 
31246
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31247
 
 
31248
#line 31249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31249
} // closed Puma
 
31250
 
 
31251
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31252
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31253
#include "CExprResolveH.ah"
 
31254
#endif
 
31255
namespace Puma {
 
31256
 
 
31257
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22853
31258
class CT_StaticCast : public CT_Expression {
22854
 
#line 22855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31259
#line 31260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31260
  friend class ::CCExprResolve;
 
31261
  friend class ::CExprResolve;
22855
31262
  friend class ::WinIfExists;
22856
31263
  friend class ::WinImportHandler;
22857
31264
  friend class ::WinMacros;
22858
 
  friend class ::CMatchSyntax;
22859
 
  friend class ::ExtGnu;
 
31265
  friend class ::WinAsm;
 
31266
  friend class ::WinDeclSpecs;
 
31267
  friend class ::WinMemberExplSpec;
 
31268
  friend class ::WinTypeKeywords;
 
31269
  friend class ::WinFriend;
22860
31270
  friend class ::ExtAC;
22861
31271
  friend class ::ExtACBuilderCoupling;
22862
31272
  friend class ::ExtACSyntaxCoupling;
22863
31273
  friend class ::ExtACTree;
22864
31274
  friend class ::ExtACKeywords;
22865
 
  friend class ::WinAsm;
22866
 
  friend class ::WinDeclSpecs;
22867
 
  friend class ::WinMemberExplSpec;
22868
 
  friend class ::WinTypeKeywords;
 
31275
  friend class ::ExtGnu;
22869
31276
  friend class ::PragmaOnceUnitState;
22870
31277
  friend class ::PragmaOnce;
22871
 
  friend class ::CCExprResolve;
22872
 
  friend class ::CExprResolve;
 
31278
  friend class ::CMatchSyntax;
22873
31279
 
22874
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31280
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22875
31281
 
22876
31282
  CTree *sons[5]; // cast, open, type, close, expr
22877
31283
 
22878
31284
public:
 
31285
  /** Constructor.
 
31286
   *  \param cst The cast operator, i.e. 'static_cast'.
 
31287
   *  \param o Left arrow bracket of the type name.
 
31288
   *  \param t The type to cast to.
 
31289
   *  \param c Right array bracket of the type name.
 
31290
   *  \param e The expression to cast. */
22879
31291
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
22880
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
31292
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
31293
    AddSon (sons[3], c); AddSon (sons[4], e);
22881
31294
  }
 
31295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22882
31296
  static const char *NodeId ();
 
31297
  /** Get the name of the node. Can be compared with NodeId(). */
22883
31298
  const char *NodeName () const { return NodeId (); }
 
31299
  /** Get the number of sons. */
22884
31300
  int Sons () const { return 5; }
 
31301
  /** Get the n-th son.
 
31302
   *  \param n The index of the son.
 
31303
   *  \return The n-th son or NULL. */
22885
31304
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
31305
  /** Replace a son.
 
31306
   *  \param old_son The son to replace.
 
31307
   *  \param new_son The new son. */
22886
31308
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22887
31309
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22888
31310
  }
 
31311
  /** Get the casted expression. */
22889
31312
  CTree *Expr () const { return sons[4]; }
 
31313
  /** Get the type to cast to. */
22890
31314
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
22891
31315
   private:
22892
31316
  typedef CT_StaticCast CCExprResolveExpr;
22893
31317
 
22894
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31318
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22895
31319
 public :
22896
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31320
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22897
31321
  typedef CT_StaticCast CExprResolveExpr;
22898
31322
 
22899
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31323
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22900
31324
 public :
22901
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22902
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31325
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31326
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22903
31327
};
22904
31328
 
 
31329
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
31330
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
22905
31331
 
22906
 
#line 22907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31332
#line 31333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22907
31333
} // closed Puma
 
31334
class CCExprResolve;
 
31335
class CExprResolve;
22908
31336
class WinIfExists;
22909
31337
class WinImportHandler;
22910
31338
class WinMacros;
22911
 
class CMatchSyntax;
22912
 
class ExtGnu;
 
31339
class WinAsm;
 
31340
class WinDeclSpecs;
 
31341
class WinMemberExplSpec;
 
31342
class WinTypeKeywords;
 
31343
class WinFriend;
22913
31344
class ExtAC;
22914
31345
class ExtACBuilderCoupling;
22915
31346
class ExtACSyntaxCoupling;
22916
31347
class ExtACTree;
22917
31348
class ExtACKeywords;
22918
 
class WinAsm;
22919
 
class WinDeclSpecs;
22920
 
class WinMemberExplSpec;
22921
 
class WinTypeKeywords;
 
31349
class ExtGnu;
22922
31350
class PragmaOnceUnitState;
22923
31351
class PragmaOnce;
22924
 
class CCExprResolve;
22925
 
class CExprResolve;
22926
 
namespace Puma {
22927
 
 
22928
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31352
class CMatchSyntax;
 
31353
namespace Puma {
 
31354
 
 
31355
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31356
 
 
31357
#line 31358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31358
} // closed Puma
 
31359
 
 
31360
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31361
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31362
#include "CCExprResolveH.ah"
 
31363
#endif
 
31364
namespace Puma {
 
31365
 
 
31366
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31367
 
 
31368
#line 31369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31369
} // closed Puma
 
31370
 
 
31371
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31372
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31373
#include "CExprResolveH.ah"
 
31374
#endif
 
31375
namespace Puma {
 
31376
 
 
31377
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22929
31378
class CT_ConstCast : public CT_StaticCast {
22930
 
#line 22931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31379
#line 31380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31380
  friend class ::CCExprResolve;
 
31381
  friend class ::CExprResolve;
22931
31382
  friend class ::WinIfExists;
22932
31383
  friend class ::WinImportHandler;
22933
31384
  friend class ::WinMacros;
22934
 
  friend class ::CMatchSyntax;
22935
 
  friend class ::ExtGnu;
 
31385
  friend class ::WinAsm;
 
31386
  friend class ::WinDeclSpecs;
 
31387
  friend class ::WinMemberExplSpec;
 
31388
  friend class ::WinTypeKeywords;
 
31389
  friend class ::WinFriend;
22936
31390
  friend class ::ExtAC;
22937
31391
  friend class ::ExtACBuilderCoupling;
22938
31392
  friend class ::ExtACSyntaxCoupling;
22939
31393
  friend class ::ExtACTree;
22940
31394
  friend class ::ExtACKeywords;
22941
 
  friend class ::WinAsm;
22942
 
  friend class ::WinDeclSpecs;
22943
 
  friend class ::WinMemberExplSpec;
22944
 
  friend class ::WinTypeKeywords;
 
31395
  friend class ::ExtGnu;
22945
31396
  friend class ::PragmaOnceUnitState;
22946
31397
  friend class ::PragmaOnce;
22947
 
  friend class ::CCExprResolve;
22948
 
  friend class ::CExprResolve;
 
31398
  friend class ::CMatchSyntax;
22949
31399
 
22950
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31400
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22951
31401
 
22952
31402
public:
 
31403
  /** Constructor.
 
31404
   *  \param cst The cast operator, i.e. 'const_cast'.
 
31405
   *  \param o Left arrow bracket of the type name.
 
31406
   *  \param t The type to cast to.
 
31407
   *  \param c Right array bracket of the type name.
 
31408
   *  \param e The expression to cast. */
22953
31409
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
22954
31410
    CT_StaticCast (cst, o, t, c, e) {}
 
31411
  /** Get the identifier for this node type. Can be compared with NodeName(). */
22955
31412
  static const char *NodeId ();
 
31413
  /** Get the name of the node. Can be compared with NodeId(). */
22956
31414
  const char *NodeName () const { return NodeId (); }
22957
31415
   private:
22958
31416
  typedef CT_ConstCast CCExprResolveExpr;
22959
31417
 
22960
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31418
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
22961
31419
 public :
22962
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31420
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
22963
31421
  typedef CT_ConstCast CExprResolveExpr;
22964
31422
 
22965
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31423
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
22966
31424
 public :
22967
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
22968
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31425
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31426
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22969
31427
};
22970
31428
 
 
31429
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
31430
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
22971
31431
 
22972
 
#line 22973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31432
#line 31433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
22973
31433
} // closed Puma
 
31434
class CCExprResolve;
 
31435
class CExprResolve;
22974
31436
class WinIfExists;
22975
31437
class WinImportHandler;
22976
31438
class WinMacros;
22977
 
class CMatchSyntax;
22978
 
class ExtGnu;
 
31439
class WinAsm;
 
31440
class WinDeclSpecs;
 
31441
class WinMemberExplSpec;
 
31442
class WinTypeKeywords;
 
31443
class WinFriend;
22979
31444
class ExtAC;
22980
31445
class ExtACBuilderCoupling;
22981
31446
class ExtACSyntaxCoupling;
22982
31447
class ExtACTree;
22983
31448
class ExtACKeywords;
22984
 
class WinAsm;
22985
 
class WinDeclSpecs;
22986
 
class WinMemberExplSpec;
22987
 
class WinTypeKeywords;
 
31449
class ExtGnu;
22988
31450
class PragmaOnceUnitState;
22989
31451
class PragmaOnce;
22990
 
class CCExprResolve;
22991
 
class CExprResolve;
22992
 
namespace Puma {
22993
 
 
22994
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31452
class CMatchSyntax;
 
31453
namespace Puma {
 
31454
 
 
31455
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31456
 
 
31457
#line 31458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31458
} // closed Puma
 
31459
 
 
31460
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31461
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31462
#include "CCExprResolveH.ah"
 
31463
#endif
 
31464
namespace Puma {
 
31465
 
 
31466
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31467
 
 
31468
#line 31469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31469
} // closed Puma
 
31470
 
 
31471
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31472
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31473
#include "CExprResolveH.ah"
 
31474
#endif
 
31475
namespace Puma {
 
31476
 
 
31477
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
22995
31478
class CT_ReintCast : public CT_StaticCast {
22996
 
#line 22997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31479
#line 31480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31480
  friend class ::CCExprResolve;
 
31481
  friend class ::CExprResolve;
22997
31482
  friend class ::WinIfExists;
22998
31483
  friend class ::WinImportHandler;
22999
31484
  friend class ::WinMacros;
23000
 
  friend class ::CMatchSyntax;
23001
 
  friend class ::ExtGnu;
 
31485
  friend class ::WinAsm;
 
31486
  friend class ::WinDeclSpecs;
 
31487
  friend class ::WinMemberExplSpec;
 
31488
  friend class ::WinTypeKeywords;
 
31489
  friend class ::WinFriend;
23002
31490
  friend class ::ExtAC;
23003
31491
  friend class ::ExtACBuilderCoupling;
23004
31492
  friend class ::ExtACSyntaxCoupling;
23005
31493
  friend class ::ExtACTree;
23006
31494
  friend class ::ExtACKeywords;
23007
 
  friend class ::WinAsm;
23008
 
  friend class ::WinDeclSpecs;
23009
 
  friend class ::WinMemberExplSpec;
23010
 
  friend class ::WinTypeKeywords;
 
31495
  friend class ::ExtGnu;
23011
31496
  friend class ::PragmaOnceUnitState;
23012
31497
  friend class ::PragmaOnce;
23013
 
  friend class ::CCExprResolve;
23014
 
  friend class ::CExprResolve;
 
31498
  friend class ::CMatchSyntax;
23015
31499
 
23016
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31500
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23017
31501
 
23018
31502
public:
 
31503
  /** Constructor.
 
31504
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
31505
   *  \param o Left arrow bracket of the type name.
 
31506
   *  \param t The type to cast to.
 
31507
   *  \param c Right array bracket of the type name.
 
31508
   *  \param e The expression to cast. */
23019
31509
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
23020
31510
    CT_StaticCast (cst, o, t, c, e) {}
 
31511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23021
31512
  static const char *NodeId ();
 
31513
  /** Get the name of the node. Can be compared with NodeId(). */
23022
31514
  const char *NodeName () const { return NodeId (); }
23023
31515
   private:
23024
31516
  typedef CT_ReintCast CCExprResolveExpr;
23025
31517
 
23026
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31518
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23027
31519
 public :
23028
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31520
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23029
31521
  typedef CT_ReintCast CExprResolveExpr;
23030
31522
 
23031
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31523
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23032
31524
 public :
23033
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23034
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31525
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31526
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23035
31527
};
23036
31528
 
 
31529
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
31530
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
23037
31531
 
23038
 
#line 23039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31532
#line 31533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23039
31533
} // closed Puma
 
31534
class CCExprResolve;
 
31535
class CExprResolve;
23040
31536
class WinIfExists;
23041
31537
class WinImportHandler;
23042
31538
class WinMacros;
23043
 
class CMatchSyntax;
23044
 
class ExtGnu;
 
31539
class WinAsm;
 
31540
class WinDeclSpecs;
 
31541
class WinMemberExplSpec;
 
31542
class WinTypeKeywords;
 
31543
class WinFriend;
23045
31544
class ExtAC;
23046
31545
class ExtACBuilderCoupling;
23047
31546
class ExtACSyntaxCoupling;
23048
31547
class ExtACTree;
23049
31548
class ExtACKeywords;
23050
 
class WinAsm;
23051
 
class WinDeclSpecs;
23052
 
class WinMemberExplSpec;
23053
 
class WinTypeKeywords;
 
31549
class ExtGnu;
23054
31550
class PragmaOnceUnitState;
23055
31551
class PragmaOnce;
23056
 
class CCExprResolve;
23057
 
class CExprResolve;
23058
 
namespace Puma {
23059
 
 
23060
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31552
class CMatchSyntax;
 
31553
namespace Puma {
 
31554
 
 
31555
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31556
 
 
31557
#line 31558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31558
} // closed Puma
 
31559
 
 
31560
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31561
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31562
#include "CCExprResolveH.ah"
 
31563
#endif
 
31564
namespace Puma {
 
31565
 
 
31566
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31567
 
 
31568
#line 31569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31569
} // closed Puma
 
31570
 
 
31571
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31572
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31573
#include "CExprResolveH.ah"
 
31574
#endif
 
31575
namespace Puma {
 
31576
 
 
31577
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23061
31578
class CT_DynamicCast : public CT_StaticCast {
23062
 
#line 23063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31579
#line 31580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31580
  friend class ::CCExprResolve;
 
31581
  friend class ::CExprResolve;
23063
31582
  friend class ::WinIfExists;
23064
31583
  friend class ::WinImportHandler;
23065
31584
  friend class ::WinMacros;
23066
 
  friend class ::CMatchSyntax;
23067
 
  friend class ::ExtGnu;
 
31585
  friend class ::WinAsm;
 
31586
  friend class ::WinDeclSpecs;
 
31587
  friend class ::WinMemberExplSpec;
 
31588
  friend class ::WinTypeKeywords;
 
31589
  friend class ::WinFriend;
23068
31590
  friend class ::ExtAC;
23069
31591
  friend class ::ExtACBuilderCoupling;
23070
31592
  friend class ::ExtACSyntaxCoupling;
23071
31593
  friend class ::ExtACTree;
23072
31594
  friend class ::ExtACKeywords;
23073
 
  friend class ::WinAsm;
23074
 
  friend class ::WinDeclSpecs;
23075
 
  friend class ::WinMemberExplSpec;
23076
 
  friend class ::WinTypeKeywords;
 
31595
  friend class ::ExtGnu;
23077
31596
  friend class ::PragmaOnceUnitState;
23078
31597
  friend class ::PragmaOnce;
23079
 
  friend class ::CCExprResolve;
23080
 
  friend class ::CExprResolve;
 
31598
  friend class ::CMatchSyntax;
23081
31599
 
23082
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31600
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23083
31601
 
23084
31602
public:
 
31603
  /** Constructor.
 
31604
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
31605
   *  \param o Left arrow bracket of the type name.
 
31606
   *  \param t The type to cast to.
 
31607
   *  \param c Right array bracket of the type name.
 
31608
   *  \param e The expression to cast. */
23085
31609
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
23086
31610
    CT_StaticCast (cst, o, t, c, e) {}
 
31611
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23087
31612
  static const char *NodeId ();
 
31613
  /** Get the name of the node. Can be compared with NodeId(). */
23088
31614
  const char *NodeName () const { return NodeId (); }
23089
31615
   private:
23090
31616
  typedef CT_DynamicCast CCExprResolveExpr;
23091
31617
 
23092
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31618
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23093
31619
 public :
23094
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31620
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23095
31621
  typedef CT_DynamicCast CExprResolveExpr;
23096
31622
 
23097
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31623
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23098
31624
 public :
23099
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23100
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31625
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31626
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23101
31627
};
23102
31628
 
 
31629
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
31630
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
31631
 *  where 1.2 is implicitely casted from float to int. */
23103
31632
 
23104
 
#line 23105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31633
#line 31634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23105
31634
} // closed Puma
 
31635
class CCExprResolve;
 
31636
class CExprResolve;
23106
31637
class WinIfExists;
23107
31638
class WinImportHandler;
23108
31639
class WinMacros;
23109
 
class CMatchSyntax;
23110
 
class ExtGnu;
 
31640
class WinAsm;
 
31641
class WinDeclSpecs;
 
31642
class WinMemberExplSpec;
 
31643
class WinTypeKeywords;
 
31644
class WinFriend;
23111
31645
class ExtAC;
23112
31646
class ExtACBuilderCoupling;
23113
31647
class ExtACSyntaxCoupling;
23114
31648
class ExtACTree;
23115
31649
class ExtACKeywords;
23116
 
class WinAsm;
23117
 
class WinDeclSpecs;
23118
 
class WinMemberExplSpec;
23119
 
class WinTypeKeywords;
 
31650
class ExtGnu;
23120
31651
class PragmaOnceUnitState;
23121
31652
class PragmaOnce;
23122
 
class CCExprResolve;
23123
 
class CExprResolve;
23124
 
namespace Puma {
23125
 
 
23126
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31653
class CMatchSyntax;
 
31654
namespace Puma {
 
31655
 
 
31656
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31657
 
 
31658
#line 31659 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31659
} // closed Puma
 
31660
 
 
31661
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31662
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31663
#include "CCExprResolveH.ah"
 
31664
#endif
 
31665
namespace Puma {
 
31666
 
 
31667
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31668
 
 
31669
#line 31670 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31670
} // closed Puma
 
31671
 
 
31672
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31673
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31674
#include "CExprResolveH.ah"
 
31675
#endif
 
31676
namespace Puma {
 
31677
 
 
31678
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23127
31679
class CT_ImplicitCast : public CT_Expression {
23128
 
#line 23129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31680
#line 31681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31681
  friend class ::CCExprResolve;
 
31682
  friend class ::CExprResolve;
23129
31683
  friend class ::WinIfExists;
23130
31684
  friend class ::WinImportHandler;
23131
31685
  friend class ::WinMacros;
23132
 
  friend class ::CMatchSyntax;
23133
 
  friend class ::ExtGnu;
 
31686
  friend class ::WinAsm;
 
31687
  friend class ::WinDeclSpecs;
 
31688
  friend class ::WinMemberExplSpec;
 
31689
  friend class ::WinTypeKeywords;
 
31690
  friend class ::WinFriend;
23134
31691
  friend class ::ExtAC;
23135
31692
  friend class ::ExtACBuilderCoupling;
23136
31693
  friend class ::ExtACSyntaxCoupling;
23137
31694
  friend class ::ExtACTree;
23138
31695
  friend class ::ExtACKeywords;
23139
 
  friend class ::WinAsm;
23140
 
  friend class ::WinDeclSpecs;
23141
 
  friend class ::WinMemberExplSpec;
23142
 
  friend class ::WinTypeKeywords;
 
31696
  friend class ::ExtGnu;
23143
31697
  friend class ::PragmaOnceUnitState;
23144
31698
  friend class ::PragmaOnce;
23145
 
  friend class ::CCExprResolve;
23146
 
  friend class ::CExprResolve;
 
31699
  friend class ::CMatchSyntax;
23147
31700
 
23148
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31701
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23149
31702
 
23150
31703
  CTree *_expr; // casted expression
23151
31704
 
23152
31705
public:
23153
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
31706
  /** Constructor.
 
31707
   *  \param e The expression that is implicitely casted. */
 
31708
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
31709
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23154
31710
  static const char *NodeId ();
 
31711
  /** Get the name of the node. Can be compared with NodeId(). */
23155
31712
  const char *NodeName () const { return NodeId (); }
 
31713
  /** Get the number of sons. */
23156
31714
  int Sons () const { return 1; }
 
31715
  /** Get the n-th son.
 
31716
   *  \param n The index of the son.
 
31717
   *  \return The n-th son or NULL. */
23157
31718
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
31719
  /** Get the casted expression. */
23158
31720
  CTree *Expr () const { return _expr; }
 
31721
  /** Replace a son.
 
31722
   *  \param old_son The son to replace.
 
31723
   *  \param new_son The new son. */
23159
31724
  void ReplaceSon (CTree *old_son, CTree *new_son) 
23160
 
   { if (old_son == _expr) _expr = new_son; }
 
31725
   { CTree::ReplaceSon (_expr, old_son, new_son); }
23161
31726
   private:
23162
31727
  typedef CT_ImplicitCast CCExprResolveExpr;
23163
31728
 
23164
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31729
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23165
31730
 public :
23166
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31731
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23167
31732
  typedef CT_ImplicitCast CExprResolveExpr;
23168
31733
 
23169
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31734
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23170
31735
 public :
23171
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23172
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31736
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31737
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23173
31738
};
23174
31739
 
 
31740
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
31741
 *  Tree node representing a typeid expression, e.g. typeid(X). */
23175
31742
 
23176
 
#line 23177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31743
#line 31744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23177
31744
} // closed Puma
 
31745
class CCExprResolve;
 
31746
class CExprResolve;
23178
31747
class WinIfExists;
23179
31748
class WinImportHandler;
23180
31749
class WinMacros;
23181
 
class CMatchSyntax;
23182
 
class ExtGnu;
 
31750
class WinAsm;
 
31751
class WinDeclSpecs;
 
31752
class WinMemberExplSpec;
 
31753
class WinTypeKeywords;
 
31754
class WinFriend;
23183
31755
class ExtAC;
23184
31756
class ExtACBuilderCoupling;
23185
31757
class ExtACSyntaxCoupling;
23186
31758
class ExtACTree;
23187
31759
class ExtACKeywords;
23188
 
class WinAsm;
23189
 
class WinDeclSpecs;
23190
 
class WinMemberExplSpec;
23191
 
class WinTypeKeywords;
 
31760
class ExtGnu;
23192
31761
class PragmaOnceUnitState;
23193
31762
class PragmaOnce;
23194
 
class CCExprResolve;
23195
 
class CExprResolve;
23196
 
namespace Puma {
23197
 
 
23198
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31763
class CMatchSyntax;
 
31764
namespace Puma {
 
31765
 
 
31766
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31767
 
 
31768
#line 31769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31769
} // closed Puma
 
31770
 
 
31771
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31772
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31773
#include "CCExprResolveH.ah"
 
31774
#endif
 
31775
namespace Puma {
 
31776
 
 
31777
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31778
 
 
31779
#line 31780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31780
} // closed Puma
 
31781
 
 
31782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31784
#include "CExprResolveH.ah"
 
31785
#endif
 
31786
namespace Puma {
 
31787
 
 
31788
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23199
31789
class CT_TypeidExpr : public CT_Expression {
23200
 
#line 23201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31790
#line 31791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31791
  friend class ::CCExprResolve;
 
31792
  friend class ::CExprResolve;
23201
31793
  friend class ::WinIfExists;
23202
31794
  friend class ::WinImportHandler;
23203
31795
  friend class ::WinMacros;
23204
 
  friend class ::CMatchSyntax;
23205
 
  friend class ::ExtGnu;
 
31796
  friend class ::WinAsm;
 
31797
  friend class ::WinDeclSpecs;
 
31798
  friend class ::WinMemberExplSpec;
 
31799
  friend class ::WinTypeKeywords;
 
31800
  friend class ::WinFriend;
23206
31801
  friend class ::ExtAC;
23207
31802
  friend class ::ExtACBuilderCoupling;
23208
31803
  friend class ::ExtACSyntaxCoupling;
23209
31804
  friend class ::ExtACTree;
23210
31805
  friend class ::ExtACKeywords;
23211
 
  friend class ::WinAsm;
23212
 
  friend class ::WinDeclSpecs;
23213
 
  friend class ::WinMemberExplSpec;
23214
 
  friend class ::WinTypeKeywords;
 
31806
  friend class ::ExtGnu;
23215
31807
  friend class ::PragmaOnceUnitState;
23216
31808
  friend class ::PragmaOnce;
23217
 
  friend class ::CCExprResolve;
23218
 
  friend class ::CExprResolve;
 
31809
  friend class ::CMatchSyntax;
23219
31810
 
23220
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31811
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23221
31812
 
23222
31813
  CTree *sons[4]; // typeid, open, type_id/expr, close
23223
31814
 
23224
31815
public:
 
31816
  /** Constructor.
 
31817
   *  \param tid The 'typeid' operator.
 
31818
   *  \param o The left parenthesis of the type name or expression.
 
31819
   *  \param e The expression or type name for which to get the type identifier.
 
31820
   *  \param c The right parenthesis of the type name or expression. */
23225
31821
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
23226
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
31822
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
31823
    AddSon (sons[2], e); AddSon (sons[3], c);
23227
31824
  }
 
31825
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23228
31826
  static const char *NodeId ();
 
31827
  /** Get the name of the node. Can be compared with NodeId(). */
23229
31828
  const char *NodeName () const { return NodeId (); }
 
31829
  /** Get the number of sons. */
23230
31830
  int Sons () const { return 4; }
 
31831
  /** Get the n-th son.
 
31832
   *  \param n The index of the son.
 
31833
   *  \return The n-th son or NULL. */
23231
31834
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
31835
  /** Replace a son.
 
31836
   *  \param old_son The son to replace.
 
31837
   *  \param new_son The new son. */
23232
31838
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23233
31839
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23234
31840
  }
 
31841
  /** Get the typeid argument, i.e. the expression or type name for
 
31842
   *  which to get the type identifier. */
23235
31843
  CTree *Arg () const { return sons[2]; }
23236
31844
   private:
23237
31845
  typedef CT_TypeidExpr CCExprResolveExpr;
23238
31846
 
23239
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31847
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23240
31848
 public :
23241
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31849
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23242
31850
  typedef CT_TypeidExpr CExprResolveExpr;
23243
31851
 
23244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31852
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23245
31853
 public :
23246
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23247
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31854
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31855
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23248
31856
};
23249
31857
 
 
31858
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
31859
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
23250
31860
 
23251
 
#line 23252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31861
#line 31862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23252
31862
} // closed Puma
 
31863
class CCExprResolve;
 
31864
class CExprResolve;
23253
31865
class WinIfExists;
23254
31866
class WinImportHandler;
23255
31867
class WinMacros;
23256
 
class CMatchSyntax;
23257
 
class ExtGnu;
 
31868
class WinAsm;
 
31869
class WinDeclSpecs;
 
31870
class WinMemberExplSpec;
 
31871
class WinTypeKeywords;
 
31872
class WinFriend;
23258
31873
class ExtAC;
23259
31874
class ExtACBuilderCoupling;
23260
31875
class ExtACSyntaxCoupling;
23261
31876
class ExtACTree;
23262
31877
class ExtACKeywords;
23263
 
class WinAsm;
23264
 
class WinDeclSpecs;
23265
 
class WinMemberExplSpec;
23266
 
class WinTypeKeywords;
 
31878
class ExtGnu;
23267
31879
class PragmaOnceUnitState;
23268
31880
class PragmaOnce;
23269
 
class CCExprResolve;
23270
 
class CExprResolve;
23271
 
namespace Puma {
23272
 
 
23273
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31881
class CMatchSyntax;
 
31882
namespace Puma {
 
31883
 
 
31884
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31885
 
 
31886
#line 31887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31887
} // closed Puma
 
31888
 
 
31889
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31890
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
31891
#include "CCExprResolveH.ah"
 
31892
#endif
 
31893
namespace Puma {
 
31894
 
 
31895
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31896
 
 
31897
#line 31898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31898
} // closed Puma
 
31899
 
 
31900
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31901
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
31902
#include "CExprResolveH.ah"
 
31903
#endif
 
31904
namespace Puma {
 
31905
 
 
31906
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23274
31907
class CT_SizeofExpr : public CT_Expression {
23275
 
#line 23276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31908
#line 31909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
31909
  friend class ::CCExprResolve;
 
31910
  friend class ::CExprResolve;
23276
31911
  friend class ::WinIfExists;
23277
31912
  friend class ::WinImportHandler;
23278
31913
  friend class ::WinMacros;
23279
 
  friend class ::CMatchSyntax;
23280
 
  friend class ::ExtGnu;
 
31914
  friend class ::WinAsm;
 
31915
  friend class ::WinDeclSpecs;
 
31916
  friend class ::WinMemberExplSpec;
 
31917
  friend class ::WinTypeKeywords;
 
31918
  friend class ::WinFriend;
23281
31919
  friend class ::ExtAC;
23282
31920
  friend class ::ExtACBuilderCoupling;
23283
31921
  friend class ::ExtACSyntaxCoupling;
23284
31922
  friend class ::ExtACTree;
23285
31923
  friend class ::ExtACKeywords;
23286
 
  friend class ::WinAsm;
23287
 
  friend class ::WinDeclSpecs;
23288
 
  friend class ::WinMemberExplSpec;
23289
 
  friend class ::WinTypeKeywords;
 
31924
  friend class ::ExtGnu;
23290
31925
  friend class ::PragmaOnceUnitState;
23291
31926
  friend class ::PragmaOnce;
23292
 
  friend class ::CCExprResolve;
23293
 
  friend class ::CExprResolve;
 
31927
  friend class ::CMatchSyntax;
23294
31928
 
23295
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31929
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23296
31930
 
23297
31931
  CTree *sons[5]; // key, open, type, close, expr
23298
31932
 
23299
31933
public:
 
31934
  /** Constructor.
 
31935
   *  \param k The 'sizeof' keyword.
 
31936
   *  \param o Left parenthesis around the type name.
 
31937
   *  \param t The type from which to get the size.
 
31938
   *  \param c Right parenthesis around the type name. */
23300
31939
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
23301
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
31940
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
31941
    AddSon (sons[3], c); AddSon (sons[4], 0);
23302
31942
  }
 
31943
  /** Constructor.
 
31944
   *  \param k The 'sizeof' keyword.
 
31945
   *  \param e The expression from which to get the size. */
23303
31946
  CT_SizeofExpr (CTree *k, CTree *e) {
23304
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
31947
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
31948
    AddSon (sons[3], 0); AddSon (sons[4], e);
23305
31949
  }
 
31950
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23306
31951
  static const char *NodeId ();
 
31952
  /** Get the name of the node. Can be compared with NodeId(). */
23307
31953
  const char *NodeName () const { return NodeId (); }
 
31954
  /** Get the number of sons. */
23308
31955
  int Sons () const { return CTree::Sons (sons, 5); }
 
31956
  /** Get the n-th son.
 
31957
   *  \param n The index of the son.
 
31958
   *  \return The n-th son or NULL. */
23309
31959
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
31960
  /** Replace a son.
 
31961
   *  \param old_son The son to replace.
 
31962
   *  \param new_son The new son. */
23310
31963
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23311
31964
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23312
31965
  }
 
31966
  /** Get the expression. */
23313
31967
  CTree *Expr () const { return sons[4]; }
 
31968
  /** Get the type name. */
23314
31969
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
23315
31970
   private:
23316
31971
  typedef CT_SizeofExpr CCExprResolveExpr;
23317
31972
 
23318
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
31973
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23319
31974
 public :
23320
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
31975
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23321
31976
  typedef CT_SizeofExpr CExprResolveExpr;
23322
31977
 
23323
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
31978
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23324
31979
 public :
23325
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23326
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31980
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
31981
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23327
31982
};
23328
31983
 
 
31984
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
31985
 *  Tree node representing an index designator, i.e. [1]. */
23329
31986
 
23330
 
#line 23331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
31987
#line 31988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23331
31988
} // closed Puma
 
31989
class CCExprResolve;
 
31990
class CExprResolve;
23332
31991
class WinIfExists;
23333
31992
class WinImportHandler;
23334
31993
class WinMacros;
23335
 
class CMatchSyntax;
23336
 
class ExtGnu;
 
31994
class WinAsm;
 
31995
class WinDeclSpecs;
 
31996
class WinMemberExplSpec;
 
31997
class WinTypeKeywords;
 
31998
class WinFriend;
23337
31999
class ExtAC;
23338
32000
class ExtACBuilderCoupling;
23339
32001
class ExtACSyntaxCoupling;
23340
32002
class ExtACTree;
23341
32003
class ExtACKeywords;
23342
 
class WinAsm;
23343
 
class WinDeclSpecs;
23344
 
class WinMemberExplSpec;
23345
 
class WinTypeKeywords;
 
32004
class ExtGnu;
23346
32005
class PragmaOnceUnitState;
23347
32006
class PragmaOnce;
23348
 
class CCExprResolve;
23349
 
class CExprResolve;
23350
 
namespace Puma {
23351
 
 
23352
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32007
class CMatchSyntax;
 
32008
namespace Puma {
 
32009
 
 
32010
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32011
 
 
32012
#line 32013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32013
} // closed Puma
 
32014
 
 
32015
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32016
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32017
#include "CCExprResolveH.ah"
 
32018
#endif
 
32019
namespace Puma {
 
32020
 
 
32021
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32022
 
 
32023
#line 32024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32024
} // closed Puma
 
32025
 
 
32026
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32027
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32028
#include "CExprResolveH.ah"
 
32029
#endif
 
32030
namespace Puma {
 
32031
 
 
32032
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23353
32033
class CT_IndexDesignator : public CT_Expression {
23354
 
#line 23355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32034
#line 32035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32035
  friend class ::CCExprResolve;
 
32036
  friend class ::CExprResolve;
23355
32037
  friend class ::WinIfExists;
23356
32038
  friend class ::WinImportHandler;
23357
32039
  friend class ::WinMacros;
23358
 
  friend class ::CMatchSyntax;
23359
 
  friend class ::ExtGnu;
 
32040
  friend class ::WinAsm;
 
32041
  friend class ::WinDeclSpecs;
 
32042
  friend class ::WinMemberExplSpec;
 
32043
  friend class ::WinTypeKeywords;
 
32044
  friend class ::WinFriend;
23360
32045
  friend class ::ExtAC;
23361
32046
  friend class ::ExtACBuilderCoupling;
23362
32047
  friend class ::ExtACSyntaxCoupling;
23363
32048
  friend class ::ExtACTree;
23364
32049
  friend class ::ExtACKeywords;
23365
 
  friend class ::WinAsm;
23366
 
  friend class ::WinDeclSpecs;
23367
 
  friend class ::WinMemberExplSpec;
23368
 
  friend class ::WinTypeKeywords;
 
32050
  friend class ::ExtGnu;
23369
32051
  friend class ::PragmaOnceUnitState;
23370
32052
  friend class ::PragmaOnce;
23371
 
  friend class ::CCExprResolve;
23372
 
  friend class ::CExprResolve;
 
32053
  friend class ::CMatchSyntax;
23373
32054
 
23374
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32055
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23375
32056
 
23376
32057
  CTree *sons[3]; // open, index, close
23377
32058
 
23378
32059
public:
 
32060
  /** Constructor.
 
32061
   *  \param o Left bracket of the index designator.
 
32062
   *  \param i The index expression.
 
32063
   *  \param c Right bracket of the index designator. */
23379
32064
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
23380
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
32065
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
23381
32066
  }
 
32067
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23382
32068
  static const char *NodeId ();
 
32069
  /** Get the name of the node. Can be compared with NodeId(). */
23383
32070
  const char *NodeName () const { return NodeId (); }
 
32071
  /** Get the number of sons. */
23384
32072
  int Sons () const { return 3; }
 
32073
  /** Get the n-th son.
 
32074
   *  \param n The index of the son.
 
32075
   *  \return The n-th son or NULL. */
23385
32076
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32077
  /** Replace a son.
 
32078
   *  \param old_son The son to replace.
 
32079
   *  \param new_son The new son. */
23386
32080
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23387
32081
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23388
32082
  }
23389
32083
   private:
23390
32084
  typedef CT_IndexDesignator CCExprResolveExpr;
23391
32085
 
23392
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32086
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23393
32087
 public :
23394
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
32088
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23395
32089
  typedef CT_IndexDesignator CExprResolveExpr;
23396
32090
 
23397
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32091
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23398
32092
 public :
23399
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23400
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32093
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32094
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23401
32095
};
23402
32096
 
 
32097
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
32098
 *  Tree node representing a member designator, e.g. .a. */
23403
32099
 
23404
 
#line 23405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32100
#line 32101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23405
32101
} // closed Puma
 
32102
class CCExprResolve;
 
32103
class CExprResolve;
23406
32104
class WinIfExists;
23407
32105
class WinImportHandler;
23408
32106
class WinMacros;
23409
 
class CMatchSyntax;
23410
 
class ExtGnu;
 
32107
class WinAsm;
 
32108
class WinDeclSpecs;
 
32109
class WinMemberExplSpec;
 
32110
class WinTypeKeywords;
 
32111
class WinFriend;
23411
32112
class ExtAC;
23412
32113
class ExtACBuilderCoupling;
23413
32114
class ExtACSyntaxCoupling;
23414
32115
class ExtACTree;
23415
32116
class ExtACKeywords;
23416
 
class WinAsm;
23417
 
class WinDeclSpecs;
23418
 
class WinMemberExplSpec;
23419
 
class WinTypeKeywords;
 
32117
class ExtGnu;
23420
32118
class PragmaOnceUnitState;
23421
32119
class PragmaOnce;
23422
 
class CCExprResolve;
23423
 
class CExprResolve;
23424
 
namespace Puma {
23425
 
 
23426
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32120
class CMatchSyntax;
 
32121
namespace Puma {
 
32122
 
 
32123
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32124
 
 
32125
#line 32126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32126
} // closed Puma
 
32127
 
 
32128
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32129
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
32130
#include "CCExprResolveH.ah"
 
32131
#endif
 
32132
namespace Puma {
 
32133
 
 
32134
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32135
 
 
32136
#line 32137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32137
} // closed Puma
 
32138
 
 
32139
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32140
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
32141
#include "CExprResolveH.ah"
 
32142
#endif
 
32143
namespace Puma {
 
32144
 
 
32145
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23427
32146
class CT_MembDesignator : public CT_Expression {
23428
 
#line 23429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32147
#line 32148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32148
  friend class ::CCExprResolve;
 
32149
  friend class ::CExprResolve;
23429
32150
  friend class ::WinIfExists;
23430
32151
  friend class ::WinImportHandler;
23431
32152
  friend class ::WinMacros;
23432
 
  friend class ::CMatchSyntax;
23433
 
  friend class ::ExtGnu;
 
32153
  friend class ::WinAsm;
 
32154
  friend class ::WinDeclSpecs;
 
32155
  friend class ::WinMemberExplSpec;
 
32156
  friend class ::WinTypeKeywords;
 
32157
  friend class ::WinFriend;
23434
32158
  friend class ::ExtAC;
23435
32159
  friend class ::ExtACBuilderCoupling;
23436
32160
  friend class ::ExtACSyntaxCoupling;
23437
32161
  friend class ::ExtACTree;
23438
32162
  friend class ::ExtACKeywords;
23439
 
  friend class ::WinAsm;
23440
 
  friend class ::WinDeclSpecs;
23441
 
  friend class ::WinMemberExplSpec;
23442
 
  friend class ::WinTypeKeywords;
 
32163
  friend class ::ExtGnu;
23443
32164
  friend class ::PragmaOnceUnitState;
23444
32165
  friend class ::PragmaOnce;
23445
 
  friend class ::CCExprResolve;
23446
 
  friend class ::CExprResolve;
 
32166
  friend class ::CMatchSyntax;
23447
32167
 
23448
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32168
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23449
32169
 
23450
32170
  CTree *sons[2]; // dot, member
23451
32171
 
23452
32172
public:
23453
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
32173
  /** Constructor.
 
32174
   *  \param d The dot before the member name.
 
32175
   *  \param m The member name. */
 
32176
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
32177
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23454
32178
  static const char *NodeId ();
 
32179
  /** Get the name of the node. Can be compared with NodeId(). */
23455
32180
  const char *NodeName () const { return NodeId (); }
 
32181
  /** Get the number of sons. */
23456
32182
  int Sons () const { return 2; }
 
32183
  /** Get the n-th son.
 
32184
   *  \param n The index of the son.
 
32185
   *  \return The n-th son or NULL. */
23457
32186
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
32187
  /** Replace a son.
 
32188
   *  \param old_son The son to replace.
 
32189
   *  \param new_son The new son. */
23458
32190
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23459
32191
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23460
32192
  }
23461
32193
   private:
23462
32194
  typedef CT_MembDesignator CCExprResolveExpr;
23463
32195
 
23464
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
32196
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
23465
32197
 public :
23466
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
32198
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
23467
32199
  typedef CT_MembDesignator CExprResolveExpr;
23468
32200
 
23469
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
32201
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
23470
32202
 public :
23471
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
23472
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32203
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
32204
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23473
32205
};
23474
32206
 
 
32207
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
32208
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
23475
32209
 
23476
 
#line 23477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32210
#line 32211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23477
32211
} // closed Puma
 
32212
class CCExprResolve;
 
32213
class CExprResolve;
23478
32214
class WinIfExists;
23479
32215
class WinImportHandler;
23480
32216
class WinMacros;
23481
 
class CMatchSyntax;
23482
 
class ExtGnu;
 
32217
class WinAsm;
 
32218
class WinDeclSpecs;
 
32219
class WinMemberExplSpec;
 
32220
class WinTypeKeywords;
 
32221
class WinFriend;
23483
32222
class ExtAC;
23484
32223
class ExtACBuilderCoupling;
23485
32224
class ExtACSyntaxCoupling;
23486
32225
class ExtACTree;
23487
32226
class ExtACKeywords;
23488
 
class WinAsm;
23489
 
class WinDeclSpecs;
23490
 
class WinMemberExplSpec;
23491
 
class WinTypeKeywords;
 
32227
class ExtGnu;
23492
32228
class PragmaOnceUnitState;
23493
32229
class PragmaOnce;
23494
 
class CCExprResolve;
23495
 
class CExprResolve;
 
32230
class CMatchSyntax;
23496
32231
namespace Puma {
23497
32232
 
23498
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32233
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23499
32234
class CT_DesignatorSeq : public CT_List, public CSemValue {
23500
 
#line 23501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32235
#line 32236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32236
  friend class ::CCExprResolve;
 
32237
  friend class ::CExprResolve;
23501
32238
  friend class ::WinIfExists;
23502
32239
  friend class ::WinImportHandler;
23503
32240
  friend class ::WinMacros;
23504
 
  friend class ::CMatchSyntax;
23505
 
  friend class ::ExtGnu;
 
32241
  friend class ::WinAsm;
 
32242
  friend class ::WinDeclSpecs;
 
32243
  friend class ::WinMemberExplSpec;
 
32244
  friend class ::WinTypeKeywords;
 
32245
  friend class ::WinFriend;
23506
32246
  friend class ::ExtAC;
23507
32247
  friend class ::ExtACBuilderCoupling;
23508
32248
  friend class ::ExtACSyntaxCoupling;
23509
32249
  friend class ::ExtACTree;
23510
32250
  friend class ::ExtACKeywords;
23511
 
  friend class ::WinAsm;
23512
 
  friend class ::WinDeclSpecs;
23513
 
  friend class ::WinMemberExplSpec;
23514
 
  friend class ::WinTypeKeywords;
 
32251
  friend class ::ExtGnu;
23515
32252
  friend class ::PragmaOnceUnitState;
23516
32253
  friend class ::PragmaOnce;
23517
 
  friend class ::CCExprResolve;
23518
 
  friend class ::CExprResolve;
 
32254
  friend class ::CMatchSyntax;
23519
32255
 
23520
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32256
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23521
32257
 
23522
32258
public:
 
32259
  /** Constructor.
 
32260
   *  \param size Initial number of designators. */
23523
32261
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
32262
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23524
32263
  static const char *NodeId ();
 
32264
  /** Get the name of the node. Can be compared with NodeId(). */
23525
32265
  const char *NodeName () const { return NodeId (); }
23526
32266
 
 
32267
  /** Get the type of the entity to initialize. */
23527
32268
  CTypeInfo *Type () const { return type; }
 
32269
  /** Get the value of the entity to initialize. */
23528
32270
  CExprValue *Value () const { return value; }
 
32271
  /** Get the semantic value object. */
23529
32272
  CSemValue *SemValue () const { return (CSemValue*)this; }
23530
32273
};
23531
32274
 
23535
32278
/*                                                                           */
23536
32279
/*****************************************************************************/
23537
32280
 
 
32281
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
32282
 *  Base class for all tree nodes representing declaration specifiers. */
23538
32283
 
23539
 
#line 23540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32284
#line 32285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23540
32285
} // closed Puma
 
32286
class CCExprResolve;
 
32287
class CExprResolve;
23541
32288
class WinIfExists;
23542
32289
class WinImportHandler;
23543
32290
class WinMacros;
23544
 
class CMatchSyntax;
23545
 
class ExtGnu;
 
32291
class WinAsm;
 
32292
class WinDeclSpecs;
 
32293
class WinMemberExplSpec;
 
32294
class WinTypeKeywords;
 
32295
class WinFriend;
23546
32296
class ExtAC;
23547
32297
class ExtACBuilderCoupling;
23548
32298
class ExtACSyntaxCoupling;
23549
32299
class ExtACTree;
23550
32300
class ExtACKeywords;
23551
 
class WinAsm;
23552
 
class WinDeclSpecs;
23553
 
class WinMemberExplSpec;
23554
 
class WinTypeKeywords;
 
32301
class ExtGnu;
23555
32302
class PragmaOnceUnitState;
23556
32303
class PragmaOnce;
23557
 
class CCExprResolve;
23558
 
class CExprResolve;
 
32304
class CMatchSyntax;
23559
32305
namespace Puma {
23560
32306
 
23561
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32307
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23562
32308
class CT_DeclSpec : public CTree {
23563
 
#line 23564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32309
#line 32310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32310
  friend class ::CCExprResolve;
 
32311
  friend class ::CExprResolve;
23564
32312
  friend class ::WinIfExists;
23565
32313
  friend class ::WinImportHandler;
23566
32314
  friend class ::WinMacros;
23567
 
  friend class ::CMatchSyntax;
23568
 
  friend class ::ExtGnu;
 
32315
  friend class ::WinAsm;
 
32316
  friend class ::WinDeclSpecs;
 
32317
  friend class ::WinMemberExplSpec;
 
32318
  friend class ::WinTypeKeywords;
 
32319
  friend class ::WinFriend;
23569
32320
  friend class ::ExtAC;
23570
32321
  friend class ::ExtACBuilderCoupling;
23571
32322
  friend class ::ExtACSyntaxCoupling;
23572
32323
  friend class ::ExtACTree;
23573
32324
  friend class ::ExtACKeywords;
23574
 
  friend class ::WinAsm;
23575
 
  friend class ::WinDeclSpecs;
23576
 
  friend class ::WinMemberExplSpec;
23577
 
  friend class ::WinTypeKeywords;
 
32325
  friend class ::ExtGnu;
23578
32326
  friend class ::PragmaOnceUnitState;
23579
32327
  friend class ::PragmaOnce;
23580
 
  friend class ::CCExprResolve;
23581
 
  friend class ::CExprResolve;
 
32328
  friend class ::CMatchSyntax;
23582
32329
 
23583
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32330
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23584
32331
 
23585
32332
protected:
 
32333
  /** Constructor. */
23586
32334
  CT_DeclSpec () {}
23587
32335
};
23588
32336
 
 
32337
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
32338
 *  Tree node representing a primitive declaration specifier. */
23589
32339
 
23590
 
#line 23591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32340
#line 32341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23591
32341
} // closed Puma
 
32342
class CCExprResolve;
 
32343
class CExprResolve;
23592
32344
class WinIfExists;
23593
32345
class WinImportHandler;
23594
32346
class WinMacros;
23595
 
class CMatchSyntax;
23596
 
class ExtGnu;
 
32347
class WinAsm;
 
32348
class WinDeclSpecs;
 
32349
class WinMemberExplSpec;
 
32350
class WinTypeKeywords;
 
32351
class WinFriend;
23597
32352
class ExtAC;
23598
32353
class ExtACBuilderCoupling;
23599
32354
class ExtACSyntaxCoupling;
23600
32355
class ExtACTree;
23601
32356
class ExtACKeywords;
23602
 
class WinAsm;
23603
 
class WinDeclSpecs;
23604
 
class WinMemberExplSpec;
23605
 
class WinTypeKeywords;
 
32357
class ExtGnu;
23606
32358
class PragmaOnceUnitState;
23607
32359
class PragmaOnce;
23608
 
class CCExprResolve;
23609
 
class CExprResolve;
 
32360
class CMatchSyntax;
23610
32361
namespace Puma {
23611
32362
 
23612
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32363
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23613
32364
class CT_PrimDeclSpec : public CT_DeclSpec {
23614
 
#line 23615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32365
#line 32366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32366
  friend class ::CCExprResolve;
 
32367
  friend class ::CExprResolve;
23615
32368
  friend class ::WinIfExists;
23616
32369
  friend class ::WinImportHandler;
23617
32370
  friend class ::WinMacros;
23618
 
  friend class ::CMatchSyntax;
23619
 
  friend class ::ExtGnu;
 
32371
  friend class ::WinAsm;
 
32372
  friend class ::WinDeclSpecs;
 
32373
  friend class ::WinMemberExplSpec;
 
32374
  friend class ::WinTypeKeywords;
 
32375
  friend class ::WinFriend;
23620
32376
  friend class ::ExtAC;
23621
32377
  friend class ::ExtACBuilderCoupling;
23622
32378
  friend class ::ExtACSyntaxCoupling;
23623
32379
  friend class ::ExtACTree;
23624
32380
  friend class ::ExtACKeywords;
23625
 
  friend class ::WinAsm;
23626
 
  friend class ::WinDeclSpecs;
23627
 
  friend class ::WinMemberExplSpec;
23628
 
  friend class ::WinTypeKeywords;
 
32381
  friend class ::ExtGnu;
23629
32382
  friend class ::PragmaOnceUnitState;
23630
32383
  friend class ::PragmaOnce;
23631
 
  friend class ::CCExprResolve;
23632
 
  friend class ::CExprResolve;
 
32384
  friend class ::CMatchSyntax;
23633
32385
 
23634
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32386
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23635
32387
 
23636
32388
public:
23637
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
23638
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
23639
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
23640
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
23641
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
23642
 
              // AspectC++ specific type specifier
23643
 
              PDS_UNKNOWN_T,
23644
 
              // Win specific declaration specifiers
23645
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
23646
 
              PDS_UNKNOWN, PDS_NUM };
 
32389
  /** Declaration specifier types. */
 
32390
  enum Type { 
 
32391
    PDS_FRIEND,    /** friend */
 
32392
    PDS_TYPEDEF,   /** typedef */
 
32393
    PDS_AUTO,      /** auto */
 
32394
    PDS_REGISTER,  /** register */
 
32395
    PDS_STATIC,    /** static */
 
32396
    PDS_EXTERN,    /** extern */
 
32397
    PDS_MUTABLE,   /** mutable */
 
32398
    PDS_INLINE,    /** inline */
 
32399
    PDS_VIRTUAL,   /** virtual */
 
32400
    PDS_EXPLICIT,  /** explicit */
 
32401
    PDS_CONST,     /** const */
 
32402
    PDS_VOLATILE,  /** volatile */
 
32403
    PDS_RESTRICT,  /** restrict */
 
32404
    PDS_CHAR,      /** char */
 
32405
    PDS_WCHAR_T,   /** wchar_t */
 
32406
    PDS_BOOL,      /** bool */
 
32407
    PDS_SHORT,     /** short */
 
32408
    PDS_INT,       /** int */
 
32409
    PDS_LONG,      /** long */
 
32410
    PDS_SIGNED,    /** signed */
 
32411
    PDS_UNSIGNED,  /** unsigned */
 
32412
    PDS_FLOAT,     /** float */
 
32413
    PDS_DOUBLE,    /** double */
 
32414
    PDS_VOID,      /** void */
 
32415
    // AspectC++ specific type specifier
 
32416
    PDS_UNKNOWN_T, /** unknown_t */
 
32417
    // Win specific declaration specifiers
 
32418
    PDS_CDECL,     /** __cdecl */
 
32419
    PDS_STDCALL,   /** __stdcall */
 
32420
    PDS_FASTCALL,  /** __fastcall */
 
32421
    PDS_INT64,     /** __int64 */
 
32422
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
32423
    PDS_NUM        /** Number of declaration specifier types. */
 
32424
  };
23647
32425
 
23648
32426
private:
23649
32427
  Type _type;
23650
 
  CT_Token *_token;
 
32428
  CTree *_token; // has to be a CT_Token
23651
32429
 
23652
32430
  void determine_type ();
23653
32431
 
23654
32432
public:
23655
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
32433
  /** Constructor.
 
32434
   *  \param t The token containing the declaration specifier. */
 
32435
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
32436
  /** Constructor.
 
32437
   *  \param t The declaration specifier type. */
23656
32438
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
32439
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23657
32440
  static const char *NodeId ();
 
32441
  /** Get the name of the node. Can be compared with NodeId(). */
23658
32442
  const char *NodeName () const { return NodeId (); }
 
32443
  /** Get the number of sons. */
23659
32444
  int Sons () const { return _token ? 1 : 0; }
 
32445
  /** Get the n-th son.
 
32446
   *  \param n The index of the son.
 
32447
   *  \return The n-th son or NULL. */
23660
32448
  CTree *Son (int n) const 
23661
32449
   { return (n == 0) ? _token : (CTree*)0; }
 
32450
  /** Get the textual representation of the declaration specifier.
 
32451
   *  \return The string representation or " ". */
23662
32452
  const char *SpecText () const 
23663
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
32453
   { return _token ? _token->token ()->text () : " "; }
 
32454
  /** Get the declaration specifier type. */
23664
32455
  Type SpecType () const { return _type; }
 
32456
  /** Number of declaration specifier types. */
23665
32457
  static const int NumTypes = PDS_NUM;
 
32458
  /** Replace a son.
 
32459
   *  \param old_son The son to replace.
 
32460
   *  \param new_son The new son. */
 
32461
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32462
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
32463
    determine_type ();
 
32464
  }
23666
32465
};
23667
32466
 
 
32467
/** \class CT_NamedType CTree.h Puma/CTree.h
 
32468
 *  Tree node representing a named type, e.g. (int*)a. 
 
32469
 *  where int* is a type with a generated name. */
23668
32470
 
23669
 
#line 23670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32471
#line 32472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23670
32472
} // closed Puma
 
32473
class CCExprResolve;
 
32474
class CExprResolve;
23671
32475
class WinIfExists;
23672
32476
class WinImportHandler;
23673
32477
class WinMacros;
23674
 
class CMatchSyntax;
23675
 
class ExtGnu;
 
32478
class WinAsm;
 
32479
class WinDeclSpecs;
 
32480
class WinMemberExplSpec;
 
32481
class WinTypeKeywords;
 
32482
class WinFriend;
23676
32483
class ExtAC;
23677
32484
class ExtACBuilderCoupling;
23678
32485
class ExtACSyntaxCoupling;
23679
32486
class ExtACTree;
23680
32487
class ExtACKeywords;
23681
 
class WinAsm;
23682
 
class WinDeclSpecs;
23683
 
class WinMemberExplSpec;
23684
 
class WinTypeKeywords;
 
32488
class ExtGnu;
23685
32489
class PragmaOnceUnitState;
23686
32490
class PragmaOnce;
23687
 
class CCExprResolve;
23688
 
class CExprResolve;
 
32491
class CMatchSyntax;
23689
32492
namespace Puma {
23690
32493
 
23691
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32494
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23692
32495
class CT_NamedType : public CT_DeclSpec, public CSemObject {
23693
 
#line 23694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32496
#line 32497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32497
  friend class ::CCExprResolve;
 
32498
  friend class ::CExprResolve;
23694
32499
  friend class ::WinIfExists;
23695
32500
  friend class ::WinImportHandler;
23696
32501
  friend class ::WinMacros;
23697
 
  friend class ::CMatchSyntax;
23698
 
  friend class ::ExtGnu;
 
32502
  friend class ::WinAsm;
 
32503
  friend class ::WinDeclSpecs;
 
32504
  friend class ::WinMemberExplSpec;
 
32505
  friend class ::WinTypeKeywords;
 
32506
  friend class ::WinFriend;
23699
32507
  friend class ::ExtAC;
23700
32508
  friend class ::ExtACBuilderCoupling;
23701
32509
  friend class ::ExtACSyntaxCoupling;
23702
32510
  friend class ::ExtACTree;
23703
32511
  friend class ::ExtACKeywords;
23704
 
  friend class ::WinAsm;
23705
 
  friend class ::WinDeclSpecs;
23706
 
  friend class ::WinMemberExplSpec;
23707
 
  friend class ::WinTypeKeywords;
 
32512
  friend class ::ExtGnu;
23708
32513
  friend class ::PragmaOnceUnitState;
23709
32514
  friend class ::PragmaOnce;
23710
 
  friend class ::CCExprResolve;
23711
 
  friend class ::CExprResolve;
 
32515
  friend class ::CMatchSyntax;
23712
32516
 
23713
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32517
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23714
32518
 
23715
32519
  CTree *sons[2]; // declspecs, declarator
23716
32520
 
23717
32521
public:
23718
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
32522
  /** Constructor.
 
32523
   *  \param dss The declaration specifier sequence of the type.
 
32524
   *  \param d The type declarator. */
 
32525
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
32526
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23719
32527
  static const char *NodeId ();
 
32528
  /** Get the name of the node. Can be compared with NodeId(). */
23720
32529
  const char *NodeName () const { return NodeId (); }
 
32530
  /** Get the number of sons. */
23721
32531
  int Sons () const { return CTree::Sons (sons, 2); }
 
32532
  /** Get the n-th son.
 
32533
   *  \param n The index of the son.
 
32534
   *  \return The n-th son or NULL. */
23722
32535
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
32536
  /** Get the declarator. */
23723
32537
  CTree *Declarator () const { return sons[1]; }
 
32538
  /** Replace a son.
 
32539
   *  \param old_son The son to replace.
 
32540
   *  \param new_son The new son. */
23724
32541
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23725
32542
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23726
32543
  }
 
32544
  /** Get the semantic information object. */
23727
32545
  CSemObject *SemObject () const { return (CSemObject*)this; }
23728
32546
};
23729
32547
      
 
32548
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
32549
 *  Tree node representing a class specifier, e.g. class X. */
23730
32550
 
23731
 
#line 23732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32551
#line 32552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23732
32552
} // closed Puma
 
32553
class CCExprResolve;
 
32554
class CExprResolve;
23733
32555
class WinIfExists;
23734
32556
class WinImportHandler;
23735
32557
class WinMacros;
23736
 
class CMatchSyntax;
23737
 
class ExtGnu;
 
32558
class WinAsm;
 
32559
class WinDeclSpecs;
 
32560
class WinMemberExplSpec;
 
32561
class WinTypeKeywords;
 
32562
class WinFriend;
23738
32563
class ExtAC;
23739
32564
class ExtACBuilderCoupling;
23740
32565
class ExtACSyntaxCoupling;
23741
32566
class ExtACTree;
23742
32567
class ExtACKeywords;
23743
 
class WinAsm;
23744
 
class WinDeclSpecs;
23745
 
class WinMemberExplSpec;
23746
 
class WinTypeKeywords;
 
32568
class ExtGnu;
23747
32569
class PragmaOnceUnitState;
23748
32570
class PragmaOnce;
23749
 
class CCExprResolve;
23750
 
class CExprResolve;
 
32571
class CMatchSyntax;
23751
32572
namespace Puma {
23752
32573
 
23753
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32574
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23754
32575
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
23755
 
#line 23756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32576
#line 32577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32577
  friend class ::CCExprResolve;
 
32578
  friend class ::CExprResolve;
23756
32579
  friend class ::WinIfExists;
23757
32580
  friend class ::WinImportHandler;
23758
32581
  friend class ::WinMacros;
23759
 
  friend class ::CMatchSyntax;
23760
 
  friend class ::ExtGnu;
 
32582
  friend class ::WinAsm;
 
32583
  friend class ::WinDeclSpecs;
 
32584
  friend class ::WinMemberExplSpec;
 
32585
  friend class ::WinTypeKeywords;
 
32586
  friend class ::WinFriend;
23761
32587
  friend class ::ExtAC;
23762
32588
  friend class ::ExtACBuilderCoupling;
23763
32589
  friend class ::ExtACSyntaxCoupling;
23764
32590
  friend class ::ExtACTree;
23765
32591
  friend class ::ExtACKeywords;
23766
 
  friend class ::WinAsm;
23767
 
  friend class ::WinDeclSpecs;
23768
 
  friend class ::WinMemberExplSpec;
23769
 
  friend class ::WinTypeKeywords;
 
32592
  friend class ::ExtGnu;
23770
32593
  friend class ::PragmaOnceUnitState;
23771
32594
  friend class ::PragmaOnce;
23772
 
  friend class ::CCExprResolve;
23773
 
  friend class ::CExprResolve;
 
32595
  friend class ::CMatchSyntax;
23774
32596
 
23775
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32597
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23776
32598
 
23777
32599
  CTree *sons[2]; // key, name
23778
32600
  
23779
32601
public:
23780
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
32602
  /** Constructor.
 
32603
   *  \param k The 'class' or 'struct' keyword.
 
32604
   *  \param n The class name. */
 
32605
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
32606
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23781
32607
  static const char *NodeId ();
 
32608
  /** Get the name of the node. Can be compared with NodeId(). */
23782
32609
  const char *NodeName () const { return NodeId (); }
 
32610
  /** Get the number of sons. */
23783
32611
  int Sons () const { return 2; }
 
32612
  /** Get the n-th son.
 
32613
   *  \param n The index of the son.
 
32614
   *  \return The n-th son or NULL. */
23784
32615
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
32616
  /** Get the class name. */
23785
32617
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
32618
  /** Get the semantic information object. */
23786
32619
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
32620
  /** Replace a son.
 
32621
   *  \param old_son The son to replace.
 
32622
   *  \param new_son The new son. */
23787
32623
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23788
32624
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23789
32625
  }
23790
32626
};
23791
32627
 
 
32628
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
32629
 *  Tree node representing a union specifier, e.g. union X. */
23792
32630
 
23793
 
#line 23794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32631
#line 32632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23794
32632
} // closed Puma
 
32633
class CCExprResolve;
 
32634
class CExprResolve;
23795
32635
class WinIfExists;
23796
32636
class WinImportHandler;
23797
32637
class WinMacros;
23798
 
class CMatchSyntax;
23799
 
class ExtGnu;
 
32638
class WinAsm;
 
32639
class WinDeclSpecs;
 
32640
class WinMemberExplSpec;
 
32641
class WinTypeKeywords;
 
32642
class WinFriend;
23800
32643
class ExtAC;
23801
32644
class ExtACBuilderCoupling;
23802
32645
class ExtACSyntaxCoupling;
23803
32646
class ExtACTree;
23804
32647
class ExtACKeywords;
23805
 
class WinAsm;
23806
 
class WinDeclSpecs;
23807
 
class WinMemberExplSpec;
23808
 
class WinTypeKeywords;
 
32648
class ExtGnu;
23809
32649
class PragmaOnceUnitState;
23810
32650
class PragmaOnce;
23811
 
class CCExprResolve;
23812
 
class CExprResolve;
 
32651
class CMatchSyntax;
23813
32652
namespace Puma {
23814
32653
 
23815
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32654
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23816
32655
class CT_UnionSpec : public CT_ClassSpec {
23817
 
#line 23818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32656
#line 32657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32657
  friend class ::CCExprResolve;
 
32658
  friend class ::CExprResolve;
23818
32659
  friend class ::WinIfExists;
23819
32660
  friend class ::WinImportHandler;
23820
32661
  friend class ::WinMacros;
23821
 
  friend class ::CMatchSyntax;
23822
 
  friend class ::ExtGnu;
 
32662
  friend class ::WinAsm;
 
32663
  friend class ::WinDeclSpecs;
 
32664
  friend class ::WinMemberExplSpec;
 
32665
  friend class ::WinTypeKeywords;
 
32666
  friend class ::WinFriend;
23823
32667
  friend class ::ExtAC;
23824
32668
  friend class ::ExtACBuilderCoupling;
23825
32669
  friend class ::ExtACSyntaxCoupling;
23826
32670
  friend class ::ExtACTree;
23827
32671
  friend class ::ExtACKeywords;
23828
 
  friend class ::WinAsm;
23829
 
  friend class ::WinDeclSpecs;
23830
 
  friend class ::WinMemberExplSpec;
23831
 
  friend class ::WinTypeKeywords;
 
32672
  friend class ::ExtGnu;
23832
32673
  friend class ::PragmaOnceUnitState;
23833
32674
  friend class ::PragmaOnce;
23834
 
  friend class ::CCExprResolve;
23835
 
  friend class ::CExprResolve;
 
32675
  friend class ::CMatchSyntax;
23836
32676
 
23837
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32677
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23838
32678
 
23839
32679
public:
 
32680
  /** Constructor.
 
32681
   *  \param k The 'union' keyword.
 
32682
   *  \param n The name of the union. */
23840
32683
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
32684
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23841
32685
  static const char *NodeId ();
 
32686
  /** Get the name of the node. Can be compared with NodeId(). */
23842
32687
  const char *NodeName () const { return NodeId (); }
23843
32688
};
23844
32689
 
 
32690
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
32691
 *  Tree node representing an enumeration specifier, e.g. enum X. */
23845
32692
 
23846
 
#line 23847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32693
#line 32694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23847
32694
} // closed Puma
 
32695
class CCExprResolve;
 
32696
class CExprResolve;
23848
32697
class WinIfExists;
23849
32698
class WinImportHandler;
23850
32699
class WinMacros;
23851
 
class CMatchSyntax;
23852
 
class ExtGnu;
 
32700
class WinAsm;
 
32701
class WinDeclSpecs;
 
32702
class WinMemberExplSpec;
 
32703
class WinTypeKeywords;
 
32704
class WinFriend;
23853
32705
class ExtAC;
23854
32706
class ExtACBuilderCoupling;
23855
32707
class ExtACSyntaxCoupling;
23856
32708
class ExtACTree;
23857
32709
class ExtACKeywords;
23858
 
class WinAsm;
23859
 
class WinDeclSpecs;
23860
 
class WinMemberExplSpec;
23861
 
class WinTypeKeywords;
 
32710
class ExtGnu;
23862
32711
class PragmaOnceUnitState;
23863
32712
class PragmaOnce;
23864
 
class CCExprResolve;
23865
 
class CExprResolve;
 
32713
class CMatchSyntax;
23866
32714
namespace Puma {
23867
32715
 
23868
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32716
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23869
32717
class CT_EnumSpec : public CT_ClassSpec {
23870
 
#line 23871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32718
#line 32719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32719
  friend class ::CCExprResolve;
 
32720
  friend class ::CExprResolve;
23871
32721
  friend class ::WinIfExists;
23872
32722
  friend class ::WinImportHandler;
23873
32723
  friend class ::WinMacros;
23874
 
  friend class ::CMatchSyntax;
23875
 
  friend class ::ExtGnu;
 
32724
  friend class ::WinAsm;
 
32725
  friend class ::WinDeclSpecs;
 
32726
  friend class ::WinMemberExplSpec;
 
32727
  friend class ::WinTypeKeywords;
 
32728
  friend class ::WinFriend;
23876
32729
  friend class ::ExtAC;
23877
32730
  friend class ::ExtACBuilderCoupling;
23878
32731
  friend class ::ExtACSyntaxCoupling;
23879
32732
  friend class ::ExtACTree;
23880
32733
  friend class ::ExtACKeywords;
23881
 
  friend class ::WinAsm;
23882
 
  friend class ::WinDeclSpecs;
23883
 
  friend class ::WinMemberExplSpec;
23884
 
  friend class ::WinTypeKeywords;
 
32734
  friend class ::ExtGnu;
23885
32735
  friend class ::PragmaOnceUnitState;
23886
32736
  friend class ::PragmaOnce;
23887
 
  friend class ::CCExprResolve;
23888
 
  friend class ::CExprResolve;
 
32737
  friend class ::CMatchSyntax;
23889
32738
 
23890
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32739
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23891
32740
 
23892
32741
public:
 
32742
  /** Constructor.
 
32743
   *  \param k The 'enum' keyword. 
 
32744
   *  \param n The name of the enumeration. */
23893
32745
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
32746
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23894
32747
  static const char *NodeId ();
 
32748
  /** Get the name of the node. Can be compared with NodeId(). */
23895
32749
  const char *NodeName () const { return NodeId (); }
23896
32750
};
23897
32751
 
 
32752
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
32753
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
23898
32754
 
23899
 
#line 23900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32755
#line 32756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23900
32756
} // closed Puma
 
32757
class CCExprResolve;
 
32758
class CExprResolve;
23901
32759
class WinIfExists;
23902
32760
class WinImportHandler;
23903
32761
class WinMacros;
23904
 
class CMatchSyntax;
23905
 
class ExtGnu;
 
32762
class WinAsm;
 
32763
class WinDeclSpecs;
 
32764
class WinMemberExplSpec;
 
32765
class WinTypeKeywords;
 
32766
class WinFriend;
23906
32767
class ExtAC;
23907
32768
class ExtACBuilderCoupling;
23908
32769
class ExtACSyntaxCoupling;
23909
32770
class ExtACTree;
23910
32771
class ExtACKeywords;
23911
 
class WinAsm;
23912
 
class WinDeclSpecs;
23913
 
class WinMemberExplSpec;
23914
 
class WinTypeKeywords;
 
32772
class ExtGnu;
23915
32773
class PragmaOnceUnitState;
23916
32774
class PragmaOnce;
23917
 
class CCExprResolve;
23918
 
class CExprResolve;
 
32775
class CMatchSyntax;
23919
32776
namespace Puma {
23920
32777
 
23921
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32778
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23922
32779
class CT_ExceptionSpec : public CT_DeclSpec {
23923
 
#line 23924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32780
#line 32781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32781
  friend class ::CCExprResolve;
 
32782
  friend class ::CExprResolve;
23924
32783
  friend class ::WinIfExists;
23925
32784
  friend class ::WinImportHandler;
23926
32785
  friend class ::WinMacros;
23927
 
  friend class ::CMatchSyntax;
23928
 
  friend class ::ExtGnu;
 
32786
  friend class ::WinAsm;
 
32787
  friend class ::WinDeclSpecs;
 
32788
  friend class ::WinMemberExplSpec;
 
32789
  friend class ::WinTypeKeywords;
 
32790
  friend class ::WinFriend;
23929
32791
  friend class ::ExtAC;
23930
32792
  friend class ::ExtACBuilderCoupling;
23931
32793
  friend class ::ExtACSyntaxCoupling;
23932
32794
  friend class ::ExtACTree;
23933
32795
  friend class ::ExtACKeywords;
23934
 
  friend class ::WinAsm;
23935
 
  friend class ::WinDeclSpecs;
23936
 
  friend class ::WinMemberExplSpec;
23937
 
  friend class ::WinTypeKeywords;
 
32796
  friend class ::ExtGnu;
23938
32797
  friend class ::PragmaOnceUnitState;
23939
32798
  friend class ::PragmaOnce;
23940
 
  friend class ::CCExprResolve;
23941
 
  friend class ::CExprResolve;
 
32799
  friend class ::CMatchSyntax;
23942
32800
 
23943
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32801
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23944
32802
 
23945
32803
  CTree *sons[2]; // throw, type_id_list
23946
32804
  
23947
32805
public:
23948
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
32806
  /** Constructor.
 
32807
   *  \param k The 'throw' keyword.
 
32808
   *  \param l The type list for the exception type to throw. */
 
32809
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
32810
  /** Get the identifier for this node type. Can be compared with NodeName(). */
23949
32811
  static const char *NodeId ();
 
32812
  /** Get the name of the node. Can be compared with NodeId(). */
23950
32813
  const char *NodeName () const { return NodeId (); }
 
32814
  /** Get the number of sons. */
23951
32815
  int Sons () const { return 2; }
 
32816
  /** Get the n-th son.
 
32817
   *  \param n The index of the son.
 
32818
   *  \return The n-th son or NULL. */
23952
32819
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
32820
  /** Get the exception type list. */
23953
32821
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
32822
  /** Replace a son.
 
32823
   *  \param old_son The son to replace.
 
32824
   *  \param new_son The new son. */
23954
32825
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23955
32826
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23956
32827
  }
23962
32833
/*                                                                           */
23963
32834
/*****************************************************************************/
23964
32835
 
 
32836
/** \class CT_Decl CTree.h Puma/CTree.h
 
32837
 *  Base class for all tree nodes representing declarations. */
23965
32838
 
23966
 
#line 23967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32839
#line 32840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
23967
32840
} // closed Puma
 
32841
class CCExprResolve;
 
32842
class CExprResolve;
23968
32843
class WinIfExists;
23969
32844
class WinImportHandler;
23970
32845
class WinMacros;
23971
 
class CMatchSyntax;
23972
 
class ExtGnu;
 
32846
class WinAsm;
 
32847
class WinDeclSpecs;
 
32848
class WinMemberExplSpec;
 
32849
class WinTypeKeywords;
 
32850
class WinFriend;
23973
32851
class ExtAC;
23974
32852
class ExtACBuilderCoupling;
23975
32853
class ExtACSyntaxCoupling;
23976
32854
class ExtACTree;
23977
32855
class ExtACKeywords;
23978
 
class WinAsm;
23979
 
class WinDeclSpecs;
23980
 
class WinMemberExplSpec;
23981
 
class WinTypeKeywords;
 
32856
class ExtGnu;
23982
32857
class PragmaOnceUnitState;
23983
32858
class PragmaOnce;
23984
 
class CCExprResolve;
23985
 
class CExprResolve;
 
32859
class CMatchSyntax;
23986
32860
namespace Puma {
23987
32861
 
23988
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32862
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
23989
32863
class CT_Decl : public CTree {
23990
 
#line 23991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32864
#line 32865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32865
  friend class ::CCExprResolve;
 
32866
  friend class ::CExprResolve;
23991
32867
  friend class ::WinIfExists;
23992
32868
  friend class ::WinImportHandler;
23993
32869
  friend class ::WinMacros;
23994
 
  friend class ::CMatchSyntax;
23995
 
  friend class ::ExtGnu;
 
32870
  friend class ::WinAsm;
 
32871
  friend class ::WinDeclSpecs;
 
32872
  friend class ::WinMemberExplSpec;
 
32873
  friend class ::WinTypeKeywords;
 
32874
  friend class ::WinFriend;
23996
32875
  friend class ::ExtAC;
23997
32876
  friend class ::ExtACBuilderCoupling;
23998
32877
  friend class ::ExtACSyntaxCoupling;
23999
32878
  friend class ::ExtACTree;
24000
32879
  friend class ::ExtACKeywords;
24001
 
  friend class ::WinAsm;
24002
 
  friend class ::WinDeclSpecs;
24003
 
  friend class ::WinMemberExplSpec;
24004
 
  friend class ::WinTypeKeywords;
 
32880
  friend class ::ExtGnu;
24005
32881
  friend class ::PragmaOnceUnitState;
24006
32882
  friend class ::PragmaOnce;
24007
 
  friend class ::CCExprResolve;
24008
 
  friend class ::CExprResolve;
 
32883
  friend class ::CMatchSyntax;
24009
32884
 
24010
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32885
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24011
32886
 
24012
32887
  CT_LinkageSpec *_linkage;
 
32888
  
24013
32889
protected:
 
32890
  /** Constructor. */
24014
32891
  CT_Decl () : _linkage (0) {}
 
32892
  
24015
32893
public:
 
32894
  /** Set the linkage of the declared entity.
 
32895
   *  \param l The linkage specifiers. */
24016
32896
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
32897
  /** Get the linkage specifiers. */
24017
32898
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
32899
  /** Get this. */
 
32900
  virtual CT_Decl *IsDeclaration () { return this; }
24018
32901
};
24019
32902
 
 
32903
/** \class CT_Program CTree.h Puma/CTree.h
 
32904
 *  Root node of C/C++ syntax tree. */
24020
32905
 
24021
 
#line 24022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32906
#line 32907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24022
32907
} // closed Puma
 
32908
class CCExprResolve;
 
32909
class CExprResolve;
24023
32910
class WinIfExists;
24024
32911
class WinImportHandler;
24025
32912
class WinMacros;
24026
 
class CMatchSyntax;
24027
 
class ExtGnu;
 
32913
class WinAsm;
 
32914
class WinDeclSpecs;
 
32915
class WinMemberExplSpec;
 
32916
class WinTypeKeywords;
 
32917
class WinFriend;
24028
32918
class ExtAC;
24029
32919
class ExtACBuilderCoupling;
24030
32920
class ExtACSyntaxCoupling;
24031
32921
class ExtACTree;
24032
32922
class ExtACKeywords;
24033
 
class WinAsm;
24034
 
class WinDeclSpecs;
24035
 
class WinMemberExplSpec;
24036
 
class WinTypeKeywords;
 
32923
class ExtGnu;
24037
32924
class PragmaOnceUnitState;
24038
32925
class PragmaOnce;
24039
 
class CCExprResolve;
24040
 
class CExprResolve;
 
32926
class CMatchSyntax;
24041
32927
namespace Puma {
24042
32928
 
24043
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32929
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24044
32930
class CT_Program : public CT_DeclList, public CSemScope {
24045
 
#line 24046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32931
#line 32932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32932
  friend class ::CCExprResolve;
 
32933
  friend class ::CExprResolve;
24046
32934
  friend class ::WinIfExists;
24047
32935
  friend class ::WinImportHandler;
24048
32936
  friend class ::WinMacros;
24049
 
  friend class ::CMatchSyntax;
24050
 
  friend class ::ExtGnu;
 
32937
  friend class ::WinAsm;
 
32938
  friend class ::WinDeclSpecs;
 
32939
  friend class ::WinMemberExplSpec;
 
32940
  friend class ::WinTypeKeywords;
 
32941
  friend class ::WinFriend;
24051
32942
  friend class ::ExtAC;
24052
32943
  friend class ::ExtACBuilderCoupling;
24053
32944
  friend class ::ExtACSyntaxCoupling;
24054
32945
  friend class ::ExtACTree;
24055
32946
  friend class ::ExtACKeywords;
24056
 
  friend class ::WinAsm;
24057
 
  friend class ::WinDeclSpecs;
24058
 
  friend class ::WinMemberExplSpec;
24059
 
  friend class ::WinTypeKeywords;
 
32947
  friend class ::ExtGnu;
24060
32948
  friend class ::PragmaOnceUnitState;
24061
32949
  friend class ::PragmaOnce;
24062
 
  friend class ::CCExprResolve;
24063
 
  friend class ::CExprResolve;
 
32950
  friend class ::CMatchSyntax;
24064
32951
 
24065
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32952
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24066
32953
 
24067
32954
public:
 
32955
  /** Constructor.
 
32956
   *  \param size The initial number of declarations in the program.
 
32957
   *  \param incr The initial increment count. */
24068
32958
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
32959
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24069
32960
  static const char *NodeId ();
 
32961
  /** Get the name of the node. Can be compared with NodeId(). */
24070
32962
  const char *NodeName () const { return NodeId (); }
 
32963
  /** Get the semantic scope object. */
 
32964
  CSemScope *SemScope () const { return (CSemScope*)this; }
24071
32965
};
24072
32966
   
 
32967
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
32968
 *  Tree node representing an object declaration, e.g. int *i. */
24073
32969
 
24074
 
#line 24075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32970
#line 32971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24075
32971
} // closed Puma
 
32972
class CCExprResolve;
 
32973
class CExprResolve;
24076
32974
class WinIfExists;
24077
32975
class WinImportHandler;
24078
32976
class WinMacros;
24079
 
class CMatchSyntax;
24080
 
class ExtGnu;
 
32977
class WinAsm;
 
32978
class WinDeclSpecs;
 
32979
class WinMemberExplSpec;
 
32980
class WinTypeKeywords;
 
32981
class WinFriend;
24081
32982
class ExtAC;
24082
32983
class ExtACBuilderCoupling;
24083
32984
class ExtACSyntaxCoupling;
24084
32985
class ExtACTree;
24085
32986
class ExtACKeywords;
24086
 
class WinAsm;
24087
 
class WinDeclSpecs;
24088
 
class WinMemberExplSpec;
24089
 
class WinTypeKeywords;
 
32987
class ExtGnu;
24090
32988
class PragmaOnceUnitState;
24091
32989
class PragmaOnce;
24092
 
class CCExprResolve;
24093
 
class CExprResolve;
 
32990
class CMatchSyntax;
24094
32991
namespace Puma {
24095
32992
 
24096
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32993
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24097
32994
class CT_ObjDecl : public CT_Decl {
24098
 
#line 24099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
32995
#line 32996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
32996
  friend class ::CCExprResolve;
 
32997
  friend class ::CExprResolve;
24099
32998
  friend class ::WinIfExists;
24100
32999
  friend class ::WinImportHandler;
24101
33000
  friend class ::WinMacros;
24102
 
  friend class ::CMatchSyntax;
24103
 
  friend class ::ExtGnu;
 
33001
  friend class ::WinAsm;
 
33002
  friend class ::WinDeclSpecs;
 
33003
  friend class ::WinMemberExplSpec;
 
33004
  friend class ::WinTypeKeywords;
 
33005
  friend class ::WinFriend;
24104
33006
  friend class ::ExtAC;
24105
33007
  friend class ::ExtACBuilderCoupling;
24106
33008
  friend class ::ExtACSyntaxCoupling;
24107
33009
  friend class ::ExtACTree;
24108
33010
  friend class ::ExtACKeywords;
24109
 
  friend class ::WinAsm;
24110
 
  friend class ::WinDeclSpecs;
24111
 
  friend class ::WinMemberExplSpec;
24112
 
  friend class ::WinTypeKeywords;
 
33011
  friend class ::ExtGnu;
24113
33012
  friend class ::PragmaOnceUnitState;
24114
33013
  friend class ::PragmaOnce;
24115
 
  friend class ::CCExprResolve;
24116
 
  friend class ::CExprResolve;
 
33014
  friend class ::CMatchSyntax;
24117
33015
 
24118
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33016
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24119
33017
 
24120
33018
  CTree *sons[3]; // declspecs, declarators, colon
24121
33019
 
24122
33020
public:
 
33021
  /** Constructor.
 
33022
   *  \param dsl The declaration specifier sequence.
 
33023
   *  \param dl The declarator list.
 
33024
   *  \param c Optional colon. */
24123
33025
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
24124
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
33026
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
24125
33027
  }
 
33028
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24126
33029
  static const char *NodeId ();
 
33030
  /** Get the name of the node. Can be compared with NodeId(). */
24127
33031
  const char *NodeName () const { return NodeId (); }
 
33032
  /** Get the number of sons. */
24128
33033
  int Sons () const { return 3; }
 
33034
  /** Get the n-th son.
 
33035
   *  \param n The index of the son.
 
33036
   *  \return The n-th son or NULL. */
24129
33037
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33038
  /** Get the declaration specifier sequence. */
24130
33039
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
33040
  /** Get the declarator list. */
24131
33041
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
33042
  /** Replace a son.
 
33043
   *  \param old_son The son to replace.
 
33044
   *  \param new_son The new son. */
24132
33045
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24133
33046
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24134
33047
  }
24135
33048
};
24136
33049
 
 
33050
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
33051
 *  Tree node representing a template declaration. */
24137
33052
 
24138
 
#line 24139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33053
#line 33054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24139
33054
} // closed Puma
 
33055
class CCExprResolve;
 
33056
class CExprResolve;
24140
33057
class WinIfExists;
24141
33058
class WinImportHandler;
24142
33059
class WinMacros;
24143
 
class CMatchSyntax;
24144
 
class ExtGnu;
 
33060
class WinAsm;
 
33061
class WinDeclSpecs;
 
33062
class WinMemberExplSpec;
 
33063
class WinTypeKeywords;
 
33064
class WinFriend;
24145
33065
class ExtAC;
24146
33066
class ExtACBuilderCoupling;
24147
33067
class ExtACSyntaxCoupling;
24148
33068
class ExtACTree;
24149
33069
class ExtACKeywords;
24150
 
class WinAsm;
24151
 
class WinDeclSpecs;
24152
 
class WinMemberExplSpec;
24153
 
class WinTypeKeywords;
 
33070
class ExtGnu;
24154
33071
class PragmaOnceUnitState;
24155
33072
class PragmaOnce;
24156
 
class CCExprResolve;
24157
 
class CExprResolve;
 
33073
class CMatchSyntax;
24158
33074
namespace Puma {
24159
33075
 
24160
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33076
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24161
33077
class CT_TemplateDecl : public CT_Decl, public CSemScope {
24162
 
#line 24163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33078
#line 33079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33079
  friend class ::CCExprResolve;
 
33080
  friend class ::CExprResolve;
24163
33081
  friend class ::WinIfExists;
24164
33082
  friend class ::WinImportHandler;
24165
33083
  friend class ::WinMacros;
24166
 
  friend class ::CMatchSyntax;
24167
 
  friend class ::ExtGnu;
 
33084
  friend class ::WinAsm;
 
33085
  friend class ::WinDeclSpecs;
 
33086
  friend class ::WinMemberExplSpec;
 
33087
  friend class ::WinTypeKeywords;
 
33088
  friend class ::WinFriend;
24168
33089
  friend class ::ExtAC;
24169
33090
  friend class ::ExtACBuilderCoupling;
24170
33091
  friend class ::ExtACSyntaxCoupling;
24171
33092
  friend class ::ExtACTree;
24172
33093
  friend class ::ExtACKeywords;
24173
 
  friend class ::WinAsm;
24174
 
  friend class ::WinDeclSpecs;
24175
 
  friend class ::WinMemberExplSpec;
24176
 
  friend class ::WinTypeKeywords;
 
33094
  friend class ::ExtGnu;
24177
33095
  friend class ::PragmaOnceUnitState;
24178
33096
  friend class ::PragmaOnce;
24179
 
  friend class ::CCExprResolve;
24180
 
  friend class ::CExprResolve;
 
33097
  friend class ::CMatchSyntax;
24181
33098
 
24182
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33099
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24183
33100
 
24184
33101
  CTree *sons[3]; // export, param_list, decl
24185
33102
 
24186
33103
public:
 
33104
  /** Constructor.
 
33105
   *  \param e Optional 'export' keyword. 
 
33106
   *  \param p The template parameter list.
 
33107
   *  \param d The class or function declaration. */
24187
33108
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
24188
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
33109
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
24189
33110
  }
 
33111
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24190
33112
  static const char *NodeId ();
 
33113
  /** Get the name of the node. Can be compared with NodeId(). */
24191
33114
  const char *NodeName () const { return NodeId (); }
 
33115
  /** Get the number of sons. */
24192
33116
  int Sons () const { return CTree::Sons (sons, 3); }
 
33117
  /** Get the n-th son.
 
33118
   *  \param n The index of the son.
 
33119
   *  \return The n-th son or NULL. */
24193
33120
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33121
  /** Replace a son.
 
33122
   *  \param old_son The son to replace.
 
33123
   *  \param new_son The new son. */
24194
33124
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24195
33125
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
24196
33126
  }
 
33127
  /** Get the 'export' keyword. */
24197
33128
  CTree *Export () const { return sons[0]; }
 
33129
  /** Get the template parameter list. */
24198
33130
  CT_TemplateParamList *Parameters () const { 
24199
33131
    return (CT_TemplateParamList*)sons[1]; 
24200
33132
  }
 
33133
  /** Get the class or function declaration. */
24201
33134
  CTree *Declaration () const { return sons[2]; }
 
33135
  /** Get the semantic scope object. */
 
33136
  CSemScope *SemScope () const { return (CSemScope*)this; }
24202
33137
};
24203
33138
 
 
33139
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
33140
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
24204
33141
 
24205
 
#line 24206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33142
#line 33143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24206
33143
} // closed Puma
 
33144
class CCExprResolve;
 
33145
class CExprResolve;
24207
33146
class WinIfExists;
24208
33147
class WinImportHandler;
24209
33148
class WinMacros;
24210
 
class CMatchSyntax;
24211
 
class ExtGnu;
 
33149
class WinAsm;
 
33150
class WinDeclSpecs;
 
33151
class WinMemberExplSpec;
 
33152
class WinTypeKeywords;
 
33153
class WinFriend;
24212
33154
class ExtAC;
24213
33155
class ExtACBuilderCoupling;
24214
33156
class ExtACSyntaxCoupling;
24215
33157
class ExtACTree;
24216
33158
class ExtACKeywords;
24217
 
class WinAsm;
24218
 
class WinDeclSpecs;
24219
 
class WinMemberExplSpec;
24220
 
class WinTypeKeywords;
 
33159
class ExtGnu;
24221
33160
class PragmaOnceUnitState;
24222
33161
class PragmaOnce;
24223
 
class CCExprResolve;
24224
 
class CExprResolve;
 
33162
class CMatchSyntax;
24225
33163
namespace Puma {
24226
33164
 
24227
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33165
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24228
33166
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
24229
 
#line 24230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33167
#line 33168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33168
  friend class ::CCExprResolve;
 
33169
  friend class ::CExprResolve;
24230
33170
  friend class ::WinIfExists;
24231
33171
  friend class ::WinImportHandler;
24232
33172
  friend class ::WinMacros;
24233
 
  friend class ::CMatchSyntax;
24234
 
  friend class ::ExtGnu;
 
33173
  friend class ::WinAsm;
 
33174
  friend class ::WinDeclSpecs;
 
33175
  friend class ::WinMemberExplSpec;
 
33176
  friend class ::WinTypeKeywords;
 
33177
  friend class ::WinFriend;
24235
33178
  friend class ::ExtAC;
24236
33179
  friend class ::ExtACBuilderCoupling;
24237
33180
  friend class ::ExtACSyntaxCoupling;
24238
33181
  friend class ::ExtACTree;
24239
33182
  friend class ::ExtACKeywords;
24240
 
  friend class ::WinAsm;
24241
 
  friend class ::WinDeclSpecs;
24242
 
  friend class ::WinMemberExplSpec;
24243
 
  friend class ::WinTypeKeywords;
 
33183
  friend class ::ExtGnu;
24244
33184
  friend class ::PragmaOnceUnitState;
24245
33185
  friend class ::PragmaOnce;
24246
 
  friend class ::CCExprResolve;
24247
 
  friend class ::CExprResolve;
 
33186
  friend class ::CMatchSyntax;
24248
33187
 
24249
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33188
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24250
33189
 
24251
33190
protected:
 
33191
  /** Constructor. */
24252
33192
  CT_TemplateParamDecl () {}
24253
33193
  
24254
33194
public:
 
33195
  /** Get the template default argument. */
24255
33196
  virtual CT_ExprList *DefaultArgument () const = 0;
 
33197
  /** Get the semantic information object. */
24256
33198
  CSemObject *SemObject () const { return (CSemObject*)this; }
24257
33199
};
24258
33200
 
24259
33201
 
24260
 
#line 24261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33202
#line 33203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24261
33203
} // closed Puma
 
33204
class CCExprResolve;
 
33205
class CExprResolve;
24262
33206
class WinIfExists;
24263
33207
class WinImportHandler;
24264
33208
class WinMacros;
24265
 
class CMatchSyntax;
24266
 
class ExtGnu;
 
33209
class WinAsm;
 
33210
class WinDeclSpecs;
 
33211
class WinMemberExplSpec;
 
33212
class WinTypeKeywords;
 
33213
class WinFriend;
24267
33214
class ExtAC;
24268
33215
class ExtACBuilderCoupling;
24269
33216
class ExtACSyntaxCoupling;
24270
33217
class ExtACTree;
24271
33218
class ExtACKeywords;
24272
 
class WinAsm;
24273
 
class WinDeclSpecs;
24274
 
class WinMemberExplSpec;
24275
 
class WinTypeKeywords;
 
33219
class ExtGnu;
24276
33220
class PragmaOnceUnitState;
24277
33221
class PragmaOnce;
24278
 
class CCExprResolve;
24279
 
class CExprResolve;
 
33222
class CMatchSyntax;
24280
33223
namespace Puma {
24281
33224
 
24282
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33225
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24283
33226
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
24284
 
#line 24285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33227
#line 33228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33228
  friend class ::CCExprResolve;
 
33229
  friend class ::CExprResolve;
24285
33230
  friend class ::WinIfExists;
24286
33231
  friend class ::WinImportHandler;
24287
33232
  friend class ::WinMacros;
24288
 
  friend class ::CMatchSyntax;
24289
 
  friend class ::ExtGnu;
 
33233
  friend class ::WinAsm;
 
33234
  friend class ::WinDeclSpecs;
 
33235
  friend class ::WinMemberExplSpec;
 
33236
  friend class ::WinTypeKeywords;
 
33237
  friend class ::WinFriend;
24290
33238
  friend class ::ExtAC;
24291
33239
  friend class ::ExtACBuilderCoupling;
24292
33240
  friend class ::ExtACSyntaxCoupling;
24293
33241
  friend class ::ExtACTree;
24294
33242
  friend class ::ExtACKeywords;
24295
 
  friend class ::WinAsm;
24296
 
  friend class ::WinDeclSpecs;
24297
 
  friend class ::WinMemberExplSpec;
24298
 
  friend class ::WinTypeKeywords;
 
33243
  friend class ::ExtGnu;
24299
33244
  friend class ::PragmaOnceUnitState;
24300
33245
  friend class ::PragmaOnce;
24301
 
  friend class ::CCExprResolve;
24302
 
  friend class ::CExprResolve;
 
33246
  friend class ::CMatchSyntax;
24303
33247
 
24304
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33248
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24305
33249
 
24306
33250
  CTree *sons[3]; // declspecs, declarator, init
24307
33251
 
24308
33252
public:
24309
33253
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
24310
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
33254
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
24311
33255
  }
 
33256
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24312
33257
  static const char *NodeId ();
 
33258
  /** Get the name of the node. Can be compared with NodeId(). */
24313
33259
  const char *NodeName () const { return NodeId (); }
 
33260
  /** Get the number of sons. */
24314
33261
  int Sons () const { return CTree::Sons (sons, 3); }
 
33262
  /** Get the n-th son.
 
33263
   *  \param n The index of the son.
 
33264
   *  \return The n-th son or NULL. */
24315
33265
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24316
33266
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
24317
33267
  CTree *Declarator () const { return sons[1]; }
24318
33268
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
24319
33269
  CSemObject *SemObject () const { return (CSemObject*)this; }
24320
 
  void Initializer (CTree *i) { sons[2] = i; }
 
33270
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
33271
  /** Replace a son.
 
33272
   *  \param old_son The son to replace.
 
33273
   *  \param new_son The new son. */
24321
33274
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24322
33275
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24323
33276
  }
24324
33277
};
24325
33278
 
24326
33279
 
24327
 
#line 24328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33280
#line 33281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24328
33281
} // closed Puma
 
33282
class CCExprResolve;
 
33283
class CExprResolve;
24329
33284
class WinIfExists;
24330
33285
class WinImportHandler;
24331
33286
class WinMacros;
24332
 
class CMatchSyntax;
24333
 
class ExtGnu;
 
33287
class WinAsm;
 
33288
class WinDeclSpecs;
 
33289
class WinMemberExplSpec;
 
33290
class WinTypeKeywords;
 
33291
class WinFriend;
24334
33292
class ExtAC;
24335
33293
class ExtACBuilderCoupling;
24336
33294
class ExtACSyntaxCoupling;
24337
33295
class ExtACTree;
24338
33296
class ExtACKeywords;
24339
 
class WinAsm;
24340
 
class WinDeclSpecs;
24341
 
class WinMemberExplSpec;
24342
 
class WinTypeKeywords;
 
33297
class ExtGnu;
24343
33298
class PragmaOnceUnitState;
24344
33299
class PragmaOnce;
24345
 
class CCExprResolve;
24346
 
class CExprResolve;
 
33300
class CMatchSyntax;
24347
33301
namespace Puma {
24348
33302
 
24349
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33303
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24350
33304
class CT_TypeParamDecl : public CT_TemplateParamDecl {
24351
 
#line 24352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33305
#line 33306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33306
  friend class ::CCExprResolve;
 
33307
  friend class ::CExprResolve;
24352
33308
  friend class ::WinIfExists;
24353
33309
  friend class ::WinImportHandler;
24354
33310
  friend class ::WinMacros;
24355
 
  friend class ::CMatchSyntax;
24356
 
  friend class ::ExtGnu;
 
33311
  friend class ::WinAsm;
 
33312
  friend class ::WinDeclSpecs;
 
33313
  friend class ::WinMemberExplSpec;
 
33314
  friend class ::WinTypeKeywords;
 
33315
  friend class ::WinFriend;
24357
33316
  friend class ::ExtAC;
24358
33317
  friend class ::ExtACBuilderCoupling;
24359
33318
  friend class ::ExtACSyntaxCoupling;
24360
33319
  friend class ::ExtACTree;
24361
33320
  friend class ::ExtACKeywords;
24362
 
  friend class ::WinAsm;
24363
 
  friend class ::WinDeclSpecs;
24364
 
  friend class ::WinMemberExplSpec;
24365
 
  friend class ::WinTypeKeywords;
 
33321
  friend class ::ExtGnu;
24366
33322
  friend class ::PragmaOnceUnitState;
24367
33323
  friend class ::PragmaOnce;
24368
 
  friend class ::CCExprResolve;
24369
 
  friend class ::CExprResolve;
 
33324
  friend class ::CMatchSyntax;
24370
33325
 
24371
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33326
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24372
33327
 
24373
33328
  CTree *sons[4]; // params, key, id, init
24374
33329
 
24375
33330
public:
24376
33331
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
24377
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
33332
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
33333
    AddSon (sons[2], id); AddSon (sons[3], i);
24378
33334
  }
 
33335
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24379
33336
  static const char *NodeId ();
 
33337
  /** Get the name of the node. Can be compared with NodeId(). */
24380
33338
  const char *NodeName () const { return NodeId (); }
 
33339
  /** Get the number of sons. */
24381
33340
  int Sons () const { return CTree::Sons (sons, 4); }
 
33341
  /** Get the n-th son.
 
33342
   *  \param n The index of the son.
 
33343
   *  \return The n-th son or NULL. */
24382
33344
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
24383
33345
  CT_TemplateParamList *Parameters () const { 
24384
33346
    return (CT_TemplateParamList*)sons[0]; 
24385
33347
  }
24386
33348
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
24387
33349
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
24388
 
  void Initializer (CTree *i) { sons[3] = i; }
 
33350
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
33351
  /** Replace a son.
 
33352
   *  \param old_son The son to replace.
 
33353
   *  \param new_son The new son. */
24389
33354
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24390
33355
    CTree::ReplaceSon (sons, 4, old_son, new_son);
24391
33356
  }
24392
33357
};
24393
33358
 
24394
33359
 
24395
 
#line 24396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33360
#line 33361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24396
33361
} // closed Puma
 
33362
class CCExprResolve;
 
33363
class CExprResolve;
24397
33364
class WinIfExists;
24398
33365
class WinImportHandler;
24399
33366
class WinMacros;
24400
 
class CMatchSyntax;
24401
 
class ExtGnu;
 
33367
class WinAsm;
 
33368
class WinDeclSpecs;
 
33369
class WinMemberExplSpec;
 
33370
class WinTypeKeywords;
 
33371
class WinFriend;
24402
33372
class ExtAC;
24403
33373
class ExtACBuilderCoupling;
24404
33374
class ExtACSyntaxCoupling;
24405
33375
class ExtACTree;
24406
33376
class ExtACKeywords;
24407
 
class WinAsm;
24408
 
class WinDeclSpecs;
24409
 
class WinMemberExplSpec;
24410
 
class WinTypeKeywords;
 
33377
class ExtGnu;
24411
33378
class PragmaOnceUnitState;
24412
33379
class PragmaOnce;
24413
 
class CCExprResolve;
24414
 
class CExprResolve;
 
33380
class CMatchSyntax;
24415
33381
namespace Puma {
24416
33382
 
24417
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33383
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24418
33384
class CT_EnumDef : public CT_Decl, public CSemObject {
24419
 
#line 24420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33385
#line 33386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33386
  friend class ::CCExprResolve;
 
33387
  friend class ::CExprResolve;
24420
33388
  friend class ::WinIfExists;
24421
33389
  friend class ::WinImportHandler;
24422
33390
  friend class ::WinMacros;
24423
 
  friend class ::CMatchSyntax;
24424
 
  friend class ::ExtGnu;
 
33391
  friend class ::WinAsm;
 
33392
  friend class ::WinDeclSpecs;
 
33393
  friend class ::WinMemberExplSpec;
 
33394
  friend class ::WinTypeKeywords;
 
33395
  friend class ::WinFriend;
24425
33396
  friend class ::ExtAC;
24426
33397
  friend class ::ExtACBuilderCoupling;
24427
33398
  friend class ::ExtACSyntaxCoupling;
24428
33399
  friend class ::ExtACTree;
24429
33400
  friend class ::ExtACKeywords;
24430
 
  friend class ::WinAsm;
24431
 
  friend class ::WinDeclSpecs;
24432
 
  friend class ::WinMemberExplSpec;
24433
 
  friend class ::WinTypeKeywords;
 
33401
  friend class ::ExtGnu;
24434
33402
  friend class ::PragmaOnceUnitState;
24435
33403
  friend class ::PragmaOnce;
24436
 
  friend class ::CCExprResolve;
24437
 
  friend class ::CExprResolve;
 
33404
  friend class ::CMatchSyntax;
24438
33405
 
24439
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33406
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24440
33407
 
24441
33408
  CTree *sons[3]; // key, name, enumerators
24442
33409
 
24443
33410
public:
24444
33411
  CT_EnumDef (CTree *k, CTree *n) {
24445
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
33412
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
24446
33413
  }
 
33414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24447
33415
  static const char *NodeId ();
 
33416
  /** Get the name of the node. Can be compared with NodeId(). */
24448
33417
  const char *NodeName () const { return NodeId (); }
 
33418
  /** Get the number of sons. */
24449
33419
  int Sons () const { return CTree::Sons (sons, 3); }
 
33420
  /** Get the n-th son.
 
33421
   *  \param n The index of the son.
 
33422
   *  \return The n-th son or NULL. */
24450
33423
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24451
33424
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
24452
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
33425
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
24453
33426
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
33427
  /** Replace a son.
 
33428
   *  \param old_son The son to replace.
 
33429
   *  \param new_son The new son. */
24454
33430
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24455
33431
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24456
33432
  }
24458
33434
};
24459
33435
 
24460
33436
 
24461
 
#line 24462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33437
#line 33438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24462
33438
} // closed Puma
 
33439
class CCExprResolve;
 
33440
class CExprResolve;
24463
33441
class WinIfExists;
24464
33442
class WinImportHandler;
24465
33443
class WinMacros;
24466
 
class CMatchSyntax;
24467
 
class ExtGnu;
 
33444
class WinAsm;
 
33445
class WinDeclSpecs;
 
33446
class WinMemberExplSpec;
 
33447
class WinTypeKeywords;
 
33448
class WinFriend;
24468
33449
class ExtAC;
24469
33450
class ExtACBuilderCoupling;
24470
33451
class ExtACSyntaxCoupling;
24471
33452
class ExtACTree;
24472
33453
class ExtACKeywords;
24473
 
class WinAsm;
24474
 
class WinDeclSpecs;
24475
 
class WinMemberExplSpec;
24476
 
class WinTypeKeywords;
 
33454
class ExtGnu;
24477
33455
class PragmaOnceUnitState;
24478
33456
class PragmaOnce;
24479
 
class CCExprResolve;
24480
 
class CExprResolve;
 
33457
class CMatchSyntax;
24481
33458
namespace Puma {
24482
33459
 
24483
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33460
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24484
33461
class CT_Enumerator : public CT_Decl, public CSemObject {
24485
 
#line 24486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33462
#line 33463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33463
  friend class ::CCExprResolve;
 
33464
  friend class ::CExprResolve;
24486
33465
  friend class ::WinIfExists;
24487
33466
  friend class ::WinImportHandler;
24488
33467
  friend class ::WinMacros;
24489
 
  friend class ::CMatchSyntax;
24490
 
  friend class ::ExtGnu;
 
33468
  friend class ::WinAsm;
 
33469
  friend class ::WinDeclSpecs;
 
33470
  friend class ::WinMemberExplSpec;
 
33471
  friend class ::WinTypeKeywords;
 
33472
  friend class ::WinFriend;
24491
33473
  friend class ::ExtAC;
24492
33474
  friend class ::ExtACBuilderCoupling;
24493
33475
  friend class ::ExtACSyntaxCoupling;
24494
33476
  friend class ::ExtACTree;
24495
33477
  friend class ::ExtACKeywords;
24496
 
  friend class ::WinAsm;
24497
 
  friend class ::WinDeclSpecs;
24498
 
  friend class ::WinMemberExplSpec;
24499
 
  friend class ::WinTypeKeywords;
 
33478
  friend class ::ExtGnu;
24500
33479
  friend class ::PragmaOnceUnitState;
24501
33480
  friend class ::PragmaOnce;
24502
 
  friend class ::CCExprResolve;
24503
 
  friend class ::CExprResolve;
 
33481
  friend class ::CMatchSyntax;
24504
33482
 
24505
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33483
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24506
33484
 
24507
33485
  CTree *sons[2]; // name, init
24508
33486
 
24509
33487
public:
24510
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
33488
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
33489
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24511
33490
  static const char *NodeId ();
 
33491
  /** Get the name of the node. Can be compared with NodeId(). */
24512
33492
  const char *NodeName () const { return NodeId (); }
 
33493
  /** Get the number of sons. */
24513
33494
  int Sons () const { return CTree::Sons (sons, 2); }
 
33495
  /** Get the n-th son.
 
33496
   *  \param n The index of the son.
 
33497
   *  \return The n-th son or NULL. */
24514
33498
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24515
33499
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
24516
 
  void Initializer (CTree *i) { sons[1] = i; }
 
33500
  void Initializer (CTree *i) { AddSon (sons[1], i); }
24517
33501
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
33502
  /** Replace a son.
 
33503
   *  \param old_son The son to replace.
 
33504
   *  \param new_son The new son. */
24518
33505
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24519
33506
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
24520
33507
  }
24522
33509
};
24523
33510
 
24524
33511
 
24525
 
#line 24526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33512
#line 33513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24526
33513
} // closed Puma
 
33514
class CCExprResolve;
 
33515
class CExprResolve;
24527
33516
class WinIfExists;
24528
33517
class WinImportHandler;
24529
33518
class WinMacros;
24530
 
class CMatchSyntax;
24531
 
class ExtGnu;
 
33519
class WinAsm;
 
33520
class WinDeclSpecs;
 
33521
class WinMemberExplSpec;
 
33522
class WinTypeKeywords;
 
33523
class WinFriend;
24532
33524
class ExtAC;
24533
33525
class ExtACBuilderCoupling;
24534
33526
class ExtACSyntaxCoupling;
24535
33527
class ExtACTree;
24536
33528
class ExtACKeywords;
24537
 
class WinAsm;
24538
 
class WinDeclSpecs;
24539
 
class WinMemberExplSpec;
24540
 
class WinTypeKeywords;
 
33529
class ExtGnu;
24541
33530
class PragmaOnceUnitState;
24542
33531
class PragmaOnce;
24543
 
class CCExprResolve;
24544
 
class CExprResolve;
 
33532
class CMatchSyntax;
24545
33533
namespace Puma {
24546
33534
 
24547
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33535
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24548
33536
class CT_FctDef : public CT_Decl, public CSemObject {
24549
 
#line 24550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33537
#line 33538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33538
  friend class ::CCExprResolve;
 
33539
  friend class ::CExprResolve;
24550
33540
  friend class ::WinIfExists;
24551
33541
  friend class ::WinImportHandler;
24552
33542
  friend class ::WinMacros;
24553
 
  friend class ::CMatchSyntax;
24554
 
  friend class ::ExtGnu;
 
33543
  friend class ::WinAsm;
 
33544
  friend class ::WinDeclSpecs;
 
33545
  friend class ::WinMemberExplSpec;
 
33546
  friend class ::WinTypeKeywords;
 
33547
  friend class ::WinFriend;
24555
33548
  friend class ::ExtAC;
24556
33549
  friend class ::ExtACBuilderCoupling;
24557
33550
  friend class ::ExtACSyntaxCoupling;
24558
33551
  friend class ::ExtACTree;
24559
33552
  friend class ::ExtACKeywords;
24560
 
  friend class ::WinAsm;
24561
 
  friend class ::WinDeclSpecs;
24562
 
  friend class ::WinMemberExplSpec;
24563
 
  friend class ::WinTypeKeywords;
 
33553
  friend class ::ExtGnu;
24564
33554
  friend class ::PragmaOnceUnitState;
24565
33555
  friend class ::PragmaOnce;
24566
 
  friend class ::CCExprResolve;
24567
 
  friend class ::CExprResolve;
 
33556
  friend class ::CMatchSyntax;
24568
33557
 
24569
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33558
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24570
33559
 
24571
33560
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
24572
33561
 
24573
33562
public:
24574
33563
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
24575
33564
             CTree *b, CTree *hs) {
24576
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
24577
 
    sons[5] = b; sons[6] = hs; 
 
33565
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
33566
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
33567
    AddSon (sons[6], hs); 
24578
33568
  }
 
33569
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24579
33570
  static const char *NodeId ();
 
33571
  /** Get the name of the node. Can be compared with NodeId(). */
24580
33572
  const char *NodeName () const { return NodeId (); }
 
33573
  /** Get the number of sons. */
24581
33574
  int Sons () const { return CTree::Sons (sons, 7); }
 
33575
  /** Get the n-th son.
 
33576
   *  \param n The index of the son.
 
33577
   *  \return The n-th son or NULL. */
24582
33578
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24583
33579
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
24584
33580
  CTree *Declarator () const { return sons[1]; }
24588
33584
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
24589
33585
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
24590
33586
  CSemObject *SemObject () const { return (CSemObject*)this; }
24591
 
  void CtorInit (CTree *i) { sons[3] = i; }
24592
 
  void Body (CTree *b) { sons[5] = b; }
 
33587
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
33588
  void Body (CTree *b) { AddSon (sons[5], b); }
24593
33589
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
24594
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
33590
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
33591
    AddSon (sons[5], b); AddSon (sons[6], h);
24595
33592
  }
 
33593
  /** Replace a son.
 
33594
   *  \param old_son The son to replace.
 
33595
   *  \param new_son The new son. */
24596
33596
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24597
33597
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24598
33598
  }
24599
33599
};
24600
33600
 
24601
33601
 
24602
 
#line 24603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33602
#line 33603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24603
33603
} // closed Puma
 
33604
class CCExprResolve;
 
33605
class CExprResolve;
24604
33606
class WinIfExists;
24605
33607
class WinImportHandler;
24606
33608
class WinMacros;
24607
 
class CMatchSyntax;
24608
 
class ExtGnu;
 
33609
class WinAsm;
 
33610
class WinDeclSpecs;
 
33611
class WinMemberExplSpec;
 
33612
class WinTypeKeywords;
 
33613
class WinFriend;
24609
33614
class ExtAC;
24610
33615
class ExtACBuilderCoupling;
24611
33616
class ExtACSyntaxCoupling;
24612
33617
class ExtACTree;
24613
33618
class ExtACKeywords;
24614
 
class WinAsm;
24615
 
class WinDeclSpecs;
24616
 
class WinMemberExplSpec;
24617
 
class WinTypeKeywords;
 
33619
class ExtGnu;
24618
33620
class PragmaOnceUnitState;
24619
33621
class PragmaOnce;
24620
 
class CCExprResolve;
24621
 
class CExprResolve;
 
33622
class CMatchSyntax;
24622
33623
namespace Puma {
24623
33624
 
24624
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33625
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24625
33626
class CT_AsmDef : public CT_Decl {
24626
 
#line 24627 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33627
#line 33628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33628
  friend class ::CCExprResolve;
 
33629
  friend class ::CExprResolve;
24627
33630
  friend class ::WinIfExists;
24628
33631
  friend class ::WinImportHandler;
24629
33632
  friend class ::WinMacros;
24630
 
  friend class ::CMatchSyntax;
24631
 
  friend class ::ExtGnu;
 
33633
  friend class ::WinAsm;
 
33634
  friend class ::WinDeclSpecs;
 
33635
  friend class ::WinMemberExplSpec;
 
33636
  friend class ::WinTypeKeywords;
 
33637
  friend class ::WinFriend;
24632
33638
  friend class ::ExtAC;
24633
33639
  friend class ::ExtACBuilderCoupling;
24634
33640
  friend class ::ExtACSyntaxCoupling;
24635
33641
  friend class ::ExtACTree;
24636
33642
  friend class ::ExtACKeywords;
24637
 
  friend class ::WinAsm;
24638
 
  friend class ::WinDeclSpecs;
24639
 
  friend class ::WinMemberExplSpec;
24640
 
  friend class ::WinTypeKeywords;
 
33643
  friend class ::ExtGnu;
24641
33644
  friend class ::PragmaOnceUnitState;
24642
33645
  friend class ::PragmaOnce;
24643
 
  friend class ::CCExprResolve;
24644
 
  friend class ::CExprResolve;
 
33646
  friend class ::CMatchSyntax;
24645
33647
 
24646
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33648
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24647
33649
 
24648
33650
  CTree *sons[5]; // asm, open, str, close, semi_colon
24649
33651
 
24650
33652
public:
24651
33653
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
24652
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
33654
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
33655
    AddSon (sons[3], c); AddSon (sons[4], sc); 
24653
33656
  }
 
33657
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24654
33658
  static const char *NodeId ();
 
33659
  /** Get the name of the node. Can be compared with NodeId(). */
24655
33660
  const char *NodeName () const { return NodeId (); }
 
33661
  /** Get the number of sons. */
24656
33662
  int Sons () const { return 5; }
 
33663
  /** Get the n-th son.
 
33664
   *  \param n The index of the son.
 
33665
   *  \return The n-th son or NULL. */
24657
33666
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24658
33667
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
33668
  /** Replace a son.
 
33669
   *  \param old_son The son to replace.
 
33670
   *  \param new_son The new son. */
24659
33671
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24660
33672
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24661
33673
  }
24662
33674
};
24663
33675
 
24664
33676
 
24665
 
#line 24666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33677
#line 33678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24666
33678
} // closed Puma
 
33679
class CCExprResolve;
 
33680
class CExprResolve;
24667
33681
class WinIfExists;
24668
33682
class WinImportHandler;
24669
33683
class WinMacros;
24670
 
class CMatchSyntax;
24671
 
class ExtGnu;
 
33684
class WinAsm;
 
33685
class WinDeclSpecs;
 
33686
class WinMemberExplSpec;
 
33687
class WinTypeKeywords;
 
33688
class WinFriend;
24672
33689
class ExtAC;
24673
33690
class ExtACBuilderCoupling;
24674
33691
class ExtACSyntaxCoupling;
24675
33692
class ExtACTree;
24676
33693
class ExtACKeywords;
24677
 
class WinAsm;
24678
 
class WinDeclSpecs;
24679
 
class WinMemberExplSpec;
24680
 
class WinTypeKeywords;
 
33694
class ExtGnu;
24681
33695
class PragmaOnceUnitState;
24682
33696
class PragmaOnce;
24683
 
class CCExprResolve;
24684
 
class CExprResolve;
 
33697
class CMatchSyntax;
24685
33698
namespace Puma {
24686
33699
 
24687
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33700
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24688
33701
class CT_Handler : public CT_Decl, public CSemScope {
24689
 
#line 24690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33702
#line 33703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33703
  friend class ::CCExprResolve;
 
33704
  friend class ::CExprResolve;
24690
33705
  friend class ::WinIfExists;
24691
33706
  friend class ::WinImportHandler;
24692
33707
  friend class ::WinMacros;
24693
 
  friend class ::CMatchSyntax;
24694
 
  friend class ::ExtGnu;
 
33708
  friend class ::WinAsm;
 
33709
  friend class ::WinDeclSpecs;
 
33710
  friend class ::WinMemberExplSpec;
 
33711
  friend class ::WinTypeKeywords;
 
33712
  friend class ::WinFriend;
24695
33713
  friend class ::ExtAC;
24696
33714
  friend class ::ExtACBuilderCoupling;
24697
33715
  friend class ::ExtACSyntaxCoupling;
24698
33716
  friend class ::ExtACTree;
24699
33717
  friend class ::ExtACKeywords;
24700
 
  friend class ::WinAsm;
24701
 
  friend class ::WinDeclSpecs;
24702
 
  friend class ::WinMemberExplSpec;
24703
 
  friend class ::WinTypeKeywords;
 
33718
  friend class ::ExtGnu;
24704
33719
  friend class ::PragmaOnceUnitState;
24705
33720
  friend class ::PragmaOnce;
24706
 
  friend class ::CCExprResolve;
24707
 
  friend class ::CExprResolve;
 
33721
  friend class ::CMatchSyntax;
24708
33722
 
24709
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33723
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24710
33724
 
24711
33725
  CTree *sons[3]; // catch, exception_decl, stmt
24712
33726
 
24713
33727
public:
24714
33728
  CT_Handler (CTree *c, CTree *e, CTree *s) {
24715
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
33729
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
24716
33730
  }
 
33731
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24717
33732
  static const char *NodeId ();
 
33733
  /** Get the name of the node. Can be compared with NodeId(). */
24718
33734
  const char *NodeName () const { return NodeId (); }
 
33735
  /** Get the number of sons. */
24719
33736
  int Sons () const { return 3; }
 
33737
  /** Get the n-th son.
 
33738
   *  \param n The index of the son.
 
33739
   *  \return The n-th son or NULL. */
24720
33740
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24721
33741
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
24722
33742
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
33743
  /** Replace a son.
 
33744
   *  \param old_son The son to replace.
 
33745
   *  \param new_son The new son. */
24723
33746
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24724
33747
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24725
33748
  }
 
33749
  CSemScope *SemScope () const { return (CSemScope*)this; }
24726
33750
};
24727
33751
 
24728
33752
 
24729
 
#line 24730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33753
#line 33754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24730
33754
} // closed Puma
 
33755
class CCExprResolve;
 
33756
class CExprResolve;
24731
33757
class WinIfExists;
24732
33758
class WinImportHandler;
24733
33759
class WinMacros;
24734
 
class CMatchSyntax;
24735
 
class ExtGnu;
 
33760
class WinAsm;
 
33761
class WinDeclSpecs;
 
33762
class WinMemberExplSpec;
 
33763
class WinTypeKeywords;
 
33764
class WinFriend;
24736
33765
class ExtAC;
24737
33766
class ExtACBuilderCoupling;
24738
33767
class ExtACSyntaxCoupling;
24739
33768
class ExtACTree;
24740
33769
class ExtACKeywords;
24741
 
class WinAsm;
24742
 
class WinDeclSpecs;
24743
 
class WinMemberExplSpec;
24744
 
class WinTypeKeywords;
 
33770
class ExtGnu;
24745
33771
class PragmaOnceUnitState;
24746
33772
class PragmaOnce;
24747
 
class CCExprResolve;
24748
 
class CExprResolve;
 
33773
class CMatchSyntax;
24749
33774
namespace Puma {
24750
33775
 
24751
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33776
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24752
33777
class CT_LinkageSpec : public CT_Decl {
24753
 
#line 24754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33778
#line 33779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33779
  friend class ::CCExprResolve;
 
33780
  friend class ::CExprResolve;
24754
33781
  friend class ::WinIfExists;
24755
33782
  friend class ::WinImportHandler;
24756
33783
  friend class ::WinMacros;
24757
 
  friend class ::CMatchSyntax;
24758
 
  friend class ::ExtGnu;
 
33784
  friend class ::WinAsm;
 
33785
  friend class ::WinDeclSpecs;
 
33786
  friend class ::WinMemberExplSpec;
 
33787
  friend class ::WinTypeKeywords;
 
33788
  friend class ::WinFriend;
24759
33789
  friend class ::ExtAC;
24760
33790
  friend class ::ExtACBuilderCoupling;
24761
33791
  friend class ::ExtACSyntaxCoupling;
24762
33792
  friend class ::ExtACTree;
24763
33793
  friend class ::ExtACKeywords;
24764
 
  friend class ::WinAsm;
24765
 
  friend class ::WinDeclSpecs;
24766
 
  friend class ::WinMemberExplSpec;
24767
 
  friend class ::WinTypeKeywords;
 
33794
  friend class ::ExtGnu;
24768
33795
  friend class ::PragmaOnceUnitState;
24769
33796
  friend class ::PragmaOnce;
24770
 
  friend class ::CCExprResolve;
24771
 
  friend class ::CExprResolve;
 
33797
  friend class ::CMatchSyntax;
24772
33798
 
24773
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33799
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24774
33800
 
24775
33801
  CTree *sons[5]; // extern, str, open, decls, close
24776
33802
 
24777
33803
public:
24778
33804
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
24779
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
33805
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
33806
    AddSon (sons[3], d); AddSon (sons[4], c);
24780
33807
    if (isList ())
24781
33808
      ((CT_DeclList*)Decls ())->Linkage (this);
24782
33809
    else
24783
33810
      ((CT_Decl*)Decls ())->Linkage (this);
24784
33811
  }
 
33812
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24785
33813
  static const char *NodeId ();
 
33814
  /** Get the name of the node. Can be compared with NodeId(). */
24786
33815
  const char *NodeName () const { return NodeId (); }
 
33816
  /** Get the number of sons. */
24787
33817
  int Sons () const { return CTree::Sons (sons, 5); }
 
33818
  /** Get the n-th son.
 
33819
   *  \param n The index of the son.
 
33820
   *  \return The n-th son or NULL. */
24788
33821
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24789
33822
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
24790
33823
  CTree *Decls () const { return sons[3]; }
24791
33824
  bool isList () const {
24792
33825
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
24793
33826
  }
 
33827
  /** Replace a son.
 
33828
   *  \param old_son The son to replace.
 
33829
   *  \param new_son The new son. */
24794
33830
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24795
33831
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24796
33832
  }
24797
33833
};
24798
33834
 
24799
33835
 
24800
 
#line 24801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33836
#line 33837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24801
33837
} // closed Puma
 
33838
class CCExprResolve;
 
33839
class CExprResolve;
24802
33840
class WinIfExists;
24803
33841
class WinImportHandler;
24804
33842
class WinMacros;
24805
 
class CMatchSyntax;
24806
 
class ExtGnu;
 
33843
class WinAsm;
 
33844
class WinDeclSpecs;
 
33845
class WinMemberExplSpec;
 
33846
class WinTypeKeywords;
 
33847
class WinFriend;
24807
33848
class ExtAC;
24808
33849
class ExtACBuilderCoupling;
24809
33850
class ExtACSyntaxCoupling;
24810
33851
class ExtACTree;
24811
33852
class ExtACKeywords;
24812
 
class WinAsm;
24813
 
class WinDeclSpecs;
24814
 
class WinMemberExplSpec;
24815
 
class WinTypeKeywords;
 
33853
class ExtGnu;
24816
33854
class PragmaOnceUnitState;
24817
33855
class PragmaOnce;
24818
 
class CCExprResolve;
24819
 
class CExprResolve;
 
33856
class CMatchSyntax;
24820
33857
namespace Puma {
24821
33858
 
24822
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33859
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24823
33860
class CT_ArgDecl : public CT_Decl, public CSemObject {
24824
 
#line 24825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33861
#line 33862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33862
  friend class ::CCExprResolve;
 
33863
  friend class ::CExprResolve;
24825
33864
  friend class ::WinIfExists;
24826
33865
  friend class ::WinImportHandler;
24827
33866
  friend class ::WinMacros;
24828
 
  friend class ::CMatchSyntax;
24829
 
  friend class ::ExtGnu;
 
33867
  friend class ::WinAsm;
 
33868
  friend class ::WinDeclSpecs;
 
33869
  friend class ::WinMemberExplSpec;
 
33870
  friend class ::WinTypeKeywords;
 
33871
  friend class ::WinFriend;
24830
33872
  friend class ::ExtAC;
24831
33873
  friend class ::ExtACBuilderCoupling;
24832
33874
  friend class ::ExtACSyntaxCoupling;
24833
33875
  friend class ::ExtACTree;
24834
33876
  friend class ::ExtACKeywords;
24835
 
  friend class ::WinAsm;
24836
 
  friend class ::WinDeclSpecs;
24837
 
  friend class ::WinMemberExplSpec;
24838
 
  friend class ::WinTypeKeywords;
 
33877
  friend class ::ExtGnu;
24839
33878
  friend class ::PragmaOnceUnitState;
24840
33879
  friend class ::PragmaOnce;
24841
 
  friend class ::CCExprResolve;
24842
 
  friend class ::CExprResolve;
 
33880
  friend class ::CMatchSyntax;
24843
33881
 
24844
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33882
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24845
33883
 
24846
33884
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
24847
33885
 
24848
33886
public:
24849
33887
  CT_ArgDecl (CTree *dsl, CTree *d) {
24850
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
33888
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
33889
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
24851
33890
  }
24852
33891
  CT_ArgDecl (CTree *ellipsis) {
24853
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
33892
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
33893
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
24854
33894
  }
 
33895
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24855
33896
  static const char *NodeId ();
 
33897
  /** Get the name of the node. Can be compared with NodeId(). */
24856
33898
  const char *NodeName () const { return NodeId (); }
 
33899
  /** Get the number of sons. */
24857
33900
  int Sons () const { return CTree::Sons (sons, 4); }
 
33901
  /** Get the n-th son.
 
33902
   *  \param n The index of the son.
 
33903
   *  \return The n-th son or NULL. */
24858
33904
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
24859
33905
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
24860
33906
  CTree *Declarator () const { return sons[1]; }
24861
33907
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
24862
33908
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
24863
33909
  CSemObject *SemObject () const { return (CSemObject*)this; }
24864
 
  void Initializer (CTree *i) { sons[2] = i; }
 
33910
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
33911
  /** Replace a son.
 
33912
   *  \param old_son The son to replace.
 
33913
   *  \param new_son The new son. */
24865
33914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24866
33915
    CTree::ReplaceSon (sons, 4, old_son, new_son);
24867
33916
  }
24868
33917
};
24869
33918
 
24870
33919
 
24871
 
#line 24872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33920
#line 33921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24872
33921
} // closed Puma
 
33922
class CCExprResolve;
 
33923
class CExprResolve;
24873
33924
class WinIfExists;
24874
33925
class WinImportHandler;
24875
33926
class WinMacros;
24876
 
class CMatchSyntax;
24877
 
class ExtGnu;
 
33927
class WinAsm;
 
33928
class WinDeclSpecs;
 
33929
class WinMemberExplSpec;
 
33930
class WinTypeKeywords;
 
33931
class WinFriend;
24878
33932
class ExtAC;
24879
33933
class ExtACBuilderCoupling;
24880
33934
class ExtACSyntaxCoupling;
24881
33935
class ExtACTree;
24882
33936
class ExtACKeywords;
24883
 
class WinAsm;
24884
 
class WinDeclSpecs;
24885
 
class WinMemberExplSpec;
24886
 
class WinTypeKeywords;
 
33937
class ExtGnu;
24887
33938
class PragmaOnceUnitState;
24888
33939
class PragmaOnce;
24889
 
class CCExprResolve;
24890
 
class CExprResolve;
 
33940
class CMatchSyntax;
24891
33941
namespace Puma {
24892
33942
 
24893
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33943
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24894
33944
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
24895
 
#line 24896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33945
#line 33946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
33946
  friend class ::CCExprResolve;
 
33947
  friend class ::CExprResolve;
24896
33948
  friend class ::WinIfExists;
24897
33949
  friend class ::WinImportHandler;
24898
33950
  friend class ::WinMacros;
24899
 
  friend class ::CMatchSyntax;
24900
 
  friend class ::ExtGnu;
 
33951
  friend class ::WinAsm;
 
33952
  friend class ::WinDeclSpecs;
 
33953
  friend class ::WinMemberExplSpec;
 
33954
  friend class ::WinTypeKeywords;
 
33955
  friend class ::WinFriend;
24901
33956
  friend class ::ExtAC;
24902
33957
  friend class ::ExtACBuilderCoupling;
24903
33958
  friend class ::ExtACSyntaxCoupling;
24904
33959
  friend class ::ExtACTree;
24905
33960
  friend class ::ExtACKeywords;
24906
 
  friend class ::WinAsm;
24907
 
  friend class ::WinDeclSpecs;
24908
 
  friend class ::WinMemberExplSpec;
24909
 
  friend class ::WinTypeKeywords;
 
33961
  friend class ::ExtGnu;
24910
33962
  friend class ::PragmaOnceUnitState;
24911
33963
  friend class ::PragmaOnce;
24912
 
  friend class ::CCExprResolve;
24913
 
  friend class ::CExprResolve;
 
33964
  friend class ::CMatchSyntax;
24914
33965
 
24915
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33966
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24916
33967
 
24917
33968
public:
24918
33969
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
24919
33970
   CT_DeclList (size, 2) { AddProperties (props); }
 
33971
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24920
33972
  static const char *NodeId ();
 
33973
  /** Get the name of the node. Can be compared with NodeId(). */
24921
33974
  const char *NodeName () const { return NodeId (); }
 
33975
  CSemScope *SemScope () const { return (CSemScope*)this; }
24922
33976
};
24923
33977
 
24924
33978
 
24925
 
#line 24926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
33979
#line 33980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24926
33980
} // closed Puma
 
33981
class CCExprResolve;
 
33982
class CExprResolve;
24927
33983
class WinIfExists;
24928
33984
class WinImportHandler;
24929
33985
class WinMacros;
24930
 
class CMatchSyntax;
24931
 
class ExtGnu;
 
33986
class WinAsm;
 
33987
class WinDeclSpecs;
 
33988
class WinMemberExplSpec;
 
33989
class WinTypeKeywords;
 
33990
class WinFriend;
24932
33991
class ExtAC;
24933
33992
class ExtACBuilderCoupling;
24934
33993
class ExtACSyntaxCoupling;
24935
33994
class ExtACTree;
24936
33995
class ExtACKeywords;
24937
 
class WinAsm;
24938
 
class WinDeclSpecs;
24939
 
class WinMemberExplSpec;
24940
 
class WinTypeKeywords;
 
33996
class ExtGnu;
24941
33997
class PragmaOnceUnitState;
24942
33998
class PragmaOnce;
24943
 
class CCExprResolve;
24944
 
class CExprResolve;
 
33999
class CMatchSyntax;
24945
34000
namespace Puma {
24946
34001
 
24947
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34002
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24948
34003
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
24949
 
#line 24950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34004
#line 34005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34005
  friend class ::CCExprResolve;
 
34006
  friend class ::CExprResolve;
24950
34007
  friend class ::WinIfExists;
24951
34008
  friend class ::WinImportHandler;
24952
34009
  friend class ::WinMacros;
24953
 
  friend class ::CMatchSyntax;
24954
 
  friend class ::ExtGnu;
 
34010
  friend class ::WinAsm;
 
34011
  friend class ::WinDeclSpecs;
 
34012
  friend class ::WinMemberExplSpec;
 
34013
  friend class ::WinTypeKeywords;
 
34014
  friend class ::WinFriend;
24955
34015
  friend class ::ExtAC;
24956
34016
  friend class ::ExtACBuilderCoupling;
24957
34017
  friend class ::ExtACSyntaxCoupling;
24958
34018
  friend class ::ExtACTree;
24959
34019
  friend class ::ExtACKeywords;
24960
 
  friend class ::WinAsm;
24961
 
  friend class ::WinDeclSpecs;
24962
 
  friend class ::WinMemberExplSpec;
24963
 
  friend class ::WinTypeKeywords;
 
34020
  friend class ::ExtGnu;
24964
34021
  friend class ::PragmaOnceUnitState;
24965
34022
  friend class ::PragmaOnce;
24966
 
  friend class ::CCExprResolve;
24967
 
  friend class ::CExprResolve;
 
34023
  friend class ::CMatchSyntax;
24968
34024
 
24969
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34025
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
24970
34026
 
24971
34027
public:
24972
34028
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
34029
  /** Get the identifier for this node type. Can be compared with NodeName(). */
24973
34030
  static const char *NodeId ();
 
34031
  /** Get the name of the node. Can be compared with NodeId(). */
24974
34032
  const char *NodeName () const { return NodeId (); }
 
34033
  CSemScope *SemScope () const { return (CSemScope*)this; }
24975
34034
};
24976
34035
 
24977
34036
 
24978
 
#line 24979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34037
#line 34038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
24979
34038
} // closed Puma
 
34039
class CCExprResolve;
 
34040
class CExprResolve;
24980
34041
class WinIfExists;
24981
34042
class WinImportHandler;
24982
34043
class WinMacros;
24983
 
class CMatchSyntax;
24984
 
class ExtGnu;
 
34044
class WinAsm;
 
34045
class WinDeclSpecs;
 
34046
class WinMemberExplSpec;
 
34047
class WinTypeKeywords;
 
34048
class WinFriend;
24985
34049
class ExtAC;
24986
34050
class ExtACBuilderCoupling;
24987
34051
class ExtACSyntaxCoupling;
24988
34052
class ExtACTree;
24989
34053
class ExtACKeywords;
24990
 
class WinAsm;
24991
 
class WinDeclSpecs;
24992
 
class WinMemberExplSpec;
24993
 
class WinTypeKeywords;
 
34054
class ExtGnu;
24994
34055
class PragmaOnceUnitState;
24995
34056
class PragmaOnce;
24996
 
class CCExprResolve;
24997
 
class CExprResolve;
 
34057
class CMatchSyntax;
24998
34058
namespace Puma {
24999
34059
 
25000
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34060
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25001
34061
class CT_ArgNameList : public CT_ArgDeclList {
25002
 
#line 25003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34062
#line 34063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34063
  friend class ::CCExprResolve;
 
34064
  friend class ::CExprResolve;
25003
34065
  friend class ::WinIfExists;
25004
34066
  friend class ::WinImportHandler;
25005
34067
  friend class ::WinMacros;
25006
 
  friend class ::CMatchSyntax;
25007
 
  friend class ::ExtGnu;
 
34068
  friend class ::WinAsm;
 
34069
  friend class ::WinDeclSpecs;
 
34070
  friend class ::WinMemberExplSpec;
 
34071
  friend class ::WinTypeKeywords;
 
34072
  friend class ::WinFriend;
25008
34073
  friend class ::ExtAC;
25009
34074
  friend class ::ExtACBuilderCoupling;
25010
34075
  friend class ::ExtACSyntaxCoupling;
25011
34076
  friend class ::ExtACTree;
25012
34077
  friend class ::ExtACKeywords;
25013
 
  friend class ::WinAsm;
25014
 
  friend class ::WinDeclSpecs;
25015
 
  friend class ::WinMemberExplSpec;
25016
 
  friend class ::WinTypeKeywords;
 
34078
  friend class ::ExtGnu;
25017
34079
  friend class ::PragmaOnceUnitState;
25018
34080
  friend class ::PragmaOnce;
25019
 
  friend class ::CCExprResolve;
25020
 
  friend class ::CExprResolve;
 
34081
  friend class ::CMatchSyntax;
25021
34082
 
25022
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34083
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25023
34084
 
25024
34085
public:
25025
34086
  CT_ArgNameList () : CT_ArgDeclList () {}
 
34087
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25026
34088
  static const char *NodeId ();
 
34089
  /** Get the name of the node. Can be compared with NodeId(). */
25027
34090
  const char *NodeName () const { return NodeId (); }
25028
34091
};
25029
34092
 
25030
34093
 
25031
 
#line 25032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34094
#line 34095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25032
34095
} // closed Puma
 
34096
class CCExprResolve;
 
34097
class CExprResolve;
25033
34098
class WinIfExists;
25034
34099
class WinImportHandler;
25035
34100
class WinMacros;
25036
 
class CMatchSyntax;
25037
 
class ExtGnu;
 
34101
class WinAsm;
 
34102
class WinDeclSpecs;
 
34103
class WinMemberExplSpec;
 
34104
class WinTypeKeywords;
 
34105
class WinFriend;
25038
34106
class ExtAC;
25039
34107
class ExtACBuilderCoupling;
25040
34108
class ExtACSyntaxCoupling;
25041
34109
class ExtACTree;
25042
34110
class ExtACKeywords;
25043
 
class WinAsm;
25044
 
class WinDeclSpecs;
25045
 
class WinMemberExplSpec;
25046
 
class WinTypeKeywords;
 
34111
class ExtGnu;
25047
34112
class PragmaOnceUnitState;
25048
34113
class PragmaOnce;
25049
 
class CCExprResolve;
25050
 
class CExprResolve;
 
34114
class CMatchSyntax;
25051
34115
namespace Puma {
25052
34116
 
25053
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34117
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25054
34118
class CT_NamespaceDef : public CT_Decl, public CSemObject {
25055
 
#line 25056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34119
#line 34120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34120
  friend class ::CCExprResolve;
 
34121
  friend class ::CExprResolve;
25056
34122
  friend class ::WinIfExists;
25057
34123
  friend class ::WinImportHandler;
25058
34124
  friend class ::WinMacros;
25059
 
  friend class ::CMatchSyntax;
25060
 
  friend class ::ExtGnu;
 
34125
  friend class ::WinAsm;
 
34126
  friend class ::WinDeclSpecs;
 
34127
  friend class ::WinMemberExplSpec;
 
34128
  friend class ::WinTypeKeywords;
 
34129
  friend class ::WinFriend;
25061
34130
  friend class ::ExtAC;
25062
34131
  friend class ::ExtACBuilderCoupling;
25063
34132
  friend class ::ExtACSyntaxCoupling;
25064
34133
  friend class ::ExtACTree;
25065
34134
  friend class ::ExtACKeywords;
25066
 
  friend class ::WinAsm;
25067
 
  friend class ::WinDeclSpecs;
25068
 
  friend class ::WinMemberExplSpec;
25069
 
  friend class ::WinTypeKeywords;
 
34135
  friend class ::ExtGnu;
25070
34136
  friend class ::PragmaOnceUnitState;
25071
34137
  friend class ::PragmaOnce;
25072
 
  friend class ::CCExprResolve;
25073
 
  friend class ::CExprResolve;
 
34138
  friend class ::CMatchSyntax;
25074
34139
 
25075
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34140
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25076
34141
 
25077
34142
  CTree *sons[3]; // ns, name, members
25078
34143
 
25079
34144
public:
25080
34145
  CT_NamespaceDef (CTree *n, CTree *nm) {
25081
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
34146
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
25082
34147
  }
25083
34148
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
25084
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
34149
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
25085
34150
  }
 
34151
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25086
34152
  static const char *NodeId ();
 
34153
  /** Get the name of the node. Can be compared with NodeId(). */
25087
34154
  const char *NodeName () const { return NodeId (); }
 
34155
  /** Get the number of sons. */
25088
34156
  int Sons () const { return CTree::Sons (sons, 3); }
 
34157
  /** Get the n-th son.
 
34158
   *  \param n The index of the son.
 
34159
   *  \return The n-th son or NULL. */
25089
34160
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25090
 
  void Members (CTree *m) { sons[2] = m; }
 
34161
  void Members (CTree *m) { AddSon (sons[2], m); }
25091
34162
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
25092
34163
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
25093
34164
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34165
  /** Replace a son.
 
34166
   *  \param old_son The son to replace.
 
34167
   *  \param new_son The new son. */
25094
34168
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25095
34169
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25096
34170
  }
25097
34171
};
25098
34172
 
25099
34173
 
25100
 
#line 25101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34174
#line 34175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25101
34175
} // closed Puma
 
34176
class CCExprResolve;
 
34177
class CExprResolve;
25102
34178
class WinIfExists;
25103
34179
class WinImportHandler;
25104
34180
class WinMacros;
25105
 
class CMatchSyntax;
25106
 
class ExtGnu;
 
34181
class WinAsm;
 
34182
class WinDeclSpecs;
 
34183
class WinMemberExplSpec;
 
34184
class WinTypeKeywords;
 
34185
class WinFriend;
25107
34186
class ExtAC;
25108
34187
class ExtACBuilderCoupling;
25109
34188
class ExtACSyntaxCoupling;
25110
34189
class ExtACTree;
25111
34190
class ExtACKeywords;
25112
 
class WinAsm;
25113
 
class WinDeclSpecs;
25114
 
class WinMemberExplSpec;
25115
 
class WinTypeKeywords;
 
34191
class ExtGnu;
25116
34192
class PragmaOnceUnitState;
25117
34193
class PragmaOnce;
25118
 
class CCExprResolve;
25119
 
class CExprResolve;
 
34194
class CMatchSyntax;
25120
34195
namespace Puma {
25121
34196
 
25122
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34197
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25123
34198
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
25124
 
#line 25125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34199
#line 34200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34200
  friend class ::CCExprResolve;
 
34201
  friend class ::CExprResolve;
25125
34202
  friend class ::WinIfExists;
25126
34203
  friend class ::WinImportHandler;
25127
34204
  friend class ::WinMacros;
25128
 
  friend class ::CMatchSyntax;
25129
 
  friend class ::ExtGnu;
 
34205
  friend class ::WinAsm;
 
34206
  friend class ::WinDeclSpecs;
 
34207
  friend class ::WinMemberExplSpec;
 
34208
  friend class ::WinTypeKeywords;
 
34209
  friend class ::WinFriend;
25130
34210
  friend class ::ExtAC;
25131
34211
  friend class ::ExtACBuilderCoupling;
25132
34212
  friend class ::ExtACSyntaxCoupling;
25133
34213
  friend class ::ExtACTree;
25134
34214
  friend class ::ExtACKeywords;
25135
 
  friend class ::WinAsm;
25136
 
  friend class ::WinDeclSpecs;
25137
 
  friend class ::WinMemberExplSpec;
25138
 
  friend class ::WinTypeKeywords;
 
34215
  friend class ::ExtGnu;
25139
34216
  friend class ::PragmaOnceUnitState;
25140
34217
  friend class ::PragmaOnce;
25141
 
  friend class ::CCExprResolve;
25142
 
  friend class ::CExprResolve;
 
34218
  friend class ::CMatchSyntax;
25143
34219
 
25144
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34220
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25145
34221
 
25146
34222
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
25147
34223
 
25148
34224
public:
25149
34225
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
25150
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
34226
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
34227
    AddSon (sons[3], nm); AddSon (sons[4], s); 
25151
34228
  }
 
34229
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25152
34230
  static const char *NodeId ();
 
34231
  /** Get the name of the node. Can be compared with NodeId(). */
25153
34232
  const char *NodeName () const { return NodeId (); }
 
34233
  /** Get the number of sons. */
25154
34234
  int Sons () const { return 5; }
 
34235
  /** Get the n-th son.
 
34236
   *  \param n The index of the son.
 
34237
   *  \return The n-th son or NULL. */
25155
34238
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
25156
34239
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
25157
34240
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
25158
34241
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34242
  /** Replace a son.
 
34243
   *  \param old_son The son to replace.
 
34244
   *  \param new_son The new son. */
25159
34245
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25160
34246
    CTree::ReplaceSon (sons, 5, old_son, new_son);
25161
34247
  }
25162
34248
};
25163
34249
 
25164
34250
 
25165
 
#line 25166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34251
#line 34252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25166
34252
} // closed Puma
 
34253
class CCExprResolve;
 
34254
class CExprResolve;
25167
34255
class WinIfExists;
25168
34256
class WinImportHandler;
25169
34257
class WinMacros;
25170
 
class CMatchSyntax;
25171
 
class ExtGnu;
 
34258
class WinAsm;
 
34259
class WinDeclSpecs;
 
34260
class WinMemberExplSpec;
 
34261
class WinTypeKeywords;
 
34262
class WinFriend;
25172
34263
class ExtAC;
25173
34264
class ExtACBuilderCoupling;
25174
34265
class ExtACSyntaxCoupling;
25175
34266
class ExtACTree;
25176
34267
class ExtACKeywords;
25177
 
class WinAsm;
25178
 
class WinDeclSpecs;
25179
 
class WinMemberExplSpec;
25180
 
class WinTypeKeywords;
 
34268
class ExtGnu;
25181
34269
class PragmaOnceUnitState;
25182
34270
class PragmaOnce;
25183
 
class CCExprResolve;
25184
 
class CExprResolve;
 
34271
class CMatchSyntax;
25185
34272
namespace Puma {
25186
34273
 
25187
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34274
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25188
34275
class CT_UsingDirective : public CT_Decl {
25189
 
#line 25190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34276
#line 34277 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34277
  friend class ::CCExprResolve;
 
34278
  friend class ::CExprResolve;
25190
34279
  friend class ::WinIfExists;
25191
34280
  friend class ::WinImportHandler;
25192
34281
  friend class ::WinMacros;
25193
 
  friend class ::CMatchSyntax;
25194
 
  friend class ::ExtGnu;
 
34282
  friend class ::WinAsm;
 
34283
  friend class ::WinDeclSpecs;
 
34284
  friend class ::WinMemberExplSpec;
 
34285
  friend class ::WinTypeKeywords;
 
34286
  friend class ::WinFriend;
25195
34287
  friend class ::ExtAC;
25196
34288
  friend class ::ExtACBuilderCoupling;
25197
34289
  friend class ::ExtACSyntaxCoupling;
25198
34290
  friend class ::ExtACTree;
25199
34291
  friend class ::ExtACKeywords;
25200
 
  friend class ::WinAsm;
25201
 
  friend class ::WinDeclSpecs;
25202
 
  friend class ::WinMemberExplSpec;
25203
 
  friend class ::WinTypeKeywords;
 
34292
  friend class ::ExtGnu;
25204
34293
  friend class ::PragmaOnceUnitState;
25205
34294
  friend class ::PragmaOnce;
25206
 
  friend class ::CCExprResolve;
25207
 
  friend class ::CExprResolve;
 
34295
  friend class ::CMatchSyntax;
25208
34296
 
25209
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34297
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25210
34298
 
25211
34299
  CTree *sons[4]; // using, ns, name, semi_colon
25212
34300
 
25213
34301
public:
25214
34302
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
25215
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
34303
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
34304
    AddSon (sons[3], s); 
25216
34305
  }
 
34306
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25217
34307
  static const char *NodeId ();
 
34308
  /** Get the name of the node. Can be compared with NodeId(). */
25218
34309
  const char *NodeName () const { return NodeId (); }
 
34310
  /** Get the number of sons. */
25219
34311
  int Sons () const { return 4; }
 
34312
  /** Get the n-th son.
 
34313
   *  \param n The index of the son.
 
34314
   *  \return The n-th son or NULL. */
25220
34315
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25221
34316
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
34317
  /** Replace a son.
 
34318
   *  \param old_son The son to replace.
 
34319
   *  \param new_son The new son. */
25222
34320
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25223
34321
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25224
34322
  }
25231
34329
/*****************************************************************************/
25232
34330
 
25233
34331
 
25234
 
#line 25235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34332
#line 34333 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25235
34333
} // closed Puma
 
34334
class CCExprResolve;
 
34335
class CExprResolve;
25236
34336
class WinIfExists;
25237
34337
class WinImportHandler;
25238
34338
class WinMacros;
25239
 
class CMatchSyntax;
25240
 
class ExtGnu;
 
34339
class WinAsm;
 
34340
class WinDeclSpecs;
 
34341
class WinMemberExplSpec;
 
34342
class WinTypeKeywords;
 
34343
class WinFriend;
25241
34344
class ExtAC;
25242
34345
class ExtACBuilderCoupling;
25243
34346
class ExtACSyntaxCoupling;
25244
34347
class ExtACTree;
25245
34348
class ExtACKeywords;
25246
 
class WinAsm;
25247
 
class WinDeclSpecs;
25248
 
class WinMemberExplSpec;
25249
 
class WinTypeKeywords;
 
34349
class ExtGnu;
25250
34350
class PragmaOnceUnitState;
25251
34351
class PragmaOnce;
25252
 
class CCExprResolve;
25253
 
class CExprResolve;
 
34352
class CMatchSyntax;
25254
34353
namespace Puma {
25255
34354
 
25256
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34355
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25257
34356
class CT_Declarator : public CTree {
25258
 
#line 25259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34357
#line 34358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34358
  friend class ::CCExprResolve;
 
34359
  friend class ::CExprResolve;
25259
34360
  friend class ::WinIfExists;
25260
34361
  friend class ::WinImportHandler;
25261
34362
  friend class ::WinMacros;
25262
 
  friend class ::CMatchSyntax;
25263
 
  friend class ::ExtGnu;
 
34363
  friend class ::WinAsm;
 
34364
  friend class ::WinDeclSpecs;
 
34365
  friend class ::WinMemberExplSpec;
 
34366
  friend class ::WinTypeKeywords;
 
34367
  friend class ::WinFriend;
25264
34368
  friend class ::ExtAC;
25265
34369
  friend class ::ExtACBuilderCoupling;
25266
34370
  friend class ::ExtACSyntaxCoupling;
25267
34371
  friend class ::ExtACTree;
25268
34372
  friend class ::ExtACKeywords;
25269
 
  friend class ::WinAsm;
25270
 
  friend class ::WinDeclSpecs;
25271
 
  friend class ::WinMemberExplSpec;
25272
 
  friend class ::WinTypeKeywords;
 
34373
  friend class ::ExtGnu;
25273
34374
  friend class ::PragmaOnceUnitState;
25274
34375
  friend class ::PragmaOnce;
25275
 
  friend class ::CCExprResolve;
25276
 
  friend class ::CExprResolve;
 
34376
  friend class ::CMatchSyntax;
25277
34377
 
25278
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34378
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25279
34379
 
25280
34380
protected:
25281
34381
  CT_Declarator () {}
25290
34390
};
25291
34391
 
25292
34392
 
25293
 
#line 25294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34393
#line 34394 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25294
34394
} // closed Puma
 
34395
class CCExprResolve;
 
34396
class CExprResolve;
25295
34397
class WinIfExists;
25296
34398
class WinImportHandler;
25297
34399
class WinMacros;
25298
 
class CMatchSyntax;
25299
 
class ExtGnu;
 
34400
class WinAsm;
 
34401
class WinDeclSpecs;
 
34402
class WinMemberExplSpec;
 
34403
class WinTypeKeywords;
 
34404
class WinFriend;
25300
34405
class ExtAC;
25301
34406
class ExtACBuilderCoupling;
25302
34407
class ExtACSyntaxCoupling;
25303
34408
class ExtACTree;
25304
34409
class ExtACKeywords;
25305
 
class WinAsm;
25306
 
class WinDeclSpecs;
25307
 
class WinMemberExplSpec;
25308
 
class WinTypeKeywords;
 
34410
class ExtGnu;
25309
34411
class PragmaOnceUnitState;
25310
34412
class PragmaOnce;
25311
 
class CCExprResolve;
25312
 
class CExprResolve;
 
34413
class CMatchSyntax;
25313
34414
namespace Puma {
25314
34415
 
25315
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34416
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25316
34417
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
25317
 
#line 25318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34418
#line 34419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34419
  friend class ::CCExprResolve;
 
34420
  friend class ::CExprResolve;
25318
34421
  friend class ::WinIfExists;
25319
34422
  friend class ::WinImportHandler;
25320
34423
  friend class ::WinMacros;
25321
 
  friend class ::CMatchSyntax;
25322
 
  friend class ::ExtGnu;
 
34424
  friend class ::WinAsm;
 
34425
  friend class ::WinDeclSpecs;
 
34426
  friend class ::WinMemberExplSpec;
 
34427
  friend class ::WinTypeKeywords;
 
34428
  friend class ::WinFriend;
25323
34429
  friend class ::ExtAC;
25324
34430
  friend class ::ExtACBuilderCoupling;
25325
34431
  friend class ::ExtACSyntaxCoupling;
25326
34432
  friend class ::ExtACTree;
25327
34433
  friend class ::ExtACKeywords;
25328
 
  friend class ::WinAsm;
25329
 
  friend class ::WinDeclSpecs;
25330
 
  friend class ::WinMemberExplSpec;
25331
 
  friend class ::WinTypeKeywords;
 
34434
  friend class ::ExtGnu;
25332
34435
  friend class ::PragmaOnceUnitState;
25333
34436
  friend class ::PragmaOnce;
25334
 
  friend class ::CCExprResolve;
25335
 
  friend class ::CExprResolve;
25336
 
 
25337
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25338
 
 
25339
 
  CTree *sons[2]; // declarator, init
 
34437
  friend class ::CMatchSyntax;
 
34438
 
 
34439
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34440
 
 
34441
  CTree *sons[3]; // declarator, ext, init
25340
34442
  CTree *obj_decl;
25341
34443
 
25342
34444
public:
25343
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
25344
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
34445
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
34446
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
34447
    AddSon (obj_decl, 0); 
25345
34448
  }
 
34449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25346
34450
  static const char *NodeId ();
 
34451
  /** Get the name of the node. Can be compared with NodeId(). */
25347
34452
  const char *NodeName () const { return NodeId (); }
25348
 
  int Sons () const { return CTree::Sons (sons, 2); }
25349
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
34453
  /** Get the number of sons. */
 
34454
  int Sons () const { return CTree::Sons (sons, 3); }
 
34455
  /** Get the n-th son.
 
34456
   *  \param n The index of the son.
 
34457
   *  \return The n-th son or NULL. */
 
34458
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25350
34459
  CTree *Declarator () const { return sons[0]; }
25351
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
34460
  CTree *Extension () const { return sons[1]; }
 
34461
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
25352
34462
  CSemObject *SemObject () const { return (CSemObject*)this; }
25353
34463
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
25354
 
  void Initializer (CTree* i) { sons[1] = i; }
25355
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
34464
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
34465
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
34466
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
34467
  /** Replace a son.
 
34468
   *  \param old_son The son to replace.
 
34469
   *  \param new_son The new son. */
25356
34470
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25357
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
34471
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25358
34472
  }
25359
34473
};
25360
34474
 
25361
34475
 
25362
 
#line 25363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34476
#line 34477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25363
34477
} // closed Puma
 
34478
class CCExprResolve;
 
34479
class CExprResolve;
25364
34480
class WinIfExists;
25365
34481
class WinImportHandler;
25366
34482
class WinMacros;
25367
 
class CMatchSyntax;
25368
 
class ExtGnu;
 
34483
class WinAsm;
 
34484
class WinDeclSpecs;
 
34485
class WinMemberExplSpec;
 
34486
class WinTypeKeywords;
 
34487
class WinFriend;
25369
34488
class ExtAC;
25370
34489
class ExtACBuilderCoupling;
25371
34490
class ExtACSyntaxCoupling;
25372
34491
class ExtACTree;
25373
34492
class ExtACKeywords;
25374
 
class WinAsm;
25375
 
class WinDeclSpecs;
25376
 
class WinMemberExplSpec;
25377
 
class WinTypeKeywords;
 
34493
class ExtGnu;
25378
34494
class PragmaOnceUnitState;
25379
34495
class PragmaOnce;
25380
 
class CCExprResolve;
25381
 
class CExprResolve;
 
34496
class CMatchSyntax;
25382
34497
namespace Puma {
25383
34498
 
25384
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34499
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25385
34500
class CT_BracedDeclarator : public CT_Declarator {
25386
 
#line 25387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34501
#line 34502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34502
  friend class ::CCExprResolve;
 
34503
  friend class ::CExprResolve;
25387
34504
  friend class ::WinIfExists;
25388
34505
  friend class ::WinImportHandler;
25389
34506
  friend class ::WinMacros;
25390
 
  friend class ::CMatchSyntax;
25391
 
  friend class ::ExtGnu;
 
34507
  friend class ::WinAsm;
 
34508
  friend class ::WinDeclSpecs;
 
34509
  friend class ::WinMemberExplSpec;
 
34510
  friend class ::WinTypeKeywords;
 
34511
  friend class ::WinFriend;
25392
34512
  friend class ::ExtAC;
25393
34513
  friend class ::ExtACBuilderCoupling;
25394
34514
  friend class ::ExtACSyntaxCoupling;
25395
34515
  friend class ::ExtACTree;
25396
34516
  friend class ::ExtACKeywords;
25397
 
  friend class ::WinAsm;
25398
 
  friend class ::WinDeclSpecs;
25399
 
  friend class ::WinMemberExplSpec;
25400
 
  friend class ::WinTypeKeywords;
 
34517
  friend class ::ExtGnu;
25401
34518
  friend class ::PragmaOnceUnitState;
25402
34519
  friend class ::PragmaOnce;
25403
 
  friend class ::CCExprResolve;
25404
 
  friend class ::CExprResolve;
 
34520
  friend class ::CMatchSyntax;
25405
34521
 
25406
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34522
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25407
34523
 
25408
34524
  CTree *sons[4]; // open, win_specs, declarator, close
25409
34525
 
25410
34526
public:
25411
34527
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
25412
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
34528
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
34529
    AddSon (sons[2], d); AddSon (sons[3], c); 
25413
34530
  }
25414
34531
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
25415
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
34532
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
34533
    AddSon (sons[2], d); AddSon (sons[3], c); 
25416
34534
  }
 
34535
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25417
34536
  static const char *NodeId ();
 
34537
  /** Get the name of the node. Can be compared with NodeId(). */
25418
34538
  const char *NodeName () const { return NodeId (); }
 
34539
  /** Get the number of sons. */
25419
34540
  int Sons () const { return CTree::Sons (sons, 4); }
 
34541
  /** Get the n-th son.
 
34542
   *  \param n The index of the son.
 
34543
   *  \return The n-th son or NULL. */
25420
34544
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25421
34545
  CTree *Declarator () const { return sons[2]; }
 
34546
  /** Replace a son.
 
34547
   *  \param old_son The son to replace.
 
34548
   *  \param new_son The new son. */
25422
34549
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25423
34550
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25424
34551
  }
25425
34552
};
25426
34553
 
25427
34554
 
25428
 
#line 25429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34555
#line 34556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25429
34556
} // closed Puma
 
34557
class CCExprResolve;
 
34558
class CExprResolve;
25430
34559
class WinIfExists;
25431
34560
class WinImportHandler;
25432
34561
class WinMacros;
25433
 
class CMatchSyntax;
25434
 
class ExtGnu;
 
34562
class WinAsm;
 
34563
class WinDeclSpecs;
 
34564
class WinMemberExplSpec;
 
34565
class WinTypeKeywords;
 
34566
class WinFriend;
25435
34567
class ExtAC;
25436
34568
class ExtACBuilderCoupling;
25437
34569
class ExtACSyntaxCoupling;
25438
34570
class ExtACTree;
25439
34571
class ExtACKeywords;
25440
 
class WinAsm;
25441
 
class WinDeclSpecs;
25442
 
class WinMemberExplSpec;
25443
 
class WinTypeKeywords;
 
34572
class ExtGnu;
25444
34573
class PragmaOnceUnitState;
25445
34574
class PragmaOnce;
25446
 
class CCExprResolve;
25447
 
class CExprResolve;
 
34575
class CMatchSyntax;
25448
34576
namespace Puma {
25449
34577
 
25450
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34578
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25451
34579
class CT_ArrayDelimiter : public CTree {
25452
 
#line 25453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34580
#line 34581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34581
  friend class ::CCExprResolve;
 
34582
  friend class ::CExprResolve;
25453
34583
  friend class ::WinIfExists;
25454
34584
  friend class ::WinImportHandler;
25455
34585
  friend class ::WinMacros;
25456
 
  friend class ::CMatchSyntax;
25457
 
  friend class ::ExtGnu;
 
34586
  friend class ::WinAsm;
 
34587
  friend class ::WinDeclSpecs;
 
34588
  friend class ::WinMemberExplSpec;
 
34589
  friend class ::WinTypeKeywords;
 
34590
  friend class ::WinFriend;
25458
34591
  friend class ::ExtAC;
25459
34592
  friend class ::ExtACBuilderCoupling;
25460
34593
  friend class ::ExtACSyntaxCoupling;
25461
34594
  friend class ::ExtACTree;
25462
34595
  friend class ::ExtACKeywords;
25463
 
  friend class ::WinAsm;
25464
 
  friend class ::WinDeclSpecs;
25465
 
  friend class ::WinMemberExplSpec;
25466
 
  friend class ::WinTypeKeywords;
 
34596
  friend class ::ExtGnu;
25467
34597
  friend class ::PragmaOnceUnitState;
25468
34598
  friend class ::PragmaOnce;
25469
 
  friend class ::CCExprResolve;
25470
 
  friend class ::CExprResolve;
 
34599
  friend class ::CMatchSyntax;
25471
34600
 
25472
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34601
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25473
34602
 
25474
34603
  CTree *sons[4]; // star, static, quals, expr
25475
34604
  bool pos0;
25476
34605
 
25477
34606
public:
25478
34607
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
25479
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
34608
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
34609
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
25480
34610
  }
 
34611
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25481
34612
  static const char *NodeId ();
 
34613
  /** Get the name of the node. Can be compared with NodeId(). */
25482
34614
  const char *NodeName () const { return NodeId (); }
 
34615
  /** Get the number of sons. */
25483
34616
  int Sons () const { return CTree::Sons (sons, 4); }
 
34617
  /** Get the n-th son.
 
34618
   *  \param n The index of the son.
 
34619
   *  \return The n-th son or NULL. */
25484
34620
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25485
34621
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
25486
34622
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
25487
34623
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
25488
34624
  CTree *Expr () const { return sons[3]; }
 
34625
  /** Replace a son.
 
34626
   *  \param old_son The son to replace.
 
34627
   *  \param new_son The new son. */
25489
34628
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25490
34629
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25491
34630
  }
25492
34631
};
25493
34632
 
25494
34633
 
25495
 
#line 25496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34634
#line 34635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25496
34635
} // closed Puma
 
34636
class CCExprResolve;
 
34637
class CExprResolve;
25497
34638
class WinIfExists;
25498
34639
class WinImportHandler;
25499
34640
class WinMacros;
25500
 
class CMatchSyntax;
25501
 
class ExtGnu;
 
34641
class WinAsm;
 
34642
class WinDeclSpecs;
 
34643
class WinMemberExplSpec;
 
34644
class WinTypeKeywords;
 
34645
class WinFriend;
25502
34646
class ExtAC;
25503
34647
class ExtACBuilderCoupling;
25504
34648
class ExtACSyntaxCoupling;
25505
34649
class ExtACTree;
25506
34650
class ExtACKeywords;
25507
 
class WinAsm;
25508
 
class WinDeclSpecs;
25509
 
class WinMemberExplSpec;
25510
 
class WinTypeKeywords;
 
34651
class ExtGnu;
25511
34652
class PragmaOnceUnitState;
25512
34653
class PragmaOnce;
25513
 
class CCExprResolve;
25514
 
class CExprResolve;
 
34654
class CMatchSyntax;
25515
34655
namespace Puma {
25516
34656
 
25517
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34657
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25518
34658
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
25519
 
#line 25520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34659
#line 34660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34660
  friend class ::CCExprResolve;
 
34661
  friend class ::CExprResolve;
25520
34662
  friend class ::WinIfExists;
25521
34663
  friend class ::WinImportHandler;
25522
34664
  friend class ::WinMacros;
25523
 
  friend class ::CMatchSyntax;
25524
 
  friend class ::ExtGnu;
 
34665
  friend class ::WinAsm;
 
34666
  friend class ::WinDeclSpecs;
 
34667
  friend class ::WinMemberExplSpec;
 
34668
  friend class ::WinTypeKeywords;
 
34669
  friend class ::WinFriend;
25525
34670
  friend class ::ExtAC;
25526
34671
  friend class ::ExtACBuilderCoupling;
25527
34672
  friend class ::ExtACSyntaxCoupling;
25528
34673
  friend class ::ExtACTree;
25529
34674
  friend class ::ExtACKeywords;
25530
 
  friend class ::WinAsm;
25531
 
  friend class ::WinDeclSpecs;
25532
 
  friend class ::WinMemberExplSpec;
25533
 
  friend class ::WinTypeKeywords;
 
34675
  friend class ::ExtGnu;
25534
34676
  friend class ::PragmaOnceUnitState;
25535
34677
  friend class ::PragmaOnce;
25536
 
  friend class ::CCExprResolve;
25537
 
  friend class ::CExprResolve;
 
34678
  friend class ::CMatchSyntax;
25538
34679
 
25539
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34680
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25540
34681
 
25541
34682
  CTree *sons[4]; // declarator, open, delim, close
25542
34683
 
25543
34684
public:
25544
34685
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
25545
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
34686
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
34687
    AddSon (sons[2], ad); AddSon (sons[3], c); 
25546
34688
  }
 
34689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25547
34690
  static const char *NodeId ();
 
34691
  /** Get the name of the node. Can be compared with NodeId(). */
25548
34692
  const char *NodeName () const { return NodeId (); }
 
34693
  /** Get the number of sons. */
25549
34694
  int Sons () const { return 4; }
 
34695
  /** Get the n-th son.
 
34696
   *  \param n The index of the son.
 
34697
   *  \return The n-th son or NULL. */
25550
34698
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25551
34699
  CTree *Declarator () const { return sons[0]; }
25552
34700
  CT_ArrayDelimiter *Delimiter () const 
25553
34701
   { return (CT_ArrayDelimiter*)sons[2]; }
 
34702
  /** Replace a son.
 
34703
   *  \param old_son The son to replace.
 
34704
   *  \param new_son The new son. */
25554
34705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25555
34706
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25556
34707
  }
25560
34711
};
25561
34712
 
25562
34713
 
25563
 
#line 25564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34714
#line 34715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25564
34715
} // closed Puma
 
34716
class CCExprResolve;
 
34717
class CExprResolve;
25565
34718
class WinIfExists;
25566
34719
class WinImportHandler;
25567
34720
class WinMacros;
25568
 
class CMatchSyntax;
25569
 
class ExtGnu;
 
34721
class WinAsm;
 
34722
class WinDeclSpecs;
 
34723
class WinMemberExplSpec;
 
34724
class WinTypeKeywords;
 
34725
class WinFriend;
25570
34726
class ExtAC;
25571
34727
class ExtACBuilderCoupling;
25572
34728
class ExtACSyntaxCoupling;
25573
34729
class ExtACTree;
25574
34730
class ExtACKeywords;
25575
 
class WinAsm;
25576
 
class WinDeclSpecs;
25577
 
class WinMemberExplSpec;
25578
 
class WinTypeKeywords;
 
34731
class ExtGnu;
25579
34732
class PragmaOnceUnitState;
25580
34733
class PragmaOnce;
25581
 
class CCExprResolve;
25582
 
class CExprResolve;
 
34734
class CMatchSyntax;
25583
34735
namespace Puma {
25584
34736
 
25585
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34737
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25586
34738
class CT_FctDeclarator : public CT_Declarator {
25587
 
#line 25588 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34739
#line 34740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34740
  friend class ::CCExprResolve;
 
34741
  friend class ::CExprResolve;
25588
34742
  friend class ::WinIfExists;
25589
34743
  friend class ::WinImportHandler;
25590
34744
  friend class ::WinMacros;
25591
 
  friend class ::CMatchSyntax;
25592
 
  friend class ::ExtGnu;
 
34745
  friend class ::WinAsm;
 
34746
  friend class ::WinDeclSpecs;
 
34747
  friend class ::WinMemberExplSpec;
 
34748
  friend class ::WinTypeKeywords;
 
34749
  friend class ::WinFriend;
25593
34750
  friend class ::ExtAC;
25594
34751
  friend class ::ExtACBuilderCoupling;
25595
34752
  friend class ::ExtACSyntaxCoupling;
25596
34753
  friend class ::ExtACTree;
25597
34754
  friend class ::ExtACKeywords;
25598
 
  friend class ::WinAsm;
25599
 
  friend class ::WinDeclSpecs;
25600
 
  friend class ::WinMemberExplSpec;
25601
 
  friend class ::WinTypeKeywords;
 
34755
  friend class ::ExtGnu;
25602
34756
  friend class ::PragmaOnceUnitState;
25603
34757
  friend class ::PragmaOnce;
25604
 
  friend class ::CCExprResolve;
25605
 
  friend class ::CExprResolve;
 
34758
  friend class ::CMatchSyntax;
25606
34759
 
25607
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34760
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25608
34761
 
25609
34762
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
25610
34763
 
25611
34764
public:
25612
34765
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
25613
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
34766
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
34767
    AddSon (sons[2], cv); AddSon (sons[3], es); 
25614
34768
  }
 
34769
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25615
34770
  static const char *NodeId ();
 
34771
  /** Get the name of the node. Can be compared with NodeId(). */
25616
34772
  const char *NodeName () const { return NodeId (); }
 
34773
  /** Get the number of sons. */
25617
34774
  int Sons () const { return CTree::Sons (sons, 4); }
 
34775
  /** Get the n-th son.
 
34776
   *  \param n The index of the son.
 
34777
   *  \return The n-th son or NULL. */
25618
34778
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
25619
34779
  CTree *Declarator () const { return sons[0]; }
25620
34780
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
25621
34781
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
25622
34782
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
34783
  /** Replace a son.
 
34784
   *  \param old_son The son to replace.
 
34785
   *  \param new_son The new son. */
25623
34786
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25624
34787
    CTree::ReplaceSon (sons, 4, old_son, new_son);
25625
34788
  }
25626
34789
};
25627
34790
 
25628
34791
 
25629
 
#line 25630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34792
#line 34793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25630
34793
} // closed Puma
 
34794
class CCExprResolve;
 
34795
class CExprResolve;
25631
34796
class WinIfExists;
25632
34797
class WinImportHandler;
25633
34798
class WinMacros;
25634
 
class CMatchSyntax;
25635
 
class ExtGnu;
 
34799
class WinAsm;
 
34800
class WinDeclSpecs;
 
34801
class WinMemberExplSpec;
 
34802
class WinTypeKeywords;
 
34803
class WinFriend;
25636
34804
class ExtAC;
25637
34805
class ExtACBuilderCoupling;
25638
34806
class ExtACSyntaxCoupling;
25639
34807
class ExtACTree;
25640
34808
class ExtACKeywords;
25641
 
class WinAsm;
25642
 
class WinDeclSpecs;
25643
 
class WinMemberExplSpec;
25644
 
class WinTypeKeywords;
 
34809
class ExtGnu;
25645
34810
class PragmaOnceUnitState;
25646
34811
class PragmaOnce;
25647
 
class CCExprResolve;
25648
 
class CExprResolve;
 
34812
class CMatchSyntax;
25649
34813
namespace Puma {
25650
34814
 
25651
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34815
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25652
34816
class CT_RefDeclarator : public CT_Declarator {
25653
 
#line 25654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34817
#line 34818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34818
  friend class ::CCExprResolve;
 
34819
  friend class ::CExprResolve;
25654
34820
  friend class ::WinIfExists;
25655
34821
  friend class ::WinImportHandler;
25656
34822
  friend class ::WinMacros;
25657
 
  friend class ::CMatchSyntax;
25658
 
  friend class ::ExtGnu;
 
34823
  friend class ::WinAsm;
 
34824
  friend class ::WinDeclSpecs;
 
34825
  friend class ::WinMemberExplSpec;
 
34826
  friend class ::WinTypeKeywords;
 
34827
  friend class ::WinFriend;
25659
34828
  friend class ::ExtAC;
25660
34829
  friend class ::ExtACBuilderCoupling;
25661
34830
  friend class ::ExtACSyntaxCoupling;
25662
34831
  friend class ::ExtACTree;
25663
34832
  friend class ::ExtACKeywords;
25664
 
  friend class ::WinAsm;
25665
 
  friend class ::WinDeclSpecs;
25666
 
  friend class ::WinMemberExplSpec;
25667
 
  friend class ::WinTypeKeywords;
 
34833
  friend class ::ExtGnu;
25668
34834
  friend class ::PragmaOnceUnitState;
25669
34835
  friend class ::PragmaOnce;
25670
 
  friend class ::CCExprResolve;
25671
 
  friend class ::CExprResolve;
 
34836
  friend class ::CMatchSyntax;
25672
34837
 
25673
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34838
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25674
34839
 
25675
34840
  CTree *sons[2]; // ref, declarator
25676
34841
 
25677
34842
public:
25678
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
34843
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
34844
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25679
34845
  static const char *NodeId ();
 
34846
  /** Get the name of the node. Can be compared with NodeId(). */
25680
34847
  const char *NodeName () const { return NodeId (); }
 
34848
  /** Get the number of sons. */
25681
34849
  int Sons () const { return 2; }
 
34850
  /** Get the n-th son.
 
34851
   *  \param n The index of the son.
 
34852
   *  \return The n-th son or NULL. */
25682
34853
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25683
34854
  CTree *Declarator () const { return sons[1]; }
 
34855
  /** Replace a son.
 
34856
   *  \param old_son The son to replace.
 
34857
   *  \param new_son The new son. */
25684
34858
  void ReplaceSon (CTree *old_son, CTree *new_son) {
25685
34859
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25686
34860
  }
25687
34861
};
25688
34862
 
25689
34863
 
25690
 
#line 25691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34864
#line 34865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25691
34865
} // closed Puma
 
34866
class CCExprResolve;
 
34867
class CExprResolve;
25692
34868
class WinIfExists;
25693
34869
class WinImportHandler;
25694
34870
class WinMacros;
25695
 
class CMatchSyntax;
25696
 
class ExtGnu;
 
34871
class WinAsm;
 
34872
class WinDeclSpecs;
 
34873
class WinMemberExplSpec;
 
34874
class WinTypeKeywords;
 
34875
class WinFriend;
25697
34876
class ExtAC;
25698
34877
class ExtACBuilderCoupling;
25699
34878
class ExtACSyntaxCoupling;
25700
34879
class ExtACTree;
25701
34880
class ExtACKeywords;
25702
 
class WinAsm;
25703
 
class WinDeclSpecs;
25704
 
class WinMemberExplSpec;
25705
 
class WinTypeKeywords;
 
34881
class ExtGnu;
25706
34882
class PragmaOnceUnitState;
25707
34883
class PragmaOnce;
25708
 
class CCExprResolve;
25709
 
class CExprResolve;
 
34884
class CMatchSyntax;
25710
34885
namespace Puma {
25711
34886
 
25712
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34887
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25713
34888
class CT_PtrDeclarator : public CT_Declarator {
25714
 
#line 25715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34889
#line 34890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34890
  friend class ::CCExprResolve;
 
34891
  friend class ::CExprResolve;
25715
34892
  friend class ::WinIfExists;
25716
34893
  friend class ::WinImportHandler;
25717
34894
  friend class ::WinMacros;
25718
 
  friend class ::CMatchSyntax;
25719
 
  friend class ::ExtGnu;
 
34895
  friend class ::WinAsm;
 
34896
  friend class ::WinDeclSpecs;
 
34897
  friend class ::WinMemberExplSpec;
 
34898
  friend class ::WinTypeKeywords;
 
34899
  friend class ::WinFriend;
25720
34900
  friend class ::ExtAC;
25721
34901
  friend class ::ExtACBuilderCoupling;
25722
34902
  friend class ::ExtACSyntaxCoupling;
25723
34903
  friend class ::ExtACTree;
25724
34904
  friend class ::ExtACKeywords;
25725
 
  friend class ::WinAsm;
25726
 
  friend class ::WinDeclSpecs;
25727
 
  friend class ::WinMemberExplSpec;
25728
 
  friend class ::WinTypeKeywords;
 
34905
  friend class ::ExtGnu;
25729
34906
  friend class ::PragmaOnceUnitState;
25730
34907
  friend class ::PragmaOnce;
25731
 
  friend class ::CCExprResolve;
25732
 
  friend class ::CExprResolve;
 
34908
  friend class ::CMatchSyntax;
25733
34909
 
25734
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34910
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25735
34911
 
25736
34912
  CTree *sons[3]; // ptr, cv_quals, declarator
25737
34913
 
25738
34914
public:
25739
34915
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
25740
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
34916
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
25741
34917
  }
 
34918
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25742
34919
  static const char *NodeId ();
 
34920
  /** Get the name of the node. Can be compared with NodeId(). */
25743
34921
  const char *NodeName () const { return NodeId (); }
 
34922
  /** Get the number of sons. */
25744
34923
  int Sons () const { return CTree::Sons (sons, 3); }
 
34924
  /** Get the n-th son.
 
34925
   *  \param n The index of the son.
 
34926
   *  \return The n-th son or NULL. */
25745
34927
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25746
34928
  CTree *Declarator () const { return sons[2]; }
25747
34929
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
34930
  /** Replace a son.
 
34931
   *  \param old_son The son to replace.
 
34932
   *  \param new_son The new son. */
25748
34933
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25749
34934
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25750
34935
  }
25751
34936
};
25752
34937
 
25753
34938
 
25754
 
#line 25755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34939
#line 34940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25755
34940
} // closed Puma
 
34941
class CCExprResolve;
 
34942
class CExprResolve;
25756
34943
class WinIfExists;
25757
34944
class WinImportHandler;
25758
34945
class WinMacros;
25759
 
class CMatchSyntax;
25760
 
class ExtGnu;
 
34946
class WinAsm;
 
34947
class WinDeclSpecs;
 
34948
class WinMemberExplSpec;
 
34949
class WinTypeKeywords;
 
34950
class WinFriend;
25761
34951
class ExtAC;
25762
34952
class ExtACBuilderCoupling;
25763
34953
class ExtACSyntaxCoupling;
25764
34954
class ExtACTree;
25765
34955
class ExtACKeywords;
25766
 
class WinAsm;
25767
 
class WinDeclSpecs;
25768
 
class WinMemberExplSpec;
25769
 
class WinTypeKeywords;
 
34956
class ExtGnu;
25770
34957
class PragmaOnceUnitState;
25771
34958
class PragmaOnce;
25772
 
class CCExprResolve;
25773
 
class CExprResolve;
 
34959
class CMatchSyntax;
25774
34960
namespace Puma {
25775
34961
 
25776
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34962
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25777
34963
class CT_MembPtrDeclarator : public CT_Declarator {
25778
 
#line 25779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
34964
#line 34965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
34965
  friend class ::CCExprResolve;
 
34966
  friend class ::CExprResolve;
25779
34967
  friend class ::WinIfExists;
25780
34968
  friend class ::WinImportHandler;
25781
34969
  friend class ::WinMacros;
25782
 
  friend class ::CMatchSyntax;
25783
 
  friend class ::ExtGnu;
 
34970
  friend class ::WinAsm;
 
34971
  friend class ::WinDeclSpecs;
 
34972
  friend class ::WinMemberExplSpec;
 
34973
  friend class ::WinTypeKeywords;
 
34974
  friend class ::WinFriend;
25784
34975
  friend class ::ExtAC;
25785
34976
  friend class ::ExtACBuilderCoupling;
25786
34977
  friend class ::ExtACSyntaxCoupling;
25787
34978
  friend class ::ExtACTree;
25788
34979
  friend class ::ExtACKeywords;
25789
 
  friend class ::WinAsm;
25790
 
  friend class ::WinDeclSpecs;
25791
 
  friend class ::WinMemberExplSpec;
25792
 
  friend class ::WinTypeKeywords;
 
34980
  friend class ::ExtGnu;
25793
34981
  friend class ::PragmaOnceUnitState;
25794
34982
  friend class ::PragmaOnce;
25795
 
  friend class ::CCExprResolve;
25796
 
  friend class ::CExprResolve;
 
34983
  friend class ::CMatchSyntax;
25797
34984
 
25798
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34985
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25799
34986
 
25800
34987
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
25801
34988
 
25802
34989
public:
25803
34990
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
25804
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
34991
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
34992
    AddSon (sons[3], q); AddSon (sons[4], d); 
25805
34993
  }
 
34994
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25806
34995
  static const char *NodeId ();
 
34996
  /** Get the name of the node. Can be compared with NodeId(). */
25807
34997
  const char *NodeName () const { return NodeId (); }
 
34998
  /** Get the number of sons. */
25808
34999
  int Sons () const { return CTree::Sons (sons, 5); }
 
35000
  /** Get the n-th son.
 
35001
   *  \param n The index of the son.
 
35002
   *  \return The n-th son or NULL. */
25809
35003
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
25810
35004
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
25811
35005
  CTree *Declarator () const { return sons[4]; }
25812
35006
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
35007
  /** Replace a son.
 
35008
   *  \param old_son The son to replace.
 
35009
   *  \param new_son The new son. */
25813
35010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25814
35011
    CTree::ReplaceSon (sons, 5, old_son, new_son);
25815
35012
  }
25816
35013
};
25817
35014
 
25818
35015
 
25819
 
#line 25820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35016
#line 35017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25820
35017
} // closed Puma
 
35018
class CCExprResolve;
 
35019
class CExprResolve;
25821
35020
class WinIfExists;
25822
35021
class WinImportHandler;
25823
35022
class WinMacros;
25824
 
class CMatchSyntax;
25825
 
class ExtGnu;
 
35023
class WinAsm;
 
35024
class WinDeclSpecs;
 
35025
class WinMemberExplSpec;
 
35026
class WinTypeKeywords;
 
35027
class WinFriend;
25826
35028
class ExtAC;
25827
35029
class ExtACBuilderCoupling;
25828
35030
class ExtACSyntaxCoupling;
25829
35031
class ExtACTree;
25830
35032
class ExtACKeywords;
25831
 
class WinAsm;
25832
 
class WinDeclSpecs;
25833
 
class WinMemberExplSpec;
25834
 
class WinTypeKeywords;
 
35033
class ExtGnu;
25835
35034
class PragmaOnceUnitState;
25836
35035
class PragmaOnce;
25837
 
class CCExprResolve;
25838
 
class CExprResolve;
 
35036
class CMatchSyntax;
25839
35037
namespace Puma {
25840
35038
 
25841
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35039
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25842
35040
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
25843
 
#line 25844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35041
#line 35042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35042
  friend class ::CCExprResolve;
 
35043
  friend class ::CExprResolve;
25844
35044
  friend class ::WinIfExists;
25845
35045
  friend class ::WinImportHandler;
25846
35046
  friend class ::WinMacros;
25847
 
  friend class ::CMatchSyntax;
25848
 
  friend class ::ExtGnu;
 
35047
  friend class ::WinAsm;
 
35048
  friend class ::WinDeclSpecs;
 
35049
  friend class ::WinMemberExplSpec;
 
35050
  friend class ::WinTypeKeywords;
 
35051
  friend class ::WinFriend;
25849
35052
  friend class ::ExtAC;
25850
35053
  friend class ::ExtACBuilderCoupling;
25851
35054
  friend class ::ExtACSyntaxCoupling;
25852
35055
  friend class ::ExtACTree;
25853
35056
  friend class ::ExtACKeywords;
25854
 
  friend class ::WinAsm;
25855
 
  friend class ::WinDeclSpecs;
25856
 
  friend class ::WinMemberExplSpec;
25857
 
  friend class ::WinTypeKeywords;
 
35057
  friend class ::ExtGnu;
25858
35058
  friend class ::PragmaOnceUnitState;
25859
35059
  friend class ::PragmaOnce;
25860
 
  friend class ::CCExprResolve;
25861
 
  friend class ::CExprResolve;
 
35060
  friend class ::CMatchSyntax;
25862
35061
 
25863
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35062
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25864
35063
 
25865
35064
  CTree *sons[3]; // declarator, colon, expr
25866
35065
 
25867
35066
public:
25868
35067
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
25869
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
35068
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
25870
35069
  }
 
35070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25871
35071
  static const char *NodeId ();
 
35072
  /** Get the name of the node. Can be compared with NodeId(). */
25872
35073
  const char *NodeName () const { return NodeId (); }
 
35074
  /** Get the number of sons. */
25873
35075
  int Sons () const { return CTree::Sons (sons, 3); }
 
35076
  /** Get the n-th son.
 
35077
   *  \param n The index of the son.
 
35078
   *  \return The n-th son or NULL. */
25874
35079
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25875
35080
  CTree *Declarator () const { return sons[0]; }
25876
35081
  CTree *Expr () const { return sons[2]; }
25877
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
35082
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
25878
35083
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
35084
  /** Replace a son.
 
35085
   *  \param old_son The son to replace.
 
35086
   *  \param new_son The new son. */
25879
35087
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25880
35088
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25881
35089
  }
25888
35096
/*****************************************************************************/
25889
35097
 
25890
35098
 
25891
 
#line 25892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35099
#line 35100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25892
35100
} // closed Puma
 
35101
class CCExprResolve;
 
35102
class CExprResolve;
25893
35103
class WinIfExists;
25894
35104
class WinImportHandler;
25895
35105
class WinMacros;
25896
 
class CMatchSyntax;
25897
 
class ExtGnu;
 
35106
class WinAsm;
 
35107
class WinDeclSpecs;
 
35108
class WinMemberExplSpec;
 
35109
class WinTypeKeywords;
 
35110
class WinFriend;
25898
35111
class ExtAC;
25899
35112
class ExtACBuilderCoupling;
25900
35113
class ExtACSyntaxCoupling;
25901
35114
class ExtACTree;
25902
35115
class ExtACKeywords;
25903
 
class WinAsm;
25904
 
class WinDeclSpecs;
25905
 
class WinMemberExplSpec;
25906
 
class WinTypeKeywords;
 
35116
class ExtGnu;
25907
35117
class PragmaOnceUnitState;
25908
35118
class PragmaOnce;
25909
 
class CCExprResolve;
25910
 
class CExprResolve;
 
35119
class CMatchSyntax;
25911
35120
namespace Puma {
25912
35121
 
25913
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35122
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25914
35123
class CT_Statement : public CTree {
25915
 
#line 25916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35124
#line 35125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35125
  friend class ::CCExprResolve;
 
35126
  friend class ::CExprResolve;
25916
35127
  friend class ::WinIfExists;
25917
35128
  friend class ::WinImportHandler;
25918
35129
  friend class ::WinMacros;
25919
 
  friend class ::CMatchSyntax;
25920
 
  friend class ::ExtGnu;
 
35130
  friend class ::WinAsm;
 
35131
  friend class ::WinDeclSpecs;
 
35132
  friend class ::WinMemberExplSpec;
 
35133
  friend class ::WinTypeKeywords;
 
35134
  friend class ::WinFriend;
25921
35135
  friend class ::ExtAC;
25922
35136
  friend class ::ExtACBuilderCoupling;
25923
35137
  friend class ::ExtACSyntaxCoupling;
25924
35138
  friend class ::ExtACTree;
25925
35139
  friend class ::ExtACKeywords;
25926
 
  friend class ::WinAsm;
25927
 
  friend class ::WinDeclSpecs;
25928
 
  friend class ::WinMemberExplSpec;
25929
 
  friend class ::WinTypeKeywords;
 
35140
  friend class ::ExtGnu;
25930
35141
  friend class ::PragmaOnceUnitState;
25931
35142
  friend class ::PragmaOnce;
25932
 
  friend class ::CCExprResolve;
25933
 
  friend class ::CExprResolve;
 
35143
  friend class ::CMatchSyntax;
25934
35144
 
25935
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35145
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25936
35146
 
25937
35147
protected:
25938
35148
  CT_Statement () {}
 
35149
  virtual CT_Statement *IsStatement () { return this; }
25939
35150
};
25940
35151
 
25941
35152
 
25942
 
#line 25943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35153
#line 35154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
25943
35154
} // closed Puma
 
35155
class CCExprResolve;
 
35156
class CExprResolve;
25944
35157
class WinIfExists;
25945
35158
class WinImportHandler;
25946
35159
class WinMacros;
25947
 
class CMatchSyntax;
25948
 
class ExtGnu;
 
35160
class WinAsm;
 
35161
class WinDeclSpecs;
 
35162
class WinMemberExplSpec;
 
35163
class WinTypeKeywords;
 
35164
class WinFriend;
25949
35165
class ExtAC;
25950
35166
class ExtACBuilderCoupling;
25951
35167
class ExtACSyntaxCoupling;
25952
35168
class ExtACTree;
25953
35169
class ExtACKeywords;
25954
 
class WinAsm;
25955
 
class WinDeclSpecs;
25956
 
class WinMemberExplSpec;
25957
 
class WinTypeKeywords;
 
35170
class ExtGnu;
25958
35171
class PragmaOnceUnitState;
25959
35172
class PragmaOnce;
25960
 
class CCExprResolve;
25961
 
class CExprResolve;
 
35173
class CMatchSyntax;
25962
35174
namespace Puma {
25963
35175
 
25964
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35176
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25965
35177
class CT_LabelStmt : public CT_Statement {
25966
 
#line 25967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35178
#line 35179 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35179
  friend class ::CCExprResolve;
 
35180
  friend class ::CExprResolve;
25967
35181
  friend class ::WinIfExists;
25968
35182
  friend class ::WinImportHandler;
25969
35183
  friend class ::WinMacros;
25970
 
  friend class ::CMatchSyntax;
25971
 
  friend class ::ExtGnu;
 
35184
  friend class ::WinAsm;
 
35185
  friend class ::WinDeclSpecs;
 
35186
  friend class ::WinMemberExplSpec;
 
35187
  friend class ::WinTypeKeywords;
 
35188
  friend class ::WinFriend;
25972
35189
  friend class ::ExtAC;
25973
35190
  friend class ::ExtACBuilderCoupling;
25974
35191
  friend class ::ExtACSyntaxCoupling;
25975
35192
  friend class ::ExtACTree;
25976
35193
  friend class ::ExtACKeywords;
25977
 
  friend class ::WinAsm;
25978
 
  friend class ::WinDeclSpecs;
25979
 
  friend class ::WinMemberExplSpec;
25980
 
  friend class ::WinTypeKeywords;
 
35194
  friend class ::ExtGnu;
25981
35195
  friend class ::PragmaOnceUnitState;
25982
35196
  friend class ::PragmaOnce;
25983
 
  friend class ::CCExprResolve;
25984
 
  friend class ::CExprResolve;
 
35197
  friend class ::CMatchSyntax;
25985
35198
 
25986
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35199
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
25987
35200
 
25988
35201
  CTree *sons[3]; // id, colon, stmt
25989
35202
 
25990
35203
public:
25991
35204
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
25992
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
35205
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
25993
35206
  }
 
35207
  /** Get the identifier for this node type. Can be compared with NodeName(). */
25994
35208
  static const char *NodeId ();
 
35209
  /** Get the name of the node. Can be compared with NodeId(). */
25995
35210
  const char *NodeName () const { return NodeId (); }
 
35211
  /** Get the number of sons. */
25996
35212
  int Sons () const { return 3; }
 
35213
  /** Get the n-th son.
 
35214
   *  \param n The index of the son.
 
35215
   *  \return The n-th son or NULL. */
25997
35216
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25998
35217
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
25999
35218
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
35219
  /** Replace a son.
 
35220
   *  \param old_son The son to replace.
 
35221
   *  \param new_son The new son. */
26000
35222
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26001
35223
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26002
35224
  }
26003
35225
};
26004
35226
 
26005
35227
 
26006
 
#line 26007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35228
#line 35229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26007
35229
} // closed Puma
 
35230
class CCExprResolve;
 
35231
class CExprResolve;
26008
35232
class WinIfExists;
26009
35233
class WinImportHandler;
26010
35234
class WinMacros;
26011
 
class CMatchSyntax;
26012
 
class ExtGnu;
 
35235
class WinAsm;
 
35236
class WinDeclSpecs;
 
35237
class WinMemberExplSpec;
 
35238
class WinTypeKeywords;
 
35239
class WinFriend;
26013
35240
class ExtAC;
26014
35241
class ExtACBuilderCoupling;
26015
35242
class ExtACSyntaxCoupling;
26016
35243
class ExtACTree;
26017
35244
class ExtACKeywords;
26018
 
class WinAsm;
26019
 
class WinDeclSpecs;
26020
 
class WinMemberExplSpec;
26021
 
class WinTypeKeywords;
 
35245
class ExtGnu;
26022
35246
class PragmaOnceUnitState;
26023
35247
class PragmaOnce;
26024
 
class CCExprResolve;
26025
 
class CExprResolve;
 
35248
class CMatchSyntax;
26026
35249
namespace Puma {
26027
35250
 
26028
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35251
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26029
35252
class CT_DefaultStmt : public CT_Statement {
26030
 
#line 26031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35253
#line 35254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35254
  friend class ::CCExprResolve;
 
35255
  friend class ::CExprResolve;
26031
35256
  friend class ::WinIfExists;
26032
35257
  friend class ::WinImportHandler;
26033
35258
  friend class ::WinMacros;
26034
 
  friend class ::CMatchSyntax;
26035
 
  friend class ::ExtGnu;
 
35259
  friend class ::WinAsm;
 
35260
  friend class ::WinDeclSpecs;
 
35261
  friend class ::WinMemberExplSpec;
 
35262
  friend class ::WinTypeKeywords;
 
35263
  friend class ::WinFriend;
26036
35264
  friend class ::ExtAC;
26037
35265
  friend class ::ExtACBuilderCoupling;
26038
35266
  friend class ::ExtACSyntaxCoupling;
26039
35267
  friend class ::ExtACTree;
26040
35268
  friend class ::ExtACKeywords;
26041
 
  friend class ::WinAsm;
26042
 
  friend class ::WinDeclSpecs;
26043
 
  friend class ::WinMemberExplSpec;
26044
 
  friend class ::WinTypeKeywords;
 
35269
  friend class ::ExtGnu;
26045
35270
  friend class ::PragmaOnceUnitState;
26046
35271
  friend class ::PragmaOnce;
26047
 
  friend class ::CCExprResolve;
26048
 
  friend class ::CExprResolve;
 
35272
  friend class ::CMatchSyntax;
26049
35273
 
26050
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35274
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26051
35275
 
26052
35276
  CTree *sons[3]; // keyword, colon, stmt
26053
35277
 
26054
35278
public:
26055
35279
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
26056
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
35280
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
26057
35281
  }
 
35282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26058
35283
  static const char *NodeId ();
 
35284
  /** Get the name of the node. Can be compared with NodeId(). */
26059
35285
  const char *NodeName () const { return NodeId (); }
 
35286
  /** Get the number of sons. */
26060
35287
  int Sons () const { return 3; }
 
35288
  /** Get the n-th son.
 
35289
   *  \param n The index of the son.
 
35290
   *  \return The n-th son or NULL. */
26061
35291
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26062
35292
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
35293
  /** Replace a son.
 
35294
   *  \param old_son The son to replace.
 
35295
   *  \param new_son The new son. */
26063
35296
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26064
35297
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26065
35298
  }
26066
35299
};
26067
35300
 
26068
35301
 
26069
 
#line 26070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35302
#line 35303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26070
35303
} // closed Puma
 
35304
class CCExprResolve;
 
35305
class CExprResolve;
26071
35306
class WinIfExists;
26072
35307
class WinImportHandler;
26073
35308
class WinMacros;
26074
 
class CMatchSyntax;
26075
 
class ExtGnu;
 
35309
class WinAsm;
 
35310
class WinDeclSpecs;
 
35311
class WinMemberExplSpec;
 
35312
class WinTypeKeywords;
 
35313
class WinFriend;
26076
35314
class ExtAC;
26077
35315
class ExtACBuilderCoupling;
26078
35316
class ExtACSyntaxCoupling;
26079
35317
class ExtACTree;
26080
35318
class ExtACKeywords;
26081
 
class WinAsm;
26082
 
class WinDeclSpecs;
26083
 
class WinMemberExplSpec;
26084
 
class WinTypeKeywords;
 
35319
class ExtGnu;
26085
35320
class PragmaOnceUnitState;
26086
35321
class PragmaOnce;
26087
 
class CCExprResolve;
26088
 
class CExprResolve;
 
35322
class CMatchSyntax;
26089
35323
namespace Puma {
26090
35324
 
26091
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35325
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26092
35326
class CT_TryStmt : public CT_Statement {
26093
 
#line 26094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35327
#line 35328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35328
  friend class ::CCExprResolve;
 
35329
  friend class ::CExprResolve;
26094
35330
  friend class ::WinIfExists;
26095
35331
  friend class ::WinImportHandler;
26096
35332
  friend class ::WinMacros;
26097
 
  friend class ::CMatchSyntax;
26098
 
  friend class ::ExtGnu;
 
35333
  friend class ::WinAsm;
 
35334
  friend class ::WinDeclSpecs;
 
35335
  friend class ::WinMemberExplSpec;
 
35336
  friend class ::WinTypeKeywords;
 
35337
  friend class ::WinFriend;
26099
35338
  friend class ::ExtAC;
26100
35339
  friend class ::ExtACBuilderCoupling;
26101
35340
  friend class ::ExtACSyntaxCoupling;
26102
35341
  friend class ::ExtACTree;
26103
35342
  friend class ::ExtACKeywords;
26104
 
  friend class ::WinAsm;
26105
 
  friend class ::WinDeclSpecs;
26106
 
  friend class ::WinMemberExplSpec;
26107
 
  friend class ::WinTypeKeywords;
 
35343
  friend class ::ExtGnu;
26108
35344
  friend class ::PragmaOnceUnitState;
26109
35345
  friend class ::PragmaOnce;
26110
 
  friend class ::CCExprResolve;
26111
 
  friend class ::CExprResolve;
 
35346
  friend class ::CMatchSyntax;
26112
35347
 
26113
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35348
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26114
35349
 
26115
35350
  CTree *sons[3]; // try, stmt, handlers
26116
35351
 
26117
35352
public:
26118
35353
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
26119
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
35354
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
26120
35355
  }
 
35356
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26121
35357
  static const char *NodeId ();
 
35358
  /** Get the name of the node. Can be compared with NodeId(). */
26122
35359
  const char *NodeName () const { return NodeId (); }
 
35360
  /** Get the number of sons. */
26123
35361
  int Sons () const { return 3; }
 
35362
  /** Get the n-th son.
 
35363
   *  \param n The index of the son.
 
35364
   *  \return The n-th son or NULL. */
26124
35365
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26125
35366
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
26126
35367
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
35368
  /** Replace a son.
 
35369
   *  \param old_son The son to replace.
 
35370
   *  \param new_son The new son. */
26127
35371
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26128
35372
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26129
35373
  }
26130
35374
};
26131
35375
 
26132
35376
 
26133
 
#line 26134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35377
#line 35378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26134
35378
} // closed Puma
 
35379
class CCExprResolve;
 
35380
class CExprResolve;
26135
35381
class WinIfExists;
26136
35382
class WinImportHandler;
26137
35383
class WinMacros;
26138
 
class CMatchSyntax;
26139
 
class ExtGnu;
 
35384
class WinAsm;
 
35385
class WinDeclSpecs;
 
35386
class WinMemberExplSpec;
 
35387
class WinTypeKeywords;
 
35388
class WinFriend;
26140
35389
class ExtAC;
26141
35390
class ExtACBuilderCoupling;
26142
35391
class ExtACSyntaxCoupling;
26143
35392
class ExtACTree;
26144
35393
class ExtACKeywords;
26145
 
class WinAsm;
26146
 
class WinDeclSpecs;
26147
 
class WinMemberExplSpec;
26148
 
class WinTypeKeywords;
 
35394
class ExtGnu;
26149
35395
class PragmaOnceUnitState;
26150
35396
class PragmaOnce;
26151
 
class CCExprResolve;
26152
 
class CExprResolve;
 
35397
class CMatchSyntax;
26153
35398
namespace Puma {
26154
35399
 
26155
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35400
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26156
35401
class CT_CaseStmt : public CT_Statement {
26157
 
#line 26158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35402
#line 35403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35403
  friend class ::CCExprResolve;
 
35404
  friend class ::CExprResolve;
26158
35405
  friend class ::WinIfExists;
26159
35406
  friend class ::WinImportHandler;
26160
35407
  friend class ::WinMacros;
26161
 
  friend class ::CMatchSyntax;
26162
 
  friend class ::ExtGnu;
 
35408
  friend class ::WinAsm;
 
35409
  friend class ::WinDeclSpecs;
 
35410
  friend class ::WinMemberExplSpec;
 
35411
  friend class ::WinTypeKeywords;
 
35412
  friend class ::WinFriend;
26163
35413
  friend class ::ExtAC;
26164
35414
  friend class ::ExtACBuilderCoupling;
26165
35415
  friend class ::ExtACSyntaxCoupling;
26166
35416
  friend class ::ExtACTree;
26167
35417
  friend class ::ExtACKeywords;
26168
 
  friend class ::WinAsm;
26169
 
  friend class ::WinDeclSpecs;
26170
 
  friend class ::WinMemberExplSpec;
26171
 
  friend class ::WinTypeKeywords;
 
35418
  friend class ::ExtGnu;
26172
35419
  friend class ::PragmaOnceUnitState;
26173
35420
  friend class ::PragmaOnce;
26174
 
  friend class ::CCExprResolve;
26175
 
  friend class ::CExprResolve;
 
35421
  friend class ::CMatchSyntax;
26176
35422
 
26177
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35423
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26178
35424
 
26179
35425
  CTree *sons[4]; // keyword, expr, colon, stmt
26180
35426
 
26181
35427
public:
26182
35428
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
26183
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
35429
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
35430
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
26184
35431
  }
 
35432
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26185
35433
  static const char *NodeId ();
 
35434
  /** Get the name of the node. Can be compared with NodeId(). */
26186
35435
  const char *NodeName () const { return NodeId (); }
 
35436
  /** Get the number of sons. */
26187
35437
  int Sons () const { return 4; }
 
35438
  /** Get the n-th son.
 
35439
   *  \param n The index of the son.
 
35440
   *  \return The n-th son or NULL. */
26188
35441
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
26189
35442
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
26190
35443
  CTree *Expr () const { return sons[1]; }
 
35444
  /** Replace a son.
 
35445
   *  \param old_son The son to replace.
 
35446
   *  \param new_son The new son. */
26191
35447
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26192
35448
    CTree::ReplaceSon (sons, 4, old_son, new_son);
26193
35449
  }
26194
35450
};
26195
35451
 
26196
35452
 
26197
 
#line 26198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35453
#line 35454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26198
35454
} // closed Puma
 
35455
class CCExprResolve;
 
35456
class CExprResolve;
26199
35457
class WinIfExists;
26200
35458
class WinImportHandler;
26201
35459
class WinMacros;
26202
 
class CMatchSyntax;
26203
 
class ExtGnu;
 
35460
class WinAsm;
 
35461
class WinDeclSpecs;
 
35462
class WinMemberExplSpec;
 
35463
class WinTypeKeywords;
 
35464
class WinFriend;
26204
35465
class ExtAC;
26205
35466
class ExtACBuilderCoupling;
26206
35467
class ExtACSyntaxCoupling;
26207
35468
class ExtACTree;
26208
35469
class ExtACKeywords;
26209
 
class WinAsm;
26210
 
class WinDeclSpecs;
26211
 
class WinMemberExplSpec;
26212
 
class WinTypeKeywords;
 
35470
class ExtGnu;
26213
35471
class PragmaOnceUnitState;
26214
35472
class PragmaOnce;
26215
 
class CCExprResolve;
26216
 
class CExprResolve;
 
35473
class CMatchSyntax;
26217
35474
namespace Puma {
26218
35475
 
26219
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35476
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26220
35477
class CT_ExprStmt : public CT_Statement {
26221
 
#line 26222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35478
#line 35479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35479
  friend class ::CCExprResolve;
 
35480
  friend class ::CExprResolve;
26222
35481
  friend class ::WinIfExists;
26223
35482
  friend class ::WinImportHandler;
26224
35483
  friend class ::WinMacros;
26225
 
  friend class ::CMatchSyntax;
26226
 
  friend class ::ExtGnu;
 
35484
  friend class ::WinAsm;
 
35485
  friend class ::WinDeclSpecs;
 
35486
  friend class ::WinMemberExplSpec;
 
35487
  friend class ::WinTypeKeywords;
 
35488
  friend class ::WinFriend;
26227
35489
  friend class ::ExtAC;
26228
35490
  friend class ::ExtACBuilderCoupling;
26229
35491
  friend class ::ExtACSyntaxCoupling;
26230
35492
  friend class ::ExtACTree;
26231
35493
  friend class ::ExtACKeywords;
26232
 
  friend class ::WinAsm;
26233
 
  friend class ::WinDeclSpecs;
26234
 
  friend class ::WinMemberExplSpec;
26235
 
  friend class ::WinTypeKeywords;
 
35494
  friend class ::ExtGnu;
26236
35495
  friend class ::PragmaOnceUnitState;
26237
35496
  friend class ::PragmaOnce;
26238
 
  friend class ::CCExprResolve;
26239
 
  friend class ::CExprResolve;
 
35497
  friend class ::CMatchSyntax;
26240
35498
 
26241
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35499
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26242
35500
 
26243
35501
  CTree *sons[2]; // expr, semi_colon
26244
35502
 
26245
35503
public:
26246
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
35504
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
35505
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26247
35506
  static const char *NodeId ();
 
35507
  /** Get the name of the node. Can be compared with NodeId(). */
26248
35508
  const char *NodeName () const { return NodeId (); }
 
35509
  /** Get the number of sons. */
26249
35510
  int Sons () const { return CTree::Sons (sons, 2); }
 
35511
  /** Get the n-th son.
 
35512
   *  \param n The index of the son.
 
35513
   *  \return The n-th son or NULL. */
26250
35514
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
26251
35515
  CTree *Expr () const { return sons[0]; }
 
35516
  /** Replace a son.
 
35517
   *  \param old_son The son to replace.
 
35518
   *  \param new_son The new son. */
26252
35519
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26253
35520
    CTree::ReplaceSon (sons, 2, old_son, new_son);
26254
35521
  }
26255
35522
};
26256
35523
 
26257
35524
 
26258
 
#line 26259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35525
#line 35526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26259
35526
} // closed Puma
 
35527
class CCExprResolve;
 
35528
class CExprResolve;
26260
35529
class WinIfExists;
26261
35530
class WinImportHandler;
26262
35531
class WinMacros;
26263
 
class CMatchSyntax;
26264
 
class ExtGnu;
 
35532
class WinAsm;
 
35533
class WinDeclSpecs;
 
35534
class WinMemberExplSpec;
 
35535
class WinTypeKeywords;
 
35536
class WinFriend;
26265
35537
class ExtAC;
26266
35538
class ExtACBuilderCoupling;
26267
35539
class ExtACSyntaxCoupling;
26268
35540
class ExtACTree;
26269
35541
class ExtACKeywords;
26270
 
class WinAsm;
26271
 
class WinDeclSpecs;
26272
 
class WinMemberExplSpec;
26273
 
class WinTypeKeywords;
 
35542
class ExtGnu;
26274
35543
class PragmaOnceUnitState;
26275
35544
class PragmaOnce;
26276
 
class CCExprResolve;
26277
 
class CExprResolve;
 
35545
class CMatchSyntax;
26278
35546
namespace Puma {
26279
35547
 
26280
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35548
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26281
35549
class CT_DeclStmt : public CT_Statement {
26282
 
#line 26283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35550
#line 35551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35551
  friend class ::CCExprResolve;
 
35552
  friend class ::CExprResolve;
26283
35553
  friend class ::WinIfExists;
26284
35554
  friend class ::WinImportHandler;
26285
35555
  friend class ::WinMacros;
26286
 
  friend class ::CMatchSyntax;
26287
 
  friend class ::ExtGnu;
 
35556
  friend class ::WinAsm;
 
35557
  friend class ::WinDeclSpecs;
 
35558
  friend class ::WinMemberExplSpec;
 
35559
  friend class ::WinTypeKeywords;
 
35560
  friend class ::WinFriend;
26288
35561
  friend class ::ExtAC;
26289
35562
  friend class ::ExtACBuilderCoupling;
26290
35563
  friend class ::ExtACSyntaxCoupling;
26291
35564
  friend class ::ExtACTree;
26292
35565
  friend class ::ExtACKeywords;
26293
 
  friend class ::WinAsm;
26294
 
  friend class ::WinDeclSpecs;
26295
 
  friend class ::WinMemberExplSpec;
26296
 
  friend class ::WinTypeKeywords;
 
35566
  friend class ::ExtGnu;
26297
35567
  friend class ::PragmaOnceUnitState;
26298
35568
  friend class ::PragmaOnce;
26299
 
  friend class ::CCExprResolve;
26300
 
  friend class ::CExprResolve;
 
35569
  friend class ::CMatchSyntax;
26301
35570
 
26302
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35571
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26303
35572
 
26304
35573
  CTree *_decl;
26305
35574
 
26306
35575
public:
26307
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
35576
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
35577
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26308
35578
  static const char *NodeId ();
 
35579
  /** Get the name of the node. Can be compared with NodeId(). */
26309
35580
  const char *NodeName () const { return NodeId (); }
 
35581
  /** Get the number of sons. */
26310
35582
  int Sons () const { return 1; }
 
35583
  /** Get the n-th son.
 
35584
   *  \param n The index of the son.
 
35585
   *  \return The n-th son or NULL. */
26311
35586
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
35587
  /** Replace a son.
 
35588
   *  \param old_son The son to replace.
 
35589
   *  \param new_son The new son. */
26312
35590
  void ReplaceSon (CTree *old_son, CTree *new_son) 
26313
 
   { if (old_son == _decl) _decl = new_son; }
 
35591
   { CTree::ReplaceSon (_decl, old_son, new_son); }
26314
35592
};
26315
35593
 
26316
35594
 
26317
 
#line 26318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35595
#line 35596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26318
35596
} // closed Puma
 
35597
class CCExprResolve;
 
35598
class CExprResolve;
26319
35599
class WinIfExists;
26320
35600
class WinImportHandler;
26321
35601
class WinMacros;
26322
 
class CMatchSyntax;
26323
 
class ExtGnu;
 
35602
class WinAsm;
 
35603
class WinDeclSpecs;
 
35604
class WinMemberExplSpec;
 
35605
class WinTypeKeywords;
 
35606
class WinFriend;
26324
35607
class ExtAC;
26325
35608
class ExtACBuilderCoupling;
26326
35609
class ExtACSyntaxCoupling;
26327
35610
class ExtACTree;
26328
35611
class ExtACKeywords;
26329
 
class WinAsm;
26330
 
class WinDeclSpecs;
26331
 
class WinMemberExplSpec;
26332
 
class WinTypeKeywords;
 
35612
class ExtGnu;
26333
35613
class PragmaOnceUnitState;
26334
35614
class PragmaOnce;
26335
 
class CCExprResolve;
26336
 
class CExprResolve;
 
35615
class CMatchSyntax;
26337
35616
namespace Puma {
26338
35617
 
26339
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35618
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26340
35619
class CT_SwitchStmt : public CT_Statement, public CSemScope {
26341
 
#line 26342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35620
#line 35621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35621
  friend class ::CCExprResolve;
 
35622
  friend class ::CExprResolve;
26342
35623
  friend class ::WinIfExists;
26343
35624
  friend class ::WinImportHandler;
26344
35625
  friend class ::WinMacros;
26345
 
  friend class ::CMatchSyntax;
26346
 
  friend class ::ExtGnu;
 
35626
  friend class ::WinAsm;
 
35627
  friend class ::WinDeclSpecs;
 
35628
  friend class ::WinMemberExplSpec;
 
35629
  friend class ::WinTypeKeywords;
 
35630
  friend class ::WinFriend;
26347
35631
  friend class ::ExtAC;
26348
35632
  friend class ::ExtACBuilderCoupling;
26349
35633
  friend class ::ExtACSyntaxCoupling;
26350
35634
  friend class ::ExtACTree;
26351
35635
  friend class ::ExtACKeywords;
26352
 
  friend class ::WinAsm;
26353
 
  friend class ::WinDeclSpecs;
26354
 
  friend class ::WinMemberExplSpec;
26355
 
  friend class ::WinTypeKeywords;
 
35636
  friend class ::ExtGnu;
26356
35637
  friend class ::PragmaOnceUnitState;
26357
35638
  friend class ::PragmaOnce;
26358
 
  friend class ::CCExprResolve;
26359
 
  friend class ::CExprResolve;
 
35639
  friend class ::CMatchSyntax;
26360
35640
 
26361
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35641
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26362
35642
 
26363
35643
  CTree *sons[5]; // keyword, open, cond, close, stmt
26364
35644
 
26365
35645
public:
26366
35646
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
26367
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
35647
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
35648
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
26368
35649
  }
 
35650
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26369
35651
  static const char *NodeId ();
 
35652
  /** Get the name of the node. Can be compared with NodeId(). */
26370
35653
  const char *NodeName () const { return NodeId (); }
 
35654
  /** Get the number of sons. */
26371
35655
  int Sons () const { return 5; }
 
35656
  /** Get the n-th son.
 
35657
   *  \param n The index of the son.
 
35658
   *  \return The n-th son or NULL. */
26372
35659
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
26373
35660
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
26374
35661
  CTree *Condition () const { return sons[2]; }
 
35662
  /** Replace a son.
 
35663
   *  \param old_son The son to replace.
 
35664
   *  \param new_son The new son. */
26375
35665
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26376
35666
    CTree::ReplaceSon (sons, 5, old_son, new_son);
26377
35667
  }
 
35668
  CSemScope *SemScope () const { return (CSemScope*)this; }
26378
35669
};
26379
35670
 
26380
35671
 
26381
 
#line 26382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35672
#line 35673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26382
35673
} // closed Puma
 
35674
class CCExprResolve;
 
35675
class CExprResolve;
26383
35676
class WinIfExists;
26384
35677
class WinImportHandler;
26385
35678
class WinMacros;
26386
 
class CMatchSyntax;
26387
 
class ExtGnu;
 
35679
class WinAsm;
 
35680
class WinDeclSpecs;
 
35681
class WinMemberExplSpec;
 
35682
class WinTypeKeywords;
 
35683
class WinFriend;
26388
35684
class ExtAC;
26389
35685
class ExtACBuilderCoupling;
26390
35686
class ExtACSyntaxCoupling;
26391
35687
class ExtACTree;
26392
35688
class ExtACKeywords;
26393
 
class WinAsm;
26394
 
class WinDeclSpecs;
26395
 
class WinMemberExplSpec;
26396
 
class WinTypeKeywords;
 
35689
class ExtGnu;
26397
35690
class PragmaOnceUnitState;
26398
35691
class PragmaOnce;
26399
 
class CCExprResolve;
26400
 
class CExprResolve;
 
35692
class CMatchSyntax;
26401
35693
namespace Puma {
26402
35694
 
26403
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35695
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26404
35696
class CT_IfStmt : public CT_Statement, public CSemScope {
26405
 
#line 26406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35697
#line 35698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35698
  friend class ::CCExprResolve;
 
35699
  friend class ::CExprResolve;
26406
35700
  friend class ::WinIfExists;
26407
35701
  friend class ::WinImportHandler;
26408
35702
  friend class ::WinMacros;
26409
 
  friend class ::CMatchSyntax;
26410
 
  friend class ::ExtGnu;
 
35703
  friend class ::WinAsm;
 
35704
  friend class ::WinDeclSpecs;
 
35705
  friend class ::WinMemberExplSpec;
 
35706
  friend class ::WinTypeKeywords;
 
35707
  friend class ::WinFriend;
26411
35708
  friend class ::ExtAC;
26412
35709
  friend class ::ExtACBuilderCoupling;
26413
35710
  friend class ::ExtACSyntaxCoupling;
26414
35711
  friend class ::ExtACTree;
26415
35712
  friend class ::ExtACKeywords;
26416
 
  friend class ::WinAsm;
26417
 
  friend class ::WinDeclSpecs;
26418
 
  friend class ::WinMemberExplSpec;
26419
 
  friend class ::WinTypeKeywords;
 
35713
  friend class ::ExtGnu;
26420
35714
  friend class ::PragmaOnceUnitState;
26421
35715
  friend class ::PragmaOnce;
26422
 
  friend class ::CCExprResolve;
26423
 
  friend class ::CExprResolve;
 
35716
  friend class ::CMatchSyntax;
26424
35717
 
26425
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35718
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26426
35719
 
26427
35720
  CTree *sons[5]; // keyword, open, cond, close, stmt
26428
35721
 
26429
35722
public:
26430
35723
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
26431
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
35724
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
35725
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
26432
35726
  }
 
35727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26433
35728
  static const char *NodeId ();
 
35729
  /** Get the name of the node. Can be compared with NodeId(). */
26434
35730
  const char *NodeName () const { return NodeId (); }
 
35731
  /** Get the number of sons. */
26435
35732
  int Sons () const { return 5; }
 
35733
  /** Get the n-th son.
 
35734
   *  \param n The index of the son.
 
35735
   *  \return The n-th son or NULL. */
26436
35736
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
26437
35737
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
26438
35738
  CTree *Condition () const { return sons[2]; }
 
35739
  /** Replace a son.
 
35740
   *  \param old_son The son to replace.
 
35741
   *  \param new_son The new son. */
26439
35742
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26440
35743
    CTree::ReplaceSon (sons, 5, old_son, new_son);
26441
35744
  }
 
35745
  CSemScope *SemScope () const { return (CSemScope*)this; }
26442
35746
};
26443
35747
 
26444
35748
 
26445
 
#line 26446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35749
#line 35750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26446
35750
} // closed Puma
 
35751
class CCExprResolve;
 
35752
class CExprResolve;
26447
35753
class WinIfExists;
26448
35754
class WinImportHandler;
26449
35755
class WinMacros;
26450
 
class CMatchSyntax;
26451
 
class ExtGnu;
 
35756
class WinAsm;
 
35757
class WinDeclSpecs;
 
35758
class WinMemberExplSpec;
 
35759
class WinTypeKeywords;
 
35760
class WinFriend;
26452
35761
class ExtAC;
26453
35762
class ExtACBuilderCoupling;
26454
35763
class ExtACSyntaxCoupling;
26455
35764
class ExtACTree;
26456
35765
class ExtACKeywords;
26457
 
class WinAsm;
26458
 
class WinDeclSpecs;
26459
 
class WinMemberExplSpec;
26460
 
class WinTypeKeywords;
 
35766
class ExtGnu;
26461
35767
class PragmaOnceUnitState;
26462
35768
class PragmaOnce;
26463
 
class CCExprResolve;
26464
 
class CExprResolve;
 
35769
class CMatchSyntax;
26465
35770
namespace Puma {
26466
35771
 
26467
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35772
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26468
35773
class CT_IfElseStmt : public CT_Statement, public CSemScope {
26469
 
#line 26470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35774
#line 35775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35775
  friend class ::CCExprResolve;
 
35776
  friend class ::CExprResolve;
26470
35777
  friend class ::WinIfExists;
26471
35778
  friend class ::WinImportHandler;
26472
35779
  friend class ::WinMacros;
26473
 
  friend class ::CMatchSyntax;
26474
 
  friend class ::ExtGnu;
 
35780
  friend class ::WinAsm;
 
35781
  friend class ::WinDeclSpecs;
 
35782
  friend class ::WinMemberExplSpec;
 
35783
  friend class ::WinTypeKeywords;
 
35784
  friend class ::WinFriend;
26475
35785
  friend class ::ExtAC;
26476
35786
  friend class ::ExtACBuilderCoupling;
26477
35787
  friend class ::ExtACSyntaxCoupling;
26478
35788
  friend class ::ExtACTree;
26479
35789
  friend class ::ExtACKeywords;
26480
 
  friend class ::WinAsm;
26481
 
  friend class ::WinDeclSpecs;
26482
 
  friend class ::WinMemberExplSpec;
26483
 
  friend class ::WinTypeKeywords;
 
35790
  friend class ::ExtGnu;
26484
35791
  friend class ::PragmaOnceUnitState;
26485
35792
  friend class ::PragmaOnce;
26486
 
  friend class ::CCExprResolve;
26487
 
  friend class ::CExprResolve;
 
35793
  friend class ::CMatchSyntax;
26488
35794
 
26489
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35795
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26490
35796
 
26491
35797
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
26492
35798
 
26493
35799
public:
26494
35800
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
26495
35801
                 CTree *is, CTree *e, CTree *es) {
26496
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
26497
 
    sons[5] = e; sons[6] = es; 
 
35802
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
35803
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
35804
    AddSon (sons[6], es); 
26498
35805
  }
 
35806
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26499
35807
  static const char *NodeId ();
 
35808
  /** Get the name of the node. Can be compared with NodeId(). */
26500
35809
  const char *NodeName () const { return NodeId (); }
 
35810
  /** Get the number of sons. */
26501
35811
  int Sons () const { return 7; }
 
35812
  /** Get the n-th son.
 
35813
   *  \param n The index of the son.
 
35814
   *  \return The n-th son or NULL. */
26502
35815
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
26503
35816
  CTree *Condition () const { return sons[2]; }
26504
35817
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
26505
35818
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
35819
  /** Replace a son.
 
35820
   *  \param old_son The son to replace.
 
35821
   *  \param new_son The new son. */
26506
35822
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26507
35823
    CTree::ReplaceSon (sons, 7, old_son, new_son);
26508
35824
  }
 
35825
  CSemScope *SemScope () const { return (CSemScope*)this; }
26509
35826
};
26510
35827
 
26511
35828
 
26512
 
#line 26513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35829
#line 35830 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26513
35830
} // closed Puma
 
35831
class CCExprResolve;
 
35832
class CExprResolve;
26514
35833
class WinIfExists;
26515
35834
class WinImportHandler;
26516
35835
class WinMacros;
26517
 
class CMatchSyntax;
26518
 
class ExtGnu;
 
35836
class WinAsm;
 
35837
class WinDeclSpecs;
 
35838
class WinMemberExplSpec;
 
35839
class WinTypeKeywords;
 
35840
class WinFriend;
26519
35841
class ExtAC;
26520
35842
class ExtACBuilderCoupling;
26521
35843
class ExtACSyntaxCoupling;
26522
35844
class ExtACTree;
26523
35845
class ExtACKeywords;
26524
 
class WinAsm;
26525
 
class WinDeclSpecs;
26526
 
class WinMemberExplSpec;
26527
 
class WinTypeKeywords;
 
35846
class ExtGnu;
26528
35847
class PragmaOnceUnitState;
26529
35848
class PragmaOnce;
26530
 
class CCExprResolve;
26531
 
class CExprResolve;
 
35849
class CMatchSyntax;
26532
35850
namespace Puma {
26533
35851
 
26534
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35852
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26535
35853
class CT_BreakStmt : public CT_Statement {
26536
 
#line 26537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35854
#line 35855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35855
  friend class ::CCExprResolve;
 
35856
  friend class ::CExprResolve;
26537
35857
  friend class ::WinIfExists;
26538
35858
  friend class ::WinImportHandler;
26539
35859
  friend class ::WinMacros;
26540
 
  friend class ::CMatchSyntax;
26541
 
  friend class ::ExtGnu;
 
35860
  friend class ::WinAsm;
 
35861
  friend class ::WinDeclSpecs;
 
35862
  friend class ::WinMemberExplSpec;
 
35863
  friend class ::WinTypeKeywords;
 
35864
  friend class ::WinFriend;
26542
35865
  friend class ::ExtAC;
26543
35866
  friend class ::ExtACBuilderCoupling;
26544
35867
  friend class ::ExtACSyntaxCoupling;
26545
35868
  friend class ::ExtACTree;
26546
35869
  friend class ::ExtACKeywords;
26547
 
  friend class ::WinAsm;
26548
 
  friend class ::WinDeclSpecs;
26549
 
  friend class ::WinMemberExplSpec;
26550
 
  friend class ::WinTypeKeywords;
 
35870
  friend class ::ExtGnu;
26551
35871
  friend class ::PragmaOnceUnitState;
26552
35872
  friend class ::PragmaOnce;
26553
 
  friend class ::CCExprResolve;
26554
 
  friend class ::CExprResolve;
 
35873
  friend class ::CMatchSyntax;
26555
35874
 
26556
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35875
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26557
35876
 
26558
35877
  CTree *sons[2]; // key, semi_colon
26559
35878
 
26560
35879
public:
26561
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
35880
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
35881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26562
35882
  static const char *NodeId ();
 
35883
  /** Get the name of the node. Can be compared with NodeId(). */
26563
35884
  const char *NodeName () const { return NodeId (); }
 
35885
  /** Get the number of sons. */
26564
35886
  int Sons () const { return 2; }
 
35887
  /** Get the n-th son.
 
35888
   *  \param n The index of the son.
 
35889
   *  \return The n-th son or NULL. */
26565
35890
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35891
  /** Replace a son.
 
35892
   *  \param old_son The son to replace.
 
35893
   *  \param new_son The new son. */
26566
35894
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26567
35895
    CTree::ReplaceSon (sons, 2, old_son, new_son);
26568
35896
  }
26569
35897
};
26570
35898
 
26571
35899
 
26572
 
#line 26573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35900
#line 35901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26573
35901
} // closed Puma
 
35902
class CCExprResolve;
 
35903
class CExprResolve;
26574
35904
class WinIfExists;
26575
35905
class WinImportHandler;
26576
35906
class WinMacros;
26577
 
class CMatchSyntax;
26578
 
class ExtGnu;
 
35907
class WinAsm;
 
35908
class WinDeclSpecs;
 
35909
class WinMemberExplSpec;
 
35910
class WinTypeKeywords;
 
35911
class WinFriend;
26579
35912
class ExtAC;
26580
35913
class ExtACBuilderCoupling;
26581
35914
class ExtACSyntaxCoupling;
26582
35915
class ExtACTree;
26583
35916
class ExtACKeywords;
26584
 
class WinAsm;
26585
 
class WinDeclSpecs;
26586
 
class WinMemberExplSpec;
26587
 
class WinTypeKeywords;
 
35917
class ExtGnu;
26588
35918
class PragmaOnceUnitState;
26589
35919
class PragmaOnce;
26590
 
class CCExprResolve;
26591
 
class CExprResolve;
 
35920
class CMatchSyntax;
26592
35921
namespace Puma {
26593
35922
 
26594
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35923
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26595
35924
class CT_ContinueStmt : public CT_Statement {
26596
 
#line 26597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35925
#line 35926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35926
  friend class ::CCExprResolve;
 
35927
  friend class ::CExprResolve;
26597
35928
  friend class ::WinIfExists;
26598
35929
  friend class ::WinImportHandler;
26599
35930
  friend class ::WinMacros;
26600
 
  friend class ::CMatchSyntax;
26601
 
  friend class ::ExtGnu;
 
35931
  friend class ::WinAsm;
 
35932
  friend class ::WinDeclSpecs;
 
35933
  friend class ::WinMemberExplSpec;
 
35934
  friend class ::WinTypeKeywords;
 
35935
  friend class ::WinFriend;
26602
35936
  friend class ::ExtAC;
26603
35937
  friend class ::ExtACBuilderCoupling;
26604
35938
  friend class ::ExtACSyntaxCoupling;
26605
35939
  friend class ::ExtACTree;
26606
35940
  friend class ::ExtACKeywords;
26607
 
  friend class ::WinAsm;
26608
 
  friend class ::WinDeclSpecs;
26609
 
  friend class ::WinMemberExplSpec;
26610
 
  friend class ::WinTypeKeywords;
 
35941
  friend class ::ExtGnu;
26611
35942
  friend class ::PragmaOnceUnitState;
26612
35943
  friend class ::PragmaOnce;
26613
 
  friend class ::CCExprResolve;
26614
 
  friend class ::CExprResolve;
 
35944
  friend class ::CMatchSyntax;
26615
35945
 
26616
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35946
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26617
35947
 
26618
35948
  CTree *sons[2]; // key, semi_colon
26619
35949
 
26620
35950
public:
26621
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
35951
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
35952
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26622
35953
  static const char *NodeId ();
 
35954
  /** Get the name of the node. Can be compared with NodeId(). */
26623
35955
  const char *NodeName () const { return NodeId (); }
 
35956
  /** Get the number of sons. */
26624
35957
  int Sons () const { return 2; }
 
35958
  /** Get the n-th son.
 
35959
   *  \param n The index of the son.
 
35960
   *  \return The n-th son or NULL. */
26625
35961
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35962
  /** Replace a son.
 
35963
   *  \param old_son The son to replace.
 
35964
   *  \param new_son The new son. */
26626
35965
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26627
35966
    CTree::ReplaceSon (sons, 2, old_son, new_son);
26628
35967
  }
26629
35968
};
26630
35969
 
26631
35970
 
26632
 
#line 26633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35971
#line 35972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26633
35972
} // closed Puma
 
35973
class CCExprResolve;
 
35974
class CExprResolve;
26634
35975
class WinIfExists;
26635
35976
class WinImportHandler;
26636
35977
class WinMacros;
26637
 
class CMatchSyntax;
26638
 
class ExtGnu;
 
35978
class WinAsm;
 
35979
class WinDeclSpecs;
 
35980
class WinMemberExplSpec;
 
35981
class WinTypeKeywords;
 
35982
class WinFriend;
26639
35983
class ExtAC;
26640
35984
class ExtACBuilderCoupling;
26641
35985
class ExtACSyntaxCoupling;
26642
35986
class ExtACTree;
26643
35987
class ExtACKeywords;
26644
 
class WinAsm;
26645
 
class WinDeclSpecs;
26646
 
class WinMemberExplSpec;
26647
 
class WinTypeKeywords;
 
35988
class ExtGnu;
26648
35989
class PragmaOnceUnitState;
26649
35990
class PragmaOnce;
26650
 
class CCExprResolve;
26651
 
class CExprResolve;
 
35991
class CMatchSyntax;
26652
35992
namespace Puma {
26653
35993
 
26654
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35994
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26655
35995
class CT_GotoStmt : public CT_Statement {
26656
 
#line 26657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
35996
#line 35997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
35997
  friend class ::CCExprResolve;
 
35998
  friend class ::CExprResolve;
26657
35999
  friend class ::WinIfExists;
26658
36000
  friend class ::WinImportHandler;
26659
36001
  friend class ::WinMacros;
26660
 
  friend class ::CMatchSyntax;
26661
 
  friend class ::ExtGnu;
 
36002
  friend class ::WinAsm;
 
36003
  friend class ::WinDeclSpecs;
 
36004
  friend class ::WinMemberExplSpec;
 
36005
  friend class ::WinTypeKeywords;
 
36006
  friend class ::WinFriend;
26662
36007
  friend class ::ExtAC;
26663
36008
  friend class ::ExtACBuilderCoupling;
26664
36009
  friend class ::ExtACSyntaxCoupling;
26665
36010
  friend class ::ExtACTree;
26666
36011
  friend class ::ExtACKeywords;
26667
 
  friend class ::WinAsm;
26668
 
  friend class ::WinDeclSpecs;
26669
 
  friend class ::WinMemberExplSpec;
26670
 
  friend class ::WinTypeKeywords;
 
36012
  friend class ::ExtGnu;
26671
36013
  friend class ::PragmaOnceUnitState;
26672
36014
  friend class ::PragmaOnce;
26673
 
  friend class ::CCExprResolve;
26674
 
  friend class ::CExprResolve;
 
36015
  friend class ::CMatchSyntax;
26675
36016
 
26676
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36017
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26677
36018
 
26678
36019
  CTree *sons[3]; // key, label, semi_colon
26679
36020
 
26680
36021
public:
26681
36022
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
26682
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
36023
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
26683
36024
  }
 
36025
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26684
36026
  static const char *NodeId ();
 
36027
  /** Get the name of the node. Can be compared with NodeId(). */
26685
36028
  const char *NodeName () const { return NodeId (); }
 
36029
  /** Get the number of sons. */
26686
36030
  int Sons () const { return 3; }
 
36031
  /** Get the n-th son.
 
36032
   *  \param n The index of the son.
 
36033
   *  \return The n-th son or NULL. */
26687
36034
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26688
36035
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
36036
  /** Replace a son.
 
36037
   *  \param old_son The son to replace.
 
36038
   *  \param new_son The new son. */
26689
36039
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26690
36040
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26691
36041
  }
26692
36042
};
26693
36043
 
26694
36044
 
26695
 
#line 26696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36045
#line 36046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26696
36046
} // closed Puma
 
36047
class CCExprResolve;
 
36048
class CExprResolve;
26697
36049
class WinIfExists;
26698
36050
class WinImportHandler;
26699
36051
class WinMacros;
26700
 
class CMatchSyntax;
26701
 
class ExtGnu;
 
36052
class WinAsm;
 
36053
class WinDeclSpecs;
 
36054
class WinMemberExplSpec;
 
36055
class WinTypeKeywords;
 
36056
class WinFriend;
26702
36057
class ExtAC;
26703
36058
class ExtACBuilderCoupling;
26704
36059
class ExtACSyntaxCoupling;
26705
36060
class ExtACTree;
26706
36061
class ExtACKeywords;
26707
 
class WinAsm;
26708
 
class WinDeclSpecs;
26709
 
class WinMemberExplSpec;
26710
 
class WinTypeKeywords;
 
36062
class ExtGnu;
26711
36063
class PragmaOnceUnitState;
26712
36064
class PragmaOnce;
26713
 
class CCExprResolve;
26714
 
class CExprResolve;
 
36065
class CMatchSyntax;
26715
36066
namespace Puma {
26716
36067
 
26717
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36068
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26718
36069
class CT_ReturnStmt : public CT_Statement {
26719
 
#line 26720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36070
#line 36071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36071
  friend class ::CCExprResolve;
 
36072
  friend class ::CExprResolve;
26720
36073
  friend class ::WinIfExists;
26721
36074
  friend class ::WinImportHandler;
26722
36075
  friend class ::WinMacros;
26723
 
  friend class ::CMatchSyntax;
26724
 
  friend class ::ExtGnu;
 
36076
  friend class ::WinAsm;
 
36077
  friend class ::WinDeclSpecs;
 
36078
  friend class ::WinMemberExplSpec;
 
36079
  friend class ::WinTypeKeywords;
 
36080
  friend class ::WinFriend;
26725
36081
  friend class ::ExtAC;
26726
36082
  friend class ::ExtACBuilderCoupling;
26727
36083
  friend class ::ExtACSyntaxCoupling;
26728
36084
  friend class ::ExtACTree;
26729
36085
  friend class ::ExtACKeywords;
26730
 
  friend class ::WinAsm;
26731
 
  friend class ::WinDeclSpecs;
26732
 
  friend class ::WinMemberExplSpec;
26733
 
  friend class ::WinTypeKeywords;
 
36086
  friend class ::ExtGnu;
26734
36087
  friend class ::PragmaOnceUnitState;
26735
36088
  friend class ::PragmaOnce;
26736
 
  friend class ::CCExprResolve;
26737
 
  friend class ::CExprResolve;
 
36089
  friend class ::CMatchSyntax;
26738
36090
 
26739
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36091
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26740
36092
 
26741
36093
  CTree *sons[3]; // key, expr, semi_colon
26742
36094
 
26743
36095
public:
26744
36096
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
26745
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
36097
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
26746
36098
  }
 
36099
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26747
36100
  static const char *NodeId ();
 
36101
  /** Get the name of the node. Can be compared with NodeId(). */
26748
36102
  const char *NodeName () const { return NodeId (); }
 
36103
  /** Get the number of sons. */
26749
36104
  int Sons () const { return CTree::Sons (sons, 3); }
 
36105
  /** Get the n-th son.
 
36106
   *  \param n The index of the son.
 
36107
   *  \return The n-th son or NULL. */
26750
36108
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26751
36109
  CTree *Expr () const { return sons[1]; }
 
36110
  /** Replace a son.
 
36111
   *  \param old_son The son to replace.
 
36112
   *  \param new_son The new son. */
26752
36113
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26753
36114
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26754
36115
  }
26755
36116
};
26756
36117
 
26757
36118
 
26758
 
#line 26759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36119
#line 36120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26759
36120
} // closed Puma
 
36121
class CCExprResolve;
 
36122
class CExprResolve;
26760
36123
class WinIfExists;
26761
36124
class WinImportHandler;
26762
36125
class WinMacros;
26763
 
class CMatchSyntax;
26764
 
class ExtGnu;
 
36126
class WinAsm;
 
36127
class WinDeclSpecs;
 
36128
class WinMemberExplSpec;
 
36129
class WinTypeKeywords;
 
36130
class WinFriend;
26765
36131
class ExtAC;
26766
36132
class ExtACBuilderCoupling;
26767
36133
class ExtACSyntaxCoupling;
26768
36134
class ExtACTree;
26769
36135
class ExtACKeywords;
26770
 
class WinAsm;
26771
 
class WinDeclSpecs;
26772
 
class WinMemberExplSpec;
26773
 
class WinTypeKeywords;
 
36136
class ExtGnu;
26774
36137
class PragmaOnceUnitState;
26775
36138
class PragmaOnce;
26776
 
class CCExprResolve;
26777
 
class CExprResolve;
 
36139
class CMatchSyntax;
26778
36140
namespace Puma {
26779
36141
 
26780
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36142
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26781
36143
class CT_WhileStmt : public CT_Statement, public CSemScope {
26782
 
#line 26783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36144
#line 36145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36145
  friend class ::CCExprResolve;
 
36146
  friend class ::CExprResolve;
26783
36147
  friend class ::WinIfExists;
26784
36148
  friend class ::WinImportHandler;
26785
36149
  friend class ::WinMacros;
26786
 
  friend class ::CMatchSyntax;
26787
 
  friend class ::ExtGnu;
 
36150
  friend class ::WinAsm;
 
36151
  friend class ::WinDeclSpecs;
 
36152
  friend class ::WinMemberExplSpec;
 
36153
  friend class ::WinTypeKeywords;
 
36154
  friend class ::WinFriend;
26788
36155
  friend class ::ExtAC;
26789
36156
  friend class ::ExtACBuilderCoupling;
26790
36157
  friend class ::ExtACSyntaxCoupling;
26791
36158
  friend class ::ExtACTree;
26792
36159
  friend class ::ExtACKeywords;
26793
 
  friend class ::WinAsm;
26794
 
  friend class ::WinDeclSpecs;
26795
 
  friend class ::WinMemberExplSpec;
26796
 
  friend class ::WinTypeKeywords;
 
36160
  friend class ::ExtGnu;
26797
36161
  friend class ::PragmaOnceUnitState;
26798
36162
  friend class ::PragmaOnce;
26799
 
  friend class ::CCExprResolve;
26800
 
  friend class ::CExprResolve;
 
36163
  friend class ::CMatchSyntax;
26801
36164
 
26802
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36165
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26803
36166
 
26804
36167
  CTree *sons[5]; // key, open, cond, close, stmt
26805
36168
 
26806
36169
public:
26807
36170
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
26808
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
36171
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
36172
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
26809
36173
  }
 
36174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26810
36175
  static const char *NodeId ();
 
36176
  /** Get the name of the node. Can be compared with NodeId(). */
26811
36177
  const char *NodeName () const { return NodeId (); }
 
36178
  /** Get the number of sons. */
26812
36179
  int Sons () const { return 5; }
 
36180
  /** Get the n-th son.
 
36181
   *  \param n The index of the son.
 
36182
   *  \return The n-th son or NULL. */
26813
36183
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
26814
36184
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
26815
36185
  CTree *Condition () const { return sons[2]; }
 
36186
  /** Replace a son.
 
36187
   *  \param old_son The son to replace.
 
36188
   *  \param new_son The new son. */
26816
36189
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26817
36190
    CTree::ReplaceSon (sons, 5, old_son, new_son);
26818
36191
  }
 
36192
  CSemScope *SemScope () const { return (CSemScope*)this; }
26819
36193
};
26820
36194
 
26821
36195
 
26822
 
#line 26823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36196
#line 36197 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26823
36197
} // closed Puma
 
36198
class CCExprResolve;
 
36199
class CExprResolve;
26824
36200
class WinIfExists;
26825
36201
class WinImportHandler;
26826
36202
class WinMacros;
26827
 
class CMatchSyntax;
26828
 
class ExtGnu;
 
36203
class WinAsm;
 
36204
class WinDeclSpecs;
 
36205
class WinMemberExplSpec;
 
36206
class WinTypeKeywords;
 
36207
class WinFriend;
26829
36208
class ExtAC;
26830
36209
class ExtACBuilderCoupling;
26831
36210
class ExtACSyntaxCoupling;
26832
36211
class ExtACTree;
26833
36212
class ExtACKeywords;
26834
 
class WinAsm;
26835
 
class WinDeclSpecs;
26836
 
class WinMemberExplSpec;
26837
 
class WinTypeKeywords;
 
36213
class ExtGnu;
26838
36214
class PragmaOnceUnitState;
26839
36215
class PragmaOnce;
26840
 
class CCExprResolve;
26841
 
class CExprResolve;
 
36216
class CMatchSyntax;
26842
36217
namespace Puma {
26843
36218
 
26844
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36219
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26845
36220
class CT_DoStmt : public CT_Statement {
26846
 
#line 26847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36221
#line 36222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36222
  friend class ::CCExprResolve;
 
36223
  friend class ::CExprResolve;
26847
36224
  friend class ::WinIfExists;
26848
36225
  friend class ::WinImportHandler;
26849
36226
  friend class ::WinMacros;
26850
 
  friend class ::CMatchSyntax;
26851
 
  friend class ::ExtGnu;
 
36227
  friend class ::WinAsm;
 
36228
  friend class ::WinDeclSpecs;
 
36229
  friend class ::WinMemberExplSpec;
 
36230
  friend class ::WinTypeKeywords;
 
36231
  friend class ::WinFriend;
26852
36232
  friend class ::ExtAC;
26853
36233
  friend class ::ExtACBuilderCoupling;
26854
36234
  friend class ::ExtACSyntaxCoupling;
26855
36235
  friend class ::ExtACTree;
26856
36236
  friend class ::ExtACKeywords;
26857
 
  friend class ::WinAsm;
26858
 
  friend class ::WinDeclSpecs;
26859
 
  friend class ::WinMemberExplSpec;
26860
 
  friend class ::WinTypeKeywords;
 
36237
  friend class ::ExtGnu;
26861
36238
  friend class ::PragmaOnceUnitState;
26862
36239
  friend class ::PragmaOnce;
26863
 
  friend class ::CCExprResolve;
26864
 
  friend class ::CExprResolve;
 
36240
  friend class ::CMatchSyntax;
26865
36241
 
26866
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36242
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26867
36243
 
26868
36244
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
26869
36245
 
26870
36246
public:
26871
36247
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
26872
36248
             CTree *c, CTree *sc) {
26873
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
26874
 
    sons[5] = c; sons[6] = sc; 
 
36249
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
36250
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
36251
    AddSon (sons[6], sc); 
26875
36252
  }
 
36253
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26876
36254
  static const char *NodeId ();
 
36255
  /** Get the name of the node. Can be compared with NodeId(). */
26877
36256
  const char *NodeName () const { return NodeId (); }
 
36257
  /** Get the number of sons. */
26878
36258
  int Sons () const { return 7; }
 
36259
  /** Get the n-th son.
 
36260
   *  \param n The index of the son.
 
36261
   *  \return The n-th son or NULL. */
26879
36262
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
26880
36263
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
26881
36264
  CTree *Expr () const { return sons[4]; }
 
36265
  /** Replace a son.
 
36266
   *  \param old_son The son to replace.
 
36267
   *  \param new_son The new son. */
26882
36268
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26883
36269
    CTree::ReplaceSon (sons, 7, old_son, new_son);
26884
36270
  }
26885
36271
};
26886
36272
 
26887
36273
 
26888
 
#line 26889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36274
#line 36275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26889
36275
} // closed Puma
 
36276
class CCExprResolve;
 
36277
class CExprResolve;
26890
36278
class WinIfExists;
26891
36279
class WinImportHandler;
26892
36280
class WinMacros;
26893
 
class CMatchSyntax;
26894
 
class ExtGnu;
 
36281
class WinAsm;
 
36282
class WinDeclSpecs;
 
36283
class WinMemberExplSpec;
 
36284
class WinTypeKeywords;
 
36285
class WinFriend;
26895
36286
class ExtAC;
26896
36287
class ExtACBuilderCoupling;
26897
36288
class ExtACSyntaxCoupling;
26898
36289
class ExtACTree;
26899
36290
class ExtACKeywords;
26900
 
class WinAsm;
26901
 
class WinDeclSpecs;
26902
 
class WinMemberExplSpec;
26903
 
class WinTypeKeywords;
 
36291
class ExtGnu;
26904
36292
class PragmaOnceUnitState;
26905
36293
class PragmaOnce;
26906
 
class CCExprResolve;
26907
 
class CExprResolve;
 
36294
class CMatchSyntax;
26908
36295
namespace Puma {
26909
36296
 
26910
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36297
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26911
36298
class CT_ForStmt : public CT_Statement, public CSemScope {
26912
 
#line 26913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36299
#line 36300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36300
  friend class ::CCExprResolve;
 
36301
  friend class ::CExprResolve;
26913
36302
  friend class ::WinIfExists;
26914
36303
  friend class ::WinImportHandler;
26915
36304
  friend class ::WinMacros;
26916
 
  friend class ::CMatchSyntax;
26917
 
  friend class ::ExtGnu;
 
36305
  friend class ::WinAsm;
 
36306
  friend class ::WinDeclSpecs;
 
36307
  friend class ::WinMemberExplSpec;
 
36308
  friend class ::WinTypeKeywords;
 
36309
  friend class ::WinFriend;
26918
36310
  friend class ::ExtAC;
26919
36311
  friend class ::ExtACBuilderCoupling;
26920
36312
  friend class ::ExtACSyntaxCoupling;
26921
36313
  friend class ::ExtACTree;
26922
36314
  friend class ::ExtACKeywords;
26923
 
  friend class ::WinAsm;
26924
 
  friend class ::WinDeclSpecs;
26925
 
  friend class ::WinMemberExplSpec;
26926
 
  friend class ::WinTypeKeywords;
 
36315
  friend class ::ExtGnu;
26927
36316
  friend class ::PragmaOnceUnitState;
26928
36317
  friend class ::PragmaOnce;
26929
 
  friend class ::CCExprResolve;
26930
 
  friend class ::CExprResolve;
 
36318
  friend class ::CMatchSyntax;
26931
36319
 
26932
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36320
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26933
36321
 
26934
36322
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
26935
36323
 
26936
36324
public:
26937
36325
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
26938
36326
              CTree *e, CTree *c, CTree *stmt) {
26939
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
26940
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
36327
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
36328
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
36329
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
26941
36330
  }
 
36331
  /** Get the identifier for this node type. Can be compared with NodeName(). */
26942
36332
  static const char *NodeId ();
 
36333
  /** Get the name of the node. Can be compared with NodeId(). */
26943
36334
  const char *NodeName () const { return NodeId (); }
 
36335
  /** Get the number of sons. */
26944
36336
  int Sons () const { return CTree::Sons (sons, 8); }
 
36337
  /** Get the n-th son.
 
36338
   *  \param n The index of the son.
 
36339
   *  \return The n-th son or NULL. */
26945
36340
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
26946
36341
  CTree *InitStmt () const { return sons[2]; }
26947
36342
  CTree *Condition () const { return sons[3]; }
26948
36343
  CTree *Expr () const { return sons[5]; }
26949
36344
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
36345
  /** Replace a son.
 
36346
   *  \param old_son The son to replace.
 
36347
   *  \param new_son The new son. */
26950
36348
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26951
36349
    CTree::ReplaceSon (sons, 8, old_son, new_son);
26952
36350
  }
 
36351
  CSemScope *SemScope () const { return (CSemScope*)this; }
26953
36352
};
26954
36353
 
26955
36354
 
26956
 
#line 26957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36355
#line 36356 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
26957
36356
} // closed Puma
 
36357
class CCExprResolve;
 
36358
class CExprResolve;
26958
36359
class WinIfExists;
26959
36360
class WinImportHandler;
26960
36361
class WinMacros;
26961
 
class CMatchSyntax;
26962
 
class ExtGnu;
 
36362
class WinAsm;
 
36363
class WinDeclSpecs;
 
36364
class WinMemberExplSpec;
 
36365
class WinTypeKeywords;
 
36366
class WinFriend;
26963
36367
class ExtAC;
26964
36368
class ExtACBuilderCoupling;
26965
36369
class ExtACSyntaxCoupling;
26966
36370
class ExtACTree;
26967
36371
class ExtACKeywords;
26968
 
class WinAsm;
26969
 
class WinDeclSpecs;
26970
 
class WinMemberExplSpec;
26971
 
class WinTypeKeywords;
 
36372
class ExtGnu;
26972
36373
class PragmaOnceUnitState;
26973
36374
class PragmaOnce;
26974
 
class CCExprResolve;
26975
 
class CExprResolve;
 
36375
class CMatchSyntax;
26976
36376
namespace Puma {
26977
36377
 
26978
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36378
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
26979
36379
class CT_Condition : public CT_Decl, public CSemObject {
26980
 
#line 26981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36380
#line 36381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36381
  friend class ::CCExprResolve;
 
36382
  friend class ::CExprResolve;
26981
36383
  friend class ::WinIfExists;
26982
36384
  friend class ::WinImportHandler;
26983
36385
  friend class ::WinMacros;
26984
 
  friend class ::CMatchSyntax;
26985
 
  friend class ::ExtGnu;
 
36386
  friend class ::WinAsm;
 
36387
  friend class ::WinDeclSpecs;
 
36388
  friend class ::WinMemberExplSpec;
 
36389
  friend class ::WinTypeKeywords;
 
36390
  friend class ::WinFriend;
26986
36391
  friend class ::ExtAC;
26987
36392
  friend class ::ExtACBuilderCoupling;
26988
36393
  friend class ::ExtACSyntaxCoupling;
26989
36394
  friend class ::ExtACTree;
26990
36395
  friend class ::ExtACKeywords;
26991
 
  friend class ::WinAsm;
26992
 
  friend class ::WinDeclSpecs;
26993
 
  friend class ::WinMemberExplSpec;
26994
 
  friend class ::WinTypeKeywords;
 
36396
  friend class ::ExtGnu;
26995
36397
  friend class ::PragmaOnceUnitState;
26996
36398
  friend class ::PragmaOnce;
26997
 
  friend class ::CCExprResolve;
26998
 
  friend class ::CExprResolve;
 
36399
  friend class ::CMatchSyntax;
26999
36400
 
27000
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36401
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27001
36402
 
27002
36403
  CTree *sons[3]; // declspecs, declarator, init
27003
36404
 
27004
36405
public:
27005
36406
  CT_Condition (CTree *dsl, CTree *d) {
27006
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
36407
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
27007
36408
  }
 
36409
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27008
36410
  static const char *NodeId ();
 
36411
  /** Get the name of the node. Can be compared with NodeId(). */
27009
36412
  const char *NodeName () const { return NodeId (); }
 
36413
  /** Get the number of sons. */
27010
36414
  int Sons () const { return CTree::Sons (sons, 3); }
 
36415
  /** Get the n-th son.
 
36416
   *  \param n The index of the son.
 
36417
   *  \return The n-th son or NULL. */
27011
36418
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
27012
36419
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
27013
36420
  CTree *Declarator () const { return sons[1]; }
27014
36421
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
27015
36422
  CSemObject *SemObject () const { return (CSemObject*)this; }
27016
 
  void Initializer (CTree *i) { sons[2] = i; }
 
36423
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
36424
  /** Replace a son.
 
36425
   *  \param old_son The son to replace.
 
36426
   *  \param new_son The new son. */
27017
36427
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27018
36428
    CTree::ReplaceSon (sons, 3, old_son, new_son);
27019
36429
  }
27026
36436
/*****************************************************************************/
27027
36437
 
27028
36438
 
27029
 
#line 27030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36439
#line 36440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27030
36440
} // closed Puma
 
36441
class CCExprResolve;
 
36442
class CExprResolve;
27031
36443
class WinIfExists;
27032
36444
class WinImportHandler;
27033
36445
class WinMacros;
27034
 
class CMatchSyntax;
27035
 
class ExtGnu;
 
36446
class WinAsm;
 
36447
class WinDeclSpecs;
 
36448
class WinMemberExplSpec;
 
36449
class WinTypeKeywords;
 
36450
class WinFriend;
27036
36451
class ExtAC;
27037
36452
class ExtACBuilderCoupling;
27038
36453
class ExtACSyntaxCoupling;
27039
36454
class ExtACTree;
27040
36455
class ExtACKeywords;
27041
 
class WinAsm;
27042
 
class WinDeclSpecs;
27043
 
class WinMemberExplSpec;
27044
 
class WinTypeKeywords;
 
36456
class ExtGnu;
27045
36457
class PragmaOnceUnitState;
27046
36458
class PragmaOnce;
27047
 
class CCExprResolve;
27048
 
class CExprResolve;
27049
 
namespace Puma {
27050
 
 
27051
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36459
class CMatchSyntax;
 
36460
namespace Puma {
 
36461
 
 
36462
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36463
 
 
36464
#line 36465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36465
} // closed Puma
 
36466
 
 
36467
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
36468
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
36469
#include "ExtACTree.ah"
 
36470
#endif
 
36471
namespace Puma {
 
36472
 
 
36473
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27052
36474
class CT_ClassDef : public CT_Decl, public CSemObject {
27053
 
#line 27054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36475
#line 36476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36476
  friend class ::CCExprResolve;
 
36477
  friend class ::CExprResolve;
27054
36478
  friend class ::WinIfExists;
27055
36479
  friend class ::WinImportHandler;
27056
36480
  friend class ::WinMacros;
27057
 
  friend class ::CMatchSyntax;
27058
 
  friend class ::ExtGnu;
 
36481
  friend class ::WinAsm;
 
36482
  friend class ::WinDeclSpecs;
 
36483
  friend class ::WinMemberExplSpec;
 
36484
  friend class ::WinTypeKeywords;
 
36485
  friend class ::WinFriend;
27059
36486
  friend class ::ExtAC;
27060
36487
  friend class ::ExtACBuilderCoupling;
27061
36488
  friend class ::ExtACSyntaxCoupling;
27062
36489
  friend class ::ExtACTree;
27063
36490
  friend class ::ExtACKeywords;
27064
 
  friend class ::WinAsm;
27065
 
  friend class ::WinDeclSpecs;
27066
 
  friend class ::WinMemberExplSpec;
27067
 
  friend class ::WinTypeKeywords;
 
36491
  friend class ::ExtGnu;
27068
36492
  friend class ::PragmaOnceUnitState;
27069
36493
  friend class ::PragmaOnce;
27070
 
  friend class ::CCExprResolve;
27071
 
  friend class ::CExprResolve;
 
36494
  friend class ::CMatchSyntax;
27072
36495
 
27073
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36496
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27074
36497
 
27075
36498
   
27076
 
#line 27077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36499
#line 36500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27077
36500
 
27078
36501
  struct __ac_wrapper_sons {
27079
36502
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
27088
36511
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
27089
36512
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
27090
36513
  } sons
27091
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36514
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27092
36515
 
27093
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36516
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27094
36517
; // key, name, bases, members
27095
36518
  CTree *obj_decl;
27096
36519
 
27097
36520
public:
27098
36521
  
27099
 
#line 27100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
27100
 
 
27101
 
 
27102
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
27103
 
  typedef void Result;
27104
 
  typedef ::Puma::CT_ClassDef That;
27105
 
  typedef ::Puma::CT_ClassDef Target;
27106
 
  static const int JPID = 4;
 
36522
#line 36523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36523
 
 
36524
 
 
36525
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
36526
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
36527
  typedef TResult Result;
 
36528
  typedef TThat   That;
 
36529
  typedef TTarget Target;
 
36530
  enum { ARGS = TArgs::ARGS };
 
36531
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
36532
  static const int JPID = 55;
27107
36533
  static const AC::JPType JPTYPE = (AC::JPType)16;
27108
36534
  struct Res {
27109
36535
    typedef void Type;
27110
36536
    typedef void ReferredType;
27111
36537
  };
27112
 
  enum { ARGS = 3 };
27113
 
  template <int I, int DUMMY = 0> struct Arg {
27114
 
    typedef void Type;
27115
 
    typedef void ReferredType;
27116
 
  };
27117
 
  template <int DUMMY> struct Arg<0, DUMMY> {
27118
 
    typedef ::Puma::CTree * Type;
27119
 
    typedef ::Puma::CTree * ReferredType;
27120
 
  };
27121
 
  template <int DUMMY> struct Arg<1, DUMMY> {
27122
 
    typedef ::Puma::CTree * Type;
27123
 
    typedef ::Puma::CTree * ReferredType;
27124
 
  };
27125
 
  template <int DUMMY> struct Arg<2, DUMMY> {
27126
 
    typedef ::Puma::CTree * Type;
27127
 
    typedef ::Puma::CTree * ReferredType;
27128
 
  };
27129
36538
 
27130
36539
  That *_that;
27131
36540
 
27134
36543
};
27135
36544
 
27136
36545
 
27137
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36546
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27138
36547
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
27139
 
#line 27140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36548
#line 36549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27140
36549
{
27141
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
27142
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
27143
 
this->__exec_old_C1(arg0, arg1, arg2);
27144
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
27145
 
 
 
36550
  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;
 
36551
    __TJP tjp;
 
36552
  tjp._that =  (__TJP::That*)this;
 
36553
    this->__exec_old_C1(arg0, arg1, arg2);
 
36554
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
36555
  
27146
36556
}
27147
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
27148
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36557
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
36558
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27149
36559
{
27150
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
36560
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
36561
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
27151
36562
  }
 
36563
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27152
36564
  static const char *NodeId ();
 
36565
  /** Get the name of the node. Can be compared with NodeId(). */
27153
36566
  const char *NodeName () const { return NodeId (); }
 
36567
  /** Get the number of sons. */
27154
36568
  int Sons () const { return CTree::Sons (sons, 4); }
 
36569
  /** Get the n-th son.
 
36570
   *  \param n The index of the son.
 
36571
   *  \return The n-th son or NULL. */
27155
36572
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
27156
36573
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
27157
36574
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
27158
36575
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
27159
36576
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
27160
36577
  CSemObject *SemObject () const { return (CSemObject*)this; }
27161
 
  void Members (CTree *m) { sons[3] = m; }
27162
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
27163
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
36578
  void Members (CTree *m) { AddSon (sons[3], m); }
 
36579
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
36580
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
36581
  /** Replace a son.
 
36582
   *  \param old_son The son to replace.
 
36583
   *  \param new_son The new son. */
27164
36584
  void ReplaceSon (CTree *old_son, CTree *new_son) {
27165
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
27166
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
36585
    CTree::ReplaceSon (sons, 4, old_son, new_son);
27167
36586
  }
27168
36587
   private:
27169
36588
 
27170
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
27171
 
 CTree * _intro_members ;
 
36589
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
36590
 Puma :: CTree * _intro_members ;
 
36591
Puma :: CTree * _base_intros ;
27172
36592
public :
27173
 
CTree * IntroMembers ( ) const { return _intro_members ; }
27174
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
27175
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27176
 
 
27177
 
#line 27178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
27178
 
 
27179
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
27180
 
  typedef void Result;
27181
 
  typedef ::Puma::CT_ClassDef That;
27182
 
  typedef ::Puma::CT_ClassDef Target;
27183
 
  static const int JPID = 4;
 
36593
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
36594
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
36595
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
36596
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
36597
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36598
 
 
36599
#line 36600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36600
 
 
36601
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
36602
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
36603
  typedef TResult Result;
 
36604
  typedef TThat   That;
 
36605
  typedef TTarget Target;
 
36606
  enum { ARGS = TArgs::ARGS };
 
36607
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
36608
  static const int JPID = 7249;
27184
36609
  static const AC::JPType JPTYPE = (AC::JPType)16;
27185
36610
  struct Res {
27186
36611
    typedef void Type;
27187
36612
    typedef void ReferredType;
27188
36613
  };
27189
 
  enum { ARGS = 1 };
27190
 
  template <int I, int DUMMY = 0> struct Arg {
27191
 
    typedef void Type;
27192
 
    typedef void ReferredType;
27193
 
  };
27194
 
  template <int DUMMY> struct Arg<0, DUMMY> {
27195
 
    typedef const ::Puma::CT_ClassDef & Type;
27196
 
    typedef const ::Puma::CT_ClassDef ReferredType;
27197
 
  };
27198
36614
 
27199
36615
  That *_that;
27200
36616
 
27203
36619
};
27204
36620
 
27205
36621
 
27206
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36622
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27207
36623
 
27208
 
#line 27209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36624
#line 36625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27209
36625
 
27210
36626
public:
27211
 
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) {
27212
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
27213
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
27214
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
36627
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) {
 
36628
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
36629
  __TJP tjp;
 
36630
  tjp._that =  (__TJP::That*)this;
 
36631
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
27215
36632
 
27216
36633
}
27217
36634
 
27218
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
27219
 
 
27220
 
#line 27221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
27221
 
 
27222
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
27223
 
  typedef void Result;
27224
 
  typedef ::Puma::CT_ClassDef That;
27225
 
  typedef ::Puma::CT_ClassDef Target;
27226
 
  static const int JPID = 4;
 
36635
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36636
 
 
36637
#line 36638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36638
 
 
36639
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
36640
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
36641
  typedef TResult Result;
 
36642
  typedef TThat   That;
 
36643
  typedef TTarget Target;
 
36644
  enum { ARGS = TArgs::ARGS };
 
36645
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
36646
  static const int JPID = 7247;
27227
36647
  static const AC::JPType JPTYPE = (AC::JPType)32;
27228
36648
  struct Res {
27229
36649
    typedef void Type;
27230
36650
    typedef void ReferredType;
27231
36651
  };
27232
 
  enum { ARGS = 0 };
27233
 
  template <int I, int DUMMY = 0> struct Arg {
27234
 
    typedef void Type;
27235
 
    typedef void ReferredType;
27236
 
  };
27237
36652
 
27238
36653
  That *_that;
27239
36654
 
27242
36657
};
27243
36658
 
27244
36659
 
27245
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36660
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27246
36661
 
27247
 
#line 27248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36662
#line 36663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27248
36663
 
27249
36664
public:
27250
36665
inline ~CT_ClassDef () {
27251
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
27252
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
27253
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
36666
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
36667
  __TJP tjp;
 
36668
  tjp._that =  (__TJP::That*)this;
 
36669
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
27254
36670
 
27255
36671
}
27256
36672
 
27257
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36673
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27258
36674
};
27259
36675
      
27260
36676
 
27261
 
#line 27262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36677
#line 36678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27262
36678
} // closed Puma
 
36679
class CCExprResolve;
 
36680
class CExprResolve;
27263
36681
class WinIfExists;
27264
36682
class WinImportHandler;
27265
36683
class WinMacros;
27266
 
class CMatchSyntax;
27267
 
class ExtGnu;
 
36684
class WinAsm;
 
36685
class WinDeclSpecs;
 
36686
class WinMemberExplSpec;
 
36687
class WinTypeKeywords;
 
36688
class WinFriend;
27268
36689
class ExtAC;
27269
36690
class ExtACBuilderCoupling;
27270
36691
class ExtACSyntaxCoupling;
27271
36692
class ExtACTree;
27272
36693
class ExtACKeywords;
27273
 
class WinAsm;
27274
 
class WinDeclSpecs;
27275
 
class WinMemberExplSpec;
27276
 
class WinTypeKeywords;
 
36694
class ExtGnu;
27277
36695
class PragmaOnceUnitState;
27278
36696
class PragmaOnce;
27279
 
class CCExprResolve;
27280
 
class CExprResolve;
 
36697
class CMatchSyntax;
27281
36698
namespace Puma {
27282
36699
 
27283
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36700
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27284
36701
class CT_UnionDef : public CT_ClassDef {
27285
 
#line 27286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36702
#line 36703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36703
  friend class ::CCExprResolve;
 
36704
  friend class ::CExprResolve;
27286
36705
  friend class ::WinIfExists;
27287
36706
  friend class ::WinImportHandler;
27288
36707
  friend class ::WinMacros;
27289
 
  friend class ::CMatchSyntax;
27290
 
  friend class ::ExtGnu;
 
36708
  friend class ::WinAsm;
 
36709
  friend class ::WinDeclSpecs;
 
36710
  friend class ::WinMemberExplSpec;
 
36711
  friend class ::WinTypeKeywords;
 
36712
  friend class ::WinFriend;
27291
36713
  friend class ::ExtAC;
27292
36714
  friend class ::ExtACBuilderCoupling;
27293
36715
  friend class ::ExtACSyntaxCoupling;
27294
36716
  friend class ::ExtACTree;
27295
36717
  friend class ::ExtACKeywords;
27296
 
  friend class ::WinAsm;
27297
 
  friend class ::WinDeclSpecs;
27298
 
  friend class ::WinMemberExplSpec;
27299
 
  friend class ::WinTypeKeywords;
 
36718
  friend class ::ExtGnu;
27300
36719
  friend class ::PragmaOnceUnitState;
27301
36720
  friend class ::PragmaOnce;
27302
 
  friend class ::CCExprResolve;
27303
 
  friend class ::CExprResolve;
 
36721
  friend class ::CMatchSyntax;
27304
36722
 
27305
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36723
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27306
36724
 
27307
36725
public:
27308
36726
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
27309
36727
  static const char *NodeId ();
 
36728
  /** Get the name of the node. Can be compared with NodeId(). */
27310
36729
  const char *NodeName () const { return NodeId (); }
27311
36730
};
27312
36731
      
27313
36732
 
27314
 
#line 27315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36733
#line 36734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27315
36734
} // closed Puma
 
36735
class CCExprResolve;
 
36736
class CExprResolve;
27316
36737
class WinIfExists;
27317
36738
class WinImportHandler;
27318
36739
class WinMacros;
27319
 
class CMatchSyntax;
27320
 
class ExtGnu;
 
36740
class WinAsm;
 
36741
class WinDeclSpecs;
 
36742
class WinMemberExplSpec;
 
36743
class WinTypeKeywords;
 
36744
class WinFriend;
27321
36745
class ExtAC;
27322
36746
class ExtACBuilderCoupling;
27323
36747
class ExtACSyntaxCoupling;
27324
36748
class ExtACTree;
27325
36749
class ExtACKeywords;
27326
 
class WinAsm;
27327
 
class WinDeclSpecs;
27328
 
class WinMemberExplSpec;
27329
 
class WinTypeKeywords;
 
36750
class ExtGnu;
27330
36751
class PragmaOnceUnitState;
27331
36752
class PragmaOnce;
27332
 
class CCExprResolve;
27333
 
class CExprResolve;
 
36753
class CMatchSyntax;
27334
36754
namespace Puma {
27335
36755
 
27336
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36756
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27337
36757
class CT_MembList : public CT_DeclList, public CSemScope {
27338
 
#line 27339 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36758
#line 36759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36759
  friend class ::CCExprResolve;
 
36760
  friend class ::CExprResolve;
27339
36761
  friend class ::WinIfExists;
27340
36762
  friend class ::WinImportHandler;
27341
36763
  friend class ::WinMacros;
27342
 
  friend class ::CMatchSyntax;
27343
 
  friend class ::ExtGnu;
 
36764
  friend class ::WinAsm;
 
36765
  friend class ::WinDeclSpecs;
 
36766
  friend class ::WinMemberExplSpec;
 
36767
  friend class ::WinTypeKeywords;
 
36768
  friend class ::WinFriend;
27344
36769
  friend class ::ExtAC;
27345
36770
  friend class ::ExtACBuilderCoupling;
27346
36771
  friend class ::ExtACSyntaxCoupling;
27347
36772
  friend class ::ExtACTree;
27348
36773
  friend class ::ExtACKeywords;
27349
 
  friend class ::WinAsm;
27350
 
  friend class ::WinDeclSpecs;
27351
 
  friend class ::WinMemberExplSpec;
27352
 
  friend class ::WinTypeKeywords;
 
36774
  friend class ::ExtGnu;
27353
36775
  friend class ::PragmaOnceUnitState;
27354
36776
  friend class ::PragmaOnce;
27355
 
  friend class ::CCExprResolve;
27356
 
  friend class ::CExprResolve;
 
36777
  friend class ::CMatchSyntax;
27357
36778
 
27358
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36779
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27359
36780
 
27360
36781
public:
27361
36782
  CT_MembList (int size = 10, int incr = 10) : 
27362
36783
    CT_DeclList (size, incr) {}
 
36784
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27363
36785
  static const char *NodeId ();
 
36786
  /** Get the name of the node. Can be compared with NodeId(). */
27364
36787
  const char *NodeName () const { return NodeId (); }
 
36788
  CSemScope *SemScope () const { return (CSemScope*)this; }
27365
36789
};
27366
36790
 
27367
36791
 
27368
 
#line 27369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36792
#line 36793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27369
36793
} // closed Puma
 
36794
class CCExprResolve;
 
36795
class CExprResolve;
27370
36796
class WinIfExists;
27371
36797
class WinImportHandler;
27372
36798
class WinMacros;
27373
 
class CMatchSyntax;
27374
 
class ExtGnu;
 
36799
class WinAsm;
 
36800
class WinDeclSpecs;
 
36801
class WinMemberExplSpec;
 
36802
class WinTypeKeywords;
 
36803
class WinFriend;
27375
36804
class ExtAC;
27376
36805
class ExtACBuilderCoupling;
27377
36806
class ExtACSyntaxCoupling;
27378
36807
class ExtACTree;
27379
36808
class ExtACKeywords;
27380
 
class WinAsm;
27381
 
class WinDeclSpecs;
27382
 
class WinMemberExplSpec;
27383
 
class WinTypeKeywords;
 
36809
class ExtGnu;
27384
36810
class PragmaOnceUnitState;
27385
36811
class PragmaOnce;
27386
 
class CCExprResolve;
27387
 
class CExprResolve;
 
36812
class CMatchSyntax;
27388
36813
namespace Puma {
27389
36814
 
27390
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36815
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27391
36816
class CT_MembInitList : public CT_List, public CSemScope {
27392
 
#line 27393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36817
#line 36818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36818
  friend class ::CCExprResolve;
 
36819
  friend class ::CExprResolve;
27393
36820
  friend class ::WinIfExists;
27394
36821
  friend class ::WinImportHandler;
27395
36822
  friend class ::WinMacros;
27396
 
  friend class ::CMatchSyntax;
27397
 
  friend class ::ExtGnu;
 
36823
  friend class ::WinAsm;
 
36824
  friend class ::WinDeclSpecs;
 
36825
  friend class ::WinMemberExplSpec;
 
36826
  friend class ::WinTypeKeywords;
 
36827
  friend class ::WinFriend;
27398
36828
  friend class ::ExtAC;
27399
36829
  friend class ::ExtACBuilderCoupling;
27400
36830
  friend class ::ExtACSyntaxCoupling;
27401
36831
  friend class ::ExtACTree;
27402
36832
  friend class ::ExtACKeywords;
27403
 
  friend class ::WinAsm;
27404
 
  friend class ::WinDeclSpecs;
27405
 
  friend class ::WinMemberExplSpec;
27406
 
  friend class ::WinTypeKeywords;
 
36833
  friend class ::ExtGnu;
27407
36834
  friend class ::PragmaOnceUnitState;
27408
36835
  friend class ::PragmaOnce;
27409
 
  friend class ::CCExprResolve;
27410
 
  friend class ::CExprResolve;
 
36836
  friend class ::CMatchSyntax;
27411
36837
 
27412
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36838
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27413
36839
 
27414
36840
public:
27415
36841
  CT_MembInitList (int size = 2) : 
27416
36842
    CT_List (size, 2, CT_List::OPEN) {}
27417
36843
  static const char *NodeId ();
 
36844
  /** Get the name of the node. Can be compared with NodeId(). */
27418
36845
  const char *NodeName () const { return NodeId (); }
 
36846
  CSemScope *SemScope () const { return (CSemScope*)this; }
27419
36847
};
27420
36848
 
27421
36849
 
27422
 
#line 27423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36850
#line 36851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27423
36851
} // closed Puma
 
36852
class CCExprResolve;
 
36853
class CExprResolve;
27424
36854
class WinIfExists;
27425
36855
class WinImportHandler;
27426
36856
class WinMacros;
27427
 
class CMatchSyntax;
27428
 
class ExtGnu;
 
36857
class WinAsm;
 
36858
class WinDeclSpecs;
 
36859
class WinMemberExplSpec;
 
36860
class WinTypeKeywords;
 
36861
class WinFriend;
27429
36862
class ExtAC;
27430
36863
class ExtACBuilderCoupling;
27431
36864
class ExtACSyntaxCoupling;
27432
36865
class ExtACTree;
27433
36866
class ExtACKeywords;
27434
 
class WinAsm;
27435
 
class WinDeclSpecs;
27436
 
class WinMemberExplSpec;
27437
 
class WinTypeKeywords;
 
36867
class ExtGnu;
27438
36868
class PragmaOnceUnitState;
27439
36869
class PragmaOnce;
27440
 
class CCExprResolve;
27441
 
class CExprResolve;
27442
 
namespace Puma {
27443
 
 
27444
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36870
class CMatchSyntax;
 
36871
namespace Puma {
 
36872
 
 
36873
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36874
 
 
36875
#line 36876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36876
} // closed Puma
 
36877
 
 
36878
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36879
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
36880
#include "CCExprResolveH.ah"
 
36881
#endif
 
36882
namespace Puma {
 
36883
 
 
36884
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36885
 
 
36886
#line 36887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36887
} // closed Puma
 
36888
 
 
36889
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36890
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
36891
#include "CExprResolveH.ah"
 
36892
#endif
 
36893
namespace Puma {
 
36894
 
 
36895
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27445
36896
class CT_MembInit : public CT_Expression, public CSemObject {
27446
 
#line 27447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36897
#line 36898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36898
  friend class ::CCExprResolve;
 
36899
  friend class ::CExprResolve;
27447
36900
  friend class ::WinIfExists;
27448
36901
  friend class ::WinImportHandler;
27449
36902
  friend class ::WinMacros;
27450
 
  friend class ::CMatchSyntax;
27451
 
  friend class ::ExtGnu;
 
36903
  friend class ::WinAsm;
 
36904
  friend class ::WinDeclSpecs;
 
36905
  friend class ::WinMemberExplSpec;
 
36906
  friend class ::WinTypeKeywords;
 
36907
  friend class ::WinFriend;
27452
36908
  friend class ::ExtAC;
27453
36909
  friend class ::ExtACBuilderCoupling;
27454
36910
  friend class ::ExtACSyntaxCoupling;
27455
36911
  friend class ::ExtACTree;
27456
36912
  friend class ::ExtACKeywords;
27457
 
  friend class ::WinAsm;
27458
 
  friend class ::WinDeclSpecs;
27459
 
  friend class ::WinMemberExplSpec;
27460
 
  friend class ::WinTypeKeywords;
 
36913
  friend class ::ExtGnu;
27461
36914
  friend class ::PragmaOnceUnitState;
27462
36915
  friend class ::PragmaOnce;
27463
 
  friend class ::CCExprResolve;
27464
 
  friend class ::CExprResolve;
 
36916
  friend class ::CMatchSyntax;
27465
36917
 
27466
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36918
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27467
36919
 
27468
36920
  CTree *sons[2]; // name, init
27469
36921
 
27470
36922
public:
27471
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
36923
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
36924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27472
36925
  static const char *NodeId ();
 
36926
  /** Get the name of the node. Can be compared with NodeId(). */
27473
36927
  const char *NodeName () const { return NodeId (); }
 
36928
  /** Get the number of sons. */
27474
36929
  int Sons () const { return 2; }
 
36930
  /** Get the n-th son.
 
36931
   *  \param n The index of the son.
 
36932
   *  \return The n-th son or NULL. */
27475
36933
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
36934
  /** Replace a son.
 
36935
   *  \param old_son The son to replace.
 
36936
   *  \param new_son The new son. */
27476
36937
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27477
36938
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27478
36939
  }
27482
36943
   private:
27483
36944
  typedef CT_MembInit CCExprResolveExpr;
27484
36945
 
27485
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
36946
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
27486
36947
 public :
27487
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
36948
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
27488
36949
  typedef CT_MembInit CExprResolveExpr;
27489
36950
 
27490
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
36951
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
27491
36952
 public :
27492
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
27493
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36953
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
36954
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27494
36955
};
27495
36956
 
27496
36957
 
27497
 
#line 27498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36958
#line 36959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27498
36959
} // closed Puma
 
36960
class CCExprResolve;
 
36961
class CExprResolve;
27499
36962
class WinIfExists;
27500
36963
class WinImportHandler;
27501
36964
class WinMacros;
27502
 
class CMatchSyntax;
27503
 
class ExtGnu;
 
36965
class WinAsm;
 
36966
class WinDeclSpecs;
 
36967
class WinMemberExplSpec;
 
36968
class WinTypeKeywords;
 
36969
class WinFriend;
27504
36970
class ExtAC;
27505
36971
class ExtACBuilderCoupling;
27506
36972
class ExtACSyntaxCoupling;
27507
36973
class ExtACTree;
27508
36974
class ExtACKeywords;
27509
 
class WinAsm;
27510
 
class WinDeclSpecs;
27511
 
class WinMemberExplSpec;
27512
 
class WinTypeKeywords;
 
36975
class ExtGnu;
27513
36976
class PragmaOnceUnitState;
27514
36977
class PragmaOnce;
27515
 
class CCExprResolve;
27516
 
class CExprResolve;
 
36978
class CMatchSyntax;
27517
36979
namespace Puma {
27518
36980
 
27519
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
36981
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27520
36982
class CT_BaseSpecList : public CT_List {
27521
 
#line 27522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
36983
#line 36984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
36984
  friend class ::CCExprResolve;
 
36985
  friend class ::CExprResolve;
27522
36986
  friend class ::WinIfExists;
27523
36987
  friend class ::WinImportHandler;
27524
36988
  friend class ::WinMacros;
27525
 
  friend class ::CMatchSyntax;
27526
 
  friend class ::ExtGnu;
 
36989
  friend class ::WinAsm;
 
36990
  friend class ::WinDeclSpecs;
 
36991
  friend class ::WinMemberExplSpec;
 
36992
  friend class ::WinTypeKeywords;
 
36993
  friend class ::WinFriend;
27527
36994
  friend class ::ExtAC;
27528
36995
  friend class ::ExtACBuilderCoupling;
27529
36996
  friend class ::ExtACSyntaxCoupling;
27530
36997
  friend class ::ExtACTree;
27531
36998
  friend class ::ExtACKeywords;
27532
 
  friend class ::WinAsm;
27533
 
  friend class ::WinDeclSpecs;
27534
 
  friend class ::WinMemberExplSpec;
27535
 
  friend class ::WinTypeKeywords;
 
36999
  friend class ::ExtGnu;
27536
37000
  friend class ::PragmaOnceUnitState;
27537
37001
  friend class ::PragmaOnce;
27538
 
  friend class ::CCExprResolve;
27539
 
  friend class ::CExprResolve;
 
37002
  friend class ::CMatchSyntax;
27540
37003
 
27541
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37004
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27542
37005
 
27543
37006
public:
27544
37007
  CT_BaseSpecList (int size = 2) : 
27545
37008
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
37009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27546
37010
  static const char *NodeId ();
 
37011
  /** Get the name of the node. Can be compared with NodeId(). */
27547
37012
  const char *NodeName () const { return NodeId (); }
27548
37013
};
27549
37014
 
27550
37015
 
27551
 
#line 27552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37016
#line 37017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27552
37017
} // closed Puma
 
37018
class CCExprResolve;
 
37019
class CExprResolve;
27553
37020
class WinIfExists;
27554
37021
class WinImportHandler;
27555
37022
class WinMacros;
27556
 
class CMatchSyntax;
27557
 
class ExtGnu;
 
37023
class WinAsm;
 
37024
class WinDeclSpecs;
 
37025
class WinMemberExplSpec;
 
37026
class WinTypeKeywords;
 
37027
class WinFriend;
27558
37028
class ExtAC;
27559
37029
class ExtACBuilderCoupling;
27560
37030
class ExtACSyntaxCoupling;
27561
37031
class ExtACTree;
27562
37032
class ExtACKeywords;
27563
 
class WinAsm;
27564
 
class WinDeclSpecs;
27565
 
class WinMemberExplSpec;
27566
 
class WinTypeKeywords;
 
37033
class ExtGnu;
27567
37034
class PragmaOnceUnitState;
27568
37035
class PragmaOnce;
27569
 
class CCExprResolve;
27570
 
class CExprResolve;
 
37036
class CMatchSyntax;
27571
37037
namespace Puma {
27572
37038
 
27573
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37039
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27574
37040
class CT_AccessSpec : public CTree {
27575
 
#line 27576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37041
#line 37042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37042
  friend class ::CCExprResolve;
 
37043
  friend class ::CExprResolve;
27576
37044
  friend class ::WinIfExists;
27577
37045
  friend class ::WinImportHandler;
27578
37046
  friend class ::WinMacros;
27579
 
  friend class ::CMatchSyntax;
27580
 
  friend class ::ExtGnu;
 
37047
  friend class ::WinAsm;
 
37048
  friend class ::WinDeclSpecs;
 
37049
  friend class ::WinMemberExplSpec;
 
37050
  friend class ::WinTypeKeywords;
 
37051
  friend class ::WinFriend;
27581
37052
  friend class ::ExtAC;
27582
37053
  friend class ::ExtACBuilderCoupling;
27583
37054
  friend class ::ExtACSyntaxCoupling;
27584
37055
  friend class ::ExtACTree;
27585
37056
  friend class ::ExtACKeywords;
27586
 
  friend class ::WinAsm;
27587
 
  friend class ::WinDeclSpecs;
27588
 
  friend class ::WinMemberExplSpec;
27589
 
  friend class ::WinTypeKeywords;
 
37057
  friend class ::ExtGnu;
27590
37058
  friend class ::PragmaOnceUnitState;
27591
37059
  friend class ::PragmaOnce;
27592
 
  friend class ::CCExprResolve;
27593
 
  friend class ::CExprResolve;
 
37060
  friend class ::CMatchSyntax;
27594
37061
 
27595
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37062
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27596
37063
 
27597
37064
  CTree *sons[2]; // access, colon
27598
37065
 
27599
37066
public:
27600
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
37067
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
37068
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27601
37069
  static const char *NodeId ();
 
37070
  /** Get the name of the node. Can be compared with NodeId(). */
27602
37071
  const char *NodeName () const { return NodeId (); }
 
37072
  /** Get the number of sons. */
27603
37073
  int Sons () const { return 2; }
 
37074
  /** Get the n-th son.
 
37075
   *  \param n The index of the son.
 
37076
   *  \return The n-th son or NULL. */
27604
37077
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
27605
37078
  int Access () const { return sons[0]->token ()->type (); }
 
37079
  /** Replace a son.
 
37080
   *  \param old_son The son to replace.
 
37081
   *  \param new_son The new son. */
27606
37082
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27607
37083
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27608
37084
  }
27609
37085
};
27610
37086
 
27611
37087
 
27612
 
#line 27613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37088
#line 37089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27613
37089
} // closed Puma
 
37090
class CCExprResolve;
 
37091
class CExprResolve;
27614
37092
class WinIfExists;
27615
37093
class WinImportHandler;
27616
37094
class WinMacros;
27617
 
class CMatchSyntax;
27618
 
class ExtGnu;
 
37095
class WinAsm;
 
37096
class WinDeclSpecs;
 
37097
class WinMemberExplSpec;
 
37098
class WinTypeKeywords;
 
37099
class WinFriend;
27619
37100
class ExtAC;
27620
37101
class ExtACBuilderCoupling;
27621
37102
class ExtACSyntaxCoupling;
27622
37103
class ExtACTree;
27623
37104
class ExtACKeywords;
27624
 
class WinAsm;
27625
 
class WinDeclSpecs;
27626
 
class WinMemberExplSpec;
27627
 
class WinTypeKeywords;
 
37105
class ExtGnu;
27628
37106
class PragmaOnceUnitState;
27629
37107
class PragmaOnce;
27630
 
class CCExprResolve;
27631
 
class CExprResolve;
 
37108
class CMatchSyntax;
27632
37109
namespace Puma {
27633
37110
 
27634
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37111
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27635
37112
class CT_BaseSpec : public CTree {
27636
 
#line 27637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37113
#line 37114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37114
  friend class ::CCExprResolve;
 
37115
  friend class ::CExprResolve;
27637
37116
  friend class ::WinIfExists;
27638
37117
  friend class ::WinImportHandler;
27639
37118
  friend class ::WinMacros;
27640
 
  friend class ::CMatchSyntax;
27641
 
  friend class ::ExtGnu;
 
37119
  friend class ::WinAsm;
 
37120
  friend class ::WinDeclSpecs;
 
37121
  friend class ::WinMemberExplSpec;
 
37122
  friend class ::WinTypeKeywords;
 
37123
  friend class ::WinFriend;
27642
37124
  friend class ::ExtAC;
27643
37125
  friend class ::ExtACBuilderCoupling;
27644
37126
  friend class ::ExtACSyntaxCoupling;
27645
37127
  friend class ::ExtACTree;
27646
37128
  friend class ::ExtACKeywords;
27647
 
  friend class ::WinAsm;
27648
 
  friend class ::WinDeclSpecs;
27649
 
  friend class ::WinMemberExplSpec;
27650
 
  friend class ::WinTypeKeywords;
 
37129
  friend class ::ExtGnu;
27651
37130
  friend class ::PragmaOnceUnitState;
27652
37131
  friend class ::PragmaOnce;
27653
 
  friend class ::CCExprResolve;
27654
 
  friend class ::CExprResolve;
 
37132
  friend class ::CMatchSyntax;
27655
37133
 
27656
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37134
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27657
37135
 
27658
37136
  CTree *sons[3]; // virtual, access, name
27659
37137
 
27660
37138
public:
27661
37139
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
27662
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
37140
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
27663
37141
  }
 
37142
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27664
37143
  static const char *NodeId ();
 
37144
  /** Get the name of the node. Can be compared with NodeId(). */
27665
37145
  const char *NodeName () const { return NodeId (); }
 
37146
  /** Get the number of sons. */
27666
37147
  int Sons () const { return CTree::Sons (sons, 3); }
 
37148
  /** Get the n-th son.
 
37149
   *  \param n The index of the son.
 
37150
   *  \return The n-th son or NULL. */
27667
37151
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
27668
37152
  int Access () const { return sons[1]->token ()->type (); }
27669
37153
  CTree *AccessSpec () const { return sons[1]; }
27670
37154
  CTree *Virtual () const { return sons[0]; }
27671
37155
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
37156
  /** Replace a son.
 
37157
   *  \param old_son The son to replace.
 
37158
   *  \param new_son The new son. */
27672
37159
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27673
37160
    CTree::ReplaceSon (sons, 3, old_son, new_son);
27674
37161
  }
27675
37162
};
27676
37163
 
27677
37164
 
27678
 
#line 27679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37165
#line 37166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27679
37166
} // closed Puma
 
37167
class CCExprResolve;
 
37168
class CExprResolve;
27680
37169
class WinIfExists;
27681
37170
class WinImportHandler;
27682
37171
class WinMacros;
27683
 
class CMatchSyntax;
27684
 
class ExtGnu;
 
37172
class WinAsm;
 
37173
class WinDeclSpecs;
 
37174
class WinMemberExplSpec;
 
37175
class WinTypeKeywords;
 
37176
class WinFriend;
27685
37177
class ExtAC;
27686
37178
class ExtACBuilderCoupling;
27687
37179
class ExtACSyntaxCoupling;
27688
37180
class ExtACTree;
27689
37181
class ExtACKeywords;
27690
 
class WinAsm;
27691
 
class WinDeclSpecs;
27692
 
class WinMemberExplSpec;
27693
 
class WinTypeKeywords;
 
37182
class ExtGnu;
27694
37183
class PragmaOnceUnitState;
27695
37184
class PragmaOnce;
27696
 
class CCExprResolve;
27697
 
class CExprResolve;
 
37185
class CMatchSyntax;
27698
37186
namespace Puma {
27699
37187
 
27700
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37188
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27701
37189
class CT_AccessDecl : public CT_Decl {
27702
 
#line 27703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37190
#line 37191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37191
  friend class ::CCExprResolve;
 
37192
  friend class ::CExprResolve;
27703
37193
  friend class ::WinIfExists;
27704
37194
  friend class ::WinImportHandler;
27705
37195
  friend class ::WinMacros;
27706
 
  friend class ::CMatchSyntax;
27707
 
  friend class ::ExtGnu;
 
37196
  friend class ::WinAsm;
 
37197
  friend class ::WinDeclSpecs;
 
37198
  friend class ::WinMemberExplSpec;
 
37199
  friend class ::WinTypeKeywords;
 
37200
  friend class ::WinFriend;
27708
37201
  friend class ::ExtAC;
27709
37202
  friend class ::ExtACBuilderCoupling;
27710
37203
  friend class ::ExtACSyntaxCoupling;
27711
37204
  friend class ::ExtACTree;
27712
37205
  friend class ::ExtACKeywords;
27713
 
  friend class ::WinAsm;
27714
 
  friend class ::WinDeclSpecs;
27715
 
  friend class ::WinMemberExplSpec;
27716
 
  friend class ::WinTypeKeywords;
 
37206
  friend class ::ExtGnu;
27717
37207
  friend class ::PragmaOnceUnitState;
27718
37208
  friend class ::PragmaOnce;
27719
 
  friend class ::CCExprResolve;
27720
 
  friend class ::CExprResolve;
 
37209
  friend class ::CMatchSyntax;
27721
37210
 
27722
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37211
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27723
37212
 
27724
37213
  CTree *sons[2]; // name, semi_colon
27725
37214
 
27726
37215
public:
27727
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
37216
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
37217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27728
37218
  static const char *NodeId ();
 
37219
  /** Get the name of the node. Can be compared with NodeId(). */
27729
37220
  const char *NodeName () const { return NodeId (); }
 
37221
  /** Get the number of sons. */
27730
37222
  int Sons () const { return 2; }
 
37223
  /** Get the n-th son.
 
37224
   *  \param n The index of the son.
 
37225
   *  \return The n-th son or NULL. */
27731
37226
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
27732
37227
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
37228
  /** Replace a son.
 
37229
   *  \param old_son The son to replace.
 
37230
   *  \param new_son The new son. */
27733
37231
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27734
37232
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27735
37233
  }
27736
37234
};
27737
37235
 
27738
37236
 
27739
 
#line 27740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37237
#line 37238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27740
37238
} // closed Puma
 
37239
class CCExprResolve;
 
37240
class CExprResolve;
27741
37241
class WinIfExists;
27742
37242
class WinImportHandler;
27743
37243
class WinMacros;
27744
 
class CMatchSyntax;
27745
 
class ExtGnu;
 
37244
class WinAsm;
 
37245
class WinDeclSpecs;
 
37246
class WinMemberExplSpec;
 
37247
class WinTypeKeywords;
 
37248
class WinFriend;
27746
37249
class ExtAC;
27747
37250
class ExtACBuilderCoupling;
27748
37251
class ExtACSyntaxCoupling;
27749
37252
class ExtACTree;
27750
37253
class ExtACKeywords;
27751
 
class WinAsm;
27752
 
class WinDeclSpecs;
27753
 
class WinMemberExplSpec;
27754
 
class WinTypeKeywords;
 
37254
class ExtGnu;
27755
37255
class PragmaOnceUnitState;
27756
37256
class PragmaOnce;
27757
 
class CCExprResolve;
27758
 
class CExprResolve;
 
37257
class CMatchSyntax;
27759
37258
namespace Puma {
27760
37259
 
27761
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37260
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27762
37261
class CT_UsingDecl : public CT_AccessDecl {
27763
 
#line 27764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37262
#line 37263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37263
  friend class ::CCExprResolve;
 
37264
  friend class ::CExprResolve;
27764
37265
  friend class ::WinIfExists;
27765
37266
  friend class ::WinImportHandler;
27766
37267
  friend class ::WinMacros;
27767
 
  friend class ::CMatchSyntax;
27768
 
  friend class ::ExtGnu;
 
37268
  friend class ::WinAsm;
 
37269
  friend class ::WinDeclSpecs;
 
37270
  friend class ::WinMemberExplSpec;
 
37271
  friend class ::WinTypeKeywords;
 
37272
  friend class ::WinFriend;
27769
37273
  friend class ::ExtAC;
27770
37274
  friend class ::ExtACBuilderCoupling;
27771
37275
  friend class ::ExtACSyntaxCoupling;
27772
37276
  friend class ::ExtACTree;
27773
37277
  friend class ::ExtACKeywords;
27774
 
  friend class ::WinAsm;
27775
 
  friend class ::WinDeclSpecs;
27776
 
  friend class ::WinMemberExplSpec;
27777
 
  friend class ::WinTypeKeywords;
 
37278
  friend class ::ExtGnu;
27778
37279
  friend class ::PragmaOnceUnitState;
27779
37280
  friend class ::PragmaOnce;
27780
 
  friend class ::CCExprResolve;
27781
 
  friend class ::CExprResolve;
 
37281
  friend class ::CMatchSyntax;
27782
37282
 
27783
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37283
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27784
37284
 
27785
37285
  CTree *sons[2]; // using, typename
27786
37286
 
27787
37287
public:
27788
37288
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
27789
 
    sons[0] = u; sons[1] = 0; 
 
37289
    AddSon (sons[0], u); AddSon (sons[1], 0); 
27790
37290
  }
27791
37291
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
27792
 
    sons[0] = u; sons[1] = t; 
 
37292
    AddSon (sons[0], u); AddSon (sons[1], t); 
27793
37293
  }
 
37294
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27794
37295
  static const char *NodeId ();
 
37296
  /** Get the name of the node. Can be compared with NodeId(). */
27795
37297
  const char *NodeName () const { return NodeId (); }
 
37298
  /** Get the number of sons. */
27796
37299
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
37300
  /** Get the n-th son.
 
37301
   *  \param n The index of the son.
 
37302
   *  \return The n-th son or NULL. */
27797
37303
  CTree *Son (int n) const {
27798
37304
    int num = CTree::Sons (sons, 2);
27799
37305
    CTree *result = CTree::Son (sons, 2, n);
27800
37306
    return result ? result : CT_AccessDecl::Son (n-num);
27801
37307
  }
27802
37308
  CTree *Typename () const { return sons[1]; }
 
37309
  /** Replace a son.
 
37310
   *  \param old_son The son to replace.
 
37311
   *  \param new_son The new son. */
27803
37312
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27804
37313
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27805
37314
    CT_AccessDecl::ReplaceSon (old_son, new_son);
27813
37322
/*****************************************************************************/
27814
37323
 
27815
37324
 
27816
 
#line 27817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37325
#line 37326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27817
37326
} // closed Puma
 
37327
class CCExprResolve;
 
37328
class CExprResolve;
27818
37329
class WinIfExists;
27819
37330
class WinImportHandler;
27820
37331
class WinMacros;
27821
 
class CMatchSyntax;
27822
 
class ExtGnu;
 
37332
class WinAsm;
 
37333
class WinDeclSpecs;
 
37334
class WinMemberExplSpec;
 
37335
class WinTypeKeywords;
 
37336
class WinFriend;
27823
37337
class ExtAC;
27824
37338
class ExtACBuilderCoupling;
27825
37339
class ExtACSyntaxCoupling;
27826
37340
class ExtACTree;
27827
37341
class ExtACKeywords;
27828
 
class WinAsm;
27829
 
class WinDeclSpecs;
27830
 
class WinMemberExplSpec;
27831
 
class WinTypeKeywords;
 
37342
class ExtGnu;
27832
37343
class PragmaOnceUnitState;
27833
37344
class PragmaOnce;
27834
 
class CCExprResolve;
27835
 
class CExprResolve;
 
37345
class CMatchSyntax;
27836
37346
namespace Puma {
27837
37347
 
27838
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37348
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27839
37349
class CT_Any : public CTree {
27840
 
#line 27841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37350
#line 37351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37351
  friend class ::CCExprResolve;
 
37352
  friend class ::CExprResolve;
27841
37353
  friend class ::WinIfExists;
27842
37354
  friend class ::WinImportHandler;
27843
37355
  friend class ::WinMacros;
27844
 
  friend class ::CMatchSyntax;
27845
 
  friend class ::ExtGnu;
 
37356
  friend class ::WinAsm;
 
37357
  friend class ::WinDeclSpecs;
 
37358
  friend class ::WinMemberExplSpec;
 
37359
  friend class ::WinTypeKeywords;
 
37360
  friend class ::WinFriend;
27846
37361
  friend class ::ExtAC;
27847
37362
  friend class ::ExtACBuilderCoupling;
27848
37363
  friend class ::ExtACSyntaxCoupling;
27849
37364
  friend class ::ExtACTree;
27850
37365
  friend class ::ExtACKeywords;
27851
 
  friend class ::WinAsm;
27852
 
  friend class ::WinDeclSpecs;
27853
 
  friend class ::WinMemberExplSpec;
27854
 
  friend class ::WinTypeKeywords;
 
37366
  friend class ::ExtGnu;
27855
37367
  friend class ::PragmaOnceUnitState;
27856
37368
  friend class ::PragmaOnce;
27857
 
  friend class ::CCExprResolve;
27858
 
  friend class ::CExprResolve;
 
37369
  friend class ::CMatchSyntax;
27859
37370
 
27860
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37371
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27861
37372
 
27862
37373
  CTree *sons[2]; // keyword, extension
27863
37374
 
27864
37375
public:
27865
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
37376
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
37377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27866
37378
  static const char *NodeId ();
 
37379
  /** Get the name of the node. Can be compared with NodeId(). */
27867
37380
  const char *NodeName () const { return NodeId (); }
 
37381
  /** Get the number of sons. */
27868
37382
  int Sons () const { return CTree::Sons (sons, 2); }
 
37383
  /** Get the n-th son.
 
37384
   *  \param n The index of the son.
 
37385
   *  \return The n-th son or NULL. */
27869
37386
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
37387
  /** Replace a son.
 
37388
   *  \param old_son The son to replace.
 
37389
   *  \param new_son The new son. */
27870
37390
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27871
37391
    CTree::ReplaceSon (sons, 2, old_son, new_son);
27872
37392
  }
27875
37395
};
27876
37396
 
27877
37397
 
27878
 
#line 27879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37398
#line 37399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27879
37399
} // closed Puma
 
37400
class CCExprResolve;
 
37401
class CExprResolve;
27880
37402
class WinIfExists;
27881
37403
class WinImportHandler;
27882
37404
class WinMacros;
27883
 
class CMatchSyntax;
27884
 
class ExtGnu;
 
37405
class WinAsm;
 
37406
class WinDeclSpecs;
 
37407
class WinMemberExplSpec;
 
37408
class WinTypeKeywords;
 
37409
class WinFriend;
27885
37410
class ExtAC;
27886
37411
class ExtACBuilderCoupling;
27887
37412
class ExtACSyntaxCoupling;
27888
37413
class ExtACTree;
27889
37414
class ExtACKeywords;
27890
 
class WinAsm;
27891
 
class WinDeclSpecs;
27892
 
class WinMemberExplSpec;
27893
 
class WinTypeKeywords;
 
37415
class ExtGnu;
27894
37416
class PragmaOnceUnitState;
27895
37417
class PragmaOnce;
27896
 
class CCExprResolve;
27897
 
class CExprResolve;
 
37418
class CMatchSyntax;
27898
37419
namespace Puma {
27899
37420
 
27900
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37421
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27901
37422
class CT_AnyList : public CT_Any {
27902
 
#line 27903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37423
#line 37424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37424
  friend class ::CCExprResolve;
 
37425
  friend class ::CExprResolve;
27903
37426
  friend class ::WinIfExists;
27904
37427
  friend class ::WinImportHandler;
27905
37428
  friend class ::WinMacros;
27906
 
  friend class ::CMatchSyntax;
27907
 
  friend class ::ExtGnu;
 
37429
  friend class ::WinAsm;
 
37430
  friend class ::WinDeclSpecs;
 
37431
  friend class ::WinMemberExplSpec;
 
37432
  friend class ::WinTypeKeywords;
 
37433
  friend class ::WinFriend;
27908
37434
  friend class ::ExtAC;
27909
37435
  friend class ::ExtACBuilderCoupling;
27910
37436
  friend class ::ExtACSyntaxCoupling;
27911
37437
  friend class ::ExtACTree;
27912
37438
  friend class ::ExtACKeywords;
27913
 
  friend class ::WinAsm;
27914
 
  friend class ::WinDeclSpecs;
27915
 
  friend class ::WinMemberExplSpec;
27916
 
  friend class ::WinTypeKeywords;
 
37439
  friend class ::ExtGnu;
27917
37440
  friend class ::PragmaOnceUnitState;
27918
37441
  friend class ::PragmaOnce;
27919
 
  friend class ::CCExprResolve;
27920
 
  friend class ::CExprResolve;
 
37442
  friend class ::CMatchSyntax;
27921
37443
 
27922
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37444
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27923
37445
 
27924
37446
public:
27925
37447
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
37448
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27926
37449
  static const char *NodeId ();
 
37450
  /** Get the name of the node. Can be compared with NodeId(). */
27927
37451
  const char *NodeName () const { return NodeId (); }
27928
37452
};
27929
37453
 
27930
37454
 
27931
 
#line 27932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37455
#line 37456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
27932
37456
} // closed Puma
 
37457
class CCExprResolve;
 
37458
class CExprResolve;
27933
37459
class WinIfExists;
27934
37460
class WinImportHandler;
27935
37461
class WinMacros;
27936
 
class CMatchSyntax;
27937
 
class ExtGnu;
 
37462
class WinAsm;
 
37463
class WinDeclSpecs;
 
37464
class WinMemberExplSpec;
 
37465
class WinTypeKeywords;
 
37466
class WinFriend;
27938
37467
class ExtAC;
27939
37468
class ExtACBuilderCoupling;
27940
37469
class ExtACSyntaxCoupling;
27941
37470
class ExtACTree;
27942
37471
class ExtACKeywords;
27943
 
class WinAsm;
27944
 
class WinDeclSpecs;
27945
 
class WinMemberExplSpec;
27946
 
class WinTypeKeywords;
 
37472
class ExtGnu;
27947
37473
class PragmaOnceUnitState;
27948
37474
class PragmaOnce;
27949
 
class CCExprResolve;
27950
 
class CExprResolve;
 
37475
class CMatchSyntax;
27951
37476
namespace Puma {
27952
37477
 
27953
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37478
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27954
37479
class CT_AnyExtension : public CTree, public CSemValue {
27955
 
#line 27956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37480
#line 37481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37481
  friend class ::CCExprResolve;
 
37482
  friend class ::CExprResolve;
27956
37483
  friend class ::WinIfExists;
27957
37484
  friend class ::WinImportHandler;
27958
37485
  friend class ::WinMacros;
27959
 
  friend class ::CMatchSyntax;
27960
 
  friend class ::ExtGnu;
 
37486
  friend class ::WinAsm;
 
37487
  friend class ::WinDeclSpecs;
 
37488
  friend class ::WinMemberExplSpec;
 
37489
  friend class ::WinTypeKeywords;
 
37490
  friend class ::WinFriend;
27961
37491
  friend class ::ExtAC;
27962
37492
  friend class ::ExtACBuilderCoupling;
27963
37493
  friend class ::ExtACSyntaxCoupling;
27964
37494
  friend class ::ExtACTree;
27965
37495
  friend class ::ExtACKeywords;
27966
 
  friend class ::WinAsm;
27967
 
  friend class ::WinDeclSpecs;
27968
 
  friend class ::WinMemberExplSpec;
27969
 
  friend class ::WinTypeKeywords;
 
37496
  friend class ::ExtGnu;
27970
37497
  friend class ::PragmaOnceUnitState;
27971
37498
  friend class ::PragmaOnce;
27972
 
  friend class ::CCExprResolve;
27973
 
  friend class ::CExprResolve;
 
37499
  friend class ::CMatchSyntax;
27974
37500
 
27975
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37501
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
27976
37502
 
27977
37503
  CTree *sons[5]; // open, string, comma, cond, close
27978
37504
 
27979
37505
public:
27980
37506
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
27981
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
37507
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
37508
    AddSon (sons[3], c); AddSon (sons[4], cr); 
27982
37509
  }
 
37510
  /** Get the identifier for this node type. Can be compared with NodeName(). */
27983
37511
  static const char *NodeId ();
 
37512
  /** Get the name of the node. Can be compared with NodeId(). */
27984
37513
  const char *NodeName () const { return NodeId (); }
 
37514
  /** Get the number of sons. */
27985
37515
  int Sons () const { return CTree::Sons (sons, 5); }
 
37516
  /** Get the n-th son.
 
37517
   *  \param n The index of the son.
 
37518
   *  \return The n-th son or NULL. */
27986
37519
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
37520
  /** Replace a son.
 
37521
   *  \param old_son The son to replace.
 
37522
   *  \param new_son The new son. */
27987
37523
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
27988
37524
    CTree::ReplaceSon (sons, 5, old_son, new_son);
27989
37525
  }
27997
37533
};
27998
37534
 
27999
37535
 
28000
 
#line 28001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37536
#line 37537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28001
37537
} // closed Puma
 
37538
class CCExprResolve;
 
37539
class CExprResolve;
28002
37540
class WinIfExists;
28003
37541
class WinImportHandler;
28004
37542
class WinMacros;
28005
 
class CMatchSyntax;
28006
 
class ExtGnu;
 
37543
class WinAsm;
 
37544
class WinDeclSpecs;
 
37545
class WinMemberExplSpec;
 
37546
class WinTypeKeywords;
 
37547
class WinFriend;
28007
37548
class ExtAC;
28008
37549
class ExtACBuilderCoupling;
28009
37550
class ExtACSyntaxCoupling;
28010
37551
class ExtACTree;
28011
37552
class ExtACKeywords;
28012
 
class WinAsm;
28013
 
class WinDeclSpecs;
28014
 
class WinMemberExplSpec;
28015
 
class WinTypeKeywords;
 
37553
class ExtGnu;
28016
37554
class PragmaOnceUnitState;
28017
37555
class PragmaOnce;
28018
 
class CCExprResolve;
28019
 
class CExprResolve;
 
37556
class CMatchSyntax;
28020
37557
namespace Puma {
28021
37558
 
28022
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37559
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28023
37560
class CT_AnyCondition : public CTree {
28024
 
#line 28025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37561
#line 37562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37562
  friend class ::CCExprResolve;
 
37563
  friend class ::CExprResolve;
28025
37564
  friend class ::WinIfExists;
28026
37565
  friend class ::WinImportHandler;
28027
37566
  friend class ::WinMacros;
28028
 
  friend class ::CMatchSyntax;
28029
 
  friend class ::ExtGnu;
 
37567
  friend class ::WinAsm;
 
37568
  friend class ::WinDeclSpecs;
 
37569
  friend class ::WinMemberExplSpec;
 
37570
  friend class ::WinTypeKeywords;
 
37571
  friend class ::WinFriend;
28030
37572
  friend class ::ExtAC;
28031
37573
  friend class ::ExtACBuilderCoupling;
28032
37574
  friend class ::ExtACSyntaxCoupling;
28033
37575
  friend class ::ExtACTree;
28034
37576
  friend class ::ExtACKeywords;
28035
 
  friend class ::WinAsm;
28036
 
  friend class ::WinDeclSpecs;
28037
 
  friend class ::WinMemberExplSpec;
28038
 
  friend class ::WinTypeKeywords;
 
37577
  friend class ::ExtGnu;
28039
37578
  friend class ::PragmaOnceUnitState;
28040
37579
  friend class ::PragmaOnce;
28041
 
  friend class ::CCExprResolve;
28042
 
  friend class ::CExprResolve;
 
37580
  friend class ::CMatchSyntax;
28043
37581
 
28044
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
37582
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
28045
37583
 
28046
37584
  CTree *sons[3]; // arg1, arg2, arg3
28047
37585
 
28048
37586
public:
28049
37587
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
28050
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
37588
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
28051
37589
  }
 
37590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
28052
37591
  static const char *NodeId ();
 
37592
  /** Get the name of the node. Can be compared with NodeId(). */
28053
37593
  const char *NodeName () const { return NodeId (); }
 
37594
  /** Get the number of sons. */
28054
37595
  int Sons () const { return CTree::Sons (sons, 3); }
 
37596
  /** Get the n-th son.
 
37597
   *  \param n The index of the son.
 
37598
   *  \return The n-th son or NULL. */
28055
37599
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
37600
  /** Replace a son.
 
37601
   *  \param old_son The son to replace.
 
37602
   *  \param new_son The new son. */
28056
37603
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
28057
37604
    CTree::ReplaceSon (sons, 3, old_son, new_son);
28058
37605
  }
28063
37610
 
28064
37611
#endif /* __CTree_h__ */
28065
37612
 
28066
 
#line 28067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
28067
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
28068
 
 
28069
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
28070
 
 
28071
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
37613
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
28072
37614
namespace Puma {
28073
37615
 
28074
37616
 
28075
37617
class Token;
28076
37618
 
28077
37619
 
28078
 
#line 28079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37620
#line 37621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28079
37621
} // closed Puma
 
37622
class CCExprResolve;
 
37623
class CExprResolve;
28080
37624
class WinIfExists;
28081
37625
class WinImportHandler;
28082
37626
class WinMacros;
28083
 
class CMatchSyntax;
28084
 
class ExtGnu;
 
37627
class WinAsm;
 
37628
class WinDeclSpecs;
 
37629
class WinMemberExplSpec;
 
37630
class WinTypeKeywords;
 
37631
class WinFriend;
28085
37632
class ExtAC;
28086
37633
class ExtACBuilderCoupling;
28087
37634
class ExtACSyntaxCoupling;
28088
37635
class ExtACTree;
28089
37636
class ExtACKeywords;
28090
 
class WinAsm;
28091
 
class WinDeclSpecs;
28092
 
class WinMemberExplSpec;
28093
 
class WinTypeKeywords;
 
37637
class ExtGnu;
28094
37638
class PragmaOnceUnitState;
28095
37639
class PragmaOnce;
28096
 
class CCExprResolve;
28097
 
class CExprResolve;
 
37640
class CMatchSyntax;
28098
37641
namespace Puma {
28099
37642
 
28100
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
37643
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
28101
37644
class Builder : public PtrStack<CTree> {
28102
 
#line 28103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37645
#line 37646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37646
  friend class ::CCExprResolve;
 
37647
  friend class ::CExprResolve;
28103
37648
  friend class ::WinIfExists;
28104
37649
  friend class ::WinImportHandler;
28105
37650
  friend class ::WinMacros;
28106
 
  friend class ::CMatchSyntax;
28107
 
  friend class ::ExtGnu;
 
37651
  friend class ::WinAsm;
 
37652
  friend class ::WinDeclSpecs;
 
37653
  friend class ::WinMemberExplSpec;
 
37654
  friend class ::WinTypeKeywords;
 
37655
  friend class ::WinFriend;
28108
37656
  friend class ::ExtAC;
28109
37657
  friend class ::ExtACBuilderCoupling;
28110
37658
  friend class ::ExtACSyntaxCoupling;
28111
37659
  friend class ::ExtACTree;
28112
37660
  friend class ::ExtACKeywords;
28113
 
  friend class ::WinAsm;
28114
 
  friend class ::WinDeclSpecs;
28115
 
  friend class ::WinMemberExplSpec;
28116
 
  friend class ::WinTypeKeywords;
 
37661
  friend class ::ExtGnu;
28117
37662
  friend class ::PragmaOnceUnitState;
28118
37663
  friend class ::PragmaOnce;
28119
 
  friend class ::CCExprResolve;
28120
 
  friend class ::CExprResolve;
 
37664
  friend class ::CMatchSyntax;
28121
37665
 
28122
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
37666
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
28123
37667
 
28124
37668
protected:
28125
37669
  ErrorCollector ec;
28128
37672
public:
28129
37673
  // Container class to shift nodes from one level to another
28130
37674
  class Container : public CT_List {
28131
 
#line 28132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37675
#line 37676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37676
  friend class ::CCExprResolve;
 
37677
  friend class ::CExprResolve;
28132
37678
  friend class ::WinIfExists;
28133
37679
  friend class ::WinImportHandler;
28134
37680
  friend class ::WinMacros;
28135
 
  friend class ::CMatchSyntax;
28136
 
  friend class ::ExtGnu;
 
37681
  friend class ::WinAsm;
 
37682
  friend class ::WinDeclSpecs;
 
37683
  friend class ::WinMemberExplSpec;
 
37684
  friend class ::WinTypeKeywords;
 
37685
  friend class ::WinFriend;
28137
37686
  friend class ::ExtAC;
28138
37687
  friend class ::ExtACBuilderCoupling;
28139
37688
  friend class ::ExtACSyntaxCoupling;
28140
37689
  friend class ::ExtACTree;
28141
37690
  friend class ::ExtACKeywords;
28142
 
  friend class ::WinAsm;
28143
 
  friend class ::WinDeclSpecs;
28144
 
  friend class ::WinMemberExplSpec;
28145
 
  friend class ::WinTypeKeywords;
 
37691
  friend class ::ExtGnu;
28146
37692
  friend class ::PragmaOnceUnitState;
28147
37693
  friend class ::PragmaOnce;
28148
 
  friend class ::CCExprResolve;
28149
 
  friend class ::CExprResolve;
 
37694
  friend class ::CMatchSyntax;
28150
37695
 
28151
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
37696
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
28152
37697
 
28153
37698
  public:
28154
37699
    static const char *NodeId ();
28218
37763
 
28219
37764
#endif /* __Builder_h__ */
28220
37765
 
28221
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
37766
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28222
37767
//#include "Puma/Semantic.h"
28223
37768
 
28224
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
37769
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
28225
37770
// This file is part of PUMA.
28226
37771
// Copyright (C) 1999-2003  The PUMA developer team.
28227
37772
//                                                                
28247
37792
// look ahead.
28248
37793
 
28249
37794
 
28250
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
37795
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
28251
37796
// This file is part of PUMA.
28252
37797
// Copyright (C) 1999-2003  The PUMA developer team.
28253
37798
//                                                                
28275
37820
class Token;
28276
37821
 
28277
37822
 
28278
 
#line 28279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37823
#line 37824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28279
37824
} // closed Puma
 
37825
class CCExprResolve;
 
37826
class CExprResolve;
28280
37827
class WinIfExists;
28281
37828
class WinImportHandler;
28282
37829
class WinMacros;
28283
 
class CMatchSyntax;
28284
 
class ExtGnu;
 
37830
class WinAsm;
 
37831
class WinDeclSpecs;
 
37832
class WinMemberExplSpec;
 
37833
class WinTypeKeywords;
 
37834
class WinFriend;
28285
37835
class ExtAC;
28286
37836
class ExtACBuilderCoupling;
28287
37837
class ExtACSyntaxCoupling;
28288
37838
class ExtACTree;
28289
37839
class ExtACKeywords;
28290
 
class WinAsm;
28291
 
class WinDeclSpecs;
28292
 
class WinMemberExplSpec;
28293
 
class WinTypeKeywords;
 
37840
class ExtGnu;
28294
37841
class PragmaOnceUnitState;
28295
37842
class PragmaOnce;
28296
 
class CCExprResolve;
28297
 
class CExprResolve;
 
37843
class CMatchSyntax;
28298
37844
namespace Puma {
28299
37845
 
28300
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
37846
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
28301
37847
class PumaTokenSource {
28302
 
#line 28303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37848
#line 37849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37849
  friend class ::CCExprResolve;
 
37850
  friend class ::CExprResolve;
28303
37851
  friend class ::WinIfExists;
28304
37852
  friend class ::WinImportHandler;
28305
37853
  friend class ::WinMacros;
28306
 
  friend class ::CMatchSyntax;
28307
 
  friend class ::ExtGnu;
 
37854
  friend class ::WinAsm;
 
37855
  friend class ::WinDeclSpecs;
 
37856
  friend class ::WinMemberExplSpec;
 
37857
  friend class ::WinTypeKeywords;
 
37858
  friend class ::WinFriend;
28308
37859
  friend class ::ExtAC;
28309
37860
  friend class ::ExtACBuilderCoupling;
28310
37861
  friend class ::ExtACSyntaxCoupling;
28311
37862
  friend class ::ExtACTree;
28312
37863
  friend class ::ExtACKeywords;
28313
 
  friend class ::WinAsm;
28314
 
  friend class ::WinDeclSpecs;
28315
 
  friend class ::WinMemberExplSpec;
28316
 
  friend class ::WinTypeKeywords;
 
37864
  friend class ::ExtGnu;
28317
37865
  friend class ::PragmaOnceUnitState;
28318
37866
  friend class ::PragmaOnce;
28319
 
  friend class ::CCExprResolve;
28320
 
  friend class ::CExprResolve;
 
37867
  friend class ::CMatchSyntax;
28321
37868
 
28322
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
37869
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
28323
37870
 
28324
37871
protected:
28325
37872
  PumaTokenSource () {}
28334
37881
 
28335
37882
#endif /* __Token_Source__ */
28336
37883
 
28337
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
37884
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
28338
37885
namespace Puma {
28339
37886
 
28340
37887
 
28341
 
#line 28342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37888
#line 37889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28342
37889
} // closed Puma
 
37890
class CCExprResolve;
 
37891
class CExprResolve;
28343
37892
class WinIfExists;
28344
37893
class WinImportHandler;
28345
37894
class WinMacros;
28346
 
class CMatchSyntax;
28347
 
class ExtGnu;
 
37895
class WinAsm;
 
37896
class WinDeclSpecs;
 
37897
class WinMemberExplSpec;
 
37898
class WinTypeKeywords;
 
37899
class WinFriend;
28348
37900
class ExtAC;
28349
37901
class ExtACBuilderCoupling;
28350
37902
class ExtACSyntaxCoupling;
28351
37903
class ExtACTree;
28352
37904
class ExtACKeywords;
28353
 
class WinAsm;
28354
 
class WinDeclSpecs;
28355
 
class WinMemberExplSpec;
28356
 
class WinTypeKeywords;
 
37905
class ExtGnu;
28357
37906
class PragmaOnceUnitState;
28358
37907
class PragmaOnce;
28359
 
class CCExprResolve;
28360
 
class CExprResolve;
 
37908
class CMatchSyntax;
28361
37909
namespace Puma {
28362
37910
 
28363
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
37911
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
28364
37912
class TokenProvider {
28365
 
#line 28366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37913
#line 37914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
37914
  friend class ::CCExprResolve;
 
37915
  friend class ::CExprResolve;
28366
37916
  friend class ::WinIfExists;
28367
37917
  friend class ::WinImportHandler;
28368
37918
  friend class ::WinMacros;
28369
 
  friend class ::CMatchSyntax;
28370
 
  friend class ::ExtGnu;
 
37919
  friend class ::WinAsm;
 
37920
  friend class ::WinDeclSpecs;
 
37921
  friend class ::WinMemberExplSpec;
 
37922
  friend class ::WinTypeKeywords;
 
37923
  friend class ::WinFriend;
28371
37924
  friend class ::ExtAC;
28372
37925
  friend class ::ExtACBuilderCoupling;
28373
37926
  friend class ::ExtACSyntaxCoupling;
28374
37927
  friend class ::ExtACTree;
28375
37928
  friend class ::ExtACKeywords;
28376
 
  friend class ::WinAsm;
28377
 
  friend class ::WinDeclSpecs;
28378
 
  friend class ::WinMemberExplSpec;
28379
 
  friend class ::WinTypeKeywords;
 
37929
  friend class ::ExtGnu;
28380
37930
  friend class ::PragmaOnceUnitState;
28381
37931
  friend class ::PragmaOnce;
28382
 
  friend class ::CCExprResolve;
28383
 
  friend class ::CExprResolve;
 
37932
  friend class ::CMatchSyntax;
28384
37933
 
28385
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
37934
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
28386
37935
 
28387
37936
  
28388
37937
  typedef BCList<Token*, 8192> TokenStore;
28406
37955
    // go to the next read position
28407
37956
    ++_read_pos;
28408
37957
    // did we reach the end of the list?
28409
 
    if (_read_pos == _tokens.end ()) {
 
37958
    if (! _read_pos) {
28410
37959
      // add a new token to the token list
28411
37960
      Token *token = _source.next (); // get the next token from the source
28412
37961
      _read_pos = _tokens.add (token);
28426
37975
 
28427
37976
#endif /* __TokenProvider__ */
28428
37977
 
28429
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/TraceSyntax.ah"
28430
 
// This file is part of PUMA.
28431
 
// Copyright (C) 1999-2003  The PUMA developer team.
28432
 
//                                                                
28433
 
// This program is free software;  you can redistribute it and/or 
28434
 
// modify it under the terms of the GNU General Public License as 
28435
 
// published by the Free Software Foundation; either version 2 of 
28436
 
// the License, or (at your option) any later version.            
28437
 
//                                                                
28438
 
// This program is distributed in the hope that it will be useful,
28439
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
28440
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
28441
 
// GNU General Public License for more details.                   
28442
 
//                                                                
28443
 
// You should have received a copy of the GNU General Public      
28444
 
// License along with this program; if not, write to the Free     
28445
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
28446
 
// MA  02111-1307  USA                                            
28447
 
 
28448
 
#ifndef __TraceSyntax_ah__
28449
 
#define __TraceSyntax_ah__
28450
 
 
28451
 
#ifndef NDEBUG
28452
 
 
28453
 
#include "Puma/Tracing.h"
28454
 
//#include "Puma/TokenProvider.h"
28455
 
 
28456
 
 
28457
 
namespace Puma {
28458
 
  class CTree;
28459
 
} // namespace Puma
28460
 
 
28461
 
 
28462
 
using namespace Puma;
28463
 
 
28464
 
 
28465
 
aspect TraceSyntax : public Tracing {
28466
 
  int skipping;
28467
 
  
28468
 
  void trace_rule (const char *sig) {
28469
 
    char rule[256];
28470
 
    while (*sig != ' ') 
28471
 
      sig++;
28472
 
    sig += 1;
28473
 
    while (*sig != ':') 
28474
 
      sig++;
28475
 
    sig += 2;
28476
 
    char *rptr = rule;
28477
 
    while (*sig != '(')
28478
 
      *rptr++ = *sig++;
28479
 
    *rptr = '\0';
28480
 
    trace (rule);
28481
 
  }
28482
 
 
28483
 
public:
28484
 
  TraceSyntax () : skipping (0) {}
28485
 
 
28486
 
  // Create instances an define locator function
28487
 
  static TraceSyntax* aspectOf () 
28488
 
   { return thisJoinPoint->that ()->trace_aspect (); }
28489
 
 
28490
 
  // structural extensions
28491
 
  pointcut syntax () = "Puma::Syntax";
28492
 
  pointcut parser () = "Puma::Parser";
28493
 
 
28494
 
  advice syntax () : slice class {
28495
 
    TraceSyntax __trace;
28496
 
  public:
28497
 
    TraceSyntax *trace_aspect () { return &__trace; }
28498
 
    TokenProvider *__tp () { return token_provider; }
28499
 
  };
28500
 
  
28501
 
  // add initialization function to Parser
28502
 
  advice parser () : slice class {
28503
 
  public:
28504
 
    void trace (ostream &out, bool tokens = false) {
28505
 
      syntax->trace_aspect ()->trace (out, tokens);
28506
 
    }
28507
 
  };
28508
 
  
28509
 
  // advice code for rules
28510
 
  advice within (derived (syntax ()) && ! syntax ()) &&
28511
 
   execution ("%::CTree * Puma::%::%()") : before () 
28512
 
   { trace_rule (JoinPoint::signature ()); }
28513
 
 
28514
 
  advice within (syntax ()) && args (result, "%::Syntax::State") &&
28515
 
  execution ("bool Puma::%::accept(...)") : before (CTree *result) {
28516
 
    trace (result ? "ACCEPT" : "FAILED", -1);
28517
 
  }
28518
 
 
28519
 
  advice within (syntax ()) && execution ("% Puma::%::locate_token()") : after ()
28520
 
   { if (! skipping) this->trace (thisJoinPoint->that ()->
28521
 
                     __tp ()->current (), "INPUT", "INPUT END"); }
28522
 
 
28523
 
  // trace reset operations
28524
 
  // because of a problem in AspectC++ or PUMA we cannot expose 'state' here!!! fix me.
28525
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::set_state(...)") /* &&
28526
 
    args (state) */ : around (/* TokenProvider::State state */) {
28527
 
    bool diff = (*tjp->arg<0>() != tjp->target ()->get_state ());
28528
 
    tjp->proceed ();
28529
 
    if (diff )
28530
 
      trace (**tjp->arg<0>(), "RESET", "INPUT END");
28531
 
  }
28532
 
 
28533
 
  // tracing for token provider calls within skip functions
28534
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::next()") : before ()
28535
 
   { if (skipping && trace_mode ())
28536
 
       tos () << thisJoinPoint->target ()->current ()->text () << " "; }
28537
 
 
28538
 
  // trace token if required
28539
 
  advice within (syntax ()) && execution ("bool Puma::%::parse_token(...)") && 
28540
 
   args (tok) : around (int tok)
28541
 
   { if (trace_mode () == 2) trace (tok);
28542
 
     thisJoinPoint->action ().trigger ();
28543
 
     if (trace_mode () == 2)
28544
 
       trace (*(bool*)thisJoinPoint->result () ? "ACCEPT" : "FAILED", -1);}
28545
 
       
28546
 
  // trace consumed tokens
28547
 
  advice within (syntax ()) && execution ("bool Puma::%::consume()") : before () {
28548
 
    if (trace_mode () == 2) {
28549
 
      trace (tjp->that ()->token_provider->current ()->type ());
28550
 
      trace ("ACCEPT", -1);
28551
 
    }
28552
 
  }
28553
 
 
28554
 
  advice within (syntax ()) && execution ("% Puma::%::skip(...)") : around () {
28555
 
    skipping++;
28556
 
    if (trace_mode ()) tos () << "SKIP: ";
28557
 
    thisJoinPoint->action ().trigger ();
28558
 
    if (trace_mode ()) tos () << endl;
28559
 
    skipping--;
28560
 
  }
28561
 
 
28562
 
  advice within (syntax ()) && execution ("% Puma::%::skip_block()") : around () {
28563
 
    skipping++;
28564
 
    if (trace_mode ()) tos () << "SKIP_BLOCK: ";
28565
 
    thisJoinPoint->action ().trigger ();
28566
 
    if (trace_mode ()) tos () << endl;
28567
 
    skipping--;
28568
 
  }
28569
 
};
28570
 
 
28571
 
#endif
28572
 
 
28573
 
#endif /* __TraceSyntax_ah__ */
28574
 
 
28575
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
37978
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28576
37979
namespace Puma {
28577
37980
 
28578
37981
class Semantic;
28580
37983
class CTree;
28581
37984
 
28582
37985
 
28583
 
#line 28584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
37986
#line 37987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28584
37987
} // closed Puma
 
37988
class CCExprResolve;
 
37989
class CExprResolve;
28585
37990
class WinIfExists;
28586
37991
class WinImportHandler;
28587
37992
class WinMacros;
28588
 
class CMatchSyntax;
28589
 
class ExtGnu;
 
37993
class WinAsm;
 
37994
class WinDeclSpecs;
 
37995
class WinMemberExplSpec;
 
37996
class WinTypeKeywords;
 
37997
class WinFriend;
28590
37998
class ExtAC;
28591
37999
class ExtACBuilderCoupling;
28592
38000
class ExtACSyntaxCoupling;
28593
38001
class ExtACTree;
28594
38002
class ExtACKeywords;
28595
 
class WinAsm;
28596
 
class WinDeclSpecs;
28597
 
class WinMemberExplSpec;
28598
 
class WinTypeKeywords;
 
38003
class ExtGnu;
28599
38004
class PragmaOnceUnitState;
28600
38005
class PragmaOnce;
28601
 
class CCExprResolve;
28602
 
class CExprResolve;
 
38006
class CMatchSyntax;
28603
38007
namespace Puma {
28604
38008
 
28605
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38009
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28606
38010
class Syntax {
28607
 
#line 28608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38011
#line 38012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38012
  friend class ::CCExprResolve;
 
38013
  friend class ::CExprResolve;
28608
38014
  friend class ::WinIfExists;
28609
38015
  friend class ::WinImportHandler;
28610
38016
  friend class ::WinMacros;
28611
 
  friend class ::CMatchSyntax;
28612
 
  friend class ::ExtGnu;
 
38017
  friend class ::WinAsm;
 
38018
  friend class ::WinDeclSpecs;
 
38019
  friend class ::WinMemberExplSpec;
 
38020
  friend class ::WinTypeKeywords;
 
38021
  friend class ::WinFriend;
28613
38022
  friend class ::ExtAC;
28614
38023
  friend class ::ExtACBuilderCoupling;
28615
38024
  friend class ::ExtACSyntaxCoupling;
28616
38025
  friend class ::ExtACTree;
28617
38026
  friend class ::ExtACKeywords;
28618
 
  friend class ::WinAsm;
28619
 
  friend class ::WinDeclSpecs;
28620
 
  friend class ::WinMemberExplSpec;
28621
 
  friend class ::WinTypeKeywords;
 
38027
  friend class ::ExtGnu;
28622
38028
  friend class ::PragmaOnceUnitState;
28623
38029
  friend class ::PragmaOnce;
28624
 
  friend class ::CCExprResolve;
28625
 
  friend class ::CExprResolve;
 
38030
  friend class ::CMatchSyntax;
28626
38031
 
28627
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38032
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28628
38033
 
28629
38034
  Token *_problem_token;
28630
38035
  bool _have_error;
28637
38042
 
28638
38043
public: 
28639
38044
  struct State : public TokenProvider::State {
28640
 
#line 28641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38045
#line 38046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38046
  friend class ::CCExprResolve;
 
38047
  friend class ::CExprResolve;
28641
38048
  friend class ::WinIfExists;
28642
38049
  friend class ::WinImportHandler;
28643
38050
  friend class ::WinMacros;
28644
 
  friend class ::CMatchSyntax;
28645
 
  friend class ::ExtGnu;
 
38051
  friend class ::WinAsm;
 
38052
  friend class ::WinDeclSpecs;
 
38053
  friend class ::WinMemberExplSpec;
 
38054
  friend class ::WinTypeKeywords;
 
38055
  friend class ::WinFriend;
28646
38056
  friend class ::ExtAC;
28647
38057
  friend class ::ExtACBuilderCoupling;
28648
38058
  friend class ::ExtACSyntaxCoupling;
28649
38059
  friend class ::ExtACTree;
28650
38060
  friend class ::ExtACKeywords;
28651
 
  friend class ::WinAsm;
28652
 
  friend class ::WinDeclSpecs;
28653
 
  friend class ::WinMemberExplSpec;
28654
 
  friend class ::WinTypeKeywords;
 
38061
  friend class ::ExtGnu;
28655
38062
  friend class ::PragmaOnceUnitState;
28656
38063
  friend class ::PragmaOnce;
28657
 
  friend class ::CCExprResolve;
28658
 
  friend class ::CExprResolve;
 
38064
  friend class ::CMatchSyntax;
28659
38065
 
28660
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38066
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28661
38067
 
28662
38068
    State () {}
28663
38069
    State (int) {}
28672
38078
  CTree *run (TokenProvider &);
28673
38079
  template <class T> CTree *run (TokenProvider &, CTree *(T::*)());
28674
38080
  
28675
 
#line 28676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
28676
 
 
28677
 
 
28678
 
struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
28679
 
  typedef void Result;
28680
 
  typedef ::Puma::Syntax That;
28681
 
  typedef ::Puma::Syntax Target;
 
38081
#line 38082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38082
 
 
38083
 
 
38084
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
 
38085
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 __TJP;
 
38086
  typedef TResult Result;
 
38087
  typedef TThat   That;
 
38088
  typedef TTarget Target;
 
38089
  enum { ARGS = TArgs::ARGS };
 
38090
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
28682
38091
  static const int JPID = 54;
28683
38092
  static const AC::JPType JPTYPE = (AC::JPType)8;
28684
38093
  struct Res {
28685
 
    typedef void Type;
28686
 
    typedef void ReferredType;
28687
 
  };
28688
 
  enum { ARGS = 1 };
28689
 
  template <int I, int DUMMY = 0> struct Arg {
28690
 
    typedef void Type;
28691
 
    typedef void ReferredType;
28692
 
  };
28693
 
  template <int DUMMY> struct Arg<0, DUMMY> {
28694
 
    typedef ::Puma::Config & Type;
28695
 
    typedef ::Puma::Config ReferredType;
 
38094
    typedef TResult Type;
 
38095
    typedef TResult ReferredType;
28696
38096
  };
28697
38097
 
28698
 
  void **_args;
 
38098
  void *_args[ARGS];
28699
38099
 
28700
38100
  inline void *arg (int n) {return _args[n];}
28701
38101
  template <int I> typename Arg<I>::ReferredType *arg () {
28702
38102
    return (typename Arg<I>::ReferredType*)arg (I);
28703
38103
  }
28704
38104
 
28705
 
};
28706
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before {
28707
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
28708
 
  template <int I, int DUMMY = 0> struct Arg {
28709
 
    void val (TJP *tjp) {} // for VC7
28710
 
  };
28711
 
  template <int DUMMY> struct Arg<0, DUMMY> {
28712
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
28713
 
  };
28714
 
};
28715
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before {
28716
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
28717
 
  template <int I, int DUMMY = 0> struct Arg {
28718
 
    void val (TJP *tjp) {} // for VC7
28719
 
  };
28720
 
  template <int DUMMY> struct Arg<0, DUMMY> {
28721
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
28722
 
  };
28723
 
};
28724
 
 
28725
 
 
28726
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38105
struct Binding_CMatchSyntax_CMatchSyntax_a25_before {
 
38106
  typedef __TJP TJP;
 
38107
  template <int I, int DUMMY = 0> struct Arg {
 
38108
    void val (TJP *tjp) {} // for VC7
 
38109
  };
 
38110
  template <int DUMMY> struct Arg<0, DUMMY> {
 
38111
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
38112
  };
 
38113
};
 
38114
struct Binding_ExtGnu_ExtGnu_a15_before {
 
38115
  typedef __TJP TJP;
 
38116
  template <int I, int DUMMY = 0> struct Arg {
 
38117
    void val (TJP *tjp) {} // for VC7
 
38118
  };
 
38119
  template <int DUMMY> struct Arg<0, DUMMY> {
 
38120
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
38121
  };
 
38122
};
 
38123
};
 
38124
 
 
38125
 
 
38126
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28727
38127
virtual void configure (Config & arg0) 
28728
 
#line 28729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38128
#line 38129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28729
38129
{
28730
 
  void *args__ZN4Puma6Syntax9configureERN4PumaE6Config[] = { (void*)&arg0 };
28731
 
  TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 tjp;
28732
 
  tjp._args = args__ZN4Puma6Syntax9configureERN4PumaE6Config;
28733
 
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before> (&tjp);
28734
 
  AC::invoke_ExtGnu_ExtGnu_a15_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before> (&tjp);
28735
 
this->__exec_old_configure(arg0);
28736
 
 
 
38130
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0< void, ::Puma::Syntax , ::Puma::Syntax ,  AC::TL< ::Puma::Config & , AC::TLE > > __TJP;
 
38131
    __TJP tjp;
 
38132
  tjp._args[0] = (void*)&arg0;
 
38133
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<__TJP> (&tjp);
 
38134
  AC::invoke_ExtGnu_ExtGnu_a15_before<__TJP> (&tjp);
 
38135
    this->__exec_old_configure(arg0);
 
38136
  
28737
38137
}
28738
 
inline void __exec_old_configure(::Puma::Config & )
28739
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38138
__attribute__((always_inline)) inline void __exec_old_configure(::Puma::Config & )
 
38139
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
28740
38140
{}
28741
38141
  TokenProvider *provider () const { return token_provider; }
28742
38142
  Token *problem () const;
28946
38346
 
28947
38347
#endif /* __Syntax_h__ */
28948
38348
 
28949
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38349
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
28950
38350
// This file is part of PUMA.
28951
38351
// Copyright (C) 1999-2003  The PUMA developer team.
28952
38352
//                                                                
28971
38371
// data object info (variables, class data members)
28972
38372
 
28973
38373
 
28974
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38374
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
28975
38375
namespace Puma {
28976
38376
 
28977
38377
 
28989
38389
 *  A CAttributeInfo object represents a local or global variable 
28990
38390
 *  or a class data member. */
28991
38391
 
28992
 
#line 28993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38392
#line 38393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
28993
38393
} // closed Puma
 
38394
class CCExprResolve;
 
38395
class CExprResolve;
28994
38396
class WinIfExists;
28995
38397
class WinImportHandler;
28996
38398
class WinMacros;
28997
 
class CMatchSyntax;
28998
 
class ExtGnu;
 
38399
class WinAsm;
 
38400
class WinDeclSpecs;
 
38401
class WinMemberExplSpec;
 
38402
class WinTypeKeywords;
 
38403
class WinFriend;
28999
38404
class ExtAC;
29000
38405
class ExtACBuilderCoupling;
29001
38406
class ExtACSyntaxCoupling;
29002
38407
class ExtACTree;
29003
38408
class ExtACKeywords;
29004
 
class WinAsm;
29005
 
class WinDeclSpecs;
29006
 
class WinMemberExplSpec;
29007
 
class WinTypeKeywords;
 
38409
class ExtGnu;
29008
38410
class PragmaOnceUnitState;
29009
38411
class PragmaOnce;
29010
 
class CCExprResolve;
29011
 
class CExprResolve;
 
38412
class CMatchSyntax;
29012
38413
namespace Puma {
29013
38414
 
29014
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38415
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
29015
38416
class CAttributeInfo : public CScopeRequest {
29016
 
#line 29017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38417
#line 38418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38418
  friend class ::CCExprResolve;
 
38419
  friend class ::CExprResolve;
29017
38420
  friend class ::WinIfExists;
29018
38421
  friend class ::WinImportHandler;
29019
38422
  friend class ::WinMacros;
29020
 
  friend class ::CMatchSyntax;
29021
 
  friend class ::ExtGnu;
 
38423
  friend class ::WinAsm;
 
38424
  friend class ::WinDeclSpecs;
 
38425
  friend class ::WinMemberExplSpec;
 
38426
  friend class ::WinTypeKeywords;
 
38427
  friend class ::WinFriend;
29022
38428
  friend class ::ExtAC;
29023
38429
  friend class ::ExtACBuilderCoupling;
29024
38430
  friend class ::ExtACSyntaxCoupling;
29025
38431
  friend class ::ExtACTree;
29026
38432
  friend class ::ExtACKeywords;
29027
 
  friend class ::WinAsm;
29028
 
  friend class ::WinDeclSpecs;
29029
 
  friend class ::WinMemberExplSpec;
29030
 
  friend class ::WinTypeKeywords;
 
38433
  friend class ::ExtGnu;
29031
38434
  friend class ::PragmaOnceUnitState;
29032
38435
  friend class ::PragmaOnce;
29033
 
  friend class ::CCExprResolve;
29034
 
  friend class ::CExprResolve;
 
38436
  friend class ::CMatchSyntax;
29035
38437
 
29036
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38438
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
29037
38439
 
29038
38440
  CTemplateInfo *_TemplateInfo;
29039
38441
  
29115
38517
 
29116
38518
#endif /* __CAttributeInfo_h__ */
29117
38519
 
29118
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
38520
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
29119
38521
// This file is part of PUMA.
29120
38522
// Copyright (C) 1999-2003  The PUMA developer team.
29121
38523
//                                                                
29140
38542
// function parameter info
29141
38543
 
29142
38544
 
29143
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
38545
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
29144
38546
namespace Puma {
29145
38547
 
29146
38548
 
29151
38553
/** \class CArgumentInfo CArgumentInfo.h Puma/infos/CArgumentInfo.h
29152
38554
 *  A CArgumentInfo object represents a function parameter declaration. */
29153
38555
 
29154
 
#line 29155 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38556
#line 38557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29155
38557
} // closed Puma
 
38558
class CCExprResolve;
 
38559
class CExprResolve;
29156
38560
class WinIfExists;
29157
38561
class WinImportHandler;
29158
38562
class WinMacros;
29159
 
class CMatchSyntax;
29160
 
class ExtGnu;
 
38563
class WinAsm;
 
38564
class WinDeclSpecs;
 
38565
class WinMemberExplSpec;
 
38566
class WinTypeKeywords;
 
38567
class WinFriend;
29161
38568
class ExtAC;
29162
38569
class ExtACBuilderCoupling;
29163
38570
class ExtACSyntaxCoupling;
29164
38571
class ExtACTree;
29165
38572
class ExtACKeywords;
29166
 
class WinAsm;
29167
 
class WinDeclSpecs;
29168
 
class WinMemberExplSpec;
29169
 
class WinTypeKeywords;
 
38573
class ExtGnu;
29170
38574
class PragmaOnceUnitState;
29171
38575
class PragmaOnce;
29172
 
class CCExprResolve;
29173
 
class CExprResolve;
 
38576
class CMatchSyntax;
29174
38577
namespace Puma {
29175
38578
 
29176
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
38579
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
29177
38580
class CArgumentInfo : public CScopeRequest {
29178
 
#line 29179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38581
#line 38582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38582
  friend class ::CCExprResolve;
 
38583
  friend class ::CExprResolve;
29179
38584
  friend class ::WinIfExists;
29180
38585
  friend class ::WinImportHandler;
29181
38586
  friend class ::WinMacros;
29182
 
  friend class ::CMatchSyntax;
29183
 
  friend class ::ExtGnu;
 
38587
  friend class ::WinAsm;
 
38588
  friend class ::WinDeclSpecs;
 
38589
  friend class ::WinMemberExplSpec;
 
38590
  friend class ::WinTypeKeywords;
 
38591
  friend class ::WinFriend;
29184
38592
  friend class ::ExtAC;
29185
38593
  friend class ::ExtACBuilderCoupling;
29186
38594
  friend class ::ExtACSyntaxCoupling;
29187
38595
  friend class ::ExtACTree;
29188
38596
  friend class ::ExtACKeywords;
29189
 
  friend class ::WinAsm;
29190
 
  friend class ::WinDeclSpecs;
29191
 
  friend class ::WinMemberExplSpec;
29192
 
  friend class ::WinTypeKeywords;
 
38597
  friend class ::ExtGnu;
29193
38598
  friend class ::PragmaOnceUnitState;
29194
38599
  friend class ::PragmaOnce;
29195
 
  friend class ::CCExprResolve;
29196
 
  friend class ::CExprResolve;
 
38600
  friend class ::CMatchSyntax;
29197
38601
 
29198
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
38602
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
29199
38603
 
29200
38604
  bool _hasDefaultArg; // can be set to true even without an init tree
29201
38605
                       // (needed for inline member functions)
29230
38634
 
29231
38635
#endif /* __CArgumentInfo_h__ */
29232
38636
 
29233
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
38637
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
29234
38638
// This file is part of PUMA.
29235
38639
// Copyright (C) 1999-2003  The PUMA developer team.
29236
38640
//                                                                
29253
38657
#define __ACIntroAnalyzer_h__
29254
38658
 
29255
38659
 
29256
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
38660
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
29257
38661
namespace Puma {
29258
38662
  class ACAspectInfo;
29259
38663
  class CClassDatabase;
29264
38668
namespace Puma {
29265
38669
 
29266
38670
 
29267
 
#line 29268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38671
#line 38672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29268
38672
} // closed Puma
 
38673
class CCExprResolve;
 
38674
class CExprResolve;
29269
38675
class WinIfExists;
29270
38676
class WinImportHandler;
29271
38677
class WinMacros;
29272
 
class CMatchSyntax;
29273
 
class ExtGnu;
 
38678
class WinAsm;
 
38679
class WinDeclSpecs;
 
38680
class WinMemberExplSpec;
 
38681
class WinTypeKeywords;
 
38682
class WinFriend;
29274
38683
class ExtAC;
29275
38684
class ExtACBuilderCoupling;
29276
38685
class ExtACSyntaxCoupling;
29277
38686
class ExtACTree;
29278
38687
class ExtACKeywords;
29279
 
class WinAsm;
29280
 
class WinDeclSpecs;
29281
 
class WinMemberExplSpec;
29282
 
class WinTypeKeywords;
 
38688
class ExtGnu;
29283
38689
class PragmaOnceUnitState;
29284
38690
class PragmaOnce;
29285
 
class CCExprResolve;
29286
 
class CExprResolve;
 
38691
class CMatchSyntax;
29287
38692
namespace Puma {
29288
38693
 
29289
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
38694
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
29290
38695
class ACIntroAnalyzer {
29291
 
#line 29292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38696
#line 38697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38697
  friend class ::CCExprResolve;
 
38698
  friend class ::CExprResolve;
29292
38699
  friend class ::WinIfExists;
29293
38700
  friend class ::WinImportHandler;
29294
38701
  friend class ::WinMacros;
29295
 
  friend class ::CMatchSyntax;
29296
 
  friend class ::ExtGnu;
 
38702
  friend class ::WinAsm;
 
38703
  friend class ::WinDeclSpecs;
 
38704
  friend class ::WinMemberExplSpec;
 
38705
  friend class ::WinTypeKeywords;
 
38706
  friend class ::WinFriend;
29297
38707
  friend class ::ExtAC;
29298
38708
  friend class ::ExtACBuilderCoupling;
29299
38709
  friend class ::ExtACSyntaxCoupling;
29300
38710
  friend class ::ExtACTree;
29301
38711
  friend class ::ExtACKeywords;
29302
 
  friend class ::WinAsm;
29303
 
  friend class ::WinDeclSpecs;
29304
 
  friend class ::WinMemberExplSpec;
29305
 
  friend class ::WinTypeKeywords;
 
38712
  friend class ::ExtGnu;
29306
38713
  friend class ::PragmaOnceUnitState;
29307
38714
  friend class ::PragmaOnce;
29308
 
  friend class ::CCExprResolve;
29309
 
  friend class ::CExprResolve;
 
38715
  friend class ::CMatchSyntax;
29310
38716
 
29311
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
38717
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
29312
38718
 
29313
38719
  CClassDatabase *_db;
29314
38720
  CScopeInfo *_current_scope;
29348
38754
 
29349
38755
#endif /* __ACIntroAnalyzer_h__ */
29350
38756
 
29351
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
38757
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
29352
38758
// This file is part of PUMA.
29353
38759
// Copyright (C) 1999-2003  The PUMA developer team.
29354
38760
//                                                                
29376
38782
 
29377
38783
namespace Puma {
29378
38784
  class CT_ClassDef;
 
38785
  class CT_Program;
29379
38786
}
29380
38787
 
29381
38788
namespace Puma {
29382
38789
 
29383
38790
 
29384
 
#line 29385 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38791
#line 38792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29385
38792
} // closed Puma
 
38793
class CCExprResolve;
 
38794
class CExprResolve;
29386
38795
class WinIfExists;
29387
38796
class WinImportHandler;
29388
38797
class WinMacros;
29389
 
class CMatchSyntax;
29390
 
class ExtGnu;
 
38798
class WinAsm;
 
38799
class WinDeclSpecs;
 
38800
class WinMemberExplSpec;
 
38801
class WinTypeKeywords;
 
38802
class WinFriend;
29391
38803
class ExtAC;
29392
38804
class ExtACBuilderCoupling;
29393
38805
class ExtACSyntaxCoupling;
29394
38806
class ExtACTree;
29395
38807
class ExtACKeywords;
29396
 
class WinAsm;
29397
 
class WinDeclSpecs;
29398
 
class WinMemberExplSpec;
29399
 
class WinTypeKeywords;
 
38808
class ExtGnu;
29400
38809
class PragmaOnceUnitState;
29401
38810
class PragmaOnce;
29402
 
class CCExprResolve;
29403
 
class CExprResolve;
 
38811
class CMatchSyntax;
29404
38812
namespace Puma {
29405
38813
 
29406
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
38814
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
29407
38815
class ACIntroducer {
29408
 
#line 29409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38816
#line 38817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38817
  friend class ::CCExprResolve;
 
38818
  friend class ::CExprResolve;
29409
38819
  friend class ::WinIfExists;
29410
38820
  friend class ::WinImportHandler;
29411
38821
  friend class ::WinMacros;
29412
 
  friend class ::CMatchSyntax;
29413
 
  friend class ::ExtGnu;
 
38822
  friend class ::WinAsm;
 
38823
  friend class ::WinDeclSpecs;
 
38824
  friend class ::WinMemberExplSpec;
 
38825
  friend class ::WinTypeKeywords;
 
38826
  friend class ::WinFriend;
29414
38827
  friend class ::ExtAC;
29415
38828
  friend class ::ExtACBuilderCoupling;
29416
38829
  friend class ::ExtACSyntaxCoupling;
29417
38830
  friend class ::ExtACTree;
29418
38831
  friend class ::ExtACKeywords;
29419
 
  friend class ::WinAsm;
29420
 
  friend class ::WinDeclSpecs;
29421
 
  friend class ::WinMemberExplSpec;
29422
 
  friend class ::WinTypeKeywords;
 
38832
  friend class ::ExtGnu;
29423
38833
  friend class ::PragmaOnceUnitState;
29424
38834
  friend class ::PragmaOnce;
29425
 
  friend class ::CCExprResolve;
29426
 
  friend class ::CExprResolve;
 
38835
  friend class ::CMatchSyntax;
29427
38836
 
29428
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
38837
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
29429
38838
 
29430
38839
public:
29431
38840
  virtual ~ACIntroducer () {}
29432
38841
  
29433
38842
  // called when a new class/union/struct/aspect is created, current scope
29434
38843
  // is the global scope
29435
 
  virtual void class_before (CT_ClassDef*) {};
 
38844
  virtual void class_before (CT_ClassDef*) {}
29436
38845
 
29437
38846
  // called when a new class/union/struct/aspect body is parsed
29438
 
  virtual void class_begin (CT_ClassDef*) {};
 
38847
  virtual void class_begin (CT_ClassDef*) {}
29439
38848
 
29440
38849
  // called when a new class/union/struct/aspect definition ends
29441
38850
  // (still in the class scope)
29442
 
  virtual void class_end (CT_ClassDef*, CTree*) {};
 
38851
  virtual void class_end (CT_ClassDef*) {}
 
38852
  
 
38853
  // called after the parser tried to parse a base clause
 
38854
  virtual void base_clause_end (CT_ClassDef*, Token*) {}
 
38855
  
 
38856
  // called after the program has been parsed completely
 
38857
  virtual void trans_unit_end (CT_Program*) {}
29443
38858
};
29444
38859
 
29445
38860
} // namespace Puma
29446
38861
 
29447
38862
#endif /* __ACIntroducer_h__ */
29448
38863
 
29449
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
38864
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29450
38865
 
29451
 
#line 29452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38866
#line 38867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29452
38867
 
29453
38868
#ifndef __ac_fwd_ExtGnu__
29454
38869
#define __ac_fwd_ExtGnu__
29455
38870
class ExtGnu;
29456
38871
namespace AC {
29457
 
  template <class JoinPoint, class Binding>
29458
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
29459
 
  template <class JoinPoint, class Binding>
29460
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
29461
 
  template <class JoinPoint>
29462
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
29463
 
  template <class JoinPoint>
29464
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
29465
 
  template <class JoinPoint>
29466
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
29467
 
  template <class JoinPoint>
29468
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
29469
 
  template <class JoinPoint>
29470
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
29471
 
  template <class JoinPoint, class Binding>
29472
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
29473
 
  template <class JoinPoint, class Binding>
29474
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
29475
 
  template <class JoinPoint, class Binding>
29476
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
29477
 
  template <class JoinPoint, class Binding>
29478
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
29479
 
  template <class JoinPoint, class Binding>
29480
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
29481
 
  template <class JoinPoint, class Binding>
29482
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
29483
 
  template <class JoinPoint>
29484
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
29485
 
  template <class JoinPoint>
29486
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
29487
 
  template <class JoinPoint, class Binding>
29488
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
38872
  template <class JoinPoint>
 
38873
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
38874
  template <class JoinPoint>
 
38875
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
38876
  template <class JoinPoint>
 
38877
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
38878
  template <class JoinPoint>
 
38879
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
38880
  template <class JoinPoint>
 
38881
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
38882
  template <class JoinPoint>
 
38883
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
38884
  template <class JoinPoint>
 
38885
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
38886
  template <class JoinPoint>
 
38887
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
38888
  template <class JoinPoint>
 
38889
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
38890
  template <class JoinPoint>
 
38891
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
38892
  template <class JoinPoint>
 
38893
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
38894
  template <class JoinPoint>
 
38895
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
38896
  template <class JoinPoint>
 
38897
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
38898
  template <class JoinPoint>
 
38899
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
38900
  template <class JoinPoint>
 
38901
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
38902
  template <class JoinPoint>
 
38903
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
38904
  template <class JoinPoint>
 
38905
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
29489
38906
}
29490
38907
#endif
29491
38908
 
29492
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
29493
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
38909
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
38910
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
29494
38911
#endif
29495
38912
 
29496
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
38913
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29497
38914
// This file is part of PUMA.
29498
38915
// Copyright (C) 1999-2003  The PUMA developer team.
29499
38916
//                                                                
29516
38933
#define __CCNameLookup_h__
29517
38934
 
29518
38935
 
29519
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29520
 
#include <vector>
29521
 
#include <map>
29522
 
 
 
38936
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29523
38937
namespace Puma {
29524
38938
 
29525
38939
 
29527
38941
class CBaseClassInfo;
29528
38942
 
29529
38943
 
29530
 
#line 29531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38944
#line 38945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29531
38945
} // closed Puma
 
38946
class CCExprResolve;
 
38947
class CExprResolve;
29532
38948
class WinIfExists;
29533
38949
class WinImportHandler;
29534
38950
class WinMacros;
29535
 
class CMatchSyntax;
29536
 
class ExtGnu;
 
38951
class WinAsm;
 
38952
class WinDeclSpecs;
 
38953
class WinMemberExplSpec;
 
38954
class WinTypeKeywords;
 
38955
class WinFriend;
29537
38956
class ExtAC;
29538
38957
class ExtACBuilderCoupling;
29539
38958
class ExtACSyntaxCoupling;
29540
38959
class ExtACTree;
29541
38960
class ExtACKeywords;
29542
 
class WinAsm;
29543
 
class WinDeclSpecs;
29544
 
class WinMemberExplSpec;
29545
 
class WinTypeKeywords;
 
38961
class ExtGnu;
29546
38962
class PragmaOnceUnitState;
29547
38963
class PragmaOnce;
29548
 
class CCExprResolve;
29549
 
class CExprResolve;
 
38964
class CMatchSyntax;
29550
38965
namespace Puma {
29551
38966
 
29552
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
38967
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29553
38968
class CCNameLookup {
29554
 
#line 29555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
38969
#line 38970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
38970
  friend class ::CCExprResolve;
 
38971
  friend class ::CExprResolve;
29555
38972
  friend class ::WinIfExists;
29556
38973
  friend class ::WinImportHandler;
29557
38974
  friend class ::WinMacros;
29558
 
  friend class ::CMatchSyntax;
29559
 
  friend class ::ExtGnu;
 
38975
  friend class ::WinAsm;
 
38976
  friend class ::WinDeclSpecs;
 
38977
  friend class ::WinMemberExplSpec;
 
38978
  friend class ::WinTypeKeywords;
 
38979
  friend class ::WinFriend;
29560
38980
  friend class ::ExtAC;
29561
38981
  friend class ::ExtACBuilderCoupling;
29562
38982
  friend class ::ExtACSyntaxCoupling;
29563
38983
  friend class ::ExtACTree;
29564
38984
  friend class ::ExtACKeywords;
29565
 
  friend class ::WinAsm;
29566
 
  friend class ::WinDeclSpecs;
29567
 
  friend class ::WinMemberExplSpec;
29568
 
  friend class ::WinTypeKeywords;
 
38985
  friend class ::ExtGnu;
29569
38986
  friend class ::PragmaOnceUnitState;
29570
38987
  friend class ::PragmaOnce;
29571
 
  friend class ::CCExprResolve;
29572
 
  friend class ::CExprResolve;
 
38988
  friend class ::CMatchSyntax;
29573
38989
 
29574
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
38990
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29575
38991
 
29576
38992
  typedef std::map<CClassInfo*, bool> BaseClassMap;
29577
38993
  
29628
39044
 
29629
39045
private: 
29630
39046
  
29631
 
#line 29632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
29632
 
public: inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
 
39047
#line 39048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39048
public: __attribute__((always_inline)) inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
29633
39049
private:
29634
39050
 
29635
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39051
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
29636
39052
void lookup (CStructure *, bool, bool);
29637
39053
  void unqualifiedLookup (CStructure *, bool);
29638
39054
  CObjectInfo *unqualLookup (CStructure *, bool);
29710
39126
 
29711
39127
#endif /* __CCNameLookup_h__ */
29712
39128
 
29713
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39129
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
29714
39130
 
29715
 
#line 29716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39131
#line 39132 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
29716
39132
 
29717
39133
#ifndef __ac_fwd_ExtACKeywords__
29718
39134
#define __ac_fwd_ExtACKeywords__
29719
39135
class ExtACKeywords;
29720
39136
namespace AC {
29721
 
  template <class JoinPoint, class Binding>
29722
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
29723
 
  template <class JoinPoint, class Binding>
29724
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
29725
 
  template <class JoinPoint>
29726
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
39137
  template <class JoinPoint>
 
39138
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
39139
  template <class JoinPoint>
 
39140
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
39141
  template <class JoinPoint>
 
39142
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
29727
39143
}
29728
39144
#endif
29729
39145
 
29730
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
29731
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
39146
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
39147
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
29732
39148
#endif
29733
39149
 
29734
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39150
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
29735
39151
// This file is part of PUMA.
29736
39152
// Copyright (C) 1999-2003  The PUMA developer team.
29737
39153
//                                                                
29755
39171
 
29756
39172
// Special project derivation for C++ sources.
29757
39173
 
29758
 
 
29759
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
29760
 
// This file is part of PUMA.
29761
 
// Copyright (C) 1999-2003  The PUMA developer team.
29762
 
//                                                                
29763
 
// This program is free software;  you can redistribute it and/or 
29764
 
// modify it under the terms of the GNU General Public License as 
29765
 
// published by the Free Software Foundation; either version 2 of 
29766
 
// the License, or (at your option) any later version.            
29767
 
//                                                                
29768
 
// This program is distributed in the hope that it will be useful,
29769
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
29770
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
29771
 
// GNU General Public License for more details.                   
29772
 
//                                                                
29773
 
// You should have received a copy of the GNU General Public      
29774
 
// License along with this program; if not, write to the Free     
29775
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
29776
 
// MA  02111-1307  USA                                            
29777
 
 
29778
 
#ifndef __Config_h__
29779
 
#define __Config_h__
29780
 
 
29781
 
// Class Config provides evaluation of configuration 
29782
 
// information from file or command line.
29783
 
 
29784
 
 
29785
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
29786
 
// This file is part of PUMA.
29787
 
// Copyright (C) 1999-2003  The PUMA developer team.
29788
 
//                                                                
29789
 
// This program is free software;  you can redistribute it and/or 
29790
 
// modify it under the terms of the GNU General Public License as 
29791
 
// published by the Free Software Foundation; either version 2 of 
29792
 
// the License, or (at your option) any later version.            
29793
 
//                                                                
29794
 
// This program is distributed in the hope that it will be useful,
29795
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
29796
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
29797
 
// GNU General Public License for more details.                   
29798
 
//                                                                
29799
 
// You should have received a copy of the GNU General Public      
29800
 
// License along with this program; if not, write to the Free     
29801
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
29802
 
// MA  02111-1307  USA                                            
29803
 
 
29804
 
#ifndef __Flags_h__
29805
 
#define __Flags_h__
29806
 
 
29807
 
namespace Puma {
29808
 
 
29809
 
 
29810
 
 
29811
 
#line 29812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
29812
 
} // closed Puma
29813
 
class WinIfExists;
29814
 
class WinImportHandler;
29815
 
class WinMacros;
29816
 
class CMatchSyntax;
29817
 
class ExtGnu;
29818
 
class ExtAC;
29819
 
class ExtACBuilderCoupling;
29820
 
class ExtACSyntaxCoupling;
29821
 
class ExtACTree;
29822
 
class ExtACKeywords;
29823
 
class WinAsm;
29824
 
class WinDeclSpecs;
29825
 
class WinMemberExplSpec;
29826
 
class WinTypeKeywords;
29827
 
class PragmaOnceUnitState;
29828
 
class PragmaOnce;
29829
 
class CCExprResolve;
29830
 
class CExprResolve;
29831
 
namespace Puma {
29832
 
 
29833
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
29834
 
class Flags {
29835
 
#line 29836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
29836
 
  friend class ::WinIfExists;
29837
 
  friend class ::WinImportHandler;
29838
 
  friend class ::WinMacros;
29839
 
  friend class ::CMatchSyntax;
29840
 
  friend class ::ExtGnu;
29841
 
  friend class ::ExtAC;
29842
 
  friend class ::ExtACBuilderCoupling;
29843
 
  friend class ::ExtACSyntaxCoupling;
29844
 
  friend class ::ExtACTree;
29845
 
  friend class ::ExtACKeywords;
29846
 
  friend class ::WinAsm;
29847
 
  friend class ::WinDeclSpecs;
29848
 
  friend class ::WinMemberExplSpec;
29849
 
  friend class ::WinTypeKeywords;
29850
 
  friend class ::PragmaOnceUnitState;
29851
 
  friend class ::PragmaOnce;
29852
 
  friend class ::CCExprResolve;
29853
 
  friend class ::CExprResolve;
29854
 
 
29855
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
29856
 
 
29857
 
public:
29858
 
  enum Flag {
29859
 
    NONE                       = 0x0,
29860
 
    
29861
 
    SKIP_FCT_BODY              = 0x1,
29862
 
    SKIP_INITS                 = 0x2,
29863
 
    
29864
 
    // GNU extensions
29865
 
    GNU_NESTED_FCT             = 0x4,
29866
 
    GNU_CONDITION_SCOPE        = 0x8,
29867
 
    GNU_PARAM_DECL             = 0x10,
29868
 
    GNU_FCT_DECL               = 0x20,
29869
 
    GNU_PARAM_SCOPE            = 0x40,
29870
 
    GNU_DEFAULT_ARGS           = 0x80,
29871
 
    GNU_EXTENDED_ASM           = 0x100,
29872
 
    GNU_EXTENDED_EXPR          = 0x200,
29873
 
    GNU_LONG_LONG              = 0x400,
29874
 
    GNU_NAME_SCOPE             = 0x800, 
29875
 
    GNU_IMPLICIT_INT           = 0x1000,
29876
 
    GNU_FCT_ATTRIBUTE          = 0x2000,
29877
 
    GNU_IF_THEN_EXPR           = 0x4000
29878
 
  };
29879
 
  
29880
 
private:
29881
 
  Flag _Flags;
29882
 
  
29883
 
public:
29884
 
  Flags ();
29885
 
  Flags (const Flags &);
29886
 
  Flags &operator =(const Flags &);
29887
 
 
29888
 
  // add/remove flag
29889
 
  Flags &operator +=(Flag);
29890
 
  Flags &operator -=(Flag);
29891
 
  
29892
 
  // test for flag
29893
 
  bool operator ==(Flag) const;
29894
 
  bool operator !=(Flag) const;
29895
 
};
29896
 
 
29897
 
inline Flags::Flags () : _Flags (NONE) 
29898
 
 {}
29899
 
inline Flags::Flags (const Flags &f)
29900
 
 { _Flags = f._Flags; }
29901
 
inline Flags &Flags::operator =(const Flags &f)
29902
 
 { _Flags = f._Flags; return *(Flags*)this; }
29903
 
 
29904
 
inline Flags &Flags::operator +=(Flags::Flag f)
29905
 
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
29906
 
inline Flags &Flags::operator -=(Flags::Flag f)
29907
 
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
29908
 
 
29909
 
inline bool Flags::operator ==(Flags::Flag f) const
29910
 
 { return _Flags & f; }
29911
 
inline bool Flags::operator !=(Flags::Flag f) const
29912
 
 { return ! (_Flags & f); }
29913
 
 
29914
 
 
29915
 
} // namespace Puma
29916
 
 
29917
 
#endif /* __Flags_h__ */
29918
 
 
29919
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
29920
 
// This file is part of PUMA.
29921
 
// Copyright (C) 1999-2003  The PUMA developer team.
29922
 
//                                                                
29923
 
// This program is free software;  you can redistribute it and/or 
29924
 
// modify it under the terms of the GNU General Public License as 
29925
 
// published by the Free Software Foundation; either version 2 of 
29926
 
// the License, or (at your option) any later version.            
29927
 
//                                                                
29928
 
// This program is distributed in the hope that it will be useful,
29929
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
29930
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
29931
 
// GNU General Public License for more details.                   
29932
 
//                                                                
29933
 
// You should have received a copy of the GNU General Public      
29934
 
// License along with this program; if not, write to the Free     
29935
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
29936
 
// MA  02111-1307  USA                                            
29937
 
 
29938
 
#ifndef __ConfOption_h__
29939
 
#define __ConfOption_h__
29940
 
 
29941
 
 
29942
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
29943
 
#include <stdlib.h>
29944
 
 
29945
 
namespace Puma {
29946
 
 
29947
 
 
29948
 
 
29949
 
#line 29950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
29950
 
} // closed Puma
29951
 
class WinIfExists;
29952
 
class WinImportHandler;
29953
 
class WinMacros;
29954
 
class CMatchSyntax;
29955
 
class ExtGnu;
29956
 
class ExtAC;
29957
 
class ExtACBuilderCoupling;
29958
 
class ExtACSyntaxCoupling;
29959
 
class ExtACTree;
29960
 
class ExtACKeywords;
29961
 
class WinAsm;
29962
 
class WinDeclSpecs;
29963
 
class WinMemberExplSpec;
29964
 
class WinTypeKeywords;
29965
 
class PragmaOnceUnitState;
29966
 
class PragmaOnce;
29967
 
class CCExprResolve;
29968
 
class CExprResolve;
29969
 
namespace Puma {
29970
 
 
29971
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
29972
 
class ConfOption {
29973
 
#line 29974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
29974
 
  friend class ::WinIfExists;
29975
 
  friend class ::WinImportHandler;
29976
 
  friend class ::WinMacros;
29977
 
  friend class ::CMatchSyntax;
29978
 
  friend class ::ExtGnu;
29979
 
  friend class ::ExtAC;
29980
 
  friend class ::ExtACBuilderCoupling;
29981
 
  friend class ::ExtACSyntaxCoupling;
29982
 
  friend class ::ExtACTree;
29983
 
  friend class ::ExtACKeywords;
29984
 
  friend class ::WinAsm;
29985
 
  friend class ::WinDeclSpecs;
29986
 
  friend class ::WinMemberExplSpec;
29987
 
  friend class ::WinTypeKeywords;
29988
 
  friend class ::PragmaOnceUnitState;
29989
 
  friend class ::PragmaOnce;
29990
 
  friend class ::CCExprResolve;
29991
 
  friend class ::CExprResolve;
29992
 
 
29993
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
29994
 
 
29995
 
  const char *_name;
29996
 
  Array<const char *> _args;
29997
 
  
29998
 
public:
29999
 
  ConfOption (const char *);
30000
 
  ConfOption (const char *, const char *);
30001
 
  ConfOption (const char *, const char *, const char *);
30002
 
  ~ConfOption ();
30003
 
  
30004
 
  const char *Name () const;
30005
 
  unsigned Arguments () const;
30006
 
  const char *Argument (unsigned) const;
30007
 
  
30008
 
  void addArgument (const char *);
30009
 
};
30010
 
 
30011
 
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
30012
 
 { _name = StrCol::dup (n); }
30013
 
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
30014
 
 { _name = StrCol::dup (n); addArgument (a1); }
30015
 
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
30016
 
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
30017
 
 
30018
 
inline ConfOption::~ConfOption ()
30019
 
 { delete[] _name; 
30020
 
   for (unsigned i = 0; i < Arguments (); i++) 
30021
 
     delete[] Argument (i);
30022
 
 }
30023
 
 
30024
 
inline const char *ConfOption::Name () const 
30025
 
 { return _name; }
30026
 
inline unsigned ConfOption::Arguments () const
30027
 
 { return _args.length (); }
30028
 
inline const char *ConfOption::Argument (unsigned i) const
30029
 
 { return _args.lookup (i); }
30030
 
  
30031
 
inline void ConfOption::addArgument (const char *a) 
30032
 
 { if (a) _args.append (StrCol::dup (a)); }
30033
 
 
30034
 
 
30035
 
} // namespace Puma
30036
 
 
30037
 
#endif /* __ConfOption_h__ */
30038
 
 
30039
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
30040
 
// This file is part of PUMA.
30041
 
// Copyright (C) 1999-2003  The PUMA developer team.
30042
 
//                                                                
30043
 
// This program is free software;  you can redistribute it and/or 
30044
 
// modify it under the terms of the GNU General Public License as 
30045
 
// published by the Free Software Foundation; either version 2 of 
30046
 
// the License, or (at your option) any later version.            
30047
 
//                                                                
30048
 
// This program is distributed in the hope that it will be useful,
30049
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30050
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30051
 
// GNU General Public License for more details.                   
30052
 
//                                                                
30053
 
// You should have received a copy of the GNU General Public      
30054
 
// License along with this program; if not, write to the Free     
30055
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30056
 
// MA  02111-1307  USA                                            
30057
 
 
30058
 
#ifndef __error_stream_h__
30059
 
#define __error_stream_h__
30060
 
 
30061
 
// An ErrorStream is a special ErrorSink that prints out an error message
30062
 
// as soon as it complete. It also stores the maximum error severity.
30063
 
// The ErrorStream can be reset to it's initial state.
30064
 
 
30065
 
 
30066
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
30067
 
using namespace std;
30068
 
 
30069
 
namespace Puma {
30070
 
 
30071
 
 
30072
 
 
30073
 
#line 30074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30074
 
} // closed Puma
30075
 
class WinIfExists;
30076
 
class WinImportHandler;
30077
 
class WinMacros;
30078
 
class CMatchSyntax;
30079
 
class ExtGnu;
30080
 
class ExtAC;
30081
 
class ExtACBuilderCoupling;
30082
 
class ExtACSyntaxCoupling;
30083
 
class ExtACTree;
30084
 
class ExtACKeywords;
30085
 
class WinAsm;
30086
 
class WinDeclSpecs;
30087
 
class WinMemberExplSpec;
30088
 
class WinTypeKeywords;
30089
 
class PragmaOnceUnitState;
30090
 
class PragmaOnce;
30091
 
class CCExprResolve;
30092
 
class CExprResolve;
30093
 
namespace Puma {
30094
 
 
30095
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
30096
 
class ErrorStream : public ErrorSink {
30097
 
#line 30098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30098
 
  friend class ::WinIfExists;
30099
 
  friend class ::WinImportHandler;
30100
 
  friend class ::WinMacros;
30101
 
  friend class ::CMatchSyntax;
30102
 
  friend class ::ExtGnu;
30103
 
  friend class ::ExtAC;
30104
 
  friend class ::ExtACBuilderCoupling;
30105
 
  friend class ::ExtACSyntaxCoupling;
30106
 
  friend class ::ExtACTree;
30107
 
  friend class ::ExtACKeywords;
30108
 
  friend class ::WinAsm;
30109
 
  friend class ::WinDeclSpecs;
30110
 
  friend class ::WinMemberExplSpec;
30111
 
  friend class ::WinTypeKeywords;
30112
 
  friend class ::PragmaOnceUnitState;
30113
 
  friend class ::PragmaOnce;
30114
 
  friend class ::CCExprResolve;
30115
 
  friend class ::CExprResolve;
30116
 
 
30117
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
30118
 
 
30119
 
  ostream *_ostream;
30120
 
  ErrorSeverity _max_severity;
30121
 
  ErrorSeverity _curr_severity;
30122
 
  Location _location;
30123
 
  bool _have_location;
30124
 
  std::ostringstream *_msg;
30125
 
  bool _silently;
30126
 
 
30127
 
  void output ();
30128
 
  void clear ();
30129
 
 
30130
 
public:
30131
 
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
30132
 
   { reset (); _silently = false; }
30133
 
  virtual ~ErrorStream () { delete _msg; }
30134
 
 
30135
 
  ErrorStream &operator << (const char *);
30136
 
  ErrorStream &operator << (long);
30137
 
  ErrorStream &operator << (unsigned);
30138
 
  ErrorStream &operator << (int);
30139
 
  ErrorStream &operator << (short);
30140
 
  ErrorStream &operator << (char);
30141
 
  ErrorStream &operator << (double);
30142
 
  ErrorStream &operator << (const ErrorSeverity &);
30143
 
  ErrorStream &operator << (Location);
30144
 
  ErrorStream &operator << (const Printable &);
30145
 
  ErrorStream &operator << (void (*f)(ErrorSink &));
30146
 
 
30147
 
  void endMessage ();
30148
 
  void reset ();
30149
 
  void silent ();
30150
 
  void loud ();
30151
 
 
30152
 
  ErrorSeverity severity () const { return _max_severity; }
30153
 
};
30154
 
 
30155
 
 
30156
 
} // namespace Puma
30157
 
 
30158
 
#endif /* __error_stream_h__ */
30159
 
 
30160
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
30161
 
// This file is part of PUMA.
30162
 
// Copyright (C) 1999-2003  The PUMA developer team.
30163
 
//                                                                
30164
 
// This program is free software;  you can redistribute it and/or 
30165
 
// modify it under the terms of the GNU General Public License as 
30166
 
// published by the Free Software Foundation; either version 2 of 
30167
 
// the License, or (at your option) any later version.            
30168
 
//                                                                
30169
 
// This program is distributed in the hope that it will be useful,
30170
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30171
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30172
 
// GNU General Public License for more details.                   
30173
 
//                                                                
30174
 
// You should have received a copy of the GNU General Public      
30175
 
// License along with this program; if not, write to the Free     
30176
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30177
 
// MA  02111-1307  USA                                            
30178
 
 
30179
 
#ifndef __OptsParser_h__
30180
 
#define __OptsParser_h__
30181
 
 
30182
 
 
30183
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
30184
 
// This file is part of PUMA.
30185
 
// Copyright (C) 1999-2003  The PUMA developer team.
30186
 
//                                                                
30187
 
// This program is free software;  you can redistribute it and/or 
30188
 
// modify it under the terms of the GNU General Public License as 
30189
 
// published by the Free Software Foundation; either version 2 of 
30190
 
// the License, or (at your option) any later version.            
30191
 
//                                                                
30192
 
// This program is distributed in the hope that it will be useful,
30193
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30194
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30195
 
// GNU General Public License for more details.                   
30196
 
//                                                                
30197
 
// You should have received a copy of the GNU General Public      
30198
 
// License along with this program; if not, write to the Free     
30199
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30200
 
// MA  02111-1307  USA                                            
30201
 
 
30202
 
#ifndef __SimpleParser_h__
30203
 
#define __SimpleParser_h__
30204
 
 
30205
 
 
30206
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
30207
 
using namespace std;
30208
 
 
30209
 
namespace Puma {
30210
 
 
30211
 
 
30212
 
 
30213
 
#line 30214 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30214
 
} // closed Puma
30215
 
class WinIfExists;
30216
 
class WinImportHandler;
30217
 
class WinMacros;
30218
 
class CMatchSyntax;
30219
 
class ExtGnu;
30220
 
class ExtAC;
30221
 
class ExtACBuilderCoupling;
30222
 
class ExtACSyntaxCoupling;
30223
 
class ExtACTree;
30224
 
class ExtACKeywords;
30225
 
class WinAsm;
30226
 
class WinDeclSpecs;
30227
 
class WinMemberExplSpec;
30228
 
class WinTypeKeywords;
30229
 
class PragmaOnceUnitState;
30230
 
class PragmaOnce;
30231
 
class CCExprResolve;
30232
 
class CExprResolve;
30233
 
namespace Puma {
30234
 
 
30235
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
30236
 
class SimpleParser {
30237
 
#line 30238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30238
 
  friend class ::WinIfExists;
30239
 
  friend class ::WinImportHandler;
30240
 
  friend class ::WinMacros;
30241
 
  friend class ::CMatchSyntax;
30242
 
  friend class ::ExtGnu;
30243
 
  friend class ::ExtAC;
30244
 
  friend class ::ExtACBuilderCoupling;
30245
 
  friend class ::ExtACSyntaxCoupling;
30246
 
  friend class ::ExtACTree;
30247
 
  friend class ::ExtACKeywords;
30248
 
  friend class ::WinAsm;
30249
 
  friend class ::WinDeclSpecs;
30250
 
  friend class ::WinMemberExplSpec;
30251
 
  friend class ::WinTypeKeywords;
30252
 
  friend class ::PragmaOnceUnitState;
30253
 
  friend class ::PragmaOnce;
30254
 
  friend class ::CCExprResolve;
30255
 
  friend class ::CExprResolve;
30256
 
 
30257
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
30258
 
 
30259
 
public:
30260
 
  SimpleParser() {}
30261
 
  ~SimpleParser() {}
30262
 
   
30263
 
  static int tokenize (const string &, vector<string> &, 
30264
 
                       const string &delimiters = " ");
30265
 
  static string strip (const string &);
30266
 
};
30267
 
 
30268
 
 
30269
 
} // namespace Puma
30270
 
 
30271
 
#endif /* __SimpleParser_h__ */
30272
 
 
30273
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
30274
 
using namespace std;
30275
 
 
30276
 
namespace Puma {
30277
 
 
30278
 
 
30279
 
 
30280
 
#line 30281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30281
 
} // closed Puma
30282
 
class WinIfExists;
30283
 
class WinImportHandler;
30284
 
class WinMacros;
30285
 
class CMatchSyntax;
30286
 
class ExtGnu;
30287
 
class ExtAC;
30288
 
class ExtACBuilderCoupling;
30289
 
class ExtACSyntaxCoupling;
30290
 
class ExtACTree;
30291
 
class ExtACKeywords;
30292
 
class WinAsm;
30293
 
class WinDeclSpecs;
30294
 
class WinMemberExplSpec;
30295
 
class WinTypeKeywords;
30296
 
class PragmaOnceUnitState;
30297
 
class PragmaOnce;
30298
 
class CCExprResolve;
30299
 
class CExprResolve;
30300
 
namespace Puma {
30301
 
 
30302
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
30303
 
class OptsParser : public SimpleParser {
30304
 
#line 30305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30305
 
  friend class ::WinIfExists;
30306
 
  friend class ::WinImportHandler;
30307
 
  friend class ::WinMacros;
30308
 
  friend class ::CMatchSyntax;
30309
 
  friend class ::ExtGnu;
30310
 
  friend class ::ExtAC;
30311
 
  friend class ::ExtACBuilderCoupling;
30312
 
  friend class ::ExtACSyntaxCoupling;
30313
 
  friend class ::ExtACTree;
30314
 
  friend class ::ExtACKeywords;
30315
 
  friend class ::WinAsm;
30316
 
  friend class ::WinDeclSpecs;
30317
 
  friend class ::WinMemberExplSpec;
30318
 
  friend class ::WinTypeKeywords;
30319
 
  friend class ::PragmaOnceUnitState;
30320
 
  friend class ::PragmaOnce;
30321
 
  friend class ::CCExprResolve;
30322
 
  friend class ::CExprResolve;
30323
 
 
30324
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
30325
 
 
30326
 
  vector<string> m_argv;
30327
 
  unsigned int m_curarg;
30328
 
  unsigned int m_tonext;
30329
 
  int m_number;
30330
 
 
30331
 
  string m_arg;
30332
 
  string m_opt;
30333
 
   
30334
 
public:
30335
 
  
30336
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
30337
 
  
30338
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
30339
 
  
30340
 
  struct Option {
30341
 
#line 30342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30342
 
  friend class ::WinIfExists;
30343
 
  friend class ::WinImportHandler;
30344
 
  friend class ::WinMacros;
30345
 
  friend class ::CMatchSyntax;
30346
 
  friend class ::ExtGnu;
30347
 
  friend class ::ExtAC;
30348
 
  friend class ::ExtACBuilderCoupling;
30349
 
  friend class ::ExtACSyntaxCoupling;
30350
 
  friend class ::ExtACTree;
30351
 
  friend class ::ExtACKeywords;
30352
 
  friend class ::WinAsm;
30353
 
  friend class ::WinDeclSpecs;
30354
 
  friend class ::WinMemberExplSpec;
30355
 
  friend class ::WinTypeKeywords;
30356
 
  friend class ::PragmaOnceUnitState;
30357
 
  friend class ::PragmaOnce;
30358
 
  friend class ::CCExprResolve;
30359
 
  friend class ::CExprResolve;
30360
 
 
30361
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
30362
 
 
30363
 
    int number;
30364
 
    char key; 
30365
 
    const char *name;
30366
 
    const char *desc;
30367
 
    ArgType args;
30368
 
  };
30369
 
 
30370
 
private:
30371
 
  const Option *m_opts;
30372
 
   
30373
 
public:
30374
 
  OptsParser (int, char **, const Option *);
30375
 
  OptsParser (const string &, const Option *);
30376
 
 
30377
 
  int getCurrentArgNum () const;
30378
 
  int getNextArgNum () const;
30379
 
  int getOption ();
30380
 
  int getResult () const;
30381
 
  
30382
 
  const string &getArgument () const;
30383
 
  const string &getOptionName () const;
30384
 
 
30385
 
  bool revokeArgument();
30386
 
   
30387
 
private:
30388
 
  int  getShortOption (const string &);
30389
 
  int  getLongOption  (const string &);
30390
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
30391
 
};
30392
 
 
30393
 
 
30394
 
} // namespace Puma
30395
 
 
30396
 
#endif /* __OptsParser_h__ */
30397
 
 
30398
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
30399
 
using namespace std;
30400
 
 
30401
 
namespace Puma {
30402
 
 
30403
 
 
30404
 
 
30405
 
#line 30406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30406
 
} // closed Puma
30407
 
class WinIfExists;
30408
 
class WinImportHandler;
30409
 
class WinMacros;
30410
 
class CMatchSyntax;
30411
 
class ExtGnu;
30412
 
class ExtAC;
30413
 
class ExtACBuilderCoupling;
30414
 
class ExtACSyntaxCoupling;
30415
 
class ExtACTree;
30416
 
class ExtACKeywords;
30417
 
class WinAsm;
30418
 
class WinDeclSpecs;
30419
 
class WinMemberExplSpec;
30420
 
class WinTypeKeywords;
30421
 
class PragmaOnceUnitState;
30422
 
class PragmaOnce;
30423
 
class CCExprResolve;
30424
 
class CExprResolve;
30425
 
namespace Puma {
30426
 
 
30427
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
30428
 
class Config {
30429
 
#line 30430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30430
 
  friend class ::WinIfExists;
30431
 
  friend class ::WinImportHandler;
30432
 
  friend class ::WinMacros;
30433
 
  friend class ::CMatchSyntax;
30434
 
  friend class ::ExtGnu;
30435
 
  friend class ::ExtAC;
30436
 
  friend class ::ExtACBuilderCoupling;
30437
 
  friend class ::ExtACSyntaxCoupling;
30438
 
  friend class ::ExtACTree;
30439
 
  friend class ::ExtACKeywords;
30440
 
  friend class ::WinAsm;
30441
 
  friend class ::WinDeclSpecs;
30442
 
  friend class ::WinMemberExplSpec;
30443
 
  friend class ::WinTypeKeywords;
30444
 
  friend class ::PragmaOnceUnitState;
30445
 
  friend class ::PragmaOnce;
30446
 
  friend class ::CCExprResolve;
30447
 
  friend class ::CExprResolve;
30448
 
 
30449
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
30450
 
 
30451
 
  Flags _flags;
30452
 
  ErrorStream &_err;
30453
 
  Array<const ConfOption *> _options;
30454
 
  
30455
 
public:
30456
 
  enum OPTIONS {
30457
 
    PRE_ASSERT = 1,
30458
 
    PRE_DEFINE, 
30459
 
    PRE_UNDEFINE, 
30460
 
    PRE_LOCK_MACRO,
30461
 
    PRE_INCLUDE,
30462
 
    CFG_FILE, 
30463
 
    PROJ_PATH, 
30464
 
    PROJ_DESTINATION,
30465
 
    SET_SUFFIX, 
30466
 
    SET_EXTENSION, 
30467
 
    SET_WRITE_PROTECTED,
30468
 
    SET_OPTION, 
30469
 
    SET_OPTION_ARG
30470
 
  };
30471
 
   
30472
 
public:
30473
 
  Config (ErrorStream &);
30474
 
  Config (const Config &);
30475
 
  ~Config ();
30476
 
  
30477
 
  // read config file
30478
 
  Config (ErrorStream &, const char *);
30479
 
  // read command line
30480
 
  Config (ErrorStream &, int &, char **&);
30481
 
  // read config file and command line
30482
 
  Config (ErrorStream &, const char *, int &, char **&);
30483
 
        
30484
 
  // join with another configuration
30485
 
  void Join (const Config &);
30486
 
 
30487
 
  // evaluate file, if file not given read from $PUMA_CONFIG
30488
 
  // or /etc/puma.config
30489
 
  void Read (const char * = (const char *)0);
30490
 
  // evaluate command line
30491
 
  void Read (int &, char **&);
30492
 
 
30493
 
  // add options to configuration
30494
 
  void Add (const ConfOption *);
30495
 
  void Add (const char *);
30496
 
  void Add (const char *, const char *);
30497
 
  void Add (const char *, const char *, const char *);
30498
 
 
30499
 
  // get options
30500
 
  unsigned Options () const;
30501
 
  const ConfOption *Option (unsigned) const;
30502
 
  const ConfOption *Option (const char *) const;
30503
 
 
30504
 
  Flags FlagTable () const;
30505
 
  
30506
 
private:
30507
 
  bool Valid (const char *, const char * = (const char *)0) const;
30508
 
 
30509
 
  bool Process (OptsParser&);
30510
 
  bool ProcessAssert (const string&);
30511
 
  bool ProcessDefine (const string&);
30512
 
  bool ProcessLockMacro (const string&);
30513
 
  bool ProcessUndefine (const string&);
30514
 
  bool ProcessConfigFile (const string&,const string&);
30515
 
  bool ProcessArgument (const string&,const string&);
30516
 
  bool ProcessPathArgument (const string&,const string&);
30517
 
 
30518
 
};
30519
 
 
30520
 
inline Config::Config (ErrorStream &e) : _err (e)
30521
 
 {}
30522
 
inline Config::Config (const Config &c) : _err (c._err)
30523
 
 { Join (c); }
30524
 
  
30525
 
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
30526
 
 { Read (file); }
30527
 
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
30528
 
 { Read (argc, argv); }
30529
 
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
30530
 
 { Read (file); Read (argc, argv); }
30531
 
 
30532
 
inline Config::~Config  ()
30533
 
 { for (unsigned i = 0; i < Options (); i++)
30534
 
     delete (ConfOption *) Option (i);
30535
 
 }
30536
 
 
30537
 
inline void Config::Add (const ConfOption *o) 
30538
 
 { _options.append (o); }
30539
 
inline void Config::Add (const char *n)
30540
 
 { Add (new ConfOption (n)); }
30541
 
inline void Config::Add (const char *n, const char *a1)
30542
 
 { Add (new ConfOption (n, a1)); }
30543
 
inline void Config::Add (const char *n, const char *a1, const char *a2)
30544
 
 { Add (new ConfOption (n, a1, a2)); }
30545
 
 
30546
 
inline unsigned Config::Options () const
30547
 
 { return _options.length (); }
30548
 
inline const ConfOption *Config::Option (unsigned i) const
30549
 
 { return _options.lookup (i); }
30550
 
 
30551
 
inline Flags Config::FlagTable () const
30552
 
 { return _flags; }
30553
 
 
30554
 
 
30555
 
} // namespace Puma
30556
 
 
30557
 
#endif /* __Config_h__ */
30558
 
 
30559
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
30560
 
// This file is part of PUMA.
30561
 
// Copyright (C) 1999-2003  The PUMA developer team.
30562
 
//                                                                
30563
 
// This program is free software;  you can redistribute it and/or 
30564
 
// modify it under the terms of the GNU General Public License as 
30565
 
// published by the Free Software Foundation; either version 2 of 
30566
 
// the License, or (at your option) any later version.            
30567
 
//                                                                
30568
 
// This program is distributed in the hope that it will be useful,
30569
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30570
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30571
 
// GNU General Public License for more details.                   
30572
 
//                                                                
30573
 
// You should have received a copy of the GNU General Public      
30574
 
// License along with this program; if not, write to the Free     
30575
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30576
 
// MA  02111-1307  USA                                            
30577
 
 
30578
 
#ifndef __project__
30579
 
#define __project__
30580
 
 
30581
 
// The basic project is a set of source directories. It provides 
30582
 
// methods for searching and writing files. 
30583
 
 
30584
 
 
30585
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
30586
 
// This file is part of PUMA.
30587
 
// Copyright (C) 1999-2003  The PUMA developer team.
30588
 
//                                                                
30589
 
// This program is free software;  you can redistribute it and/or 
30590
 
// modify it under the terms of the GNU General Public License as 
30591
 
// published by the Free Software Foundation; either version 2 of 
30592
 
// the License, or (at your option) any later version.            
30593
 
//                                                                
30594
 
// This program is distributed in the hope that it will be useful,
30595
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30596
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30597
 
// GNU General Public License for more details.                   
30598
 
//                                                                
30599
 
// You should have received a copy of the GNU General Public      
30600
 
// License along with this program; if not, write to the Free     
30601
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30602
 
// MA  02111-1307  USA                                            
30603
 
 
30604
 
#ifndef __path_manager__
30605
 
#define __path_manager__
30606
 
 
30607
 
// Manages directories and methods to access the files in it.
30608
 
 
30609
 
 
30610
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
30611
 
// This file is part of PUMA.
30612
 
// Copyright (C) 1999-2003  The PUMA developer team.
30613
 
//                                                                
30614
 
// This program is free software;  you can redistribute it and/or 
30615
 
// modify it under the terms of the GNU General Public License as 
30616
 
// published by the Free Software Foundation; either version 2 of 
30617
 
// the License, or (at your option) any later version.            
30618
 
//                                                                
30619
 
// This program is distributed in the hope that it will be useful,
30620
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30621
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30622
 
// GNU General Public License for more details.                   
30623
 
//                                                                
30624
 
// You should have received a copy of the GNU General Public      
30625
 
// License along with this program; if not, write to the Free     
30626
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30627
 
// MA  02111-1307  USA                                            
30628
 
 
30629
 
#ifndef __path_info__
30630
 
#define __path_info__
30631
 
 
30632
 
// A path information object consists of a source and optionally
30633
 
// a destination path.
30634
 
 
30635
 
namespace Puma {
30636
 
 
30637
 
 
30638
 
 
30639
 
#line 30640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30640
 
} // closed Puma
30641
 
class WinIfExists;
30642
 
class WinImportHandler;
30643
 
class WinMacros;
30644
 
class CMatchSyntax;
30645
 
class ExtGnu;
30646
 
class ExtAC;
30647
 
class ExtACBuilderCoupling;
30648
 
class ExtACSyntaxCoupling;
30649
 
class ExtACTree;
30650
 
class ExtACKeywords;
30651
 
class WinAsm;
30652
 
class WinDeclSpecs;
30653
 
class WinMemberExplSpec;
30654
 
class WinTypeKeywords;
30655
 
class PragmaOnceUnitState;
30656
 
class PragmaOnce;
30657
 
class CCExprResolve;
30658
 
class CExprResolve;
30659
 
namespace Puma {
30660
 
 
30661
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
30662
 
class PathInfo {
30663
 
#line 30664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30664
 
  friend class ::WinIfExists;
30665
 
  friend class ::WinImportHandler;
30666
 
  friend class ::WinMacros;
30667
 
  friend class ::CMatchSyntax;
30668
 
  friend class ::ExtGnu;
30669
 
  friend class ::ExtAC;
30670
 
  friend class ::ExtACBuilderCoupling;
30671
 
  friend class ::ExtACSyntaxCoupling;
30672
 
  friend class ::ExtACTree;
30673
 
  friend class ::ExtACKeywords;
30674
 
  friend class ::WinAsm;
30675
 
  friend class ::WinDeclSpecs;
30676
 
  friend class ::WinMemberExplSpec;
30677
 
  friend class ::WinTypeKeywords;
30678
 
  friend class ::PragmaOnceUnitState;
30679
 
  friend class ::PragmaOnce;
30680
 
  friend class ::CCExprResolve;
30681
 
  friend class ::CExprResolve;
30682
 
 
30683
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
30684
 
 
30685
 
  const char *_src;        // Source path.
30686
 
  const char *_dest;        // Destination path.
30687
 
        
30688
 
public:
30689
 
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
30690
 
  PathInfo (const PathInfo &);
30691
 
  ~PathInfo ();
30692
 
        
30693
 
  // Needed for class Array.
30694
 
  PathInfo &operator =(const PathInfo &);
30695
 
 
30696
 
  // Set or get the source path.
30697
 
  void src (const char *);
30698
 
  const char *src () const { return _src; }
30699
 
        
30700
 
  // Set or get the destination path.
30701
 
  void dest (const char *);
30702
 
  const char *dest () const { return _dest; }
30703
 
};
30704
 
 
30705
 
 
30706
 
} // namespace Puma
30707
 
 
30708
 
#endif /* __path_info__ */
30709
 
 
30710
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
30711
 
// This file is part of PUMA.
30712
 
// Copyright (C) 1999-2003  The PUMA developer team.
30713
 
//                                                                
30714
 
// This program is free software;  you can redistribute it and/or 
30715
 
// modify it under the terms of the GNU General Public License as 
30716
 
// published by the Free Software Foundation; either version 2 of 
30717
 
// the License, or (at your option) any later version.            
30718
 
//                                                                
30719
 
// This program is distributed in the hope that it will be useful,
30720
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30721
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30722
 
// GNU General Public License for more details.                   
30723
 
//                                                                
30724
 
// You should have received a copy of the GNU General Public      
30725
 
// License along with this program; if not, write to the Free     
30726
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30727
 
// MA  02111-1307  USA                                            
30728
 
 
30729
 
#ifndef __path_iterator__
30730
 
#define __path_iterator__
30731
 
 
30732
 
// A path iterator is used to iterate the contents of the paths
30733
 
// a project is managing. But only files matching a given pattern 
30734
 
// are iterated. 
30735
 
 
30736
 
 
30737
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30738
 
// This file is part of PUMA.
30739
 
// Copyright (C) 1999-2003  The PUMA developer team.
30740
 
//                                                                
30741
 
// This program is free software;  you can redistribute it and/or 
30742
 
// modify it under the terms of the GNU General Public License as 
30743
 
// published by the Free Software Foundation; either version 2 of 
30744
 
// the License, or (at your option) any later version.            
30745
 
//                                                                
30746
 
// This program is distributed in the hope that it will be useful,
30747
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30748
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30749
 
// GNU General Public License for more details.                   
30750
 
//                                                                
30751
 
// You should have received a copy of the GNU General Public      
30752
 
// License along with this program; if not, write to the Free     
30753
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30754
 
// MA  02111-1307  USA                                            
30755
 
 
30756
 
#ifndef __project_file__
30757
 
#define __project_file__
30758
 
 
30759
 
 
30760
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30761
 
using std::map;
30762
 
 
30763
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30764
 
using std::string;
30765
 
 
30766
 
 
30767
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30768
 
namespace Puma {
30769
 
 
30770
 
// the project file abstraction is used to store all filenames relevant
30771
 
// for a specific file that is managed by Puma.
30772
 
 
30773
 
 
30774
 
#line 30775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30775
 
} // closed Puma
30776
 
class WinIfExists;
30777
 
class WinImportHandler;
30778
 
class WinMacros;
30779
 
class CMatchSyntax;
30780
 
class ExtGnu;
30781
 
class ExtAC;
30782
 
class ExtACBuilderCoupling;
30783
 
class ExtACSyntaxCoupling;
30784
 
class ExtACTree;
30785
 
class ExtACKeywords;
30786
 
class WinAsm;
30787
 
class WinDeclSpecs;
30788
 
class WinMemberExplSpec;
30789
 
class WinTypeKeywords;
30790
 
class PragmaOnceUnitState;
30791
 
class PragmaOnce;
30792
 
class CCExprResolve;
30793
 
class CExprResolve;
30794
 
namespace Puma {
30795
 
 
30796
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30797
 
class ProjectFile {
30798
 
#line 30799 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30799
 
  friend class ::WinIfExists;
30800
 
  friend class ::WinImportHandler;
30801
 
  friend class ::WinMacros;
30802
 
  friend class ::CMatchSyntax;
30803
 
  friend class ::ExtGnu;
30804
 
  friend class ::ExtAC;
30805
 
  friend class ::ExtACBuilderCoupling;
30806
 
  friend class ::ExtACSyntaxCoupling;
30807
 
  friend class ::ExtACTree;
30808
 
  friend class ::ExtACKeywords;
30809
 
  friend class ::WinAsm;
30810
 
  friend class ::WinDeclSpecs;
30811
 
  friend class ::WinMemberExplSpec;
30812
 
  friend class ::WinTypeKeywords;
30813
 
  friend class ::PragmaOnceUnitState;
30814
 
  friend class ::PragmaOnce;
30815
 
  friend class ::CCExprResolve;
30816
 
  friend class ::CExprResolve;
30817
 
 
30818
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
30819
 
 
30820
 
  Filename _nick_name;
30821
 
  Filename _dest_path;
30822
 
public:  
30823
 
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
30824
 
  ProjectFile (const Filename &nn, const Filename &dp) :
30825
 
    _nick_name (nn), _dest_path (dp) {}
30826
 
  void dest (const Filename &dp) { _dest_path = dp; }
30827
 
  Filename name () const { return _nick_name; }
30828
 
  Filename dest () const {
30829
 
    assert (_dest_path.is_defined ());
30830
 
    return _dest_path;
30831
 
  }
30832
 
};
30833
 
 
30834
 
typedef map<string, ProjectFile> PFMap;
30835
 
typedef PFMap::value_type PFMPair;
30836
 
typedef PFMap::const_iterator PFMConstIter;
30837
 
 
30838
 
} // namespace Puma
30839
 
 
30840
 
#endif // __project_file__
30841
 
 
30842
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
30843
 
namespace Puma {
30844
 
 
30845
 
class PathManager;
30846
 
class RegComp;
30847
 
 
30848
 
 
30849
 
#line 30850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30850
 
} // closed Puma
30851
 
class WinIfExists;
30852
 
class WinImportHandler;
30853
 
class WinMacros;
30854
 
class CMatchSyntax;
30855
 
class ExtGnu;
30856
 
class ExtAC;
30857
 
class ExtACBuilderCoupling;
30858
 
class ExtACSyntaxCoupling;
30859
 
class ExtACTree;
30860
 
class ExtACKeywords;
30861
 
class WinAsm;
30862
 
class WinDeclSpecs;
30863
 
class WinMemberExplSpec;
30864
 
class WinTypeKeywords;
30865
 
class PragmaOnceUnitState;
30866
 
class PragmaOnce;
30867
 
class CCExprResolve;
30868
 
class CExprResolve;
30869
 
namespace Puma {
30870
 
 
30871
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
30872
 
class PathIterator : public PFMConstIter {
30873
 
#line 30874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30874
 
  friend class ::WinIfExists;
30875
 
  friend class ::WinImportHandler;
30876
 
  friend class ::WinMacros;
30877
 
  friend class ::CMatchSyntax;
30878
 
  friend class ::ExtGnu;
30879
 
  friend class ::ExtAC;
30880
 
  friend class ::ExtACBuilderCoupling;
30881
 
  friend class ::ExtACSyntaxCoupling;
30882
 
  friend class ::ExtACTree;
30883
 
  friend class ::ExtACKeywords;
30884
 
  friend class ::WinAsm;
30885
 
  friend class ::WinDeclSpecs;
30886
 
  friend class ::WinMemberExplSpec;
30887
 
  friend class ::WinTypeKeywords;
30888
 
  friend class ::PragmaOnceUnitState;
30889
 
  friend class ::PragmaOnce;
30890
 
  friend class ::CCExprResolve;
30891
 
  friend class ::CExprResolve;
30892
 
 
30893
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
30894
 
 
30895
 
  friend class PathManager;
30896
 
 
30897
 
  RegComp *_regexp;  // Search pattern.
30898
 
  bool _in_use;
30899
 
 
30900
 
public:
30901
 
  PathIterator (const char *);     // Expects a regular expression.
30902
 
  ~PathIterator ();                // for the files to match.
30903
 
 
30904
 
  void pattern (const char *);     // Set the search pattern.
30905
 
  void init (const PFMConstIter &begin);
30906
 
  bool in_use () const { return _in_use; }
30907
 
  void done () { _in_use = false; }
30908
 
 
30909
 
  // retrieve information about the currently referenced ProjectFile
30910
 
  const char *file () const;
30911
 
  const char *dest () const;
30912
 
};
30913
 
 
30914
 
} // namespace Puma
30915
 
 
30916
 
#endif /* __path_iterator__ */
30917
 
 
30918
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
30919
 
namespace Puma {
30920
 
 
30921
 
class RegComp;
30922
 
class Config;
30923
 
class Unit;
30924
 
 
30925
 
 
30926
 
#line 30927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30927
 
} // closed Puma
30928
 
class WinIfExists;
30929
 
class WinImportHandler;
30930
 
class WinMacros;
30931
 
class CMatchSyntax;
30932
 
class ExtGnu;
30933
 
class ExtAC;
30934
 
class ExtACBuilderCoupling;
30935
 
class ExtACSyntaxCoupling;
30936
 
class ExtACTree;
30937
 
class ExtACKeywords;
30938
 
class WinAsm;
30939
 
class WinDeclSpecs;
30940
 
class WinMemberExplSpec;
30941
 
class WinTypeKeywords;
30942
 
class PragmaOnceUnitState;
30943
 
class PragmaOnce;
30944
 
class CCExprResolve;
30945
 
class CExprResolve;
30946
 
namespace Puma {
30947
 
 
30948
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
30949
 
class PathManager {
30950
 
#line 30951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
30951
 
  friend class ::WinIfExists;
30952
 
  friend class ::WinImportHandler;
30953
 
  friend class ::WinMacros;
30954
 
  friend class ::CMatchSyntax;
30955
 
  friend class ::ExtGnu;
30956
 
  friend class ::ExtAC;
30957
 
  friend class ::ExtACBuilderCoupling;
30958
 
  friend class ::ExtACSyntaxCoupling;
30959
 
  friend class ::ExtACTree;
30960
 
  friend class ::ExtACKeywords;
30961
 
  friend class ::WinAsm;
30962
 
  friend class ::WinDeclSpecs;
30963
 
  friend class ::WinMemberExplSpec;
30964
 
  friend class ::WinTypeKeywords;
30965
 
  friend class ::PragmaOnceUnitState;
30966
 
  friend class ::PragmaOnce;
30967
 
  friend class ::CCExprResolve;
30968
 
  friend class ::CExprResolve;
30969
 
 
30970
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
30971
 
 
30972
 
 
30973
 
  ErrorStream     *_err;
30974
 
  Array<PathInfo>  _paths;     // List of directories path.
30975
 
  Array<RegComp*>  _protected; // List of regular patterns specifying 
30976
 
                               // protected paths.
30977
 
  PFMap _files;                // Maps the canonical filename of a project
30978
 
                               // to its related information
30979
 
 
30980
 
  // find all files of a directory tree and add them to _files
30981
 
  void traverse (const char *path);
30982
 
 
30983
 
  // find the canonical filename representation for a file
30984
 
  bool canonFilename (Filename name, Filename &abs_name) const;
30985
 
  
30986
 
  // Add a new file to the project file list
30987
 
  PFMConstIter addFile (const ProjectFile &file);
30988
 
 
30989
 
protected:
30990
 
  // Get the destination directory for a given source directory.
30991
 
  const char *getDestination (Filename file, ostream * = 0) const;
30992
 
        
30993
 
  // Called for every matched file.
30994
 
  virtual void action (PathIterator &) {}
30995
 
        
30996
 
  // Add the separator '/' to the copy of the given string.
30997
 
  char *addSeparator (const char *) const;
30998
 
 
30999
 
public:
31000
 
  PathManager (ErrorStream &e) : _err (&e) {} 
31001
 
  // Copy-constructor.
31002
 
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
31003
 
  virtual ~PathManager ();
31004
 
 
31005
 
  // Start the globbing. Let call action for every match.
31006
 
  void glob (char *pattern = (char*) 0);
31007
 
 
31008
 
  // Iterate the contents of the paths.
31009
 
  const char *iterate (PathIterator &) const;
31010
 
        
31011
 
  // Add a source and destination directories pair.
31012
 
  virtual void addPath (const char *, const char * = (const char*) 0);
31013
 
 
31014
 
  // Add a new file to the project file list
31015
 
  PFMConstIter addFile (Filename name);
31016
 
 
31017
 
  // Add a new file to the project file list with destination path
31018
 
  PFMConstIter addFile (Filename name, Filename dest);
31019
 
 
31020
 
  // search an absolute file name in the project tree
31021
 
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
31022
 
 
31023
 
  // Set the destination directory of the given source directory.
31024
 
  void setDest (const char *, const char *);
31025
 
 
31026
 
  // Add a protected-path pattern.
31027
 
  void protect (const char *);
31028
 
 
31029
 
  // Get path information.
31030
 
  long numPaths () const { return _paths.length (); }
31031
 
  long numProts () const { return _protected.length (); }
31032
 
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
31033
 
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
31034
 
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
31035
 
 
31036
 
  // Return true if the given file or path is protected.
31037
 
  bool isProtected (const char *file) const;
31038
 
 
31039
 
  // checks if a give file (by name) is a registered file of this path manager
31040
 
  // In case of success (found!) the an iterator is returned, which can be
31041
 
  // used to access more information about the file.
31042
 
  bool isBelow (const char *file, PFMConstIter &iter) const;
31043
 
 
31044
 
  // Returns true if the given file is registered with this path manager
31045
 
  virtual bool isBelow (const char *file) const;
31046
 
 
31047
 
  // Configure the project from the command line or a file.
31048
 
  virtual void configure (const Config &);
31049
 
 
31050
 
  // Join the paths of the given manager with the paths 
31051
 
  // of this path manager.
31052
 
  virtual void join (PathManager &);
31053
 
        
31054
 
  // Get the error stream object.
31055
 
  ErrorStream &err () const { return *_err; }
31056
 
 
31057
 
  // Get the path of a file in the destination directory.
31058
 
  bool getDestinationPath (const char *filename, ostream &out) const;
31059
 
        
31060
 
};
31061
 
 
31062
 
inline bool PathManager::isBelow (const char *file) const { 
31063
 
  PFMConstIter iter;
31064
 
  return isBelow (file, iter);
31065
 
}
31066
 
 
31067
 
 
31068
 
} // namespace Puma
31069
 
 
31070
 
#endif /* __path_manager__ */
31071
 
 
31072
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31073
 
// This file is part of PUMA.
31074
 
// Copyright (C) 1999-2003  The PUMA developer team.
31075
 
//                                                                
31076
 
// This program is free software;  you can redistribute it and/or 
31077
 
// modify it under the terms of the GNU General Public License as 
31078
 
// published by the Free Software Foundation; either version 2 of 
31079
 
// the License, or (at your option) any later version.            
31080
 
//                                                                
31081
 
// This program is distributed in the hope that it will be useful,
31082
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31083
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31084
 
// GNU General Public License for more details.                   
31085
 
//                                                                
31086
 
// You should have received a copy of the GNU General Public      
31087
 
// License along with this program; if not, write to the Free     
31088
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31089
 
// MA  02111-1307  USA                                            
31090
 
 
31091
 
#ifndef __UnitManager__
31092
 
#define __UnitManager__
31093
 
 
31094
 
// Class UnitManager helps you to have control of all units built.
31095
 
 
31096
 
 
31097
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31098
 
#include <list>
31099
 
 
31100
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31101
 
using namespace std;
31102
 
 
31103
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31104
 
namespace Puma {
31105
 
 
31106
 
 
31107
 
class Unit;
31108
 
class Source;
31109
 
class Tokenizer;
31110
 
 
31111
 
 
31112
 
#line 31113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31113
 
} // closed Puma
31114
 
class WinIfExists;
31115
 
class WinImportHandler;
31116
 
class WinMacros;
31117
 
class CMatchSyntax;
31118
 
class ExtGnu;
31119
 
class ExtAC;
31120
 
class ExtACBuilderCoupling;
31121
 
class ExtACSyntaxCoupling;
31122
 
class ExtACTree;
31123
 
class ExtACKeywords;
31124
 
class WinAsm;
31125
 
class WinDeclSpecs;
31126
 
class WinMemberExplSpec;
31127
 
class WinTypeKeywords;
31128
 
class PragmaOnceUnitState;
31129
 
class PragmaOnce;
31130
 
class CCExprResolve;
31131
 
class CExprResolve;
31132
 
namespace Puma {
31133
 
 
31134
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31135
 
class UnitManager {
31136
 
#line 31137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31137
 
  friend class ::WinIfExists;
31138
 
  friend class ::WinImportHandler;
31139
 
  friend class ::WinMacros;
31140
 
  friend class ::CMatchSyntax;
31141
 
  friend class ::ExtGnu;
31142
 
  friend class ::ExtAC;
31143
 
  friend class ::ExtACBuilderCoupling;
31144
 
  friend class ::ExtACSyntaxCoupling;
31145
 
  friend class ::ExtACTree;
31146
 
  friend class ::ExtACKeywords;
31147
 
  friend class ::WinAsm;
31148
 
  friend class ::WinDeclSpecs;
31149
 
  friend class ::WinMemberExplSpec;
31150
 
  friend class ::WinTypeKeywords;
31151
 
  friend class ::PragmaOnceUnitState;
31152
 
  friend class ::PragmaOnce;
31153
 
  friend class ::CCExprResolve;
31154
 
  friend class ::CExprResolve;
31155
 
 
31156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
31157
 
 
31158
 
public:
31159
 
  typedef map<string, Unit*> UMap;
31160
 
private:
31161
 
  ErrorStream *_err;        // For error messages.
31162
 
  list<Unit*> _nonames;     // Noname units list.
31163
 
  mutable UMap _umap;       // Named units, map supports fast lookup by name
31164
 
  typedef UMap::value_type UMapPair;
31165
 
  Tokenizer *_tokenizer;    // File scanner.
31166
 
 
31167
 
public:
31168
 
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
31169
 
        
31170
 
  // Destructor: Delete all units.
31171
 
  virtual ~UnitManager ();
31172
 
        
31173
 
  // Get the unit hash table.
31174
 
  UMap &getTable () const { return _umap; }
31175
 
  typedef UMap::iterator UMapIter;
31176
 
        
31177
 
  // Get/Set the file scanner that is used by newUnit
31178
 
  Tokenizer *tokenizer () const { return _tokenizer; }
31179
 
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
31180
 
 
31181
 
  // Add a unit to manager.
31182
 
  void addUnit (Unit *unit);
31183
 
        
31184
 
  // Remove (and destroy) a unit from hash table. If the name
31185
 
  // is NULL remove all (but not the nonames).
31186
 
  void removeUnit (const char *name = (const char*) 0, bool = false, 
31187
 
                   bool destroy = true) const;
31188
 
 
31189
 
  // Empty a unit. Don't remove from hash table.
31190
 
  // Preserve the last save location information.
31191
 
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
31192
 
 
31193
 
  // Build and add a new unit. 
31194
 
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
31195
 
        
31196
 
  // Get a unit by name. 
31197
 
  Unit *getUnit (const char *name, bool = false) const;
31198
 
                        
31199
 
  // Print given unit to the given outstream. If no
31200
 
  // name is given, print all units.
31201
 
  void print (const char *name = (const char*) 0, bool = false, 
31202
 
              ostream &out = cout) const;
31203
 
 
31204
 
  // Destroy all noname units.
31205
 
  void removeNonames ();
31206
 
      
31207
 
  // Initialize the unit manager and the managed 
31208
 
  // units for the next parse process.
31209
 
  void init ();
31210
 
};
31211
 
 
31212
 
 
31213
 
} // namespace Puma
31214
 
 
31215
 
#endif /* __UnitManager__ */
31216
 
 
31217
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
31218
 
// This file is part of PUMA.
31219
 
// Copyright (C) 1999-2003  The PUMA developer team.
31220
 
//                                                                
31221
 
// This program is free software;  you can redistribute it and/or 
31222
 
// modify it under the terms of the GNU General Public License as 
31223
 
// published by the Free Software Foundation; either version 2 of 
31224
 
// the License, or (at your option) any later version.            
31225
 
//                                                                
31226
 
// This program is distributed in the hope that it will be useful,
31227
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31228
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31229
 
// GNU General Public License for more details.                   
31230
 
//                                                                
31231
 
// You should have received a copy of the GNU General Public      
31232
 
// License along with this program; if not, write to the Free     
31233
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31234
 
// MA  02111-1307  USA                                            
31235
 
 
31236
 
#ifndef __SaveMode__
31237
 
#define __SaveMode__
31238
 
 
31239
 
namespace Puma {
31240
 
 
31241
 
 
31242
 
// Project file save mode.
31243
 
 
31244
 
#line 31245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31245
 
} // closed Puma
31246
 
class WinIfExists;
31247
 
class WinImportHandler;
31248
 
class WinMacros;
31249
 
class CMatchSyntax;
31250
 
class ExtGnu;
31251
 
class ExtAC;
31252
 
class ExtACBuilderCoupling;
31253
 
class ExtACSyntaxCoupling;
31254
 
class ExtACTree;
31255
 
class ExtACKeywords;
31256
 
class WinAsm;
31257
 
class WinDeclSpecs;
31258
 
class WinMemberExplSpec;
31259
 
class WinTypeKeywords;
31260
 
class PragmaOnceUnitState;
31261
 
class PragmaOnce;
31262
 
class CCExprResolve;
31263
 
class CExprResolve;
31264
 
namespace Puma {
31265
 
 
31266
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
31267
 
struct SaveMode {
31268
 
#line 31269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31269
 
  friend class ::WinIfExists;
31270
 
  friend class ::WinImportHandler;
31271
 
  friend class ::WinMacros;
31272
 
  friend class ::CMatchSyntax;
31273
 
  friend class ::ExtGnu;
31274
 
  friend class ::ExtAC;
31275
 
  friend class ::ExtACBuilderCoupling;
31276
 
  friend class ::ExtACSyntaxCoupling;
31277
 
  friend class ::ExtACTree;
31278
 
  friend class ::ExtACKeywords;
31279
 
  friend class ::WinAsm;
31280
 
  friend class ::WinDeclSpecs;
31281
 
  friend class ::WinMemberExplSpec;
31282
 
  friend class ::WinTypeKeywords;
31283
 
  friend class ::PragmaOnceUnitState;
31284
 
  friend class ::PragmaOnce;
31285
 
  friend class ::CCExprResolve;
31286
 
  friend class ::CExprResolve;
31287
 
 
31288
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
31289
 
 
31290
 
  enum Mode { 
31291
 
    OVERWRITE = 1, 
31292
 
    RENAME_OLD, 
31293
 
    NEW_SUFFIX 
31294
 
  };
31295
 
};
31296
 
    
31297
 
 
31298
 
} // namespace Puma
31299
 
 
31300
 
#endif /* __SaveMode__ */
31301
 
 
31302
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
31303
 
#include <fstream>
31304
 
 
31305
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
31306
 
using namespace std;
31307
 
 
31308
 
namespace Puma {
31309
 
 
31310
 
 
31311
 
 
31312
 
#line 31313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31313
 
} // closed Puma
31314
 
class WinIfExists;
31315
 
class WinImportHandler;
31316
 
class WinMacros;
31317
 
class CMatchSyntax;
31318
 
class ExtGnu;
31319
 
class ExtAC;
31320
 
class ExtACBuilderCoupling;
31321
 
class ExtACSyntaxCoupling;
31322
 
class ExtACTree;
31323
 
class ExtACKeywords;
31324
 
class WinAsm;
31325
 
class WinDeclSpecs;
31326
 
class WinMemberExplSpec;
31327
 
class WinTypeKeywords;
31328
 
class PragmaOnceUnitState;
31329
 
class PragmaOnce;
31330
 
class CCExprResolve;
31331
 
class CExprResolve;
31332
 
namespace Puma {
31333
 
 
31334
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
31335
 
class Project : public PathManager, public SaveMode {
31336
 
#line 31337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31337
 
  friend class ::WinIfExists;
31338
 
  friend class ::WinImportHandler;
31339
 
  friend class ::WinMacros;
31340
 
  friend class ::CMatchSyntax;
31341
 
  friend class ::ExtGnu;
31342
 
  friend class ::ExtAC;
31343
 
  friend class ::ExtACBuilderCoupling;
31344
 
  friend class ::ExtACSyntaxCoupling;
31345
 
  friend class ::ExtACTree;
31346
 
  friend class ::ExtACKeywords;
31347
 
  friend class ::WinAsm;
31348
 
  friend class ::WinDeclSpecs;
31349
 
  friend class ::WinMemberExplSpec;
31350
 
  friend class ::WinTypeKeywords;
31351
 
  friend class ::PragmaOnceUnitState;
31352
 
  friend class ::PragmaOnce;
31353
 
  friend class ::CCExprResolve;
31354
 
  friend class ::CExprResolve;
31355
 
 
31356
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
31357
 
 
31358
 
  UnitManager  _unitManager; 
31359
 
  const char  *_suffix;           // Current file name suffix.
31360
 
  Mode         _mode;      // Current save mode.
31361
 
 
31362
 
  // Change to the directory, or create it if necessary.
31363
 
  bool makeDir (const char *) const;
31364
 
        
31365
 
  // Create the directory hierarchy need for file 'path'.
31366
 
  bool makeDirHierarchy (Filename path) const;
31367
 
 
31368
 
protected:
31369
 
  // Write a unit on a file. Called by save().
31370
 
  virtual void write (Unit *unit, ofstream &) const; 
31371
 
 
31372
 
  // Check/update the state of the given unit.
31373
 
  bool checkState (const char *, Unit *) const;
31374
 
  void updateState (const char *, Unit *) const;
31375
 
        
31376
 
public:
31377
 
  Project (ErrorStream &);
31378
 
  virtual ~Project ();
31379
 
 
31380
 
  // Set the mode for saving an unit.
31381
 
  // OVERWRITE  -> Save the unit under its name and overwrite existing
31382
 
  //                   files.
31383
 
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
31384
 
  //                   added to the name of the file, like `main.cc.old'
31385
 
  //                   for the file `main.cc' and the suffix `.old'.
31386
 
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
31387
 
  //                   `main.cpp' for the unit `main.cc' and the suffix 
31388
 
  //               `cpp'.
31389
 
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
31390
 
 
31391
 
  // Save a unit using the name of the unit to get the full 
31392
 
  // name of the file and path to save to. The save location
31393
 
  // must not be protected by a protect pattern and the original
31394
 
  // file must be located in one of the source directories.
31395
 
  virtual void save (Unit *, bool = false) const;
31396
 
        
31397
 
  // Save a FileUnit (or all) to a file (or files).
31398
 
  virtual void save (const char *file = (const char*)0,
31399
 
                     bool only_modified = false, bool is_reg_ex = false) const;
31400
 
 
31401
 
  // Print an unit, regular expression for more units.
31402
 
  // If no name is given print all units.
31403
 
  void print (const char *name = (const char*)0, ostream &out = cout,
31404
 
              bool is_reg_ex = false) const;
31405
 
        
31406
 
  // Close an unit, regular expression for more units.
31407
 
  // If no name is given close all units. If destroy is true,
31408
 
  // the unit(s) will be deleted. 
31409
 
  void close (const char *name = (const char*)0, bool destroy = false,
31410
 
              bool is_reg_ex = false) const;
31411
 
 
31412
 
  // Add a new file to the project.
31413
 
  Unit *addFile (Filename);
31414
 
  Unit *addFile (Filename, Filename);
31415
 
 
31416
 
  // Configure the project from the command line or a file.
31417
 
  virtual void configure (const Config &);
31418
 
        
31419
 
  // Member access.
31420
 
  UnitManager &unitManager ();
31421
 
        
31422
 
  // Return true if the given file in the source directory
31423
 
  // (or at the unit manager) is newer than the corresponding
31424
 
  // file in the destination directory.
31425
 
  bool isNewer (const char *) const;
31426
 
 
31427
 
  // Returns true if the given file is in or below the project dirs
31428
 
  virtual bool isBelow (const char *) const;
31429
 
  virtual bool isBelow (Unit *) const;
31430
 
};
31431
 
 
31432
 
inline UnitManager &Project::unitManager () 
31433
 
 {  return _unitManager; }
31434
 
 
31435
 
inline bool Project::isBelow (const char *file) const
31436
 
 { return PathManager::isBelow (file); }
31437
 
 
31438
 
 
31439
 
} // namespace Puma
31440
 
 
31441
 
#endif /* __project__ */
31442
 
 
31443
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
31444
 
 
31445
 
#line 31446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31446
 
 
31447
 
#ifndef __ac_fwd_ExtACKeywords__
31448
 
#define __ac_fwd_ExtACKeywords__
31449
 
class ExtACKeywords;
31450
 
namespace AC {
31451
 
  template <class JoinPoint, class Binding>
31452
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
31453
 
  template <class JoinPoint, class Binding>
31454
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
31455
 
  template <class JoinPoint>
31456
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
31457
 
}
31458
 
#endif
31459
 
 
31460
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
31461
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
31462
 
#endif
31463
 
 
31464
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
31465
 
// This file is part of PUMA.
31466
 
// Copyright (C) 1999-2003  The PUMA developer team.
31467
 
//                                                                
31468
 
// This program is free software;  you can redistribute it and/or 
31469
 
// modify it under the terms of the GNU General Public License as 
31470
 
// published by the Free Software Foundation; either version 2 of 
31471
 
// the License, or (at your option) any later version.            
31472
 
//                                                                
31473
 
// This program is distributed in the hope that it will be useful,
31474
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31475
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31476
 
// GNU General Public License for more details.                   
31477
 
//                                                                
31478
 
// You should have received a copy of the GNU General Public      
31479
 
// License along with this program; if not, write to the Free     
31480
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31481
 
// MA  02111-1307  USA                                            
31482
 
 
31483
 
#ifndef __c_scanner_h__
31484
 
#define __c_scanner_h__
31485
 
 
31486
 
 
31487
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
31488
 
// This file is part of PUMA.
31489
 
// Copyright (C) 1999-2003  The PUMA developer team.
31490
 
//                                                                
31491
 
// This program is free software;  you can redistribute it and/or 
31492
 
// modify it under the terms of the GNU General Public License as 
31493
 
// published by the Free Software Foundation; either version 2 of 
31494
 
// the License, or (at your option) any later version.            
31495
 
//                                                                
31496
 
// This program is distributed in the hope that it will be useful,
31497
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31498
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31499
 
// GNU General Public License for more details.                   
31500
 
//                                                                
31501
 
// You should have received a copy of the GNU General Public      
31502
 
// License along with this program; if not, write to the Free     
31503
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31504
 
// MA  02111-1307  USA                                            
31505
 
 
31506
 
#ifndef __c_recognizer_h__
31507
 
#define __c_recognizer_h__
31508
 
 
31509
 
 
31510
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
31511
 
// This file is part of PUMA.
31512
 
// Copyright (C) 1999-2003  The PUMA developer team.
31513
 
//                                                                
31514
 
// This program is free software;  you can redistribute it and/or 
31515
 
// modify it under the terms of the GNU General Public License as 
31516
 
// published by the Free Software Foundation; either version 2 of 
31517
 
// the License, or (at your option) any later version.            
31518
 
//                                                                
31519
 
// This program is distributed in the hope that it will be useful,
31520
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31521
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31522
 
// GNU General Public License for more details.                   
31523
 
//                                                                
31524
 
// You should have received a copy of the GNU General Public      
31525
 
// License along with this program; if not, write to the Free     
31526
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31527
 
// MA  02111-1307  USA                                            
31528
 
 
31529
 
#ifndef __CScanBuffer_h__
31530
 
#define __CScanBuffer_h__
31531
 
 
31532
 
 
31533
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
31534
 
// This file is part of PUMA.
31535
 
// Copyright (C) 1999-2003  The PUMA developer team.
31536
 
//                                                                
31537
 
// This program is free software;  you can redistribute it and/or 
31538
 
// modify it under the terms of the GNU General Public License as 
31539
 
// published by the Free Software Foundation; either version 2 of 
31540
 
// the License, or (at your option) any later version.            
31541
 
//                                                                
31542
 
// This program is distributed in the hope that it will be useful,
31543
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31544
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31545
 
// GNU General Public License for more details.                   
31546
 
//                                                                
31547
 
// You should have received a copy of the GNU General Public      
31548
 
// License along with this program; if not, write to the Free     
31549
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31550
 
// MA  02111-1307  USA                                            
31551
 
 
31552
 
#ifndef __scan_buffer_h__
31553
 
#define __scan_buffer_h__
31554
 
 
31555
 
namespace Puma {
31556
 
 
31557
 
 
31558
 
 
31559
 
#line 31560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31560
 
} // closed Puma
31561
 
class WinIfExists;
31562
 
class WinImportHandler;
31563
 
class WinMacros;
31564
 
class CMatchSyntax;
31565
 
class ExtGnu;
31566
 
class ExtAC;
31567
 
class ExtACBuilderCoupling;
31568
 
class ExtACSyntaxCoupling;
31569
 
class ExtACTree;
31570
 
class ExtACKeywords;
31571
 
class WinAsm;
31572
 
class WinDeclSpecs;
31573
 
class WinMemberExplSpec;
31574
 
class WinTypeKeywords;
31575
 
class PragmaOnceUnitState;
31576
 
class PragmaOnce;
31577
 
class CCExprResolve;
31578
 
class CExprResolve;
31579
 
namespace Puma {
31580
 
 
31581
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
31582
 
class ScanBuffer {
31583
 
#line 31584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31584
 
  friend class ::WinIfExists;
31585
 
  friend class ::WinImportHandler;
31586
 
  friend class ::WinMacros;
31587
 
  friend class ::CMatchSyntax;
31588
 
  friend class ::ExtGnu;
31589
 
  friend class ::ExtAC;
31590
 
  friend class ::ExtACBuilderCoupling;
31591
 
  friend class ::ExtACSyntaxCoupling;
31592
 
  friend class ::ExtACTree;
31593
 
  friend class ::ExtACKeywords;
31594
 
  friend class ::WinAsm;
31595
 
  friend class ::WinDeclSpecs;
31596
 
  friend class ::WinMemberExplSpec;
31597
 
  friend class ::WinTypeKeywords;
31598
 
  friend class ::PragmaOnceUnitState;
31599
 
  friend class ::PragmaOnce;
31600
 
  friend class ::CCExprResolve;
31601
 
  friend class ::CExprResolve;
31602
 
 
31603
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
31604
 
 
31605
 
public:
31606
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
31607
 
  
31608
 
  virtual ~ScanBuffer () {}
31609
 
 
31610
 
  virtual char next () = 0;
31611
 
  virtual char *token () = 0;
31612
 
  virtual int len () const = 0;
31613
 
  virtual void reset () = 0;
31614
 
  virtual void retry () = 0; 
31615
 
  virtual void accept (int len) = 0;
31616
 
  virtual void more (int len) = 0;
31617
 
  virtual State state () const = 0;
31618
 
};
31619
 
 
31620
 
 
31621
 
} // namespace Puma
31622
 
 
31623
 
#endif /* __scan_buffer_h__ */
31624
 
 
31625
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
31626
 
namespace Puma {
31627
 
 
31628
 
 
31629
 
 
31630
 
#line 31631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31631
 
} // closed Puma
31632
 
class WinIfExists;
31633
 
class WinImportHandler;
31634
 
class WinMacros;
31635
 
class CMatchSyntax;
31636
 
class ExtGnu;
31637
 
class ExtAC;
31638
 
class ExtACBuilderCoupling;
31639
 
class ExtACSyntaxCoupling;
31640
 
class ExtACTree;
31641
 
class ExtACKeywords;
31642
 
class WinAsm;
31643
 
class WinDeclSpecs;
31644
 
class WinMemberExplSpec;
31645
 
class WinTypeKeywords;
31646
 
class PragmaOnceUnitState;
31647
 
class PragmaOnce;
31648
 
class CCExprResolve;
31649
 
class CExprResolve;
31650
 
namespace Puma {
31651
 
 
31652
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
31653
 
class CScanBuffer {
31654
 
#line 31655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31655
 
  friend class ::WinIfExists;
31656
 
  friend class ::WinImportHandler;
31657
 
  friend class ::WinMacros;
31658
 
  friend class ::CMatchSyntax;
31659
 
  friend class ::ExtGnu;
31660
 
  friend class ::ExtAC;
31661
 
  friend class ::ExtACBuilderCoupling;
31662
 
  friend class ::ExtACSyntaxCoupling;
31663
 
  friend class ::ExtACTree;
31664
 
  friend class ::ExtACKeywords;
31665
 
  friend class ::WinAsm;
31666
 
  friend class ::WinDeclSpecs;
31667
 
  friend class ::WinMemberExplSpec;
31668
 
  friend class ::WinTypeKeywords;
31669
 
  friend class ::PragmaOnceUnitState;
31670
 
  friend class ::PragmaOnce;
31671
 
  friend class ::CCExprResolve;
31672
 
  friend class ::CExprResolve;
31673
 
 
31674
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
31675
 
 
31676
 
  ScanBuffer *next_buffer;
31677
 
  bool on_new_line;
31678
 
  int nl_pos;
31679
 
 
31680
 
  void check ();
31681
 
 
31682
 
public:
31683
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
31684
 
  inline char next ();
31685
 
  inline void reset ();
31686
 
  inline void accept (int len);
31687
 
  inline void retry ();
31688
 
  bool new_line () const { return on_new_line; }
31689
 
  char *token () { return next_buffer->token (); }
31690
 
  int len () const { return next_buffer->len (); }
31691
 
  void more (int len) { next_buffer->more (len); }
31692
 
  ScanBuffer::State state () const { return next_buffer->state (); }
31693
 
};
31694
 
 
31695
 
 
31696
 
inline char CScanBuffer::next () {
31697
 
  char character = next_buffer->next ();
31698
 
  if (character == '\n' && nl_pos == -1)
31699
 
    nl_pos = len () - 1;
31700
 
  check ();
31701
 
  return character;
31702
 
}
31703
 
 
31704
 
inline void CScanBuffer::reset () { 
31705
 
  next_buffer->reset (); 
31706
 
  on_new_line = true;
31707
 
  nl_pos = -1;
31708
 
  check ();
31709
 
}
31710
 
 
31711
 
 
31712
 
inline void CScanBuffer::retry () {
31713
 
  nl_pos = -1;
31714
 
  next_buffer->retry ();
31715
 
}
31716
 
 
31717
 
 
31718
 
inline void CScanBuffer::accept (int len) {
31719
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
31720
 
  nl_pos = -1;
31721
 
  next_buffer->accept (len);
31722
 
}
31723
 
 
31724
 
} // namespace Puma
31725
 
 
31726
 
#endif // __CScanBuffer_h__
31727
 
 
31728
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
31729
 
// This file is part of PUMA.
31730
 
// Copyright (C) 1999-2003  The PUMA developer team.
31731
 
//                                                                
31732
 
// This program is free software;  you can redistribute it and/or 
31733
 
// modify it under the terms of the GNU General Public License as 
31734
 
// published by the Free Software Foundation; either version 2 of 
31735
 
// the License, or (at your option) any later version.            
31736
 
//                                                                
31737
 
// This program is distributed in the hope that it will be useful,
31738
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31739
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31740
 
// GNU General Public License for more details.                   
31741
 
//                                                                
31742
 
// You should have received a copy of the GNU General Public      
31743
 
// License along with this program; if not, write to the Free     
31744
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31745
 
// MA  02111-1307  USA                                            
31746
 
 
31747
 
#ifndef __c_comment_recognizer_h__
31748
 
#define __c_comment_recognizer_h__
31749
 
 
31750
 
 
31751
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
31752
 
// This file is part of PUMA.
31753
 
// Copyright (C) 1999-2003  The PUMA developer team.
31754
 
//                                                                
31755
 
// This program is free software;  you can redistribute it and/or 
31756
 
// modify it under the terms of the GNU General Public License as 
31757
 
// published by the Free Software Foundation; either version 2 of 
31758
 
// the License, or (at your option) any later version.            
31759
 
//                                                                
31760
 
// This program is distributed in the hope that it will be useful,
31761
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31762
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31763
 
// GNU General Public License for more details.                   
31764
 
//                                                                
31765
 
// You should have received a copy of the GNU General Public      
31766
 
// License along with this program; if not, write to the Free     
31767
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31768
 
// MA  02111-1307  USA                                            
31769
 
 
31770
 
#ifndef __mapped_orange_recognizer_h__
31771
 
#define __mapped_orange_recognizer_h__
31772
 
 
31773
 
// The token recognizer class, which uses scanner tables generated by the
31774
 
// orange tool. Returned expressions mapped according to an orange
31775
 
// generated mapping table
31776
 
 
31777
 
 
31778
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31779
 
// This file is part of PUMA.
31780
 
// Copyright (C) 1999-2003  The PUMA developer team.
31781
 
//                                                                
31782
 
// This program is free software;  you can redistribute it and/or 
31783
 
// modify it under the terms of the GNU General Public License as 
31784
 
// published by the Free Software Foundation; either version 2 of 
31785
 
// the License, or (at your option) any later version.            
31786
 
//                                                                
31787
 
// This program is distributed in the hope that it will be useful,
31788
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31789
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31790
 
// GNU General Public License for more details.                   
31791
 
//                                                                
31792
 
// You should have received a copy of the GNU General Public      
31793
 
// License along with this program; if not, write to the Free     
31794
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31795
 
// MA  02111-1307  USA                                            
31796
 
 
31797
 
#ifndef __recognizer_h__
31798
 
#define __recognizer_h__
31799
 
 
31800
 
// The token recognizer class, which uses scanner tables generated by the
31801
 
// orange tool.
31802
 
 
31803
 
 
31804
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31805
 
namespace Puma {
31806
 
 
31807
 
 
31808
 
#ifndef __TTGEN__
31809
 
#  define __TTGEN__
31810
 
 
31811
 
#line 31812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31812
 
} // closed Puma
31813
 
class WinIfExists;
31814
 
class WinImportHandler;
31815
 
class WinMacros;
31816
 
class CMatchSyntax;
31817
 
class ExtGnu;
31818
 
class ExtAC;
31819
 
class ExtACBuilderCoupling;
31820
 
class ExtACSyntaxCoupling;
31821
 
class ExtACTree;
31822
 
class ExtACKeywords;
31823
 
class WinAsm;
31824
 
class WinDeclSpecs;
31825
 
class WinMemberExplSpec;
31826
 
class WinTypeKeywords;
31827
 
class PragmaOnceUnitState;
31828
 
class PragmaOnce;
31829
 
class CCExprResolve;
31830
 
class CExprResolve;
31831
 
namespace Puma {
31832
 
 
31833
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31834
 
typedef struct
31835
 
 {
31836
 
#line 31837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31837
 
  friend class ::WinIfExists;
31838
 
  friend class ::WinImportHandler;
31839
 
  friend class ::WinMacros;
31840
 
  friend class ::CMatchSyntax;
31841
 
  friend class ::ExtGnu;
31842
 
  friend class ::ExtAC;
31843
 
  friend class ::ExtACBuilderCoupling;
31844
 
  friend class ::ExtACSyntaxCoupling;
31845
 
  friend class ::ExtACTree;
31846
 
  friend class ::ExtACKeywords;
31847
 
  friend class ::WinAsm;
31848
 
  friend class ::WinDeclSpecs;
31849
 
  friend class ::WinMemberExplSpec;
31850
 
  friend class ::WinTypeKeywords;
31851
 
  friend class ::PragmaOnceUnitState;
31852
 
  friend class ::PragmaOnce;
31853
 
  friend class ::CCExprResolve;
31854
 
  friend class ::CExprResolve;
31855
 
 
31856
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31857
 
 unsigned char Type;
31858
 
   unsigned char LookAhead;
31859
 
   int           Expression;
31860
 
   int           Start;
31861
 
 } States;                                                                   
31862
 
#endif
31863
 
 
31864
 
 
31865
 
// class declaration
31866
 
 
31867
 
 
31868
 
#line 31869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31869
 
} // closed Puma
31870
 
class WinIfExists;
31871
 
class WinImportHandler;
31872
 
class WinMacros;
31873
 
class CMatchSyntax;
31874
 
class ExtGnu;
31875
 
class ExtAC;
31876
 
class ExtACBuilderCoupling;
31877
 
class ExtACSyntaxCoupling;
31878
 
class ExtACTree;
31879
 
class ExtACKeywords;
31880
 
class WinAsm;
31881
 
class WinDeclSpecs;
31882
 
class WinMemberExplSpec;
31883
 
class WinTypeKeywords;
31884
 
class PragmaOnceUnitState;
31885
 
class PragmaOnce;
31886
 
class CCExprResolve;
31887
 
class CExprResolve;
31888
 
namespace Puma {
31889
 
 
31890
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31891
 
template <typename TScanBuffer>
31892
 
class OrangeRecognizer {
31893
 
#line 31894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
31894
 
  friend class ::WinIfExists;
31895
 
  friend class ::WinImportHandler;
31896
 
  friend class ::WinMacros;
31897
 
  friend class ::CMatchSyntax;
31898
 
  friend class ::ExtGnu;
31899
 
  friend class ::ExtAC;
31900
 
  friend class ::ExtACBuilderCoupling;
31901
 
  friend class ::ExtACSyntaxCoupling;
31902
 
  friend class ::ExtACTree;
31903
 
  friend class ::ExtACKeywords;
31904
 
  friend class ::WinAsm;
31905
 
  friend class ::WinDeclSpecs;
31906
 
  friend class ::WinMemberExplSpec;
31907
 
  friend class ::WinTypeKeywords;
31908
 
  friend class ::PragmaOnceUnitState;
31909
 
  friend class ::PragmaOnce;
31910
 
  friend class ::CCExprResolve;
31911
 
  friend class ::CExprResolve;
31912
 
 
31913
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
31914
 
 
31915
 
  // local structures generated by Orange
31916
 
 
31917
 
  char *_map;
31918
 
  int _start;
31919
 
  States *_state;
31920
 
  int *_next;
31921
 
  int *_control;
31922
 
  int _tab_size;
31923
 
 
31924
 
public:
31925
 
  OrangeRecognizer (char *map, int start, States *state, int *next,
31926
 
                    int *control, int tab_size) : 
31927
 
    _map (map), _start (start), _state (state), _next (next),
31928
 
    _control (control), _tab_size (tab_size)
31929
 
   {}
31930
 
 
31931
 
  // try to recognize the current token in the character buffer
31932
 
  // returns 1 on success, 0 on eof, -1 on unknown token
31933
 
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
31934
 
};
31935
 
 
31936
 
template <typename TScanBuffer>
31937
 
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
31938
 
                                              int &token, int &len) {
31939
 
  int  NextState;
31940
 
  char Character;
31941
 
  char CharClass;
31942
 
  int  NextStatePos;
31943
 
  int  State;
31944
 
  int  LookAheadLen;
31945
 
  int  AcceptLen;
31946
 
  int  AcceptState;
31947
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
31948
 
 
31949
 
  State = _start;
31950
 
  AcceptState = -1;
31951
 
  LookAheadLen = 0;
31952
 
  AcceptLen = 0;
31953
 
 
31954
 
  do { 
31955
 
    Character = scan_buffer->next ();
31956
 
 
31957
 
    CharClass = _map[(unsigned char)Character];
31958
 
    if (CharClass == -1)
31959
 
      break;
31960
 
 
31961
 
    NextStatePos = _state[State].Start + CharClass;
31962
 
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
31963
 
        _control[NextStatePos] != State)
31964
 
      break;
31965
 
 
31966
 
    if ((NextState = _next[NextStatePos]) == -1)
31967
 
      break;
31968
 
 
31969
 
    State = NextState;
31970
 
 
31971
 
    if (_state[State].Type > 0) {
31972
 
      AcceptState = State; // remember this (terminal) state
31973
 
      AcceptLen = scan_buffer->len ();
31974
 
    }
31975
 
 
31976
 
    if (_state[State].LookAhead)
31977
 
      LookAheadLen = scan_buffer->len ();
31978
 
 
31979
 
    buffer_state = scan_buffer->state ();
31980
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
31981
 
 
31982
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
31983
 
    return -1;
31984
 
 
31985
 
  if (AcceptState == -1)
31986
 
    return 0;
31987
 
 
31988
 
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
31989
 
  token = _state[AcceptState].Expression;
31990
 
 
31991
 
  return 1;
31992
 
}
31993
 
 
31994
 
} // namespace Puma
31995
 
 
31996
 
#endif /* __orange_recognizer_h__ */
31997
 
 
31998
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
31999
 
namespace Puma {
32000
 
 
32001
 
 
32002
 
// class declaration
32003
 
 
32004
 
 
32005
 
#line 32006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32006
 
} // closed Puma
32007
 
class WinIfExists;
32008
 
class WinImportHandler;
32009
 
class WinMacros;
32010
 
class CMatchSyntax;
32011
 
class ExtGnu;
32012
 
class ExtAC;
32013
 
class ExtACBuilderCoupling;
32014
 
class ExtACSyntaxCoupling;
32015
 
class ExtACTree;
32016
 
class ExtACKeywords;
32017
 
class WinAsm;
32018
 
class WinDeclSpecs;
32019
 
class WinMemberExplSpec;
32020
 
class WinTypeKeywords;
32021
 
class PragmaOnceUnitState;
32022
 
class PragmaOnce;
32023
 
class CCExprResolve;
32024
 
class CExprResolve;
32025
 
namespace Puma {
32026
 
 
32027
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
32028
 
template <class ScanBuffer>
32029
 
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
32030
 
#line 32031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32031
 
  friend class ::WinIfExists;
32032
 
  friend class ::WinImportHandler;
32033
 
  friend class ::WinMacros;
32034
 
  friend class ::CMatchSyntax;
32035
 
  friend class ::ExtGnu;
32036
 
  friend class ::ExtAC;
32037
 
  friend class ::ExtACBuilderCoupling;
32038
 
  friend class ::ExtACSyntaxCoupling;
32039
 
  friend class ::ExtACTree;
32040
 
  friend class ::ExtACKeywords;
32041
 
  friend class ::WinAsm;
32042
 
  friend class ::WinDeclSpecs;
32043
 
  friend class ::WinMemberExplSpec;
32044
 
  friend class ::WinTypeKeywords;
32045
 
  friend class ::PragmaOnceUnitState;
32046
 
  friend class ::PragmaOnce;
32047
 
  friend class ::CCExprResolve;
32048
 
  friend class ::CExprResolve;
32049
 
 
32050
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
32051
 
 
32052
 
  int *_expr_map;
32053
 
 
32054
 
public:
32055
 
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
32056
 
                          States *state, int *next,
32057
 
                          int *control, int tab_size) : 
32058
 
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
32059
 
    _expr_map (expr_map) 
32060
 
   {}
32061
 
 
32062
 
  // try to recognize the current token in the character buffer
32063
 
  // returns 1 on success, 0 on eof, -1 on unknown token
32064
 
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
32065
 
    int result;
32066
 
 
32067
 
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
32068
 
      token = _expr_map[token];
32069
 
    }
32070
 
    return result;
32071
 
  }
32072
 
};
32073
 
 
32074
 
 
32075
 
} // namespace Puma
32076
 
 
32077
 
#endif // __mapped_orange_recognizer_h__
32078
 
 
32079
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
32080
 
namespace Puma {
32081
 
 
32082
 
 
32083
 
 
32084
 
#line 32085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32085
 
} // closed Puma
32086
 
class WinIfExists;
32087
 
class WinImportHandler;
32088
 
class WinMacros;
32089
 
class CMatchSyntax;
32090
 
class ExtGnu;
32091
 
class ExtAC;
32092
 
class ExtACBuilderCoupling;
32093
 
class ExtACSyntaxCoupling;
32094
 
class ExtACTree;
32095
 
class ExtACKeywords;
32096
 
class WinAsm;
32097
 
class WinDeclSpecs;
32098
 
class WinMemberExplSpec;
32099
 
class WinTypeKeywords;
32100
 
class PragmaOnceUnitState;
32101
 
class PragmaOnce;
32102
 
class CCExprResolve;
32103
 
class CExprResolve;
32104
 
namespace Puma {
32105
 
 
32106
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
32107
 
class CCommentRecognizer {
32108
 
#line 32109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32109
 
  friend class ::WinIfExists;
32110
 
  friend class ::WinImportHandler;
32111
 
  friend class ::WinMacros;
32112
 
  friend class ::CMatchSyntax;
32113
 
  friend class ::ExtGnu;
32114
 
  friend class ::ExtAC;
32115
 
  friend class ::ExtACBuilderCoupling;
32116
 
  friend class ::ExtACSyntaxCoupling;
32117
 
  friend class ::ExtACTree;
32118
 
  friend class ::ExtACKeywords;
32119
 
  friend class ::WinAsm;
32120
 
  friend class ::WinDeclSpecs;
32121
 
  friend class ::WinMemberExplSpec;
32122
 
  friend class ::WinTypeKeywords;
32123
 
  friend class ::PragmaOnceUnitState;
32124
 
  friend class ::PragmaOnce;
32125
 
  friend class ::CCExprResolve;
32126
 
  friend class ::CExprResolve;
32127
 
 
32128
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
32129
 
 
32130
 
public:
32131
 
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
32132
 
 
32133
 
private:
32134
 
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
32135
 
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
32136
 
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
32137
 
  Mode comment_mode;
32138
 
 
32139
 
public:
32140
 
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
32141
 
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
32142
 
  void mode (Mode mode) { comment_mode = mode; }
32143
 
  Mode mode () { return comment_mode; }
32144
 
};
32145
 
 
32146
 
 
32147
 
} // namespace Puma
32148
 
 
32149
 
#endif /* __c_comment_recognizer_h__ */
32150
 
 
32151
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
32152
 
// This file is part of PUMA.
32153
 
// Copyright (C) 1999-2003  The PUMA developer team.
32154
 
//                                                                
32155
 
// This program is free software;  you can redistribute it and/or 
32156
 
// modify it under the terms of the GNU General Public License as 
32157
 
// published by the Free Software Foundation; either version 2 of 
32158
 
// the License, or (at your option) any later version.            
32159
 
//                                                                
32160
 
// This program is distributed in the hope that it will be useful,
32161
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32162
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32163
 
// GNU General Public License for more details.                   
32164
 
//                                                                
32165
 
// You should have received a copy of the GNU General Public      
32166
 
// License along with this program; if not, write to the Free     
32167
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32168
 
// MA  02111-1307  USA                                            
32169
 
 
32170
 
#ifndef __keyword_recognizer_h__
32171
 
#define __keyword_recognizer_h__
32172
 
 
32173
 
 
32174
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
32175
 
namespace Puma {
32176
 
 
32177
 
 
32178
 
 
32179
 
#line 32180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32180
 
} // closed Puma
32181
 
class WinIfExists;
32182
 
class WinImportHandler;
32183
 
class WinMacros;
32184
 
class CMatchSyntax;
32185
 
class ExtGnu;
32186
 
class ExtAC;
32187
 
class ExtACBuilderCoupling;
32188
 
class ExtACSyntaxCoupling;
32189
 
class ExtACTree;
32190
 
class ExtACKeywords;
32191
 
class WinAsm;
32192
 
class WinDeclSpecs;
32193
 
class WinMemberExplSpec;
32194
 
class WinTypeKeywords;
32195
 
class PragmaOnceUnitState;
32196
 
class PragmaOnce;
32197
 
class CCExprResolve;
32198
 
class CExprResolve;
32199
 
namespace Puma {
32200
 
 
32201
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
32202
 
class KeywordRecognizer {
32203
 
#line 32204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32204
 
  friend class ::WinIfExists;
32205
 
  friend class ::WinImportHandler;
32206
 
  friend class ::WinMacros;
32207
 
  friend class ::CMatchSyntax;
32208
 
  friend class ::ExtGnu;
32209
 
  friend class ::ExtAC;
32210
 
  friend class ::ExtACBuilderCoupling;
32211
 
  friend class ::ExtACSyntaxCoupling;
32212
 
  friend class ::ExtACTree;
32213
 
  friend class ::ExtACKeywords;
32214
 
  friend class ::WinAsm;
32215
 
  friend class ::WinDeclSpecs;
32216
 
  friend class ::WinMemberExplSpec;
32217
 
  friend class ::WinTypeKeywords;
32218
 
  friend class ::PragmaOnceUnitState;
32219
 
  friend class ::PragmaOnce;
32220
 
  friend class ::CCExprResolve;
32221
 
  friend class ::CExprResolve;
32222
 
 
32223
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
32224
 
 
32225
 
protected:
32226
 
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
32227
 
 
32228
 
public:
32229
 
  virtual ~KeywordRecognizer () {}
32230
 
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
32231
 
};
32232
 
 
32233
 
 
32234
 
} // namespace Puma
32235
 
 
32236
 
#endif /* __keyword_recognizer_h__ */
32237
 
 
32238
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
32239
 
namespace Puma {
32240
 
 
32241
 
 
32242
 
 
32243
 
#line 32244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32244
 
} // closed Puma
32245
 
class WinIfExists;
32246
 
class WinImportHandler;
32247
 
class WinMacros;
32248
 
class CMatchSyntax;
32249
 
class ExtGnu;
32250
 
class ExtAC;
32251
 
class ExtACBuilderCoupling;
32252
 
class ExtACSyntaxCoupling;
32253
 
class ExtACTree;
32254
 
class ExtACKeywords;
32255
 
class WinAsm;
32256
 
class WinDeclSpecs;
32257
 
class WinMemberExplSpec;
32258
 
class WinTypeKeywords;
32259
 
class PragmaOnceUnitState;
32260
 
class PragmaOnce;
32261
 
class CCExprResolve;
32262
 
class CExprResolve;
32263
 
namespace Puma {
32264
 
 
32265
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
32266
 
class CRecognizer {
32267
 
#line 32268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32268
 
  friend class ::WinIfExists;
32269
 
  friend class ::WinImportHandler;
32270
 
  friend class ::WinMacros;
32271
 
  friend class ::CMatchSyntax;
32272
 
  friend class ::ExtGnu;
32273
 
  friend class ::ExtAC;
32274
 
  friend class ::ExtACBuilderCoupling;
32275
 
  friend class ::ExtACSyntaxCoupling;
32276
 
  friend class ::ExtACTree;
32277
 
  friend class ::ExtACKeywords;
32278
 
  friend class ::WinAsm;
32279
 
  friend class ::WinDeclSpecs;
32280
 
  friend class ::WinMemberExplSpec;
32281
 
  friend class ::WinTypeKeywords;
32282
 
  friend class ::PragmaOnceUnitState;
32283
 
  friend class ::PragmaOnce;
32284
 
  friend class ::CCExprResolve;
32285
 
  friend class ::CExprResolve;
32286
 
 
32287
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
32288
 
 
32289
 
  CScanBuffer scan_buffer;
32290
 
  CCommentRecognizer comment_recognizer;
32291
 
  Array<KeywordRecognizer*> additional_keyword_recognizers;
32292
 
 
32293
 
public:
32294
 
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
32295
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
32296
 
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
32297
 
 
32298
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
32299
 
    std_c (true), std_cplusplus (true) {}
32300
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
32301
 
    macro_ops (false) { setup (buffer); }
32302
 
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
32303
 
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
32304
 
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
32305
 
  void allow_std_c (bool flag = true)         { std_c = flag; }
32306
 
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
32307
 
  void setup (ScanBuffer &buffer);
32308
 
  int recognize (Lang &lang, int &expr, int &len);
32309
 
  Mode mode () { return scan_mode; }
32310
 
  bool new_line () const { return scan_buffer.new_line (); }
32311
 
  CScanBuffer& buffer () { return scan_buffer; }
32312
 
  void addRecognizer(KeywordRecognizer &recognizer) 
32313
 
   { additional_keyword_recognizers.append(&recognizer); }
32314
 
 
32315
 
private:
32316
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
32317
 
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
32318
 
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
32319
 
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
32320
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
32321
 
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
32322
 
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
32323
 
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
32324
 
 
32325
 
  Mode scan_mode;
32326
 
  bool check_directive;
32327
 
  bool wildcards;
32328
 
  bool aspectc;
32329
 
  bool macro_ops;
32330
 
  bool std_c;
32331
 
  bool std_cplusplus;
32332
 
};
32333
 
 
32334
 
 
32335
 
} // namespace Puma
32336
 
 
32337
 
#endif /* __c_recognizer_h__ */
32338
 
 
32339
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
32340
 
// This file is part of PUMA.
32341
 
// Copyright (C) 1999-2003  The PUMA developer team.
32342
 
//                                                                
32343
 
// This program is free software;  you can redistribute it and/or 
32344
 
// modify it under the terms of the GNU General Public License as 
32345
 
// published by the Free Software Foundation; either version 2 of 
32346
 
// the License, or (at your option) any later version.            
32347
 
//                                                                
32348
 
// This program is distributed in the hope that it will be useful,
32349
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32350
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32351
 
// GNU General Public License for more details.                   
32352
 
//                                                                
32353
 
// You should have received a copy of the GNU General Public      
32354
 
// License along with this program; if not, write to the Free     
32355
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32356
 
// MA  02111-1307  USA                                            
32357
 
 
32358
 
#ifndef __Tokenizer_h__
32359
 
#define __Tokenizer_h__
32360
 
 
32361
 
// Tokenizer interface. Tokenizer read input from a "Source" and
32362
 
// form tokens, which used to fill a "Unit".
32363
 
 
32364
 
 
32365
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
32366
 
// This file is part of PUMA.
32367
 
// Copyright (C) 1999-2003  The PUMA developer team.
32368
 
//                                                                
32369
 
// This program is free software;  you can redistribute it and/or 
32370
 
// modify it under the terms of the GNU General Public License as 
32371
 
// published by the Free Software Foundation; either version 2 of 
32372
 
// the License, or (at your option) any later version.            
32373
 
//                                                                
32374
 
// This program is distributed in the hope that it will be useful,
32375
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32376
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32377
 
// GNU General Public License for more details.                   
32378
 
//                                                                
32379
 
// You should have received a copy of the GNU General Public      
32380
 
// License along with this program; if not, write to the Free     
32381
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32382
 
// MA  02111-1307  USA                                            
32383
 
 
32384
 
#ifndef __source_h__
32385
 
#define __source_h__
32386
 
 
32387
 
namespace Puma {
32388
 
 
32389
 
 
32390
 
 
32391
 
#line 32392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32392
 
} // closed Puma
32393
 
class WinIfExists;
32394
 
class WinImportHandler;
32395
 
class WinMacros;
32396
 
class CMatchSyntax;
32397
 
class ExtGnu;
32398
 
class ExtAC;
32399
 
class ExtACBuilderCoupling;
32400
 
class ExtACSyntaxCoupling;
32401
 
class ExtACTree;
32402
 
class ExtACKeywords;
32403
 
class WinAsm;
32404
 
class WinDeclSpecs;
32405
 
class WinMemberExplSpec;
32406
 
class WinTypeKeywords;
32407
 
class PragmaOnceUnitState;
32408
 
class PragmaOnce;
32409
 
class CCExprResolve;
32410
 
class CExprResolve;
32411
 
namespace Puma {
32412
 
 
32413
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
32414
 
class Source {
32415
 
#line 32416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32416
 
  friend class ::WinIfExists;
32417
 
  friend class ::WinImportHandler;
32418
 
  friend class ::WinMacros;
32419
 
  friend class ::CMatchSyntax;
32420
 
  friend class ::ExtGnu;
32421
 
  friend class ::ExtAC;
32422
 
  friend class ::ExtACBuilderCoupling;
32423
 
  friend class ::ExtACSyntaxCoupling;
32424
 
  friend class ::ExtACTree;
32425
 
  friend class ::ExtACKeywords;
32426
 
  friend class ::WinAsm;
32427
 
  friend class ::WinDeclSpecs;
32428
 
  friend class ::WinMemberExplSpec;
32429
 
  friend class ::WinTypeKeywords;
32430
 
  friend class ::PragmaOnceUnitState;
32431
 
  friend class ::PragmaOnce;
32432
 
  friend class ::CCExprResolve;
32433
 
  friend class ::CExprResolve;
32434
 
 
32435
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
32436
 
 
32437
 
public:
32438
 
  Source () {}
32439
 
  virtual ~Source () {}
32440
 
  virtual int read (char *dest, int n) = 0;
32441
 
  virtual int size () { return -1; }
32442
 
};
32443
 
 
32444
 
 
32445
 
} // namespace Puma
32446
 
 
32447
 
#endif /* __source_h__ */
32448
 
 
32449
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
32450
 
// This file is part of PUMA.
32451
 
// Copyright (C) 1999-2003  The PUMA developer team.
32452
 
//                                                                
32453
 
// This program is free software;  you can redistribute it and/or 
32454
 
// modify it under the terms of the GNU General Public License as 
32455
 
// published by the Free Software Foundation; either version 2 of 
32456
 
// the License, or (at your option) any later version.            
32457
 
//                                                                
32458
 
// This program is distributed in the hope that it will be useful,
32459
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32460
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32461
 
// GNU General Public License for more details.                   
32462
 
//                                                                
32463
 
// You should have received a copy of the GNU General Public      
32464
 
// License along with this program; if not, write to the Free     
32465
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32466
 
// MA  02111-1307  USA                                            
32467
 
 
32468
 
#ifndef __unit_h__
32469
 
#define __unit_h__
32470
 
 
32471
 
 
32472
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
32473
 
// This file is part of PUMA.
32474
 
// Copyright (C) 1999-2003  The PUMA developer team.
32475
 
//                                                                
32476
 
// This program is free software;  you can redistribute it and/or 
32477
 
// modify it under the terms of the GNU General Public License as 
32478
 
// published by the Free Software Foundation; either version 2 of 
32479
 
// the License, or (at your option) any later version.            
32480
 
//                                                                
32481
 
// This program is distributed in the hope that it will be useful,
32482
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32483
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32484
 
// GNU General Public License for more details.                   
32485
 
//                                                                
32486
 
// You should have received a copy of the GNU General Public      
32487
 
// License along with this program; if not, write to the Free     
32488
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32489
 
// MA  02111-1307  USA                                            
32490
 
 
32491
 
#ifndef __list_h__
32492
 
#define __list_h__
32493
 
 
32494
 
 
32495
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
32496
 
namespace Puma {
32497
 
 
32498
 
 
32499
 
 
32500
 
#line 32501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32501
 
} // closed Puma
32502
 
class WinIfExists;
32503
 
class WinImportHandler;
32504
 
class WinMacros;
32505
 
class CMatchSyntax;
32506
 
class ExtGnu;
32507
 
class ExtAC;
32508
 
class ExtACBuilderCoupling;
32509
 
class ExtACSyntaxCoupling;
32510
 
class ExtACTree;
32511
 
class ExtACKeywords;
32512
 
class WinAsm;
32513
 
class WinDeclSpecs;
32514
 
class WinMemberExplSpec;
32515
 
class WinTypeKeywords;
32516
 
class PragmaOnceUnitState;
32517
 
class PragmaOnce;
32518
 
class CCExprResolve;
32519
 
class CExprResolve;
32520
 
namespace Puma {
32521
 
 
32522
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
32523
 
class List {
32524
 
#line 32525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32525
 
  friend class ::WinIfExists;
32526
 
  friend class ::WinImportHandler;
32527
 
  friend class ::WinMacros;
32528
 
  friend class ::CMatchSyntax;
32529
 
  friend class ::ExtGnu;
32530
 
  friend class ::ExtAC;
32531
 
  friend class ::ExtACBuilderCoupling;
32532
 
  friend class ::ExtACSyntaxCoupling;
32533
 
  friend class ::ExtACTree;
32534
 
  friend class ::ExtACKeywords;
32535
 
  friend class ::WinAsm;
32536
 
  friend class ::WinDeclSpecs;
32537
 
  friend class ::WinMemberExplSpec;
32538
 
  friend class ::WinTypeKeywords;
32539
 
  friend class ::PragmaOnceUnitState;
32540
 
  friend class ::PragmaOnce;
32541
 
  friend class ::CCExprResolve;
32542
 
  friend class ::CExprResolve;
32543
 
 
32544
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
32545
 
 
32546
 
  ListElement *_first;
32547
 
  ListElement *_last;
32548
 
 
32549
 
public:
32550
 
  List () : _first ((ListElement*)0), _last ((ListElement*)0) {}
32551
 
  List (const List &);
32552
 
  ~List();
32553
 
 
32554
 
  List &operator = (const List &);
32555
 
  List &operator += (const List &);
32556
 
  List operator + (const List &);
32557
 
 
32558
 
  void clear ();
32559
 
 
32560
 
  void append (ListElement &);
32561
 
  void prepend (ListElement &);
32562
 
  void insert (ListElement *at, ListElement &element);
32563
 
  void remove (ListElement *element);
32564
 
  void kill (ListElement *from, ListElement *to = (ListElement*)0)
32565
 
   { List discard; cut (discard, from, to); }
32566
 
 
32567
 
  void cut (List &out, ListElement *from, ListElement *to = (ListElement*)0);
32568
 
  //List *cut (ListElement *from, ListElement *to = (ListElement*)0);
32569
 
  List *copy (ListElement *from = (ListElement*)0, 
32570
 
              ListElement *to = (ListElement*)0);
32571
 
  void paste (ListElement *at, const List &l);
32572
 
  void paste_before (ListElement *at, const List &l);
32573
 
  void move (ListElement *at, List &l);
32574
 
  void move_before (ListElement *at, List &l);
32575
 
 
32576
 
  bool empty () const { return _first == (ListElement*)0; }
32577
 
  const ListElement *first () const { return _first; }
32578
 
  const ListElement *last () const { return _last; }
32579
 
  const ListElement *next (const ListElement *element) const
32580
 
   { return element->_next; }
32581
 
  const ListElement *prev (const ListElement *element) const 
32582
 
   { return element->_prev; }
32583
 
};
32584
 
 
32585
 
 
32586
 
} // namespace Puma
32587
 
 
32588
 
#endif /* __list_h__ */
32589
 
 
32590
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32591
 
 
32592
 
#line 32593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32593
 
 
32594
 
#ifndef __ac_fwd_PragmaOnceUnitState__
32595
 
#define __ac_fwd_PragmaOnceUnitState__
32596
 
class PragmaOnceUnitState;
32597
 
namespace AC {
32598
 
  template <class JoinPoint>
32599
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
32600
 
}
32601
 
#endif
32602
 
 
32603
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
32604
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
32605
 
#endif
32606
 
 
32607
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32608
 
 
32609
 
#line 32610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32610
 
 
32611
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32612
 
// This file is part of PUMA.
32613
 
// Copyright (C) 1999-2003  The PUMA developer team.
32614
 
//                                                                
32615
 
// This program is free software;  you can redistribute it and/or 
32616
 
// modify it under the terms of the GNU General Public License as 
32617
 
// published by the Free Software Foundation; either version 2 of 
32618
 
// the License, or (at your option) any later version.            
32619
 
//                                                                
32620
 
// This program is distributed in the hope that it will be useful,
32621
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32622
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32623
 
// GNU General Public License for more details.                   
32624
 
//                                                                
32625
 
// You should have received a copy of the GNU General Public      
32626
 
// License along with this program; if not, write to the Free     
32627
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32628
 
// MA  02111-1307  USA                                            
32629
 
 
32630
 
#ifndef __PragmaOnceUnitState__
32631
 
#define __PragmaOnceUnitState__
32632
 
 
32633
 
using namespace Puma;
32634
 
 
32635
 
 
32636
 
#line 32637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32637
 
class WinIfExists;
32638
 
class WinImportHandler;
32639
 
class WinMacros;
32640
 
class CMatchSyntax;
32641
 
class ExtGnu;
32642
 
class ExtAC;
32643
 
class ExtACBuilderCoupling;
32644
 
class ExtACSyntaxCoupling;
32645
 
class ExtACTree;
32646
 
class ExtACKeywords;
32647
 
class WinAsm;
32648
 
class WinDeclSpecs;
32649
 
class WinMemberExplSpec;
32650
 
class WinTypeKeywords;
32651
 
class PragmaOnce;
32652
 
class CCExprResolve;
32653
 
class CExprResolve;
32654
 
 
32655
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32656
 
class PragmaOnceUnitState {
32657
 
#line 32658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32658
 
 
32659
 
public:
32660
 
  static PragmaOnceUnitState *aspectof () {
32661
 
    static PragmaOnceUnitState __instance;
32662
 
    return &__instance;
32663
 
  }
32664
 
  static PragmaOnceUnitState *aspectOf () {
32665
 
    return aspectof ();
32666
 
  }
32667
 
private:
32668
 
 
32669
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32670
 
 
32671
 
#line 32672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32672
 
  friend class ::WinIfExists;
32673
 
  friend class ::WinImportHandler;
32674
 
  friend class ::WinMacros;
32675
 
  friend class ::CMatchSyntax;
32676
 
  friend class ::ExtGnu;
32677
 
  friend class ::ExtAC;
32678
 
  friend class ::ExtACBuilderCoupling;
32679
 
  friend class ::ExtACSyntaxCoupling;
32680
 
  friend class ::ExtACTree;
32681
 
  friend class ::ExtACKeywords;
32682
 
  friend class ::WinAsm;
32683
 
  friend class ::WinDeclSpecs;
32684
 
  friend class ::WinMemberExplSpec;
32685
 
  friend class ::WinTypeKeywords;
32686
 
  friend class ::PragmaOnce;
32687
 
  friend class ::CCExprResolve;
32688
 
  friend class ::CExprResolve;
32689
 
 
32690
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32691
 
 
32692
 
  /******************************************************/
32693
 
  /* specific #pragma once unit state                   */
32694
 
  /******************************************************/
32695
 
 
32696
 
  // pointcut definitions
32697
 
  
32698
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32699
 
 
32700
 
 
32701
 
  
32702
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32703
 
 
32704
 
  
32705
 
  // initialize new state flag
32706
 
  
32707
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32708
 
 
32709
 
public: template<class JoinPoint> void __a0_after 
32710
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32711
 
 
32712
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32713
 
(JoinPoint *tjp)
32714
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32715
 
 {
32716
 
#line 32717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32717
 
 
32718
 
  JoinPoint *&thisJoinPoint = tjp;
32719
 
 
32720
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32721
 
 
32722
 
#line 32723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32723
 
 
32724
 
  typedef typename JoinPoint::That __JP_That;
32725
 
  typedef typename JoinPoint::Target __JP_Target;
32726
 
  typedef typename JoinPoint::Result __JP_Result;
32727
 
 
32728
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32729
 
 
32730
 
    thisJoinPoint->that ()->_once = false;
32731
 
  }
32732
 
#line 32733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32733
 
 
32734
 
private:
32735
 
 
32736
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32737
 
 
32738
 
 
32739
 
protected:
32740
 
  // this aspect should never be instantiated directly
32741
 
  PragmaOnceUnitState () {}
32742
 
};
32743
 
#line 32744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32744
 
 
32745
 
namespace AC {
32746
 
  template <class JoinPoint>
32747
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
32748
 
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
32749
 
  }
32750
 
32751
 
 
32752
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32753
 
 
32754
 
 
32755
 
 
32756
 
#endif /* __PragmaOnceUnitState__ */
32757
 
 
32758
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32759
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
32760
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
32761
 
 
32762
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32763
 
// This file is part of PUMA.
32764
 
// Copyright (C) 1999-2003  The PUMA developer team.
32765
 
//                                                                
32766
 
// This program is free software;  you can redistribute it and/or 
32767
 
// modify it under the terms of the GNU General Public License as 
32768
 
// published by the Free Software Foundation; either version 2 of 
32769
 
// the License, or (at your option) any later version.            
32770
 
//                                                                
32771
 
// This program is distributed in the hope that it will be useful,
32772
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32773
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32774
 
// GNU General Public License for more details.                   
32775
 
//                                                                
32776
 
// You should have received a copy of the GNU General Public      
32777
 
// License along with this program; if not, write to the Free     
32778
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32779
 
// MA  02111-1307  USA                                            
32780
 
 
32781
 
#ifndef __UnitState__
32782
 
#define __UnitState__
32783
 
 
32784
 
// The state of a unit: 
32785
 
// 1. modified by manipulations and not updated at the class registry
32786
 
// 2. modified by manipulations and updated at the class registry
32787
 
// 3. unmodified by manipulations and not updated at the class registry
32788
 
// 4. unmodified by manipulations and updated at the class registry
32789
 
 
32790
 
namespace Puma {
32791
 
 
32792
 
 
32793
 
 
32794
 
#line 32795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32795
 
} // closed Puma
32796
 
class WinIfExists;
32797
 
class WinImportHandler;
32798
 
class WinMacros;
32799
 
class CMatchSyntax;
32800
 
class ExtGnu;
32801
 
class ExtAC;
32802
 
class ExtACBuilderCoupling;
32803
 
class ExtACSyntaxCoupling;
32804
 
class ExtACTree;
32805
 
class ExtACKeywords;
32806
 
class WinAsm;
32807
 
class WinDeclSpecs;
32808
 
class WinMemberExplSpec;
32809
 
class WinTypeKeywords;
32810
 
class PragmaOnceUnitState;
32811
 
class PragmaOnce;
32812
 
class CCExprResolve;
32813
 
class CExprResolve;
32814
 
namespace Puma {
32815
 
 
32816
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32817
 
class UnitState {
32818
 
#line 32819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32819
 
  friend class ::WinIfExists;
32820
 
  friend class ::WinImportHandler;
32821
 
  friend class ::WinMacros;
32822
 
  friend class ::CMatchSyntax;
32823
 
  friend class ::ExtGnu;
32824
 
  friend class ::ExtAC;
32825
 
  friend class ::ExtACBuilderCoupling;
32826
 
  friend class ::ExtACSyntaxCoupling;
32827
 
  friend class ::ExtACTree;
32828
 
  friend class ::ExtACKeywords;
32829
 
  friend class ::WinAsm;
32830
 
  friend class ::WinDeclSpecs;
32831
 
  friend class ::WinMemberExplSpec;
32832
 
  friend class ::WinTypeKeywords;
32833
 
  friend class ::PragmaOnceUnitState;
32834
 
  friend class ::PragmaOnce;
32835
 
  friend class ::CCExprResolve;
32836
 
  friend class ::CExprResolve;
32837
 
 
32838
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32839
 
 
32840
 
  bool _modified;
32841
 
  bool _updated;
32842
 
  long _lastModified;
32843
 
      
32844
 
public:
32845
 
  
32846
 
#line 32847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32847
 
public: inline void __exec_old_C1();
32848
 
 
32849
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32850
 
UnitState ();
32851
 
      
32852
 
  bool isModified () const;
32853
 
  bool isUpdated () const;
32854
 
  long lastModified () const;
32855
 
 
32856
 
  // Is modified and has to be updated.
32857
 
  void modified ();
32858
 
  void lastModified (long);
32859
 
  void unmodified ();
32860
 
  void updated ();
32861
 
   private:
32862
 
 
32863
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
32864
 
 bool _once ;
32865
 
public :
32866
 
 
32867
 
bool onlyOnce ( ) const { return _once ; }
32868
 
void onlyOnce ( bool v ) { _once = v ; }
32869
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32870
 
 
32871
 
#line 32872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32872
 
 
32873
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
32874
 
  typedef void Result;
32875
 
  typedef ::Puma::UnitState That;
32876
 
  typedef ::Puma::UnitState Target;
32877
 
  static const int JPID = 5;
32878
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
32879
 
  struct Res {
32880
 
    typedef void Type;
32881
 
    typedef void ReferredType;
32882
 
  };
32883
 
  enum { ARGS = 1 };
32884
 
  template <int I, int DUMMY = 0> struct Arg {
32885
 
    typedef void Type;
32886
 
    typedef void ReferredType;
32887
 
  };
32888
 
  template <int DUMMY> struct Arg<0, DUMMY> {
32889
 
    typedef const ::Puma::UnitState & Type;
32890
 
    typedef const ::Puma::UnitState ReferredType;
32891
 
  };
32892
 
 
32893
 
  That *_that;
32894
 
 
32895
 
  inline That *that() {return (That*)_that;}
32896
 
 
32897
 
};
32898
 
 
32899
 
 
32900
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32901
 
 
32902
 
#line 32903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32903
 
 
32904
 
public:
32905
 
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
32906
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
32907
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
32908
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
32909
 
 
32910
 
}
32911
 
 
32912
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32913
 
};
32914
 
 
32915
 
 
32916
 
#line 32917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32917
 
 
32918
 
 
32919
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
32920
 
  typedef void Result;
32921
 
  typedef ::Puma::UnitState That;
32922
 
  typedef ::Puma::UnitState Target;
32923
 
  static const int JPID = 5;
32924
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
32925
 
  struct Res {
32926
 
    typedef void Type;
32927
 
    typedef void ReferredType;
32928
 
  };
32929
 
  enum { ARGS = 0 };
32930
 
  template <int I, int DUMMY = 0> struct Arg {
32931
 
    typedef void Type;
32932
 
    typedef void ReferredType;
32933
 
  };
32934
 
 
32935
 
  That *_that;
32936
 
 
32937
 
  inline That *that() {return (That*)_that;}
32938
 
 
32939
 
};
32940
 
 
32941
 
 
32942
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32943
 
inline UnitState::UnitState ()
32944
 
 
32945
 
#line 32946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32946
 
{
32947
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
32948
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
32949
 
this->__exec_old_C1();
32950
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
32951
 
 
32952
 
}
32953
 
inline void Puma::UnitState::__exec_old_C1()
32954
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32955
 
{ _modified = false; _updated = false; _lastModified = 0; }
32956
 
 
32957
 
inline bool UnitState::isModified () const 
32958
 
 { return _modified; }
32959
 
inline bool UnitState::isUpdated () const 
32960
 
 { return _updated; }
32961
 
inline long UnitState::lastModified () const
32962
 
 { return _lastModified; }
32963
 
 
32964
 
inline void UnitState::modified () 
32965
 
 { _modified = true; _updated = false; _lastModified = 0; }
32966
 
inline void UnitState::unmodified () 
32967
 
 { _modified = false; }
32968
 
inline void UnitState::updated () 
32969
 
 { _updated = true; }
32970
 
inline void UnitState::lastModified (long when) 
32971
 
 { _lastModified = when; }
32972
 
 
32973
 
 
32974
 
} // namespace Puma
32975
 
 
32976
 
#endif /* __UnitState__ */
32977
 
 
32978
 
#line 32979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32979
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
32980
 
 
32981
 
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
32982
 
 
32983
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
32984
 
namespace Puma {
32985
 
 
32986
 
 
32987
 
 
32988
 
#line 32989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
32989
 
} // closed Puma
32990
 
class WinIfExists;
32991
 
class WinImportHandler;
32992
 
class WinMacros;
32993
 
class CMatchSyntax;
32994
 
class ExtGnu;
32995
 
class ExtAC;
32996
 
class ExtACBuilderCoupling;
32997
 
class ExtACSyntaxCoupling;
32998
 
class ExtACTree;
32999
 
class ExtACKeywords;
33000
 
class WinAsm;
33001
 
class WinDeclSpecs;
33002
 
class WinMemberExplSpec;
33003
 
class WinTypeKeywords;
33004
 
class PragmaOnceUnitState;
33005
 
class PragmaOnce;
33006
 
class CCExprResolve;
33007
 
class CExprResolve;
33008
 
namespace Puma {
33009
 
 
33010
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
33011
 
class Unit : public List, public Printable {
33012
 
#line 33013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33013
 
  friend class ::WinIfExists;
33014
 
  friend class ::WinImportHandler;
33015
 
  friend class ::WinMacros;
33016
 
  friend class ::CMatchSyntax;
33017
 
  friend class ::ExtGnu;
33018
 
  friend class ::ExtAC;
33019
 
  friend class ::ExtACBuilderCoupling;
33020
 
  friend class ::ExtACSyntaxCoupling;
33021
 
  friend class ::ExtACTree;
33022
 
  friend class ::ExtACKeywords;
33023
 
  friend class ::WinAsm;
33024
 
  friend class ::WinDeclSpecs;
33025
 
  friend class ::WinMemberExplSpec;
33026
 
  friend class ::WinTypeKeywords;
33027
 
  friend class ::PragmaOnceUnitState;
33028
 
  friend class ::PragmaOnce;
33029
 
  friend class ::CCExprResolve;
33030
 
  friend class ::CExprResolve;
33031
 
 
33032
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
33033
 
 
33034
 
  char *_name;
33035
 
  UnitState _state;
33036
 
 
33037
 
public:
33038
 
  Unit () : List (), _name ((char*)0) {}
33039
 
  Unit (const List &list) : List (list), _name ((char*)0) {}
33040
 
  virtual ~Unit ();
33041
 
  virtual void name (const char *);
33042
 
  char *name () const { return _name; }
33043
 
  virtual void print (ostream &os) const;
33044
 
  virtual bool isFile () const { return false; }
33045
 
  virtual bool isMacroExp () const { return false; }
33046
 
  UnitState &state () { return _state; }
33047
 
};
33048
 
 
33049
 
 
33050
 
} // namespace Puma
33051
 
 
33052
 
#endif /* __unit_h__ */
33053
 
 
33054
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33055
 
namespace Puma {
33056
 
 
33057
 
 
33058
 
 
33059
 
#line 33060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33060
 
} // closed Puma
33061
 
class WinIfExists;
33062
 
class WinImportHandler;
33063
 
class WinMacros;
33064
 
class CMatchSyntax;
33065
 
class ExtGnu;
33066
 
class ExtAC;
33067
 
class ExtACBuilderCoupling;
33068
 
class ExtACSyntaxCoupling;
33069
 
class ExtACTree;
33070
 
class ExtACKeywords;
33071
 
class WinAsm;
33072
 
class WinDeclSpecs;
33073
 
class WinMemberExplSpec;
33074
 
class WinTypeKeywords;
33075
 
class PragmaOnceUnitState;
33076
 
class PragmaOnce;
33077
 
class CCExprResolve;
33078
 
class CExprResolve;
33079
 
namespace Puma {
33080
 
 
33081
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33082
 
class Tokenizer {
33083
 
#line 33084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33084
 
  friend class ::WinIfExists;
33085
 
  friend class ::WinImportHandler;
33086
 
  friend class ::WinMacros;
33087
 
  friend class ::CMatchSyntax;
33088
 
  friend class ::ExtGnu;
33089
 
  friend class ::ExtAC;
33090
 
  friend class ::ExtACBuilderCoupling;
33091
 
  friend class ::ExtACSyntaxCoupling;
33092
 
  friend class ::ExtACTree;
33093
 
  friend class ::ExtACKeywords;
33094
 
  friend class ::WinAsm;
33095
 
  friend class ::WinDeclSpecs;
33096
 
  friend class ::WinMemberExplSpec;
33097
 
  friend class ::WinTypeKeywords;
33098
 
  friend class ::PragmaOnceUnitState;
33099
 
  friend class ::PragmaOnce;
33100
 
  friend class ::CCExprResolve;
33101
 
  friend class ::CExprResolve;
33102
 
 
33103
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33104
 
 
33105
 
public:
33106
 
  virtual ~Tokenizer () {}
33107
 
  virtual void fill_unit (Source &in, Unit &unit) = 0;
33108
 
};
33109
 
 
33110
 
 
33111
 
} // namespace Puma
33112
 
 
33113
 
#endif /* __Tokenizer_h__ */
33114
 
 
33115
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33116
 
namespace Puma {
33117
 
 
33118
 
 
33119
 
class Token;
33120
 
 
33121
 
 
33122
 
#line 33123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33123
 
} // closed Puma
33124
 
class WinIfExists;
33125
 
class WinImportHandler;
33126
 
class WinMacros;
33127
 
class CMatchSyntax;
33128
 
class ExtGnu;
33129
 
class ExtAC;
33130
 
class ExtACBuilderCoupling;
33131
 
class ExtACSyntaxCoupling;
33132
 
class ExtACTree;
33133
 
class ExtACKeywords;
33134
 
class WinAsm;
33135
 
class WinDeclSpecs;
33136
 
class WinMemberExplSpec;
33137
 
class WinTypeKeywords;
33138
 
class PragmaOnceUnitState;
33139
 
class PragmaOnce;
33140
 
class CCExprResolve;
33141
 
class CExprResolve;
33142
 
namespace Puma {
33143
 
 
33144
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33145
 
class CScanner : public CRecognizer, public Tokenizer {
33146
 
#line 33147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33147
 
  friend class ::WinIfExists;
33148
 
  friend class ::WinImportHandler;
33149
 
  friend class ::WinMacros;
33150
 
  friend class ::CMatchSyntax;
33151
 
  friend class ::ExtGnu;
33152
 
  friend class ::ExtAC;
33153
 
  friend class ::ExtACBuilderCoupling;
33154
 
  friend class ::ExtACSyntaxCoupling;
33155
 
  friend class ::ExtACTree;
33156
 
  friend class ::ExtACKeywords;
33157
 
  friend class ::WinAsm;
33158
 
  friend class ::WinDeclSpecs;
33159
 
  friend class ::WinMemberExplSpec;
33160
 
  friend class ::WinTypeKeywords;
33161
 
  friend class ::PragmaOnceUnitState;
33162
 
  friend class ::PragmaOnce;
33163
 
  friend class ::CCExprResolve;
33164
 
  friend class ::CExprResolve;
33165
 
 
33166
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33167
 
 
33168
 
  Location loc;
33169
 
  ErrorSink &err;
33170
 
 
33171
 
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
33172
 
  LanguageID map_lang (CRecognizer::Lang lang);
33173
 
  Token *scan ();
33174
 
  void scan_all (Unit &unit);
33175
 
 
33176
 
public:
33177
 
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
33178
 
  virtual ~CScanner () {}
33179
 
  void configure (const Config &);
33180
 
  
33181
 
#line 33182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33182
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
33183
 
 
33184
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33185
 
void fill_unit (Source &in, Unit &unit);
33186
 
  
33187
 
#line 33188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33188
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
33189
 
 
33190
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33191
 
void fill_unit (const char *in, Unit &unit);
33192
 
};
33193
 
 
33194
 
 
33195
 
} // namespace Puma
33196
 
 
33197
 
#endif /* __c_scanner_h__ */
33198
 
 
33199
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39174
#include "Puma/Config.h"
 
39175
#include "Puma/Project.h"
 
39176
#include "Puma/CScanner.h"
 
39177
#include "Puma/ErrorStream.h"
 
39178
 
33200
39179
namespace Puma {
33201
39180
 
33202
39181
 
33204
39183
class CTypeInfo;
33205
39184
 
33206
39185
 
33207
 
#line 33208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39186
#line 39187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33208
39187
} // closed Puma
 
39188
class CCExprResolve;
 
39189
class CExprResolve;
33209
39190
class WinIfExists;
33210
39191
class WinImportHandler;
33211
39192
class WinMacros;
33212
 
class CMatchSyntax;
33213
 
class ExtGnu;
 
39193
class WinAsm;
 
39194
class WinDeclSpecs;
 
39195
class WinMemberExplSpec;
 
39196
class WinTypeKeywords;
 
39197
class WinFriend;
33214
39198
class ExtAC;
33215
39199
class ExtACBuilderCoupling;
33216
39200
class ExtACSyntaxCoupling;
33217
39201
class ExtACTree;
33218
39202
class ExtACKeywords;
33219
 
class WinAsm;
33220
 
class WinDeclSpecs;
33221
 
class WinMemberExplSpec;
33222
 
class WinTypeKeywords;
 
39203
class ExtGnu;
33223
39204
class PragmaOnceUnitState;
33224
39205
class PragmaOnce;
33225
 
class CCExprResolve;
33226
 
class CExprResolve;
 
39206
class CMatchSyntax;
33227
39207
namespace Puma {
33228
39208
 
33229
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39209
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33230
39210
class CProject : public Project {
33231
 
#line 33232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39211
#line 39212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39212
  friend class ::CCExprResolve;
 
39213
  friend class ::CExprResolve;
33232
39214
  friend class ::WinIfExists;
33233
39215
  friend class ::WinImportHandler;
33234
39216
  friend class ::WinMacros;
33235
 
  friend class ::CMatchSyntax;
33236
 
  friend class ::ExtGnu;
 
39217
  friend class ::WinAsm;
 
39218
  friend class ::WinDeclSpecs;
 
39219
  friend class ::WinMemberExplSpec;
 
39220
  friend class ::WinTypeKeywords;
 
39221
  friend class ::WinFriend;
33237
39222
  friend class ::ExtAC;
33238
39223
  friend class ::ExtACBuilderCoupling;
33239
39224
  friend class ::ExtACSyntaxCoupling;
33240
39225
  friend class ::ExtACTree;
33241
39226
  friend class ::ExtACKeywords;
33242
 
  friend class ::WinAsm;
33243
 
  friend class ::WinDeclSpecs;
33244
 
  friend class ::WinMemberExplSpec;
33245
 
  friend class ::WinTypeKeywords;
 
39227
  friend class ::ExtGnu;
33246
39228
  friend class ::PragmaOnceUnitState;
33247
39229
  friend class ::PragmaOnce;
33248
 
  friend class ::CCExprResolve;
33249
 
  friend class ::CExprResolve;
 
39230
  friend class ::CMatchSyntax;
33250
39231
 
33251
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39232
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33252
39233
 
33253
39234
  Config _config;
33254
39235
  CScanner _scanner;
33284
39265
  // Scan the file `file' or the source if given. When
33285
39266
  // scanning a source the resulting unit gets the name `file'.
33286
39267
  
33287
 
#line 33288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33288
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
39268
#line 39269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39269
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
33289
39270
 
33290
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39271
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33291
39272
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
33292
39273
                          bool isFile = true);
33293
39274
        
33317
39298
 
33318
39299
#endif /* __CProject_h__ */
33319
39300
 
33320
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33321
 
using namespace Puma;
33322
 
 
33323
 
 
33324
 
#line 33325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39301
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39302
 
 
39303
#line 39304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39304
class CCExprResolve;
 
39305
class CExprResolve;
33325
39306
class WinIfExists;
33326
39307
class WinImportHandler;
33327
39308
class WinMacros;
33328
 
class CMatchSyntax;
33329
 
class ExtGnu;
 
39309
class WinAsm;
 
39310
class WinDeclSpecs;
 
39311
class WinMemberExplSpec;
 
39312
class WinTypeKeywords;
 
39313
class WinFriend;
33330
39314
class ExtACBuilderCoupling;
33331
39315
class ExtACSyntaxCoupling;
33332
39316
class ExtACTree;
33333
39317
class ExtACKeywords;
33334
 
class WinAsm;
33335
 
class WinDeclSpecs;
33336
 
class WinMemberExplSpec;
33337
 
class WinTypeKeywords;
 
39318
class ExtGnu;
33338
39319
class PragmaOnceUnitState;
33339
39320
class PragmaOnce;
33340
 
class CCExprResolve;
33341
 
class CExprResolve;
 
39321
class CMatchSyntax;
33342
39322
 
33343
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39323
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33344
39324
class ExtAC {
33345
 
#line 33346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39325
#line 39326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33346
39326
 
33347
39327
public:
33348
39328
  static ExtAC *aspectof () {
33354
39334
  }
33355
39335
private:
33356
39336
 
33357
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39337
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33358
39338
 
33359
 
#line 33360 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39339
#line 39340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39340
  friend class ::CCExprResolve;
 
39341
  friend class ::CExprResolve;
33360
39342
  friend class ::WinIfExists;
33361
39343
  friend class ::WinImportHandler;
33362
39344
  friend class ::WinMacros;
33363
 
  friend class ::CMatchSyntax;
33364
 
  friend class ::ExtGnu;
 
39345
  friend class ::WinAsm;
 
39346
  friend class ::WinDeclSpecs;
 
39347
  friend class ::WinMemberExplSpec;
 
39348
  friend class ::WinTypeKeywords;
 
39349
  friend class ::WinFriend;
33365
39350
  friend class ::ExtACBuilderCoupling;
33366
39351
  friend class ::ExtACSyntaxCoupling;
33367
39352
  friend class ::ExtACTree;
33368
39353
  friend class ::ExtACKeywords;
33369
 
  friend class ::WinAsm;
33370
 
  friend class ::WinDeclSpecs;
33371
 
  friend class ::WinMemberExplSpec;
33372
 
  friend class ::WinTypeKeywords;
 
39354
  friend class ::ExtGnu;
33373
39355
  friend class ::PragmaOnceUnitState;
33374
39356
  friend class ::PragmaOnce;
33375
 
  friend class ::CCExprResolve;
33376
 
  friend class ::CExprResolve;
 
39357
  friend class ::CMatchSyntax;
33377
39358
 
33378
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39359
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33379
39360
 
33380
39361
  // used to enable and disable this extension at runtime
33381
39362
  bool _enabled;
33387
39368
  // C parser extension
33388
39369
  // ******************
33389
39370
  
33390
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39371
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33391
39372
 
33392
39373
  
33393
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39374
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33394
39375
 
33395
39376
 
33396
39377
  // *****************
33399
39380
 
33400
39381
  // introduce AC extensions
33401
39382
  
33402
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39383
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33403
39384
 
33404
39385
  
33405
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39386
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33406
39387
 
33407
39388
  
33408
39389
  // add behavioral extensions
33409
39390
  
33410
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39391
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33411
39392
 
33412
39393
public: template<class JoinPoint> void __a0_before 
33413
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39394
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33414
39395
 
33415
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39396
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33416
39397
(JoinPoint *tjp)
33417
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39398
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33418
39399
 {
33419
 
#line 33420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39400
#line 39401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33420
39401
 
33421
39402
  typedef typename JoinPoint::That __JP_That;
33422
39403
  typedef typename JoinPoint::Target __JP_Target;
33423
39404
  typedef typename JoinPoint::Result __JP_Result;
33424
39405
 
33425
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39406
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33426
39407
 
33427
 
    tjp->that ()->ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
 
39408
    tjp->that ()->Puma::ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
33428
39409
  }
33429
 
#line 33430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39410
#line 39411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33430
39411
 
33431
39412
protected:
33432
39413
 
33433
 
#line 73 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39414
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33434
39415
 
33435
39416
 
33436
39417
  // ***************************
33438
39419
  // ***************************
33439
39420
 
33440
39421
  
33441
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33442
 
 
33443
 
 
33444
 
  
33445
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33446
 
 
33447
 
 
 
39422
#line 80 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39423
 
 
39424
 
 
39425
  
 
39426
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39427
 
 
39428
 
 
39429
  
 
39430
#line 116 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39431
 
 
39432
 
 
39433
  
 
39434
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39435
 
 
39436
  
33448
39437
  // initialize introduced attributes
33449
39438
  
33450
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39439
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33451
39440
 
33452
39441
public: template<class JoinPoint> void __a1_after 
33453
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39442
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33454
39443
 
33455
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39444
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33456
39445
(JoinPoint *tjp)
33457
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39446
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33458
39447
 {
33459
 
#line 33460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39448
#line 39449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33460
39449
 
33461
39450
  typedef typename JoinPoint::That __JP_That;
33462
39451
  typedef typename JoinPoint::Target __JP_Target;
33463
39452
  typedef typename JoinPoint::Result __JP_Result;
33464
39453
 
33465
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39454
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33466
39455
 
33467
39456
    tjp->that ()->_in_advice_decl   = false;
33468
39457
    tjp->that ()->_in_pointcut_decl = false;
33469
39458
    tjp->that ()->_introducer       = 0;
33470
39459
  }
33471
 
#line 33472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39460
#line 39461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33472
39461
 
33473
39462
protected:
33474
39463
 
33475
 
#line 120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39464
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33476
39465
 
33477
39466
  
33478
39467
  // introduce_function must check for code advice
33479
39468
  
33480
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39469
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33481
39470
 
33482
39471
public: template<class JoinPoint> void __a2_around 
33483
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39472
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33484
39473
 
33485
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39474
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33486
39475
(JoinPoint *tjp)
33487
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39476
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33488
39477
 {
33489
 
#line 33490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39478
#line 39479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33490
39479
 
33491
39480
  typedef typename JoinPoint::That __JP_That;
33492
39481
  typedef typename JoinPoint::Target __JP_Target;
33493
39482
  typedef typename JoinPoint::Result __JP_Result;
33494
39483
 
33495
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39484
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33496
39485
 
33497
39486
     
33498
39487
    // first save the current function
33499
 
    CObjectInfo *func = tjp->that ()->current_fct;
 
39488
    Puma::CObjectInfo *func = tjp->that ()->current_fct;
33500
39489
    
33501
39490
    // now do the original stuff
33502
39491
    tjp->proceed ();
33503
 
    CTree *node = *tjp->result ();
 
39492
    Puma::CTree *node = *tjp->result ();
33504
39493
    if (!node)
33505
39494
      return;
33506
39495
 
33507
39496
    // do the necessary post processing
33508
39497
    tjp->that ()->introduce_function_post (func, node);
33509
39498
  }
33510
 
#line 33511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39499
#line 39500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33511
39500
 
33512
39501
protected:
33513
39502
 
33514
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39503
#line 145 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33515
39504
 
33516
39505
  
33517
39506
  // make sure lookup of functions is ignored for intros
33518
39507
  
33519
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39508
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33520
39509
 
33521
39510
public: template<class JoinPoint> void __a3_around 
33522
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39511
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33523
39512
 
33524
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39513
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33525
39514
(JoinPoint *tjp)
33526
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39515
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33527
39516
 {
33528
 
#line 33529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39517
#line 39518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33529
39518
 
33530
39519
  typedef typename JoinPoint::That __JP_That;
33531
39520
  typedef typename JoinPoint::Target __JP_Target;
33532
39521
  typedef typename JoinPoint::Result __JP_Result;
33533
39522
 
33534
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39523
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33535
39524
 
33536
39525
    if (tjp->that ()->_in_advice_decl)
33537
39526
      *tjp->result () = true;
33538
39527
    else
33539
39528
      tjp->proceed ();
33540
39529
  }
33541
 
#line 33542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39530
#line 39531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33542
39531
 
33543
39532
protected:
33544
39533
 
33545
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39534
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33546
39535
 
33547
39536
 
33548
39537
  // extend member handling
33549
39538
  
33550
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39539
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33551
39540
 
33552
39541
public: template<class JoinPoint> void __a4_after 
33553
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39542
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33554
39543
 
33555
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39544
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33556
39545
(JoinPoint *tjp)
33557
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39546
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33558
39547
 {
33559
 
#line 33560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39548
#line 39549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33560
39549
 
33561
39550
  typedef typename JoinPoint::That __JP_That;
33562
39551
  typedef typename JoinPoint::Target __JP_Target;
33563
39552
  typedef typename JoinPoint::Result __JP_Result;
33564
39553
 
33565
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39554
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33566
39555
 
33567
 
    CTree *node = *tjp->result ();
33568
 
    if (!node || node->NodeName () != CT_InitDeclarator::NodeId ())
 
39556
    Puma::CTree *node = *tjp->result ();
 
39557
    if (!node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ())
33569
39558
      return;
33570
39559
 
33571
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
39560
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
33572
39561
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
33573
39562
      // setup the scope for the following pointcut expression
33574
39563
      tjp->that ()->current_scope = object->FunctionInfo ();
33575
39564
    }
33576
39565
  }
33577
 
#line 33578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39566
#line 39567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33578
39567
 
33579
39568
protected:
33580
39569
 
33581
 
#line 160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39570
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33582
39571
 
33583
39572
 
33584
39573
  // make sure lookup of members is ignored for intros
33585
39574
  
33586
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39575
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33587
39576
 
33588
39577
public: template<class JoinPoint> void __a5_around 
33589
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39578
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33590
39579
 
33591
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39580
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33592
39581
(JoinPoint *tjp, bool &redef_typedef)
33593
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39582
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33594
39583
 {
33595
 
#line 33596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39584
#line 39585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33596
39585
 
33597
39586
  typedef typename JoinPoint::That __JP_That;
33598
39587
  typedef typename JoinPoint::Target __JP_Target;
33599
39588
  typedef typename JoinPoint::Result __JP_Result;
33600
39589
 
33601
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39590
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33602
39591
 
33603
39592
    if (tjp->that ()->_in_advice_decl) {
33604
39593
      redef_typedef = false;
33606
39595
    } else
33607
39596
      tjp->proceed ();
33608
39597
  }
33609
 
#line 33610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39598
#line 39599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33610
39599
 
33611
39600
protected:
33612
39601
 
33613
 
#line 172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39602
#line 180 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33614
39603
 
33615
39604
 
33616
39605
  // extend object handling
33617
39606
  
33618
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39607
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33619
39608
 
33620
39609
public: template<class JoinPoint> void __a6_after 
33621
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39610
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33622
39611
 
33623
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39612
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33624
39613
(JoinPoint *tjp)
33625
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39614
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33626
39615
 {
33627
 
#line 33628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39616
#line 39617 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33628
39617
 
33629
39618
  typedef typename JoinPoint::That __JP_That;
33630
39619
  typedef typename JoinPoint::Target __JP_Target;
33631
39620
  typedef typename JoinPoint::Result __JP_Result;
33632
39621
 
33633
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39622
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33634
39623
 
33635
 
    CTree *node = *tjp->result ();
33636
 
    if (! node || node->NodeName () != CT_InitDeclarator::NodeId ()) 
 
39624
    Puma::CTree *node = *tjp->result ();
 
39625
    if (! node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ()) 
33637
39626
      return;
33638
39627
 
33639
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
39628
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
33640
39629
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
33641
39630
      // setup the scope for the following pointcut expression
33642
39631
// TEMPORARY
33644
39633
      tjp->that ()->current_scope = object->FunctionInfo ();
33645
39634
    }
33646
39635
  }
33647
 
#line 33648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39636
#line 39637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33648
39637
 
33649
39638
protected:
33650
39639
 
33651
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39640
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33652
39641
 
33653
39642
  
33654
39643
  // make sure lookup of members is ignored for intros
33655
39644
  
33656
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39645
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33657
39646
 
33658
39647
public: template<class JoinPoint> void __a7_around 
33659
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39648
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33660
39649
 
33661
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39650
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33662
39651
(JoinPoint *tjp, bool &redef_typedef)
33663
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39652
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33664
39653
 {
33665
 
#line 33666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39654
#line 39655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33666
39655
 
33667
39656
  typedef typename JoinPoint::That __JP_That;
33668
39657
  typedef typename JoinPoint::Target __JP_Target;
33669
39658
  typedef typename JoinPoint::Result __JP_Result;
33670
39659
 
33671
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39660
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33672
39661
 
33673
39662
      if (tjp->that ()->_in_advice_decl) {
33674
39663
        redef_typedef = false;
33676
39665
      } else
33677
39666
        tjp->proceed ();
33678
39667
  }
33679
 
#line 33680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39668
#line 39669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33680
39669
 
33681
39670
protected:
33682
39671
 
33683
 
#line 200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39672
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33684
39673
 
33685
39674
 
33686
39675
  // extend the class handling  
33687
39676
  
33688
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39677
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33689
39678
 
33690
39679
public: template<class JoinPoint> void __a8_after 
33691
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39680
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33692
39681
 
33693
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39682
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33694
39683
(JoinPoint *tjp)
33695
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39684
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33696
39685
 {
33697
 
#line 33698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39686
#line 39687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33698
39687
 
33699
39688
  typedef typename JoinPoint::That __JP_That;
33700
39689
  typedef typename JoinPoint::Target __JP_Target;
33701
39690
  typedef typename JoinPoint::Result __JP_Result;
33702
39691
 
33703
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39692
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33704
39693
 
33705
 
    CT_ClassDef *cd = (CT_ClassDef*)*tjp->result ();
 
39694
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->result ();
33706
39695
    if (!cd)
33707
39696
      return;
33708
39697
    tjp->that ()->introduce_class_post (cd);
33709
 
 
33710
 
    if (tjp->that ()->_introducer) {
33711
 
      // handle introductions before a class, they shall be parsed in global scope
33712
 
      CStructure *saved_scope = tjp->that ()->current_scope;
33713
 
      tjp->that ()->current_scope = tjp->that ()->_db->FileInfo (0);
33714
 
//    _protection.push (CProtection::PROT_NONE);
33715
 
//    _in_extern_decl.push (0);
33716
 
      tjp->that ()->_introducer->class_before (cd);
33717
 
//    _in_extern_decl.pop ();
33718
 
//    _protection.pop ();
33719
 
      tjp->that ()->current_scope = saved_scope;
33720
 
    }
33721
39698
  }
33722
 
#line 33723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39699
#line 39700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33723
39700
 
33724
39701
protected:
33725
39702
 
33726
 
#line 221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39703
#line 217 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33727
39704
 
33728
39705
 
33729
39706
  // extend the class handling  
 
39707
//  advice within (derived (csemantic ())) &&
 
39708
//    execution ("% ...::class_spec(...)") : before () {
 
39709
//    if (tjp->that ()->_introducer) {
 
39710
//      Puma::CT_ClassDef *cd =
 
39711
//        (Puma::CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
 
39712
//      Puma::Builder &builder = tjp->that ()->builder ();
 
39713
//      tjp->that ()->_introducer->class_end (cd,
 
39714
//        builder.get_node (builder.nodes () - 1));
 
39715
//    }
 
39716
//  }
33730
39717
  
33731
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39718
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33732
39719
 
33733
39720
public: template<class JoinPoint> void __a9_before 
33734
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39721
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33735
39722
 
33736
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39723
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33737
39724
(JoinPoint *tjp)
33738
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39725
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33739
39726
 {
33740
 
#line 33741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39727
#line 39728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33741
39728
 
33742
39729
  typedef typename JoinPoint::That __JP_That;
33743
39730
  typedef typename JoinPoint::Target __JP_Target;
33744
39731
  typedef typename JoinPoint::Result __JP_Result;
33745
39732
 
33746
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39733
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33747
39734
 
33748
39735
    if (tjp->that ()->_introducer) {
33749
 
      CT_ClassDef *cd =
33750
 
        (CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
33751
 
      Builder &builder = tjp->that ()->builder ();
33752
 
      tjp->that ()->_introducer->class_end (cd,
33753
 
        builder.get_node (builder.nodes () - 1));
 
39736
      Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)
 
39737
        tjp->that ()->current_scope->Structure ()->Tree ();
 
39738
      tjp->that ()->_introducer->class_end (cd);
33754
39739
    }
33755
39740
  }
33756
 
#line 33757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39741
#line 39742 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33757
39742
 
33758
39743
protected:
33759
39744
 
33760
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33761
 
 
33762
 
 
 
39745
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39746
 
 
39747
  
33763
39748
  // perform an additional check on base classes with aspects
33764
39749
  
33765
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39750
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33766
39751
 
33767
39752
public: template<class JoinPoint> void __a10_after 
33768
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39753
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33769
39754
 
33770
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39755
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33771
39756
(JoinPoint *tjp)
33772
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39757
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33773
39758
 {
33774
 
#line 33775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39759
#line 39760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33775
39760
 
33776
39761
  typedef typename JoinPoint::That __JP_That;
33777
39762
  typedef typename JoinPoint::Target __JP_Target;
33778
39763
  typedef typename JoinPoint::Result __JP_Result;
33779
39764
 
33780
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39765
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33781
39766
 
33782
39767
 
33783
39768
    // obtain the first argument
33784
 
    CTree *cs = *tjp->template arg<0>();
 
39769
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->template arg<0>();
33785
39770
    
 
39771
    // if necessary introduce base classes here
 
39772
    if (tjp->that ()->_introducer) {
 
39773
      tjp->that ()->_introducer->base_clause_end (cd,
 
39774
        tjp->that ()->syntax ().provider ()->current ());
 
39775
    }
 
39776
 
 
39777
    // semantically handle introduced base classes
 
39778
    Puma::CT_BaseSpecList *bl = (Puma::CT_BaseSpecList*)cd->BaseIntros ();
 
39779
    if (cd->Object () && bl) {
 
39780
      int num = bl->Entries ();
 
39781
      for (int i = 0; i < num; i++)
 
39782
        tjp->that ()->addBaseClass (cd->Object ()->ClassInfo (),
 
39783
          (Puma::CT_BaseSpec*)bl->Entry (i));
 
39784
    }
 
39785
 
33786
39786
    // handle it
33787
 
    tjp->that ()->add_base_classes_post (cs);
33788
 
  }
33789
 
#line 33790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33790
 
 
33791
 
protected:
33792
 
 
33793
 
#line 244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39787
    tjp->that ()->add_base_classes_post (cd);
 
39788
  }
 
39789
#line 39790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39790
 
 
39791
protected:
 
39792
 
 
39793
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39794
 
 
39795
 
 
39796
  // extend the translation unit handling -> finalization
 
39797
  
 
39798
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39799
 
 
39800
public: template<class JoinPoint> void __a11_after 
 
39801
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39802
 
 
39803
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39804
(JoinPoint *tjp)
 
39805
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39806
 {
 
39807
#line 39808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39808
 
 
39809
  typedef typename JoinPoint::That __JP_That;
 
39810
  typedef typename JoinPoint::Target __JP_Target;
 
39811
  typedef typename JoinPoint::Result __JP_Result;
 
39812
 
 
39813
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39814
 
 
39815
    if (tjp->that ()->_introducer) {
 
39816
      tjp->that ()->_introducer->trans_unit_end ((Puma::CT_Program*)*tjp->result ());
 
39817
    }
 
39818
  }
 
39819
#line 39820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39820
 
 
39821
protected:
 
39822
 
 
39823
#line 271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39824
 
33794
39825
 
33795
39826
};
33796
 
#line 33797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
39827
#line 39828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
33797
39828
 
33798
39829
namespace AC {
33799
39830
  template <class JoinPoint>
33800
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
 
39831
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
33801
39832
    ::ExtAC::aspectof()->__a0_before (tjp);
33802
39833
  }
33803
39834
  template <class JoinPoint>
33804
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
 
39835
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
33805
39836
    ::ExtAC::aspectof()->__a1_after (tjp);
33806
39837
  }
33807
39838
  template <class JoinPoint>
33808
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
 
39839
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
33809
39840
    ::ExtAC::aspectof()->__a2_around (tjp);
33810
39841
  }
33811
39842
  template <class JoinPoint>
33812
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
 
39843
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
33813
39844
    ::ExtAC::aspectof()->__a3_around (tjp);
33814
39845
  }
33815
39846
  template <class JoinPoint>
33816
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
 
39847
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
33817
39848
    ::ExtAC::aspectof()->__a4_after (tjp);
33818
39849
  }
33819
 
  template <class JoinPoint, class Binding>
33820
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
33821
 
    typedef typename Binding::template Arg<0> Arg0;
 
39850
  template <class JoinPoint>
 
39851
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
 
39852
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a5_around::template Arg<0> Arg0;
33822
39853
    ::ExtAC::aspectof()->__a5_around (tjp, (bool &)Arg0::val (tjp));
33823
39854
  }
33824
39855
  template <class JoinPoint>
33825
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
 
39856
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
33826
39857
    ::ExtAC::aspectof()->__a6_after (tjp);
33827
39858
  }
33828
 
  template <class JoinPoint, class Binding>
33829
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
33830
 
    typedef typename Binding::template Arg<0> Arg0;
 
39859
  template <class JoinPoint>
 
39860
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
 
39861
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a7_around::template Arg<0> Arg0;
33831
39862
    ::ExtAC::aspectof()->__a7_around (tjp, (bool &)Arg0::val (tjp));
33832
39863
  }
33833
39864
  template <class JoinPoint>
33834
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
 
39865
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
33835
39866
    ::ExtAC::aspectof()->__a8_after (tjp);
33836
39867
  }
33837
39868
  template <class JoinPoint>
33838
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
 
39869
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
33839
39870
    ::ExtAC::aspectof()->__a9_before (tjp);
33840
39871
  }
33841
39872
  template <class JoinPoint>
33842
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
 
39873
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
33843
39874
    ::ExtAC::aspectof()->__a10_after (tjp);
33844
39875
  }
 
39876
  template <class JoinPoint>
 
39877
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp) {
 
39878
    ::ExtAC::aspectof()->__a11_after (tjp);
 
39879
  }
33845
39880
33846
39881
 
33847
 
#line 245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39882
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33848
39883
 
33849
39884
 
33850
39885
 
33853
39888
// ***************************
33854
39889
 
33855
39890
 
33856
 
#line 285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33857
 
 
33858
 
 
33859
 
 
33860
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33861
 
 
33862
 
 
33863
 
 
33864
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33865
 
 
33866
 
 
33867
 
 
33868
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33869
 
 
33870
 
 
33871
 
 
33872
 
 
33873
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33874
 
 
33875
 
 
33876
 
 
33877
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33878
 
 
33879
 
 
33880
 
 
33881
 
#line 609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33882
 
 
33883
 
 
33884
 
 
33885
 
#line 634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33886
 
 
33887
 
 
33888
 
 
33889
 
#line 644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33890
 
 
33891
 
 
33892
 
 
33893
 
 
33894
 
#line 651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39891
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39892
 
 
39893
 
 
39894
 
 
39895
#line 334 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39896
 
 
39897
 
 
39898
 
 
39899
#line 360 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39900
 
 
39901
 
 
39902
 
 
39903
#line 388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39904
 
 
39905
 
 
39906
 
 
39907
#line 447 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39908
 
 
39909
 
 
39910
 
 
39911
 
 
39912
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39913
 
 
39914
 
 
39915
 
 
39916
#line 565 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39917
 
 
39918
 
 
39919
 
 
39920
#line 672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39921
 
 
39922
 
 
39923
 
 
39924
#line 698 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39925
 
 
39926
 
 
39927
 
 
39928
#line 708 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39929
 
 
39930
 
 
39931
 
 
39932
 
 
39933
#line 715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33895
39934
 
33896
39935
 
33897
39936
#endif /* __ext_ac_h__ */
33898
39937
 
33899
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
33900
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
33901
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
33902
 
 
33903
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
33904
 
// This file is part of PUMA.
33905
 
// Copyright (C) 1999-2003  The PUMA developer team.
33906
 
//                                                                
33907
 
// This program is free software;  you can redistribute it and/or 
33908
 
// modify it under the terms of the GNU General Public License as 
33909
 
// published by the Free Software Foundation; either version 2 of 
33910
 
// the License, or (at your option) any later version.            
33911
 
//                                                                
33912
 
// This program is distributed in the hope that it will be useful,
33913
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
33914
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
33915
 
// GNU General Public License for more details.                   
33916
 
//                                                                
33917
 
// You should have received a copy of the GNU General Public      
33918
 
// License along with this program; if not, write to the Free     
33919
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
33920
 
// MA  02111-1307  USA                                            
33921
 
 
33922
 
#ifndef __CClassDatabase_h__
33923
 
#define __CClassDatabase_h__
33924
 
 
33925
 
 
33926
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
33927
 
 
33928
 
#line 33929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33929
 
 
33930
 
#ifndef __ac_fwd_ExtACKeywords__
33931
 
#define __ac_fwd_ExtACKeywords__
33932
 
class ExtACKeywords;
33933
 
namespace AC {
33934
 
  template <class JoinPoint, class Binding>
33935
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
33936
 
  template <class JoinPoint, class Binding>
33937
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
33938
 
  template <class JoinPoint>
33939
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
33940
 
}
33941
 
#endif
33942
 
 
33943
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
33944
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
33945
 
#endif
33946
 
 
33947
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
33948
 
// This file is part of PUMA.
33949
 
// Copyright (C) 1999-2003  The PUMA developer team.
33950
 
//                                                                
33951
 
// This program is free software;  you can redistribute it and/or 
33952
 
// modify it under the terms of the GNU General Public License as 
33953
 
// published by the Free Software Foundation; either version 2 of 
33954
 
// the License, or (at your option) any later version.            
33955
 
//                                                                
33956
 
// This program is distributed in the hope that it will be useful,
33957
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
33958
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
33959
 
// GNU General Public License for more details.                   
33960
 
//                                                                
33961
 
// You should have received a copy of the GNU General Public      
33962
 
// License along with this program; if not, write to the Free     
33963
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
33964
 
// MA  02111-1307  USA                                            
33965
 
 
33966
 
#ifndef __CProject_h__
33967
 
#define __CProject_h__
33968
 
 
33969
 
// Special project derivation for C++ sources.
33970
 
 
33971
 
#include "Puma/Config.h"
33972
 
#include "Puma/Project.h"
33973
 
#include "Puma/CScanner.h"
33974
 
#include "Puma/ErrorStream.h"
33975
 
 
33976
 
namespace Puma {
33977
 
 
33978
 
 
33979
 
class Source;
33980
 
class CTypeInfo;
33981
 
 
33982
 
 
33983
 
#line 33984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
33984
 
} // closed Puma
33985
 
class WinIfExists;
33986
 
class WinImportHandler;
33987
 
class WinMacros;
33988
 
class CMatchSyntax;
33989
 
class ExtGnu;
33990
 
class ExtAC;
33991
 
class ExtACBuilderCoupling;
33992
 
class ExtACSyntaxCoupling;
33993
 
class ExtACTree;
33994
 
class ExtACKeywords;
33995
 
class WinAsm;
33996
 
class WinDeclSpecs;
33997
 
class WinMemberExplSpec;
33998
 
class WinTypeKeywords;
33999
 
class PragmaOnceUnitState;
34000
 
class PragmaOnce;
34001
 
class CCExprResolve;
34002
 
class CExprResolve;
34003
 
namespace Puma {
34004
 
 
34005
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34006
 
class CProject : public Project {
34007
 
#line 34008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34008
 
  friend class ::WinIfExists;
34009
 
  friend class ::WinImportHandler;
34010
 
  friend class ::WinMacros;
34011
 
  friend class ::CMatchSyntax;
34012
 
  friend class ::ExtGnu;
34013
 
  friend class ::ExtAC;
34014
 
  friend class ::ExtACBuilderCoupling;
34015
 
  friend class ::ExtACSyntaxCoupling;
34016
 
  friend class ::ExtACTree;
34017
 
  friend class ::ExtACKeywords;
34018
 
  friend class ::WinAsm;
34019
 
  friend class ::WinDeclSpecs;
34020
 
  friend class ::WinMemberExplSpec;
34021
 
  friend class ::WinTypeKeywords;
34022
 
  friend class ::PragmaOnceUnitState;
34023
 
  friend class ::PragmaOnce;
34024
 
  friend class ::CCExprResolve;
34025
 
  friend class ::CExprResolve;
34026
 
 
34027
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34028
 
 
34029
 
  Config _config;
34030
 
  CScanner _scanner;
34031
 
 
34032
 
public:
34033
 
  CProject (ErrorStream &e);
34034
 
 
34035
 
  // Constructor: Add some source directories.
34036
 
  CProject (ErrorStream &, const char *defs, 
34037
 
               const char *decls = (const char*)0); 
34038
 
 
34039
 
  // Constructor: Setup preprocessor configuration according to
34040
 
  // command line parameter and the global config file and
34041
 
  // add some source directories.
34042
 
  CProject (ErrorStream &, int &argc, char **&argv, 
34043
 
            const char *defs = (const char*)0, 
34044
 
            const char *decls = (const char*)0);
34045
 
 
34046
 
public: // Project configuration 
34047
 
  // Get the preprocessor configuration.
34048
 
  Config &config ();
34049
 
 
34050
 
  // Configure the project from the command line or a file.
34051
 
  virtual void configure (Config &);
34052
 
 
34053
 
  // Add a new file to the project.
34054
 
  Unit *addFile (Filename file);
34055
 
 
34056
 
public: // Scanner interface
34057
 
  // Get the scanner.
34058
 
  CScanner &scanner ();
34059
 
 
34060
 
  // Scan the file `file' or the source if given. When
34061
 
  // scanning a source the resulting unit gets the name `file'.
34062
 
  
34063
 
#line 34064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34064
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
34065
 
 
34066
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34067
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
34068
 
                          bool isFile = true);
34069
 
        
34070
 
  // Scan a string. The resulting unit gets the name `name'.
34071
 
  // (and will not be registered at the unit manager!)
34072
 
  virtual Unit *scanString (const char *str, 
34073
 
                            const char *name = (const char*)0);
34074
 
 
34075
 
public: // Miscellaneous Functions
34076
 
 
34077
 
  // Give the filename needed to include a particular header file
34078
 
  Filename getInclString (Filename filename);
34079
 
 
34080
 
private:
34081
 
  // Map the type string from --size-type and --ptrdiff-type
34082
 
  // to real Puma type.
34083
 
  CTypeInfo *mapType (const char *) const;
34084
 
};
34085
 
 
34086
 
inline Config &CProject::config () 
34087
 
 { return _config; }
34088
 
inline CScanner &CProject::scanner () 
34089
 
 { return _scanner; }
34090
 
 
34091
 
 
34092
 
} // namespace Puma
34093
 
 
34094
 
#endif /* __CProject_h__ */
34095
 
 
34096
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34097
 
using namespace std;
34098
 
 
34099
 
namespace Puma {
34100
 
 
34101
 
 
34102
 
class CObjectInfo;
34103
 
class CClassInfo;
34104
 
class CUnionInfo;
34105
 
class CEnumInfo;
34106
 
class CTypedefInfo;
34107
 
class CTemplateParamInfo;
34108
 
class CTypeInfo;
34109
 
class CFileInfo;
34110
 
class Token;
34111
 
 
34112
 
/** \file 
34113
 
 *  Database of all semantic objects (infos) of a project. 
34114
 
 *  \see Puma::CClassDatabase */
34115
 
 
34116
 
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
34117
 
 *  A CClassDatabase object is a database of all semantic objects
34118
 
 *  (infos) of a project. */
34119
 
 
34120
 
#line 34121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34121
 
} // closed Puma
34122
 
class WinIfExists;
34123
 
class WinImportHandler;
34124
 
class WinMacros;
34125
 
class CMatchSyntax;
34126
 
class ExtGnu;
34127
 
class ExtAC;
34128
 
class ExtACBuilderCoupling;
34129
 
class ExtACSyntaxCoupling;
34130
 
class ExtACTree;
34131
 
class ExtACKeywords;
34132
 
class WinAsm;
34133
 
class WinDeclSpecs;
34134
 
class WinMemberExplSpec;
34135
 
class WinTypeKeywords;
34136
 
class PragmaOnceUnitState;
34137
 
class PragmaOnce;
34138
 
class CCExprResolve;
34139
 
class CExprResolve;
34140
 
namespace Puma {
34141
 
 
34142
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34143
 
class CClassDatabase  :public ACClassDatabase {
34144
 
#line 34145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34145
 
  friend class ::WinIfExists;
34146
 
  friend class ::WinImportHandler;
34147
 
  friend class ::WinMacros;
34148
 
  friend class ::CMatchSyntax;
34149
 
  friend class ::ExtGnu;
34150
 
  friend class ::ExtAC;
34151
 
  friend class ::ExtACBuilderCoupling;
34152
 
  friend class ::ExtACSyntaxCoupling;
34153
 
  friend class ::ExtACTree;
34154
 
  friend class ::ExtACKeywords;
34155
 
  friend class ::WinAsm;
34156
 
  friend class ::WinDeclSpecs;
34157
 
  friend class ::WinMemberExplSpec;
34158
 
  friend class ::WinTypeKeywords;
34159
 
  friend class ::PragmaOnceUnitState;
34160
 
  friend class ::PragmaOnce;
34161
 
  friend class ::CCExprResolve;
34162
 
  friend class ::CExprResolve;
34163
 
 
34164
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34165
 
 
34166
 
  
34167
 
  Array<CObjectInfo*> _Classes;   // index of classes
34168
 
  Array<CObjectInfo*> _Unions;    // index of unions
34169
 
  Array<CObjectInfo*> _Enums;     // index of enums
34170
 
  Array<CObjectInfo*> _Typedefs;  // index of typedefs
34171
 
  Array<CObjectInfo*> _Functions; // index of functions
34172
 
  Array<CObjectInfo*> _Files;     // index of files
 
39938
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
39939
#endif
 
39940
namespace Puma {
 
39941
 
 
39942
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
39943
class CClassDatabase : public Puma :: ACClassDatabase 
 
39944
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
39945
{
 
39946
#line 39947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
39947
  friend class ::CCExprResolve;
 
39948
  friend class ::CExprResolve;
 
39949
  friend class ::WinIfExists;
 
39950
  friend class ::WinImportHandler;
 
39951
  friend class ::WinMacros;
 
39952
  friend class ::WinAsm;
 
39953
  friend class ::WinDeclSpecs;
 
39954
  friend class ::WinMemberExplSpec;
 
39955
  friend class ::WinTypeKeywords;
 
39956
  friend class ::WinFriend;
 
39957
  friend class ::ExtAC;
 
39958
  friend class ::ExtACBuilderCoupling;
 
39959
  friend class ::ExtACSyntaxCoupling;
 
39960
  friend class ::ExtACTree;
 
39961
  friend class ::ExtACKeywords;
 
39962
  friend class ::ExtGnu;
 
39963
  friend class ::PragmaOnceUnitState;
 
39964
  friend class ::PragmaOnce;
 
39965
  friend class ::CMatchSyntax;
 
39966
 
 
39967
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
39968
 
 
39969
  
 
39970
  Array<CObjectInfo*> _Classes;    // index of classes
 
39971
  Array<CObjectInfo*> _Unions;     // index of unions
 
39972
  Array<CObjectInfo*> _Enums;      // index of enums
 
39973
  Array<CObjectInfo*> _Typedefs;   // index of typedefs
 
39974
  Array<CObjectInfo*> _Functions;  // index of functions
 
39975
  Array<CObjectInfo*> _Files;      // index of files
34173
39976
 
34174
39977
  CProject *_Project; // associated project
34175
39978
  
 
39979
  multimap<int,CFunctionInfo*> _builtin_ops; // map for built-in operator lookup
 
39980
 
34176
39981
public:
34177
39982
  /** Construct a class database object.
34178
39983
   *  \param prj The corresponding project.
34196
40001
  unsigned TypedefInfos () const;
34197
40002
  /** Get the number of function infos. */
34198
40003
  unsigned FunctionInfos () const;
34199
 
  /** Get the number of file infos. */
 
40004
  /** Get the number of on-demand generated built-in operator functions. */
34200
40005
  unsigned FileInfos () const;
34201
40006
  /** Get the n-th semantic object info.
34202
40007
   *  \param n The number of the info.
34222
40027
   *  \param n The number of the info.
34223
40028
   *  \return The info or \c NULL if \e n is invalid. */
34224
40029
  CFunctionInfo *FunctionInfo (unsigned n) const;
34225
 
  /** Get the n-th file info.
 
40030
  /** Get the n-th on-demand generated built-in operator info.
34226
40031
   *  \param n The number of the info.
34227
40032
   *  \return The info or \c NULL if \e n is invalid. */
34228
40033
  CFileInfo *FileInfo (unsigned n) const;
34247
40052
  /** Remove the given semantic object from the database.
34248
40053
   *  \param info The semantic object info to remove. */
34249
40054
  void Remove (CObjectInfo *info);
34250
 
 
 
40055
  /** Get a function info object for a built-in operator.
 
40056
   *  \param name Operator name.
 
40057
   *  \param tok Operator token type, used as a key for fast lookup.
 
40058
   *  \param rtype result type of the operator. Not used for lookup,
 
40059
   *         only for object creation.
 
40060
   *  \param t0 first argument type.
 
40061
   *  \param t1 second argument type or \c NULL.
 
40062
   *  \return on-demand generated operator function object. */
 
40063
  CFunctionInfo *BuiltinOperator (const char *name, int tok, CTypeInfo *rtype,
 
40064
    CTypeInfo *t0, CTypeInfo *t1);
34251
40065
  /** Dump the contents of the database. The dump is indented as
34252
40066
   *  tree corresponding to the nesting of the semantic objects.
34253
40067
   *  \param out The output stream to dump to.
34254
40068
   *  \param depth The max. depth in the tree to be dumped. */
34255
40069
  
34256
 
#line 34257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34257
 
public: inline void __exec_old_Dump(::std::ostream & out,int depth) const;
 
40070
#line 40071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40071
public: __attribute__((always_inline)) inline void __exec_old_Dump(::std::ostream & out,int depth) const;
34258
40072
 
34259
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40073
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34260
40074
void Dump (ostream &out, int depth = 0) const;
34261
40075
 
34262
40076
  /** Get the project info delivered to the constructor of the database. */
34263
40077
  CProject *Project () const;
34264
40078
 
34265
 
private: 
 
40079
private:
 
40080
  void CreateParameter (CFunctionInfo *fi, CTypeInfo *type) const;
 
40081
 
34266
40082
  void Dump (ostream &, CStructure *, int, int) const;
34267
40083
  void DumpType (ostream &, CObjectInfo *, int) const;
34268
40084
  void DumpUsing (ostream &, CUsingInfo *, int) const;
34320
40136
 
34321
40137
#endif /* __CClassDatabase_h__ */
34322
40138
 
34323
 
#line 34324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34324
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
34325
 
 
34326
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34327
 
 
34328
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34329
 
 
34330
 
#line 34331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40139
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
40140
 
 
40141
#line 40142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40142
 
 
40143
#ifndef __ac_fwd_PragmaOnceUnitState__
 
40144
#define __ac_fwd_PragmaOnceUnitState__
 
40145
class PragmaOnceUnitState;
 
40146
namespace AC {
 
40147
  template <class JoinPoint>
 
40148
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
40149
  template <class JoinPoint>
 
40150
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
40151
}
 
40152
#endif
 
40153
 
 
40154
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
40155
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
40156
#endif
 
40157
 
 
40158
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
40159
// This file is part of PUMA.
 
40160
// Copyright (C) 1999-2003  The PUMA developer team.
 
40161
//                                                                
 
40162
// This program is free software;  you can redistribute it and/or 
 
40163
// modify it under the terms of the GNU General Public License as 
 
40164
// published by the Free Software Foundation; either version 2 of 
 
40165
// the License, or (at your option) any later version.            
 
40166
//                                                                
 
40167
// This program is distributed in the hope that it will be useful,
 
40168
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
40169
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
40170
// GNU General Public License for more details.                   
 
40171
//                                                                
 
40172
// You should have received a copy of the GNU General Public      
 
40173
// License along with this program; if not, write to the Free     
 
40174
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
40175
// MA  02111-1307  USA                                            
 
40176
 
 
40177
#ifndef __UnitManager__
 
40178
#define __UnitManager__
 
40179
 
 
40180
// Class UnitManager helps you to have control of all units built.
 
40181
 
 
40182
#include <iostream>
 
40183
#include <list>
 
40184
#include <map>
 
40185
#include <string>
 
40186
using namespace std;
 
40187
#include "Puma/ErrorStream.h"
 
40188
 
 
40189
namespace Puma {
 
40190
 
 
40191
 
 
40192
class Unit;
 
40193
class Source;
 
40194
class Tokenizer;
 
40195
 
 
40196
 
 
40197
#line 40198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40198
} // closed Puma
 
40199
class CCExprResolve;
 
40200
class CExprResolve;
 
40201
class WinIfExists;
 
40202
class WinImportHandler;
 
40203
class WinMacros;
 
40204
class WinAsm;
 
40205
class WinDeclSpecs;
 
40206
class WinMemberExplSpec;
 
40207
class WinTypeKeywords;
 
40208
class WinFriend;
 
40209
class ExtAC;
 
40210
class ExtACBuilderCoupling;
 
40211
class ExtACSyntaxCoupling;
 
40212
class ExtACTree;
 
40213
class ExtACKeywords;
 
40214
class ExtGnu;
 
40215
class PragmaOnceUnitState;
 
40216
class PragmaOnce;
 
40217
class CMatchSyntax;
 
40218
namespace Puma {
 
40219
 
 
40220
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
40221
class UnitManager {
 
40222
#line 40223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40223
  friend class ::CCExprResolve;
 
40224
  friend class ::CExprResolve;
 
40225
  friend class ::WinIfExists;
 
40226
  friend class ::WinImportHandler;
 
40227
  friend class ::WinMacros;
 
40228
  friend class ::WinAsm;
 
40229
  friend class ::WinDeclSpecs;
 
40230
  friend class ::WinMemberExplSpec;
 
40231
  friend class ::WinTypeKeywords;
 
40232
  friend class ::WinFriend;
 
40233
  friend class ::ExtAC;
 
40234
  friend class ::ExtACBuilderCoupling;
 
40235
  friend class ::ExtACSyntaxCoupling;
 
40236
  friend class ::ExtACTree;
 
40237
  friend class ::ExtACKeywords;
 
40238
  friend class ::ExtGnu;
 
40239
  friend class ::PragmaOnceUnitState;
 
40240
  friend class ::PragmaOnce;
 
40241
  friend class ::CMatchSyntax;
 
40242
 
 
40243
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
40244
 
 
40245
public:
 
40246
  typedef map<string, Unit*> UMap;
 
40247
private:
 
40248
  ErrorStream *_err;        // For error messages.
 
40249
  list<Unit*> _nonames;     // Noname units list.
 
40250
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
40251
  typedef UMap::value_type UMapPair;
 
40252
  Tokenizer *_tokenizer;    // File scanner.
 
40253
 
 
40254
public:
 
40255
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
40256
        
 
40257
  // Destructor: Delete all units.
 
40258
  virtual ~UnitManager ();
 
40259
        
 
40260
  // Get the unit hash table.
 
40261
  UMap &getTable () const { return _umap; }
 
40262
  typedef UMap::iterator UMapIter;
 
40263
        
 
40264
  // Get/Set the file scanner that is used by newUnit
 
40265
  Tokenizer *tokenizer () const { return _tokenizer; }
 
40266
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
40267
 
 
40268
  // Add a unit to manager.
 
40269
  void addUnit (Unit *unit);
 
40270
        
 
40271
  // Remove (and destroy) a unit from hash table. If the name
 
40272
  // is NULL remove all (but not the nonames).
 
40273
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
40274
                   bool destroy = true) const;
 
40275
 
 
40276
  // Empty a unit. Don't remove from hash table.
 
40277
  // Preserve the last save location information.
 
40278
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
40279
 
 
40280
  // Build and add a new unit. 
 
40281
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
40282
        
 
40283
  // Get a unit by name. 
 
40284
  Unit *getUnit (const char *name, bool = false) const;
 
40285
                        
 
40286
  // Print given unit to the given outstream. If no
 
40287
  // name is given, print all units.
 
40288
  void print (const char *name = (const char*) 0, bool = false, 
 
40289
              ostream &out = cout) const;
 
40290
 
 
40291
  // Destroy all noname units.
 
40292
  void removeNonames ();
 
40293
      
 
40294
  // Initialize the unit manager and the managed 
 
40295
  // units for the next parse process.
 
40296
  
 
40297
#line 40298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40298
public: __attribute__((always_inline)) inline void __exec_old_init();
 
40299
 
 
40300
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
40301
void init ();
 
40302
};
 
40303
 
 
40304
 
 
40305
} // namespace Puma
 
40306
 
 
40307
#endif /* __UnitManager__ */
 
40308
 
 
40309
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40310
 
 
40311
#line 40312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34331
40312
 
34332
40313
#ifndef __ac_fwd_ExtACKeywords__
34333
40314
#define __ac_fwd_ExtACKeywords__
34334
40315
class ExtACKeywords;
34335
40316
namespace AC {
34336
 
  template <class JoinPoint, class Binding>
34337
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
34338
 
  template <class JoinPoint, class Binding>
34339
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
34340
 
  template <class JoinPoint>
34341
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
40317
  template <class JoinPoint>
 
40318
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
40319
  template <class JoinPoint>
 
40320
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
40321
  template <class JoinPoint>
 
40322
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
34342
40323
}
34343
40324
#endif
34344
40325
 
34345
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
34346
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
40326
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
40327
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
34347
40328
#endif
34348
40329
 
34349
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40330
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
34350
40331
// This file is part of PUMA.
34351
40332
// Copyright (C) 1999-2003  The PUMA developer team.
34352
40333
//                                                                
34382
40363
class CTypeInfo;
34383
40364
 
34384
40365
 
34385
 
#line 34386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40366
#line 40367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34386
40367
} // closed Puma
 
40368
class CCExprResolve;
 
40369
class CExprResolve;
34387
40370
class WinIfExists;
34388
40371
class WinImportHandler;
34389
40372
class WinMacros;
34390
 
class CMatchSyntax;
34391
 
class ExtGnu;
 
40373
class WinAsm;
 
40374
class WinDeclSpecs;
 
40375
class WinMemberExplSpec;
 
40376
class WinTypeKeywords;
 
40377
class WinFriend;
34392
40378
class ExtAC;
34393
40379
class ExtACBuilderCoupling;
34394
40380
class ExtACSyntaxCoupling;
34395
40381
class ExtACTree;
34396
40382
class ExtACKeywords;
34397
 
class WinAsm;
34398
 
class WinDeclSpecs;
34399
 
class WinMemberExplSpec;
34400
 
class WinTypeKeywords;
 
40383
class ExtGnu;
34401
40384
class PragmaOnceUnitState;
34402
40385
class PragmaOnce;
34403
 
class CCExprResolve;
34404
 
class CExprResolve;
 
40386
class CMatchSyntax;
34405
40387
namespace Puma {
34406
40388
 
34407
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40389
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
34408
40390
class CProject : public Project {
34409
 
#line 34410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40391
#line 40392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40392
  friend class ::CCExprResolve;
 
40393
  friend class ::CExprResolve;
34410
40394
  friend class ::WinIfExists;
34411
40395
  friend class ::WinImportHandler;
34412
40396
  friend class ::WinMacros;
34413
 
  friend class ::CMatchSyntax;
34414
 
  friend class ::ExtGnu;
 
40397
  friend class ::WinAsm;
 
40398
  friend class ::WinDeclSpecs;
 
40399
  friend class ::WinMemberExplSpec;
 
40400
  friend class ::WinTypeKeywords;
 
40401
  friend class ::WinFriend;
34415
40402
  friend class ::ExtAC;
34416
40403
  friend class ::ExtACBuilderCoupling;
34417
40404
  friend class ::ExtACSyntaxCoupling;
34418
40405
  friend class ::ExtACTree;
34419
40406
  friend class ::ExtACKeywords;
34420
 
  friend class ::WinAsm;
34421
 
  friend class ::WinDeclSpecs;
34422
 
  friend class ::WinMemberExplSpec;
34423
 
  friend class ::WinTypeKeywords;
 
40407
  friend class ::ExtGnu;
34424
40408
  friend class ::PragmaOnceUnitState;
34425
40409
  friend class ::PragmaOnce;
34426
 
  friend class ::CCExprResolve;
34427
 
  friend class ::CExprResolve;
 
40410
  friend class ::CMatchSyntax;
34428
40411
 
34429
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40412
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
34430
40413
 
34431
40414
  Config _config;
34432
40415
  CScanner _scanner;
34462
40445
  // Scan the file `file' or the source if given. When
34463
40446
  // scanning a source the resulting unit gets the name `file'.
34464
40447
  
34465
 
#line 34466 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34466
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
40448
#line 40449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40449
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
34467
40450
 
34468
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40451
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
34469
40452
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
34470
40453
                          bool isFile = true);
34471
40454
        
34495
40478
 
34496
40479
#endif /* __CProject_h__ */
34497
40480
 
34498
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
40481
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
34499
40482
namespace Puma {
34500
40483
 
34501
40484
 
34503
40486
class PreTree;
34504
40487
 
34505
40488
 
34506
 
#line 34507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40489
#line 40490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34507
40490
} // closed Puma
 
40491
class CCExprResolve;
 
40492
class CExprResolve;
34508
40493
class WinIfExists;
34509
40494
class WinImportHandler;
34510
40495
class WinMacros;
34511
 
class CMatchSyntax;
34512
 
class ExtGnu;
 
40496
class WinAsm;
 
40497
class WinDeclSpecs;
 
40498
class WinMemberExplSpec;
 
40499
class WinTypeKeywords;
 
40500
class WinFriend;
34513
40501
class ExtAC;
34514
40502
class ExtACBuilderCoupling;
34515
40503
class ExtACSyntaxCoupling;
34516
40504
class ExtACTree;
34517
40505
class ExtACKeywords;
34518
 
class WinAsm;
34519
 
class WinDeclSpecs;
34520
 
class WinMemberExplSpec;
34521
 
class WinTypeKeywords;
 
40506
class ExtGnu;
34522
40507
class PragmaOnceUnitState;
34523
40508
class PragmaOnce;
34524
 
class CCExprResolve;
34525
 
class CExprResolve;
 
40509
class CMatchSyntax;
34526
40510
namespace Puma {
34527
40511
 
34528
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
40512
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
34529
40513
class CTranslationUnit {
34530
 
#line 34531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40514
#line 40515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40515
  friend class ::CCExprResolve;
 
40516
  friend class ::CExprResolve;
34531
40517
  friend class ::WinIfExists;
34532
40518
  friend class ::WinImportHandler;
34533
40519
  friend class ::WinMacros;
34534
 
  friend class ::CMatchSyntax;
34535
 
  friend class ::ExtGnu;
 
40520
  friend class ::WinAsm;
 
40521
  friend class ::WinDeclSpecs;
 
40522
  friend class ::WinMemberExplSpec;
 
40523
  friend class ::WinTypeKeywords;
 
40524
  friend class ::WinFriend;
34536
40525
  friend class ::ExtAC;
34537
40526
  friend class ::ExtACBuilderCoupling;
34538
40527
  friend class ::ExtACSyntaxCoupling;
34539
40528
  friend class ::ExtACTree;
34540
40529
  friend class ::ExtACKeywords;
34541
 
  friend class ::WinAsm;
34542
 
  friend class ::WinDeclSpecs;
34543
 
  friend class ::WinMemberExplSpec;
34544
 
  friend class ::WinTypeKeywords;
 
40530
  friend class ::ExtGnu;
34545
40531
  friend class ::PragmaOnceUnitState;
34546
40532
  friend class ::PragmaOnce;
34547
 
  friend class ::CCExprResolve;
34548
 
  friend class ::CExprResolve;
 
40533
  friend class ::CMatchSyntax;
34549
40534
 
34550
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
40535
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
34551
40536
 
34552
40537
  Unit *_unit;
34553
40538
  CTree *_syntax_tree;
34585
40570
 
34586
40571
#endif /* __CTranslationUnit__ */
34587
40572
 
34588
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
40573
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
34589
40574
// This file is part of PUMA.
34590
40575
// Copyright (C) 1999-2003  The PUMA developer team.
34591
40576
//                                                                
34615
40600
class CTree;
34616
40601
 
34617
40602
 
34618
 
#line 34619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40603
#line 40604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34619
40604
} // closed Puma
 
40605
class CCExprResolve;
 
40606
class CExprResolve;
34620
40607
class WinIfExists;
34621
40608
class WinImportHandler;
34622
40609
class WinMacros;
34623
 
class CMatchSyntax;
34624
 
class ExtGnu;
 
40610
class WinAsm;
 
40611
class WinDeclSpecs;
 
40612
class WinMemberExplSpec;
 
40613
class WinTypeKeywords;
 
40614
class WinFriend;
34625
40615
class ExtAC;
34626
40616
class ExtACBuilderCoupling;
34627
40617
class ExtACSyntaxCoupling;
34628
40618
class ExtACTree;
34629
40619
class ExtACKeywords;
34630
 
class WinAsm;
34631
 
class WinDeclSpecs;
34632
 
class WinMemberExplSpec;
34633
 
class WinTypeKeywords;
 
40620
class ExtGnu;
34634
40621
class PragmaOnceUnitState;
34635
40622
class PragmaOnce;
34636
 
class CCExprResolve;
34637
 
class CExprResolve;
 
40623
class CMatchSyntax;
34638
40624
namespace Puma {
34639
40625
 
34640
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
40626
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
34641
40627
class CVisitor {
34642
 
#line 34643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40628
#line 40629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40629
  friend class ::CCExprResolve;
 
40630
  friend class ::CExprResolve;
34643
40631
  friend class ::WinIfExists;
34644
40632
  friend class ::WinImportHandler;
34645
40633
  friend class ::WinMacros;
34646
 
  friend class ::CMatchSyntax;
34647
 
  friend class ::ExtGnu;
 
40634
  friend class ::WinAsm;
 
40635
  friend class ::WinDeclSpecs;
 
40636
  friend class ::WinMemberExplSpec;
 
40637
  friend class ::WinTypeKeywords;
 
40638
  friend class ::WinFriend;
34648
40639
  friend class ::ExtAC;
34649
40640
  friend class ::ExtACBuilderCoupling;
34650
40641
  friend class ::ExtACSyntaxCoupling;
34651
40642
  friend class ::ExtACTree;
34652
40643
  friend class ::ExtACKeywords;
34653
 
  friend class ::WinAsm;
34654
 
  friend class ::WinDeclSpecs;
34655
 
  friend class ::WinMemberExplSpec;
34656
 
  friend class ::WinTypeKeywords;
 
40644
  friend class ::ExtGnu;
34657
40645
  friend class ::PragmaOnceUnitState;
34658
40646
  friend class ::PragmaOnce;
34659
 
  friend class ::CCExprResolve;
34660
 
  friend class ::CExprResolve;
 
40647
  friend class ::CMatchSyntax;
34661
40648
 
34662
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
40649
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
34663
40650
 
34664
40651
  bool _aborted;
34665
40652
  bool _pruned;
34686
40673
 
34687
40674
#endif /* __CVisitor_h__ */
34688
40675
 
34689
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CMatch.h"
 
40676
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CMatch.h"
34690
40677
// This file is part of PUMA.
34691
40678
// Copyright (C) 1999-2003  The PUMA developer team.
34692
40679
//                                                                
34711
40698
// A match consists of a list of matched trees
34712
40699
 
34713
40700
 
34714
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
 
40701
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
34715
40702
// This file is part of PUMA.
34716
40703
// Copyright (C) 1999-2003  The PUMA developer team.
34717
40704
//                                                                
34736
40723
// A sub-match consists of a list of matched trees and a name.
34737
40724
 
34738
40725
 
34739
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40726
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34740
40727
 
34741
 
#line 34742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40728
#line 40729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34742
40729
 
34743
40730
#ifndef __ac_fwd_ExtACTree__
34744
40731
#define __ac_fwd_ExtACTree__
34745
40732
class ExtACTree;
34746
40733
namespace AC {
34747
40734
  template <class JoinPoint>
34748
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
40735
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
34749
40736
  template <class JoinPoint>
34750
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
40737
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
34751
40738
}
34752
40739
#endif
34753
40740
 
34754
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
34755
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
40741
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
40742
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
34756
40743
#endif
34757
40744
 
34758
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34759
 
 
34760
 
#line 34761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
34761
 
 
34762
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
34763
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
34764
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
34765
 
 
34766
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40745
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34767
40746
// This file is part of PUMA.
34768
40747
// Copyright (C) 1999-2003  The PUMA developer team.
34769
40748
//                                                                
34808
40787
class     CT_DefaultStmt;
34809
40788
class     CT_TryStmt;
34810
40789
class   CT_Expression;
 
40790
class     CT_Call;
 
40791
class       CT_CallExpr;
 
40792
class       CT_ImplicitCall;
34811
40793
class     CT_ThrowExpr;
34812
40794
class     CT_NewExpr;
34813
40795
class     CT_DeleteExpr;
34828
40810
class     CT_IfThenExpr;
34829
40811
class     CT_CmpdLiteral;
34830
40812
class     CT_IndexExpr;
34831
 
class     CT_CallExpr;
34832
40813
class     CT_CastExpr;
34833
40814
class     CT_StaticCast;
34834
40815
class       CT_ConstCast;
34875
40856
class     CT_NamespaceDef;
34876
40857
class     CT_NamespaceAliasDef;
34877
40858
class     CT_UsingDirective;
 
40859
class     CT_Condition;
34878
40860
class   CT_List;
34879
40861
class     CT_CmpdStmt;
34880
40862
class     CT_DeclSpecSeq;
34905
40887
class     CT_TemplateArgList;
34906
40888
class   CT_Token;
34907
40889
class   CT_Error;
34908
 
class   CT_Condition;
34909
40890
class   CT_BaseSpec;
34910
40891
class   CT_AccessSpec;
34911
40892
class   CT_ArrayDelimiter;
34945
40926
/*                                                                           */
34946
40927
/*****************************************************************************/
34947
40928
 
34948
 
 
34949
 
#line 34950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40929
/** \file
 
40930
 *  C/C++ syntax tree classes.
 
40931
 *  \see Puma::CTree */
 
40932
 
 
40933
/** \class CTree CTree.h Puma/CTree.h
 
40934
 *  Base class for all C/C++ syntax tree classes. */
 
40935
 
 
40936
#line 40937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
34950
40937
} // closed Puma
 
40938
class CCExprResolve;
 
40939
class CExprResolve;
34951
40940
class WinIfExists;
34952
40941
class WinImportHandler;
34953
40942
class WinMacros;
34954
 
class CMatchSyntax;
34955
 
class ExtGnu;
 
40943
class WinAsm;
 
40944
class WinDeclSpecs;
 
40945
class WinMemberExplSpec;
 
40946
class WinTypeKeywords;
 
40947
class WinFriend;
34956
40948
class ExtAC;
34957
40949
class ExtACBuilderCoupling;
34958
40950
class ExtACSyntaxCoupling;
34959
40951
class ExtACTree;
34960
40952
class ExtACKeywords;
34961
 
class WinAsm;
34962
 
class WinDeclSpecs;
34963
 
class WinMemberExplSpec;
34964
 
class WinTypeKeywords;
 
40953
class ExtGnu;
34965
40954
class PragmaOnceUnitState;
34966
40955
class PragmaOnce;
34967
 
class CCExprResolve;
34968
 
class CExprResolve;
34969
 
namespace Puma {
34970
 
 
34971
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40956
class CMatchSyntax;
 
40957
namespace Puma {
 
40958
 
 
40959
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40960
 
 
40961
#line 40962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40962
} // closed Puma
 
40963
 
 
40964
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40965
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
40966
#include "CCExprResolveH.ah"
 
40967
#endif
 
40968
namespace Puma {
 
40969
 
 
40970
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
40971
 
 
40972
#line 40973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40973
} // closed Puma
 
40974
 
 
40975
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40976
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
40977
#include "CExprResolveH.ah"
 
40978
#endif
 
40979
namespace Puma {
 
40980
 
 
40981
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
34972
40982
class CTree {
34973
 
#line 34974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
40983
#line 40984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
40984
  friend class ::CCExprResolve;
 
40985
  friend class ::CExprResolve;
34974
40986
  friend class ::WinIfExists;
34975
40987
  friend class ::WinImportHandler;
34976
40988
  friend class ::WinMacros;
34977
 
  friend class ::CMatchSyntax;
34978
 
  friend class ::ExtGnu;
 
40989
  friend class ::WinAsm;
 
40990
  friend class ::WinDeclSpecs;
 
40991
  friend class ::WinMemberExplSpec;
 
40992
  friend class ::WinTypeKeywords;
 
40993
  friend class ::WinFriend;
34979
40994
  friend class ::ExtAC;
34980
40995
  friend class ::ExtACBuilderCoupling;
34981
40996
  friend class ::ExtACSyntaxCoupling;
34982
40997
  friend class ::ExtACTree;
34983
40998
  friend class ::ExtACKeywords;
34984
 
  friend class ::WinAsm;
34985
 
  friend class ::WinDeclSpecs;
34986
 
  friend class ::WinMemberExplSpec;
34987
 
  friend class ::WinTypeKeywords;
 
40999
  friend class ::ExtGnu;
34988
41000
  friend class ::PragmaOnceUnitState;
34989
41001
  friend class ::PragmaOnce;
34990
 
  friend class ::CCExprResolve;
34991
 
  friend class ::CExprResolve;
34992
 
 
34993
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41002
  friend class ::CMatchSyntax;
 
41003
 
 
41004
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41005
 
 
41006
  CTree * _parent;
34994
41007
 
34995
41008
public:
34996
41009
  /*DEBUG*/static int alloc;
34997
41010
  /*DEBUG*/static int release;
34998
41011
 
34999
41012
protected:
35000
 
  CTree *Son (CTree * const *, int, int) const;
35001
 
  int Sons (CTree * const *, int) const;
35002
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
41013
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
41014
   *  \param sons The sons array.
 
41015
   *  \param len Length of the sons array.
 
41016
   *  \param n Index of the son.
 
41017
   *  \return The n-th son or NULL. */
 
41018
  CTree *Son (CTree * const *sons, int len, int n) const;
 
41019
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
41020
   *  \param sons The sons array.
 
41021
   *  \param len Length of the sons array. */
 
41022
  int Sons (CTree * const *sons, int len) const;
 
41023
  /** Replace a son.
 
41024
   *  \param sons The sons array.
 
41025
   *  \param len Length of the sons array.
 
41026
   *  \param old_son The son to replace.
 
41027
   *  \param new_son The new son. */
 
41028
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
41029
  /** Replace a son if it equals the given son.
 
41030
   *  \param son The actual son.
 
41031
   *  \param old_son The son to replace, must match the actual son.
 
41032
   *  \param new_son The new son, overwrites the actual son. */
 
41033
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
41034
  /** Add a new son.
 
41035
   *  \param son The actual son.
 
41036
   *  \param new_son The new son, overwrites the actual son. */
 
41037
  void AddSon (CTree *&son, CTree *new_son);
 
41038
  /** Set the parent tree node.
 
41039
   *  \param parent The new parent tree node. */
 
41040
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
41041
  /** Set the parent tree node of the given tree node.
 
41042
   *  \param node The tree node.
 
41043
   *  \param parent The new parent. */
 
41044
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
35003
41045
  
35004
41046
protected:
35005
 
  CTree () { /*DEBUG*/alloc++; }
 
41047
  /** Default constructor. */
 
41048
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
35006
41049
 
35007
41050
public:
 
41051
  /** Destructor. */
35008
41052
  virtual ~CTree () { /*DEBUG*/release++; }
 
41053
  /** Get the number of sons. */
35009
41054
  virtual int Sons () const = 0;
 
41055
  /** Get the n-th son.
 
41056
   *  \param n The index of the son.
 
41057
   *  \return The n-th son or NULL. */
35010
41058
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
41059
  /** Get the node name (node identifier). */
35011
41060
  virtual const char *NodeName () const = 0;
 
41061
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
41062
   *  \return The token or NULL. */
35012
41063
  virtual Token *token () const;
 
41064
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
41065
   *  \return The token or NULL. */
35013
41066
  virtual Token *end_token () const;
 
41067
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
41068
   *  \return The token node or NULL. */
35014
41069
  virtual CT_Token *token_node () const;
 
41070
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
41071
   *  \return The token node or NULL. */
35015
41072
  virtual CT_Token *end_token_node () const;
35016
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
41073
  /** Replace a son.
 
41074
   *  \param old_son The son to replace.
 
41075
   *  \param new_son The son with which to replace. */
 
41076
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
41077
  /** Get the parent node.
 
41078
   *  \return The parent node or NULL. */
 
41079
  virtual CTree *Parent () const { return (CTree*)_parent; }
35017
41080
 
35018
41081
public: // semantic information
 
41082
  /** Get the semantic type of the node.
 
41083
   *  \return The type object or NULL. */
35019
41084
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
41085
  /** Get the calculated value of the expression.
 
41086
   *  \return The value object or NULL. */
35020
41087
  virtual CExprValue *Value () const { return (CExprValue*)0; }
35021
41088
  
 
41089
  /** Get the semantic scope of the node.
 
41090
   *  \return The scope object or NULL. */
 
41091
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
41092
  /** Get the semantic value of the node.
 
41093
   *  \return The value object or NULL. */
35022
41094
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
41095
  /** Get the semantic object of the node.
 
41096
   *  \return The semantic object or NULL. */
35023
41097
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
35024
41098
  
35025
41099
public: // node classification function
 
41100
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
41101
   *  \return The CT_SimpleName node or NULL. */
35026
41102
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
41103
  /** Get a pointer to CT_String if the current node represents a string.
 
41104
   *  \return The CT_String node or NULL. */
 
41105
  virtual CT_String *IsString () { return 0; }
 
41106
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
41107
   *  \return The CT_Declarator pointer or NULL. */
35027
41108
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
41109
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
41110
   *  \return The CT_Statement pointer or NULL. */
 
41111
  virtual CT_Statement *IsStatement () { return 0; }
 
41112
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
41113
   *  \return The CT_Expression pointer or NULL. */
 
41114
  virtual CT_Expression *IsExpression () { return 0; }
 
41115
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
41116
   *  \return The CT_Decl pointer or NULL. */
 
41117
  virtual CT_Decl *IsDeclaration () { return 0; }
 
41118
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
41119
   *  \return The CT_Call pointer or NULL. */
 
41120
  virtual CT_Call *IsCall () { return 0; }
35028
41121
   private:
35029
41122
  typedef CTree CCExprResolveCTree;
35030
41123
 
35031
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
41124
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
35032
41125
 public :
35033
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
41126
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
35034
41127
  typedef CTree CExprResolveCTree;
35035
41128
 
35036
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
41129
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
35037
41130
 public :
35038
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
35039
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41131
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
41132
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35040
41133
};
35041
41134
 
 
41135
/** \class CT_Error CTree.h Puma/CTree.h
 
41136
 *  Error tree node that is inserted into the tree for syntactic constructs
 
41137
 *  that could not be parsed. */
35042
41138
 
35043
 
#line 35044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41139
#line 41140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35044
41140
} // closed Puma
 
41141
class CCExprResolve;
 
41142
class CExprResolve;
35045
41143
class WinIfExists;
35046
41144
class WinImportHandler;
35047
41145
class WinMacros;
35048
 
class CMatchSyntax;
35049
 
class ExtGnu;
 
41146
class WinAsm;
 
41147
class WinDeclSpecs;
 
41148
class WinMemberExplSpec;
 
41149
class WinTypeKeywords;
 
41150
class WinFriend;
35050
41151
class ExtAC;
35051
41152
class ExtACBuilderCoupling;
35052
41153
class ExtACSyntaxCoupling;
35053
41154
class ExtACTree;
35054
41155
class ExtACKeywords;
35055
 
class WinAsm;
35056
 
class WinDeclSpecs;
35057
 
class WinMemberExplSpec;
35058
 
class WinTypeKeywords;
 
41156
class ExtGnu;
35059
41157
class PragmaOnceUnitState;
35060
41158
class PragmaOnce;
35061
 
class CCExprResolve;
35062
 
class CExprResolve;
 
41159
class CMatchSyntax;
35063
41160
namespace Puma {
35064
41161
 
35065
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41162
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35066
41163
class CT_Error : public CTree {
35067
 
#line 35068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41164
#line 41165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41165
  friend class ::CCExprResolve;
 
41166
  friend class ::CExprResolve;
35068
41167
  friend class ::WinIfExists;
35069
41168
  friend class ::WinImportHandler;
35070
41169
  friend class ::WinMacros;
35071
 
  friend class ::CMatchSyntax;
35072
 
  friend class ::ExtGnu;
 
41170
  friend class ::WinAsm;
 
41171
  friend class ::WinDeclSpecs;
 
41172
  friend class ::WinMemberExplSpec;
 
41173
  friend class ::WinTypeKeywords;
 
41174
  friend class ::WinFriend;
35073
41175
  friend class ::ExtAC;
35074
41176
  friend class ::ExtACBuilderCoupling;
35075
41177
  friend class ::ExtACSyntaxCoupling;
35076
41178
  friend class ::ExtACTree;
35077
41179
  friend class ::ExtACKeywords;
35078
 
  friend class ::WinAsm;
35079
 
  friend class ::WinDeclSpecs;
35080
 
  friend class ::WinMemberExplSpec;
35081
 
  friend class ::WinTypeKeywords;
 
41180
  friend class ::ExtGnu;
35082
41181
  friend class ::PragmaOnceUnitState;
35083
41182
  friend class ::PragmaOnce;
35084
 
  friend class ::CCExprResolve;
35085
 
  friend class ::CExprResolve;
 
41183
  friend class ::CMatchSyntax;
35086
41184
 
35087
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41185
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35088
41186
 
35089
41187
public:
 
41188
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35090
41189
  static const char *NodeId ();
 
41190
  /** Get the name of the node. Can be compared with NodeId(). */
35091
41191
  const char *NodeName () const { return NodeId (); }
 
41192
  /** Get the number of sons. */
35092
41193
  int Sons () const { return 0; }
35093
41194
};
35094
41195
 
 
41196
/** \class CT_Token CTree.h Puma/CTree.h
 
41197
 *  Tree node representing a single token in the source code. */
35095
41198
 
35096
 
#line 35097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41199
#line 41200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35097
41200
} // closed Puma
 
41201
class CCExprResolve;
 
41202
class CExprResolve;
35098
41203
class WinIfExists;
35099
41204
class WinImportHandler;
35100
41205
class WinMacros;
35101
 
class CMatchSyntax;
35102
 
class ExtGnu;
 
41206
class WinAsm;
 
41207
class WinDeclSpecs;
 
41208
class WinMemberExplSpec;
 
41209
class WinTypeKeywords;
 
41210
class WinFriend;
35103
41211
class ExtAC;
35104
41212
class ExtACBuilderCoupling;
35105
41213
class ExtACSyntaxCoupling;
35106
41214
class ExtACTree;
35107
41215
class ExtACKeywords;
35108
 
class WinAsm;
35109
 
class WinDeclSpecs;
35110
 
class WinMemberExplSpec;
35111
 
class WinTypeKeywords;
 
41216
class ExtGnu;
35112
41217
class PragmaOnceUnitState;
35113
41218
class PragmaOnce;
35114
 
class CCExprResolve;
35115
 
class CExprResolve;
 
41219
class CMatchSyntax;
35116
41220
namespace Puma {
35117
41221
 
35118
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41222
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35119
41223
class CT_Token : public CTree {
35120
 
#line 35121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41224
#line 41225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41225
  friend class ::CCExprResolve;
 
41226
  friend class ::CExprResolve;
35121
41227
  friend class ::WinIfExists;
35122
41228
  friend class ::WinImportHandler;
35123
41229
  friend class ::WinMacros;
35124
 
  friend class ::CMatchSyntax;
35125
 
  friend class ::ExtGnu;
 
41230
  friend class ::WinAsm;
 
41231
  friend class ::WinDeclSpecs;
 
41232
  friend class ::WinMemberExplSpec;
 
41233
  friend class ::WinTypeKeywords;
 
41234
  friend class ::WinFriend;
35126
41235
  friend class ::ExtAC;
35127
41236
  friend class ::ExtACBuilderCoupling;
35128
41237
  friend class ::ExtACSyntaxCoupling;
35129
41238
  friend class ::ExtACTree;
35130
41239
  friend class ::ExtACKeywords;
35131
 
  friend class ::WinAsm;
35132
 
  friend class ::WinDeclSpecs;
35133
 
  friend class ::WinMemberExplSpec;
35134
 
  friend class ::WinTypeKeywords;
 
41240
  friend class ::ExtGnu;
35135
41241
  friend class ::PragmaOnceUnitState;
35136
41242
  friend class ::PragmaOnce;
35137
 
  friend class ::CCExprResolve;
35138
 
  friend class ::CExprResolve;
 
41243
  friend class ::CMatchSyntax;
35139
41244
 
35140
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41245
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35141
41246
 
35142
41247
  Token *_token;
35143
41248
  unsigned long int _number;
35144
41249
  
35145
41250
public:
35146
 
  CT_Token (Token *t, unsigned long int n = 0) : 
35147
 
    _token (t), _number (n) {}
 
41251
  /** Constructor. 
 
41252
   *  \param token The represented token.
 
41253
   *  \param number The token number (a consecutive number). */
 
41254
  CT_Token (Token *token, unsigned long int number = 0) : 
 
41255
    _token (token), _number (number) {}
 
41256
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35148
41257
  static const char *NodeId ();
 
41258
  /** Get the name of the node. Can be compared with NodeId(). */
35149
41259
  const char *NodeName () const { return NodeId (); }
 
41260
  /** Get the number of sons. */
35150
41261
  int Sons () const { return 0; }
 
41262
  /** Get the represented token. */
35151
41263
  Token *token () const { return _token; }
 
41264
  /** Get the represented token. */
35152
41265
  Token *end_token () const { return _token; }
 
41266
  /** Get this. */
35153
41267
  CT_Token *token_node () const { return (CT_Token*)this; }
 
41268
  /** Get this. */
35154
41269
  CT_Token *end_token_node () const { return (CT_Token*)this; }
35155
 
  void Number (unsigned long int n) { _number = n; }
 
41270
  /** Set the token number. 
 
41271
   *  \param number The token number. */ 
 
41272
  void Number (unsigned long int number) { _number = number; }
 
41273
  /** Get the token number. Can be used to indentify this token. */
35156
41274
  unsigned long int Number () const { return _number; }
35157
 
  // special new / delete with reusing memory
 
41275
  
 
41276
public:
 
41277
  /** Own new operator reusing memory. */
35158
41278
  void *operator new (size_t);
35159
 
  void  operator delete (void *);
 
41279
  /** Own delete operator. */
 
41280
  void operator delete (void *);
35160
41281
};
35161
41282
 
35162
41283
/*****************************************************************************/
35165
41286
/*                                                                           */
35166
41287
/*****************************************************************************/
35167
41288
 
 
41289
/** \class CT_List CTree.h Puma/CTree.h
 
41290
 *  Base class for tree nodes representing lists. */
35168
41291
 
35169
 
#line 35170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41292
#line 41293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35170
41293
} // closed Puma
 
41294
class CCExprResolve;
 
41295
class CExprResolve;
35171
41296
class WinIfExists;
35172
41297
class WinImportHandler;
35173
41298
class WinMacros;
35174
 
class CMatchSyntax;
35175
 
class ExtGnu;
 
41299
class WinAsm;
 
41300
class WinDeclSpecs;
 
41301
class WinMemberExplSpec;
 
41302
class WinTypeKeywords;
 
41303
class WinFriend;
35176
41304
class ExtAC;
35177
41305
class ExtACBuilderCoupling;
35178
41306
class ExtACSyntaxCoupling;
35179
41307
class ExtACTree;
35180
41308
class ExtACKeywords;
35181
 
class WinAsm;
35182
 
class WinDeclSpecs;
35183
 
class WinMemberExplSpec;
35184
 
class WinTypeKeywords;
 
41309
class ExtGnu;
35185
41310
class PragmaOnceUnitState;
35186
41311
class PragmaOnce;
35187
 
class CCExprResolve;
35188
 
class CExprResolve;
 
41312
class CMatchSyntax;
35189
41313
namespace Puma {
35190
41314
 
35191
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41315
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35192
41316
class CT_List : public CTree {
35193
 
#line 35194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41317
#line 41318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41318
  friend class ::CCExprResolve;
 
41319
  friend class ::CExprResolve;
35194
41320
  friend class ::WinIfExists;
35195
41321
  friend class ::WinImportHandler;
35196
41322
  friend class ::WinMacros;
35197
 
  friend class ::CMatchSyntax;
35198
 
  friend class ::ExtGnu;
 
41323
  friend class ::WinAsm;
 
41324
  friend class ::WinDeclSpecs;
 
41325
  friend class ::WinMemberExplSpec;
 
41326
  friend class ::WinTypeKeywords;
 
41327
  friend class ::WinFriend;
35199
41328
  friend class ::ExtAC;
35200
41329
  friend class ::ExtACBuilderCoupling;
35201
41330
  friend class ::ExtACSyntaxCoupling;
35202
41331
  friend class ::ExtACTree;
35203
41332
  friend class ::ExtACKeywords;
35204
 
  friend class ::WinAsm;
35205
 
  friend class ::WinDeclSpecs;
35206
 
  friend class ::WinMemberExplSpec;
35207
 
  friend class ::WinTypeKeywords;
 
41333
  friend class ::ExtGnu;
35208
41334
  friend class ::PragmaOnceUnitState;
35209
41335
  friend class ::PragmaOnce;
35210
 
  friend class ::CCExprResolve;
35211
 
  friend class ::CExprResolve;
 
41336
  friend class ::CMatchSyntax;
35212
41337
 
35213
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41338
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35214
41339
 
35215
41340
  Array<CTree*> _sons;
35216
41341
  int _properties;
35217
41342
 
35218
41343
protected:
 
41344
  /** Constructor.
 
41345
   *  \param size The initial list size.
 
41346
   *  \param incr The initial increment count. 
 
41347
   *  \param props The list properties (bit array). */
35219
41348
  CT_List(int size = 5, int incr = 5, int props = 0) : 
35220
41349
    _sons (size, incr), _properties (props) {}
35221
41350
 
35222
41351
public:
 
41352
  /** List properties. */
35223
41353
  enum {
35224
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
35225
 
    CLOSE = 2,
35226
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
35227
 
    SEPARATORS = 4,   // the list has separators like ','
35228
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
35229
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
35230
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
35231
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
41354
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
41355
    CLOSE = 2,        /** List has an end token */
 
41356
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
41357
    SEPARATORS = 4,   /** List has separators, like ',' */
 
41358
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
41359
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
41360
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
41361
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
35232
41362
  };
35233
41363
 
 
41364
  /** Get the number of list entries. */
35234
41365
  int Entries () const;
35235
 
  CTree *Entry (int no) const;
 
41366
  /** Get the n-th list entry.
 
41367
   *  \param n The index of the entry. 
 
41368
   *  \return The list entry or NULL. */
 
41369
  CTree *Entry (int n) const;
 
41370
  /** Get the number of sons. */
35236
41371
  int Sons () const { return _sons.length (); }
 
41372
  /** Get the n-th son.
 
41373
   *  \param n The index of the son. 
 
41374
   *  \return The n-th son or NULL. */
35237
41375
  CTree *Son (int n) const { return _sons.lookup (n); }
 
41376
  /** Get the list properties. */
35238
41377
  int GetProperties () const { return _properties; }
 
41378
  /** Add a list property.
 
41379
   *  \param p The property to add. */
35239
41380
  void AddProperties (int p) { _properties |= p; }
35240
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
35241
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
35242
 
  void InsertSon (CTree *, CTree *);  // before given son
35243
 
  void ReplaceSon (CTree *, CTree *);
35244
 
  void RemoveSon (CTree *);
 
41381
  /** Add a son.
 
41382
   *  \param s The son to add. */
 
41383
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
41384
  /** Prepend a son.
 
41385
   *  \param s The son to prepend. */
 
41386
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
41387
  /** Insert a son before another son.
 
41388
   *  \param before The son to insert the new son before.
 
41389
   *  \param son The son to insert. */
 
41390
  void InsertSon (CTree *before, CTree *son); 
 
41391
  /** Replace a son.
 
41392
   *  \param old_son The son to replace.
 
41393
   *  \param new_son The new son. */
 
41394
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
41395
  /** Remove a son.
 
41396
   *  \param son The son to remove. */
 
41397
  void RemoveSon (CTree *son);
 
41398
  /** Insert a son at the given index. 
 
41399
   *  \param idx The index at which to insert.
 
41400
   *  \param s The son to insert. */
35245
41401
  void InsertSon (int idx, CTree *s)
35246
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
41402
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
41403
  /** Replace the son at the given index.
 
41404
   *  \param idx The index of the son to replace.
 
41405
   *  \param s The new son. */
35247
41406
  void ReplaceSon (int idx, CTree *s) 
35248
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
41407
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
41408
  /** Remove the son at the given index. 
 
41409
   *  \param idx The index of the son to remove. */
35249
41410
  void RemoveSon (int idx) 
35250
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
41411
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
35251
41412
};
35252
41413
 
 
41414
/** \class CT_ExprList CTree.h Puma/CTree.h
 
41415
 *  Tree node representing an expression list. */
35253
41416
 
35254
 
#line 35255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41417
#line 41418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35255
41418
} // closed Puma
 
41419
class CCExprResolve;
 
41420
class CExprResolve;
35256
41421
class WinIfExists;
35257
41422
class WinImportHandler;
35258
41423
class WinMacros;
35259
 
class CMatchSyntax;
35260
 
class ExtGnu;
 
41424
class WinAsm;
 
41425
class WinDeclSpecs;
 
41426
class WinMemberExplSpec;
 
41427
class WinTypeKeywords;
 
41428
class WinFriend;
35261
41429
class ExtAC;
35262
41430
class ExtACBuilderCoupling;
35263
41431
class ExtACSyntaxCoupling;
35264
41432
class ExtACTree;
35265
41433
class ExtACKeywords;
35266
 
class WinAsm;
35267
 
class WinDeclSpecs;
35268
 
class WinMemberExplSpec;
35269
 
class WinTypeKeywords;
 
41434
class ExtGnu;
35270
41435
class PragmaOnceUnitState;
35271
41436
class PragmaOnce;
35272
 
class CCExprResolve;
35273
 
class CExprResolve;
 
41437
class CMatchSyntax;
35274
41438
namespace Puma {
35275
41439
 
35276
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41440
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35277
41441
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
35278
 
#line 35279 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41442
#line 41443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41443
  friend class ::CCExprResolve;
 
41444
  friend class ::CExprResolve;
35279
41445
  friend class ::WinIfExists;
35280
41446
  friend class ::WinImportHandler;
35281
41447
  friend class ::WinMacros;
35282
 
  friend class ::CMatchSyntax;
35283
 
  friend class ::ExtGnu;
 
41448
  friend class ::WinAsm;
 
41449
  friend class ::WinDeclSpecs;
 
41450
  friend class ::WinMemberExplSpec;
 
41451
  friend class ::WinTypeKeywords;
 
41452
  friend class ::WinFriend;
35284
41453
  friend class ::ExtAC;
35285
41454
  friend class ::ExtACBuilderCoupling;
35286
41455
  friend class ::ExtACSyntaxCoupling;
35287
41456
  friend class ::ExtACTree;
35288
41457
  friend class ::ExtACKeywords;
35289
 
  friend class ::WinAsm;
35290
 
  friend class ::WinDeclSpecs;
35291
 
  friend class ::WinMemberExplSpec;
35292
 
  friend class ::WinTypeKeywords;
 
41458
  friend class ::ExtGnu;
35293
41459
  friend class ::PragmaOnceUnitState;
35294
41460
  friend class ::PragmaOnce;
35295
 
  friend class ::CCExprResolve;
35296
 
  friend class ::CExprResolve;
 
41461
  friend class ::CMatchSyntax;
35297
41462
 
35298
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41463
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35299
41464
 
35300
41465
public:
 
41466
  /** Constructor. */
35301
41467
  CT_ExprList () { AddProperties (SEPARATORS); }
 
41468
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35302
41469
  static const char *NodeId ();
 
41470
  /** Get the name of the node. Can be compared with NodeId(). */
35303
41471
  const char *NodeName () const { return NodeId (); }
35304
41472
 
 
41473
  /** Get the type of the last expression in the expression list.
 
41474
   *  \return The type or NULL. */
35305
41475
  CTypeInfo *Type () const { return type; }
 
41476
  /** Get the value of the last expression in the expression list.
 
41477
   *  \return The value of NULL. */
35306
41478
  CExprValue *Value () const { return value; }
 
41479
  /** Get the semantic value of the node. */
35307
41480
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
41481
  /** Get the semantic object of the node. */
35308
41482
  CSemObject *SemObject () const { return (CSemObject*)this; }
35309
41483
};
35310
41484
 
 
41485
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
41486
 *  Tree node representing a list of declarators. */
35311
41487
 
35312
 
#line 35313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41488
#line 41489 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35313
41489
} // closed Puma
 
41490
class CCExprResolve;
 
41491
class CExprResolve;
35314
41492
class WinIfExists;
35315
41493
class WinImportHandler;
35316
41494
class WinMacros;
35317
 
class CMatchSyntax;
35318
 
class ExtGnu;
 
41495
class WinAsm;
 
41496
class WinDeclSpecs;
 
41497
class WinMemberExplSpec;
 
41498
class WinTypeKeywords;
 
41499
class WinFriend;
35319
41500
class ExtAC;
35320
41501
class ExtACBuilderCoupling;
35321
41502
class ExtACSyntaxCoupling;
35322
41503
class ExtACTree;
35323
41504
class ExtACKeywords;
35324
 
class WinAsm;
35325
 
class WinDeclSpecs;
35326
 
class WinMemberExplSpec;
35327
 
class WinTypeKeywords;
 
41505
class ExtGnu;
35328
41506
class PragmaOnceUnitState;
35329
41507
class PragmaOnce;
35330
 
class CCExprResolve;
35331
 
class CExprResolve;
 
41508
class CMatchSyntax;
35332
41509
namespace Puma {
35333
41510
 
35334
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41511
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35335
41512
class CT_DeclaratorList : public CT_List {
35336
 
#line 35337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41513
#line 41514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41514
  friend class ::CCExprResolve;
 
41515
  friend class ::CExprResolve;
35337
41516
  friend class ::WinIfExists;
35338
41517
  friend class ::WinImportHandler;
35339
41518
  friend class ::WinMacros;
35340
 
  friend class ::CMatchSyntax;
35341
 
  friend class ::ExtGnu;
 
41519
  friend class ::WinAsm;
 
41520
  friend class ::WinDeclSpecs;
 
41521
  friend class ::WinMemberExplSpec;
 
41522
  friend class ::WinTypeKeywords;
 
41523
  friend class ::WinFriend;
35342
41524
  friend class ::ExtAC;
35343
41525
  friend class ::ExtACBuilderCoupling;
35344
41526
  friend class ::ExtACSyntaxCoupling;
35345
41527
  friend class ::ExtACTree;
35346
41528
  friend class ::ExtACKeywords;
35347
 
  friend class ::WinAsm;
35348
 
  friend class ::WinDeclSpecs;
35349
 
  friend class ::WinMemberExplSpec;
35350
 
  friend class ::WinTypeKeywords;
 
41529
  friend class ::ExtGnu;
35351
41530
  friend class ::PragmaOnceUnitState;
35352
41531
  friend class ::PragmaOnce;
35353
 
  friend class ::CCExprResolve;
35354
 
  friend class ::CExprResolve;
 
41532
  friend class ::CMatchSyntax;
35355
41533
 
35356
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41534
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35357
41535
 
35358
41536
public:
 
41537
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35359
41538
  static const char *NodeId ();
 
41539
  /** Get the name of the node. Can be compared with NodeId(). */
35360
41540
  const char *NodeName () const { return NodeId (); }
35361
41541
};
35362
41542
 
 
41543
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
41544
 *  Tree node representing a list of enumerator constants. */
35363
41545
 
35364
 
#line 35365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41546
#line 41547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35365
41547
} // closed Puma
 
41548
class CCExprResolve;
 
41549
class CExprResolve;
35366
41550
class WinIfExists;
35367
41551
class WinImportHandler;
35368
41552
class WinMacros;
35369
 
class CMatchSyntax;
35370
 
class ExtGnu;
 
41553
class WinAsm;
 
41554
class WinDeclSpecs;
 
41555
class WinMemberExplSpec;
 
41556
class WinTypeKeywords;
 
41557
class WinFriend;
35371
41558
class ExtAC;
35372
41559
class ExtACBuilderCoupling;
35373
41560
class ExtACSyntaxCoupling;
35374
41561
class ExtACTree;
35375
41562
class ExtACKeywords;
35376
 
class WinAsm;
35377
 
class WinDeclSpecs;
35378
 
class WinMemberExplSpec;
35379
 
class WinTypeKeywords;
 
41563
class ExtGnu;
35380
41564
class PragmaOnceUnitState;
35381
41565
class PragmaOnce;
35382
 
class CCExprResolve;
35383
 
class CExprResolve;
 
41566
class CMatchSyntax;
35384
41567
namespace Puma {
35385
41568
 
35386
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41569
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35387
41570
class CT_EnumeratorList : public CT_List {
35388
 
#line 35389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41571
#line 41572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41572
  friend class ::CCExprResolve;
 
41573
  friend class ::CExprResolve;
35389
41574
  friend class ::WinIfExists;
35390
41575
  friend class ::WinImportHandler;
35391
41576
  friend class ::WinMacros;
35392
 
  friend class ::CMatchSyntax;
35393
 
  friend class ::ExtGnu;
 
41577
  friend class ::WinAsm;
 
41578
  friend class ::WinDeclSpecs;
 
41579
  friend class ::WinMemberExplSpec;
 
41580
  friend class ::WinTypeKeywords;
 
41581
  friend class ::WinFriend;
35394
41582
  friend class ::ExtAC;
35395
41583
  friend class ::ExtACBuilderCoupling;
35396
41584
  friend class ::ExtACSyntaxCoupling;
35397
41585
  friend class ::ExtACTree;
35398
41586
  friend class ::ExtACKeywords;
35399
 
  friend class ::WinAsm;
35400
 
  friend class ::WinDeclSpecs;
35401
 
  friend class ::WinMemberExplSpec;
35402
 
  friend class ::WinTypeKeywords;
 
41587
  friend class ::ExtGnu;
35403
41588
  friend class ::PragmaOnceUnitState;
35404
41589
  friend class ::PragmaOnce;
35405
 
  friend class ::CCExprResolve;
35406
 
  friend class ::CExprResolve;
 
41590
  friend class ::CMatchSyntax;
35407
41591
 
35408
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41592
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35409
41593
 
35410
41594
public:
 
41595
  /** Constructor. */
35411
41596
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
41597
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35412
41598
  static const char *NodeId ();
 
41599
  /** Get the name of the node. Can be compared with NodeId(). */
35413
41600
  const char *NodeName () const { return NodeId (); }
35414
41601
};
35415
41602
   
 
41603
/** \class CT_DeclList CTree.h Puma/CTree.h
 
41604
 *  Tree node representing a list of declarations. */
35416
41605
 
35417
 
#line 35418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41606
#line 41607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35418
41607
} // closed Puma
 
41608
class CCExprResolve;
 
41609
class CExprResolve;
35419
41610
class WinIfExists;
35420
41611
class WinImportHandler;
35421
41612
class WinMacros;
35422
 
class CMatchSyntax;
35423
 
class ExtGnu;
 
41613
class WinAsm;
 
41614
class WinDeclSpecs;
 
41615
class WinMemberExplSpec;
 
41616
class WinTypeKeywords;
 
41617
class WinFriend;
35424
41618
class ExtAC;
35425
41619
class ExtACBuilderCoupling;
35426
41620
class ExtACSyntaxCoupling;
35427
41621
class ExtACTree;
35428
41622
class ExtACKeywords;
35429
 
class WinAsm;
35430
 
class WinDeclSpecs;
35431
 
class WinMemberExplSpec;
35432
 
class WinTypeKeywords;
 
41623
class ExtGnu;
35433
41624
class PragmaOnceUnitState;
35434
41625
class PragmaOnce;
35435
 
class CCExprResolve;
35436
 
class CExprResolve;
 
41626
class CMatchSyntax;
35437
41627
namespace Puma {
35438
41628
 
35439
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41629
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35440
41630
class CT_DeclList : public CT_List {
35441
 
#line 35442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41631
#line 41632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41632
  friend class ::CCExprResolve;
 
41633
  friend class ::CExprResolve;
35442
41634
  friend class ::WinIfExists;
35443
41635
  friend class ::WinImportHandler;
35444
41636
  friend class ::WinMacros;
35445
 
  friend class ::CMatchSyntax;
35446
 
  friend class ::ExtGnu;
 
41637
  friend class ::WinAsm;
 
41638
  friend class ::WinDeclSpecs;
 
41639
  friend class ::WinMemberExplSpec;
 
41640
  friend class ::WinTypeKeywords;
 
41641
  friend class ::WinFriend;
35447
41642
  friend class ::ExtAC;
35448
41643
  friend class ::ExtACBuilderCoupling;
35449
41644
  friend class ::ExtACSyntaxCoupling;
35450
41645
  friend class ::ExtACTree;
35451
41646
  friend class ::ExtACKeywords;
35452
 
  friend class ::WinAsm;
35453
 
  friend class ::WinDeclSpecs;
35454
 
  friend class ::WinMemberExplSpec;
35455
 
  friend class ::WinTypeKeywords;
 
41647
  friend class ::ExtGnu;
35456
41648
  friend class ::PragmaOnceUnitState;
35457
41649
  friend class ::PragmaOnce;
35458
 
  friend class ::CCExprResolve;
35459
 
  friend class ::CExprResolve;
 
41650
  friend class ::CMatchSyntax;
35460
41651
 
35461
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41652
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35462
41653
 
35463
41654
public:
 
41655
  /** Constructor. 
 
41656
   *  \param size The initial size of the list.
 
41657
   *  \param incr The initial increment count of the list. */
35464
41658
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
41659
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35465
41660
  static const char *NodeId ();
 
41661
  /** Get the name of the node. Can be compared with NodeId(). */
35466
41662
  const char *NodeName () const { return NodeId (); }
 
41663
  /** Set the linkage specifiers to each declaration in the list.
 
41664
   *  \param l The linkage specifiers node. */
35467
41665
  void Linkage (CT_LinkageSpec *l);
35468
41666
};
35469
41667
 
 
41668
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
41669
 *  Tree node representing a sequence of declaration specifiers. */
35470
41670
 
35471
 
#line 35472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41671
#line 41672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35472
41672
} // closed Puma
 
41673
class CCExprResolve;
 
41674
class CExprResolve;
35473
41675
class WinIfExists;
35474
41676
class WinImportHandler;
35475
41677
class WinMacros;
35476
 
class CMatchSyntax;
35477
 
class ExtGnu;
 
41678
class WinAsm;
 
41679
class WinDeclSpecs;
 
41680
class WinMemberExplSpec;
 
41681
class WinTypeKeywords;
 
41682
class WinFriend;
35478
41683
class ExtAC;
35479
41684
class ExtACBuilderCoupling;
35480
41685
class ExtACSyntaxCoupling;
35481
41686
class ExtACTree;
35482
41687
class ExtACKeywords;
35483
 
class WinAsm;
35484
 
class WinDeclSpecs;
35485
 
class WinMemberExplSpec;
35486
 
class WinTypeKeywords;
 
41688
class ExtGnu;
35487
41689
class PragmaOnceUnitState;
35488
41690
class PragmaOnce;
35489
 
class CCExprResolve;
35490
 
class CExprResolve;
 
41691
class CMatchSyntax;
35491
41692
namespace Puma {
35492
41693
 
35493
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41694
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35494
41695
class CT_DeclSpecSeq : public CT_List {
35495
 
#line 35496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41696
#line 41697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41697
  friend class ::CCExprResolve;
 
41698
  friend class ::CExprResolve;
35496
41699
  friend class ::WinIfExists;
35497
41700
  friend class ::WinImportHandler;
35498
41701
  friend class ::WinMacros;
35499
 
  friend class ::CMatchSyntax;
35500
 
  friend class ::ExtGnu;
 
41702
  friend class ::WinAsm;
 
41703
  friend class ::WinDeclSpecs;
 
41704
  friend class ::WinMemberExplSpec;
 
41705
  friend class ::WinTypeKeywords;
 
41706
  friend class ::WinFriend;
35501
41707
  friend class ::ExtAC;
35502
41708
  friend class ::ExtACBuilderCoupling;
35503
41709
  friend class ::ExtACSyntaxCoupling;
35504
41710
  friend class ::ExtACTree;
35505
41711
  friend class ::ExtACKeywords;
35506
 
  friend class ::WinAsm;
35507
 
  friend class ::WinDeclSpecs;
35508
 
  friend class ::WinMemberExplSpec;
35509
 
  friend class ::WinTypeKeywords;
 
41712
  friend class ::ExtGnu;
35510
41713
  friend class ::PragmaOnceUnitState;
35511
41714
  friend class ::PragmaOnce;
35512
 
  friend class ::CCExprResolve;
35513
 
  friend class ::CExprResolve;
 
41715
  friend class ::CMatchSyntax;
35514
41716
 
35515
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41717
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35516
41718
 
35517
41719
public:
 
41720
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35518
41721
  static const char *NodeId ();
 
41722
  /** Get the name of the node. Can be compared with NodeId(). */
35519
41723
  const char *NodeName () const { return NodeId (); }
35520
41724
};
35521
41725
 
 
41726
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
41727
 *  Tree node representing a compound statement. */
35522
41728
 
35523
 
#line 35524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41729
#line 41730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35524
41730
} // closed Puma
 
41731
class CCExprResolve;
 
41732
class CExprResolve;
35525
41733
class WinIfExists;
35526
41734
class WinImportHandler;
35527
41735
class WinMacros;
35528
 
class CMatchSyntax;
35529
 
class ExtGnu;
 
41736
class WinAsm;
 
41737
class WinDeclSpecs;
 
41738
class WinMemberExplSpec;
 
41739
class WinTypeKeywords;
 
41740
class WinFriend;
35530
41741
class ExtAC;
35531
41742
class ExtACBuilderCoupling;
35532
41743
class ExtACSyntaxCoupling;
35533
41744
class ExtACTree;
35534
41745
class ExtACKeywords;
35535
 
class WinAsm;
35536
 
class WinDeclSpecs;
35537
 
class WinMemberExplSpec;
35538
 
class WinTypeKeywords;
 
41746
class ExtGnu;
35539
41747
class PragmaOnceUnitState;
35540
41748
class PragmaOnce;
35541
 
class CCExprResolve;
35542
 
class CExprResolve;
 
41749
class CMatchSyntax;
35543
41750
namespace Puma {
35544
41751
 
35545
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41752
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35546
41753
class CT_CmpdStmt : public CT_List, public CSemScope {
35547
 
#line 35548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41754
#line 41755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41755
  friend class ::CCExprResolve;
 
41756
  friend class ::CExprResolve;
35548
41757
  friend class ::WinIfExists;
35549
41758
  friend class ::WinImportHandler;
35550
41759
  friend class ::WinMacros;
35551
 
  friend class ::CMatchSyntax;
35552
 
  friend class ::ExtGnu;
 
41760
  friend class ::WinAsm;
 
41761
  friend class ::WinDeclSpecs;
 
41762
  friend class ::WinMemberExplSpec;
 
41763
  friend class ::WinTypeKeywords;
 
41764
  friend class ::WinFriend;
35553
41765
  friend class ::ExtAC;
35554
41766
  friend class ::ExtACBuilderCoupling;
35555
41767
  friend class ::ExtACSyntaxCoupling;
35556
41768
  friend class ::ExtACTree;
35557
41769
  friend class ::ExtACKeywords;
35558
 
  friend class ::WinAsm;
35559
 
  friend class ::WinDeclSpecs;
35560
 
  friend class ::WinMemberExplSpec;
35561
 
  friend class ::WinTypeKeywords;
 
41770
  friend class ::ExtGnu;
35562
41771
  friend class ::PragmaOnceUnitState;
35563
41772
  friend class ::PragmaOnce;
35564
 
  friend class ::CCExprResolve;
35565
 
  friend class ::CExprResolve;
 
41773
  friend class ::CMatchSyntax;
35566
41774
 
35567
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41775
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35568
41776
 
35569
41777
public:
 
41778
  /* Constructor. */
35570
41779
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
41780
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35571
41781
  static const char *NodeId ();
 
41782
  /** Get the name of the node. Can be compared with NodeId(). */
35572
41783
  const char *NodeName () const { return NodeId (); }
 
41784
  /** Get the local scope of the compound statement. */
 
41785
  CSemScope *SemScope () const { return (CSemScope*)this; }
35573
41786
};
35574
41787
 
 
41788
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
41789
 *  Tree node representing an exception handler sequence. */
35575
41790
 
35576
 
#line 35577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41791
#line 41792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35577
41792
} // closed Puma
 
41793
class CCExprResolve;
 
41794
class CExprResolve;
35578
41795
class WinIfExists;
35579
41796
class WinImportHandler;
35580
41797
class WinMacros;
35581
 
class CMatchSyntax;
35582
 
class ExtGnu;
 
41798
class WinAsm;
 
41799
class WinDeclSpecs;
 
41800
class WinMemberExplSpec;
 
41801
class WinTypeKeywords;
 
41802
class WinFriend;
35583
41803
class ExtAC;
35584
41804
class ExtACBuilderCoupling;
35585
41805
class ExtACSyntaxCoupling;
35586
41806
class ExtACTree;
35587
41807
class ExtACKeywords;
35588
 
class WinAsm;
35589
 
class WinDeclSpecs;
35590
 
class WinMemberExplSpec;
35591
 
class WinTypeKeywords;
 
41808
class ExtGnu;
35592
41809
class PragmaOnceUnitState;
35593
41810
class PragmaOnce;
35594
 
class CCExprResolve;
35595
 
class CExprResolve;
 
41811
class CMatchSyntax;
35596
41812
namespace Puma {
35597
41813
 
35598
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41814
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35599
41815
class CT_HandlerSeq : public CT_List {
35600
 
#line 35601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41816
#line 41817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41817
  friend class ::CCExprResolve;
 
41818
  friend class ::CExprResolve;
35601
41819
  friend class ::WinIfExists;
35602
41820
  friend class ::WinImportHandler;
35603
41821
  friend class ::WinMacros;
35604
 
  friend class ::CMatchSyntax;
35605
 
  friend class ::ExtGnu;
 
41822
  friend class ::WinAsm;
 
41823
  friend class ::WinDeclSpecs;
 
41824
  friend class ::WinMemberExplSpec;
 
41825
  friend class ::WinTypeKeywords;
 
41826
  friend class ::WinFriend;
35606
41827
  friend class ::ExtAC;
35607
41828
  friend class ::ExtACBuilderCoupling;
35608
41829
  friend class ::ExtACSyntaxCoupling;
35609
41830
  friend class ::ExtACTree;
35610
41831
  friend class ::ExtACKeywords;
35611
 
  friend class ::WinAsm;
35612
 
  friend class ::WinDeclSpecs;
35613
 
  friend class ::WinMemberExplSpec;
35614
 
  friend class ::WinTypeKeywords;
 
41832
  friend class ::ExtGnu;
35615
41833
  friend class ::PragmaOnceUnitState;
35616
41834
  friend class ::PragmaOnce;
35617
 
  friend class ::CCExprResolve;
35618
 
  friend class ::CExprResolve;
 
41835
  friend class ::CMatchSyntax;
35619
41836
 
35620
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41837
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35621
41838
 
35622
41839
public:
 
41840
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35623
41841
  static const char *NodeId ();
 
41842
  /** Get the name of the node. Can be compared with NodeId(). */
35624
41843
  const char *NodeName () const { return NodeId (); }
35625
41844
};
35626
41845
 
 
41846
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
41847
 *  Tree node representing a template parameter list. */
35627
41848
 
35628
 
#line 35629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41849
#line 41850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35629
41850
} // closed Puma
 
41851
class CCExprResolve;
 
41852
class CExprResolve;
35630
41853
class WinIfExists;
35631
41854
class WinImportHandler;
35632
41855
class WinMacros;
35633
 
class CMatchSyntax;
35634
 
class ExtGnu;
 
41856
class WinAsm;
 
41857
class WinDeclSpecs;
 
41858
class WinMemberExplSpec;
 
41859
class WinTypeKeywords;
 
41860
class WinFriend;
35635
41861
class ExtAC;
35636
41862
class ExtACBuilderCoupling;
35637
41863
class ExtACSyntaxCoupling;
35638
41864
class ExtACTree;
35639
41865
class ExtACKeywords;
35640
 
class WinAsm;
35641
 
class WinDeclSpecs;
35642
 
class WinMemberExplSpec;
35643
 
class WinTypeKeywords;
 
41866
class ExtGnu;
35644
41867
class PragmaOnceUnitState;
35645
41868
class PragmaOnce;
35646
 
class CCExprResolve;
35647
 
class CExprResolve;
 
41869
class CMatchSyntax;
35648
41870
namespace Puma {
35649
41871
 
35650
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41872
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35651
41873
class CT_TemplateParamList : public CT_List, public CSemScope {
35652
 
#line 35653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41874
#line 41875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41875
  friend class ::CCExprResolve;
 
41876
  friend class ::CExprResolve;
35653
41877
  friend class ::WinIfExists;
35654
41878
  friend class ::WinImportHandler;
35655
41879
  friend class ::WinMacros;
35656
 
  friend class ::CMatchSyntax;
35657
 
  friend class ::ExtGnu;
 
41880
  friend class ::WinAsm;
 
41881
  friend class ::WinDeclSpecs;
 
41882
  friend class ::WinMemberExplSpec;
 
41883
  friend class ::WinTypeKeywords;
 
41884
  friend class ::WinFriend;
35658
41885
  friend class ::ExtAC;
35659
41886
  friend class ::ExtACBuilderCoupling;
35660
41887
  friend class ::ExtACSyntaxCoupling;
35661
41888
  friend class ::ExtACTree;
35662
41889
  friend class ::ExtACKeywords;
35663
 
  friend class ::WinAsm;
35664
 
  friend class ::WinDeclSpecs;
35665
 
  friend class ::WinMemberExplSpec;
35666
 
  friend class ::WinTypeKeywords;
 
41890
  friend class ::ExtGnu;
35667
41891
  friend class ::PragmaOnceUnitState;
35668
41892
  friend class ::PragmaOnce;
35669
 
  friend class ::CCExprResolve;
35670
 
  friend class ::CExprResolve;
 
41893
  friend class ::CMatchSyntax;
35671
41894
 
35672
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41895
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35673
41896
 
35674
41897
public:
35675
41898
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
41899
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35676
41900
  static const char *NodeId ();
 
41901
  /** Get the name of the node. Can be compared with NodeId(). */
35677
41902
  const char *NodeName () const { return NodeId (); }
 
41903
  /** Get the scope of the template parameter list. */
 
41904
  CSemScope *SemScope () const { return (CSemScope*)this; }
35678
41905
};
35679
41906
 
 
41907
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
41908
 *  Tree node representing a template argument list. */
35680
41909
 
35681
 
#line 35682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41910
#line 41911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35682
41911
} // closed Puma
 
41912
class CCExprResolve;
 
41913
class CExprResolve;
35683
41914
class WinIfExists;
35684
41915
class WinImportHandler;
35685
41916
class WinMacros;
35686
 
class CMatchSyntax;
35687
 
class ExtGnu;
 
41917
class WinAsm;
 
41918
class WinDeclSpecs;
 
41919
class WinMemberExplSpec;
 
41920
class WinTypeKeywords;
 
41921
class WinFriend;
35688
41922
class ExtAC;
35689
41923
class ExtACBuilderCoupling;
35690
41924
class ExtACSyntaxCoupling;
35691
41925
class ExtACTree;
35692
41926
class ExtACKeywords;
35693
 
class WinAsm;
35694
 
class WinDeclSpecs;
35695
 
class WinMemberExplSpec;
35696
 
class WinTypeKeywords;
 
41927
class ExtGnu;
35697
41928
class PragmaOnceUnitState;
35698
41929
class PragmaOnce;
35699
 
class CCExprResolve;
35700
 
class CExprResolve;
 
41930
class CMatchSyntax;
35701
41931
namespace Puma {
35702
41932
 
35703
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41933
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35704
41934
class CT_TemplateArgList : public CT_List {
35705
 
#line 35706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41935
#line 41936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
41936
  friend class ::CCExprResolve;
 
41937
  friend class ::CExprResolve;
35706
41938
  friend class ::WinIfExists;
35707
41939
  friend class ::WinImportHandler;
35708
41940
  friend class ::WinMacros;
35709
 
  friend class ::CMatchSyntax;
35710
 
  friend class ::ExtGnu;
 
41941
  friend class ::WinAsm;
 
41942
  friend class ::WinDeclSpecs;
 
41943
  friend class ::WinMemberExplSpec;
 
41944
  friend class ::WinTypeKeywords;
 
41945
  friend class ::WinFriend;
35711
41946
  friend class ::ExtAC;
35712
41947
  friend class ::ExtACBuilderCoupling;
35713
41948
  friend class ::ExtACSyntaxCoupling;
35714
41949
  friend class ::ExtACTree;
35715
41950
  friend class ::ExtACKeywords;
35716
 
  friend class ::WinAsm;
35717
 
  friend class ::WinDeclSpecs;
35718
 
  friend class ::WinMemberExplSpec;
35719
 
  friend class ::WinTypeKeywords;
 
41951
  friend class ::ExtGnu;
35720
41952
  friend class ::PragmaOnceUnitState;
35721
41953
  friend class ::PragmaOnce;
35722
 
  friend class ::CCExprResolve;
35723
 
  friend class ::CExprResolve;
 
41954
  friend class ::CMatchSyntax;
35724
41955
 
35725
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41956
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35726
41957
 
35727
41958
public:
 
41959
  /** Constructor. */
35728
41960
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
41961
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35729
41962
  static const char *NodeId ();
 
41963
  /** Get the name of the node. Can be compared with NodeId(). */
35730
41964
  const char *NodeName () const { return NodeId (); }
35731
41965
};
35732
41966
 
35736
41970
/*                                                                           */
35737
41971
/*****************************************************************************/
35738
41972
 
 
41973
/** \class CT_Expression CTree.h Puma/CTree.h
 
41974
 *  Base class for all expression tree nodes. */
35739
41975
 
35740
 
#line 35741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
41976
#line 41977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35741
41977
} // closed Puma
 
41978
class CCExprResolve;
 
41979
class CExprResolve;
35742
41980
class WinIfExists;
35743
41981
class WinImportHandler;
35744
41982
class WinMacros;
35745
 
class CMatchSyntax;
35746
 
class ExtGnu;
 
41983
class WinAsm;
 
41984
class WinDeclSpecs;
 
41985
class WinMemberExplSpec;
 
41986
class WinTypeKeywords;
 
41987
class WinFriend;
35747
41988
class ExtAC;
35748
41989
class ExtACBuilderCoupling;
35749
41990
class ExtACSyntaxCoupling;
35750
41991
class ExtACTree;
35751
41992
class ExtACKeywords;
35752
 
class WinAsm;
35753
 
class WinDeclSpecs;
35754
 
class WinMemberExplSpec;
35755
 
class WinTypeKeywords;
 
41993
class ExtGnu;
35756
41994
class PragmaOnceUnitState;
35757
41995
class PragmaOnce;
35758
 
class CCExprResolve;
35759
 
class CExprResolve;
35760
 
namespace Puma {
35761
 
 
35762
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
41996
class CMatchSyntax;
 
41997
namespace Puma {
 
41998
 
 
41999
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42000
 
 
42001
#line 42002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42002
} // closed Puma
 
42003
 
 
42004
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42005
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42006
#include "CCExprResolveH.ah"
 
42007
#endif
 
42008
namespace Puma {
 
42009
 
 
42010
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42011
 
 
42012
#line 42013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42013
} // closed Puma
 
42014
 
 
42015
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42016
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42017
#include "CExprResolveH.ah"
 
42018
#endif
 
42019
namespace Puma {
 
42020
 
 
42021
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35763
42022
class CT_Expression : public CTree, public CSemValue {
35764
 
#line 35765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42023
#line 42024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42024
  friend class ::CCExprResolve;
 
42025
  friend class ::CExprResolve;
35765
42026
  friend class ::WinIfExists;
35766
42027
  friend class ::WinImportHandler;
35767
42028
  friend class ::WinMacros;
35768
 
  friend class ::CMatchSyntax;
35769
 
  friend class ::ExtGnu;
 
42029
  friend class ::WinAsm;
 
42030
  friend class ::WinDeclSpecs;
 
42031
  friend class ::WinMemberExplSpec;
 
42032
  friend class ::WinTypeKeywords;
 
42033
  friend class ::WinFriend;
35770
42034
  friend class ::ExtAC;
35771
42035
  friend class ::ExtACBuilderCoupling;
35772
42036
  friend class ::ExtACSyntaxCoupling;
35773
42037
  friend class ::ExtACTree;
35774
42038
  friend class ::ExtACKeywords;
35775
 
  friend class ::WinAsm;
35776
 
  friend class ::WinDeclSpecs;
35777
 
  friend class ::WinMemberExplSpec;
35778
 
  friend class ::WinTypeKeywords;
 
42039
  friend class ::ExtGnu;
35779
42040
  friend class ::PragmaOnceUnitState;
35780
42041
  friend class ::PragmaOnce;
35781
 
  friend class ::CCExprResolve;
35782
 
  friend class ::CExprResolve;
 
42042
  friend class ::CMatchSyntax;
35783
42043
 
35784
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42044
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35785
42045
 
35786
42046
protected:
 
42047
  /** Constructor. */
35787
42048
  CT_Expression () {}
35788
42049
 
35789
42050
public:
 
42051
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35790
42052
  static const char *NodeId ();
 
42053
  /** Get the name of the node. Can be compared with NodeId(). */
35791
42054
  const char *NodeName () const { return NodeId (); }
 
42055
  /** Get the type of the expression.
 
42056
   *  \return The type information object or NULL. */
35792
42057
  CTypeInfo *Type () const { return type; }
 
42058
  /** Get the value of the expression.
 
42059
   *  \return The value object or NULL. */
35793
42060
  CExprValue *Value () const { return value; }
 
42061
  /** Get the semantic value information of the expression.
 
42062
   *  \return The value object or NULL. */
35794
42063
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
42064
  /** Get this. */
 
42065
  virtual CT_Expression *IsExpression () { return this; }
35795
42066
   private:
35796
42067
  typedef CT_Expression CCExprResolveExpr;
35797
42068
 
35798
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42069
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
35799
42070
 public :
35800
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42071
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
35801
42072
  typedef CT_Expression CExprResolveExpr;
35802
42073
 
35803
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
35804
 
 public :
35805
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
35806
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
35807
 
};
35808
 
 
35809
 
 
35810
 
#line 35811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
35811
 
} // closed Puma
35812
 
class WinIfExists;
35813
 
class WinImportHandler;
35814
 
class WinMacros;
35815
 
class CMatchSyntax;
35816
 
class ExtGnu;
35817
 
class ExtAC;
35818
 
class ExtACBuilderCoupling;
35819
 
class ExtACSyntaxCoupling;
35820
 
class ExtACTree;
35821
 
class ExtACKeywords;
35822
 
class WinAsm;
35823
 
class WinDeclSpecs;
35824
 
class WinMemberExplSpec;
35825
 
class WinTypeKeywords;
35826
 
class PragmaOnceUnitState;
35827
 
class PragmaOnce;
35828
 
class CCExprResolve;
35829
 
class CExprResolve;
35830
 
namespace Puma {
35831
 
 
35832
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42074
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42075
 public :
 
42076
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42077
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42078
};
 
42079
 
 
42080
/** \class CT_Call CTree.h Puma/CTree.h
 
42081
 *  Tree node representing explicit or implicit function calls 
 
42082
 *  including built-in or user-defined functions and overloaded
 
42083
 *  operators. */
 
42084
 
 
42085
#line 42086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42086
} // closed Puma
 
42087
class CCExprResolve;
 
42088
class CExprResolve;
 
42089
class WinIfExists;
 
42090
class WinImportHandler;
 
42091
class WinMacros;
 
42092
class WinAsm;
 
42093
class WinDeclSpecs;
 
42094
class WinMemberExplSpec;
 
42095
class WinTypeKeywords;
 
42096
class WinFriend;
 
42097
class ExtAC;
 
42098
class ExtACBuilderCoupling;
 
42099
class ExtACSyntaxCoupling;
 
42100
class ExtACTree;
 
42101
class ExtACKeywords;
 
42102
class ExtGnu;
 
42103
class PragmaOnceUnitState;
 
42104
class PragmaOnce;
 
42105
class CMatchSyntax;
 
42106
namespace Puma {
 
42107
 
 
42108
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42109
 
 
42110
#line 42111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42111
} // closed Puma
 
42112
 
 
42113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42115
#include "CCExprResolveH.ah"
 
42116
#endif
 
42117
namespace Puma {
 
42118
 
 
42119
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42120
 
 
42121
#line 42122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42122
} // closed Puma
 
42123
 
 
42124
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42125
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42126
#include "CExprResolveH.ah"
 
42127
#endif
 
42128
namespace Puma {
 
42129
 
 
42130
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42131
class CT_Call : public CT_Expression, public CSemObject {
 
42132
#line 42133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42133
  friend class ::CCExprResolve;
 
42134
  friend class ::CExprResolve;
 
42135
  friend class ::WinIfExists;
 
42136
  friend class ::WinImportHandler;
 
42137
  friend class ::WinMacros;
 
42138
  friend class ::WinAsm;
 
42139
  friend class ::WinDeclSpecs;
 
42140
  friend class ::WinMemberExplSpec;
 
42141
  friend class ::WinTypeKeywords;
 
42142
  friend class ::WinFriend;
 
42143
  friend class ::ExtAC;
 
42144
  friend class ::ExtACBuilderCoupling;
 
42145
  friend class ::ExtACSyntaxCoupling;
 
42146
  friend class ::ExtACTree;
 
42147
  friend class ::ExtACKeywords;
 
42148
  friend class ::ExtGnu;
 
42149
  friend class ::PragmaOnceUnitState;
 
42150
  friend class ::PragmaOnce;
 
42151
  friend class ::CMatchSyntax;
 
42152
 
 
42153
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42154
 
 
42155
protected:
 
42156
  /** Constructor. */
 
42157
  CT_Call () {}
 
42158
  
 
42159
public:
 
42160
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42161
  static const char *NodeId ();
 
42162
  /** Get the name of the node. Can be compared with NodeId(). */
 
42163
  const char *NodeName () const { return NodeId (); }
 
42164
  /** Get the semantic information of the call.
 
42165
   *  \return The semantic information or NULL. */
 
42166
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
42167
  /** Get this. */
 
42168
  CT_Call *IsCall () { return this; }
 
42169
   private:
 
42170
  typedef CT_Call CCExprResolveExpr;
 
42171
 
 
42172
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42173
 public :
 
42174
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
42175
  typedef CT_Call CExprResolveExpr;
 
42176
 
 
42177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42178
 public :
 
42179
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42180
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42181
};
 
42182
 
 
42183
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
42184
 *  Tree node representing implicit function calls detected by
 
42185
 *  the semantic analysis. */
 
42186
 
 
42187
#line 42188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42188
} // closed Puma
 
42189
class CCExprResolve;
 
42190
class CExprResolve;
 
42191
class WinIfExists;
 
42192
class WinImportHandler;
 
42193
class WinMacros;
 
42194
class WinAsm;
 
42195
class WinDeclSpecs;
 
42196
class WinMemberExplSpec;
 
42197
class WinTypeKeywords;
 
42198
class WinFriend;
 
42199
class ExtAC;
 
42200
class ExtACBuilderCoupling;
 
42201
class ExtACSyntaxCoupling;
 
42202
class ExtACTree;
 
42203
class ExtACKeywords;
 
42204
class ExtGnu;
 
42205
class PragmaOnceUnitState;
 
42206
class PragmaOnce;
 
42207
class CMatchSyntax;
 
42208
namespace Puma {
 
42209
 
 
42210
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42211
 
 
42212
#line 42213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42213
} // closed Puma
 
42214
 
 
42215
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42216
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42217
#include "CCExprResolveH.ah"
 
42218
#endif
 
42219
namespace Puma {
 
42220
 
 
42221
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42222
 
 
42223
#line 42224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42224
} // closed Puma
 
42225
 
 
42226
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42227
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42228
#include "CExprResolveH.ah"
 
42229
#endif
 
42230
namespace Puma {
 
42231
 
 
42232
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42233
class CT_ImplicitCall : public CT_Call {
 
42234
#line 42235 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42235
  friend class ::CCExprResolve;
 
42236
  friend class ::CExprResolve;
 
42237
  friend class ::WinIfExists;
 
42238
  friend class ::WinImportHandler;
 
42239
  friend class ::WinMacros;
 
42240
  friend class ::WinAsm;
 
42241
  friend class ::WinDeclSpecs;
 
42242
  friend class ::WinMemberExplSpec;
 
42243
  friend class ::WinTypeKeywords;
 
42244
  friend class ::WinFriend;
 
42245
  friend class ::ExtAC;
 
42246
  friend class ::ExtACBuilderCoupling;
 
42247
  friend class ::ExtACSyntaxCoupling;
 
42248
  friend class ::ExtACTree;
 
42249
  friend class ::ExtACKeywords;
 
42250
  friend class ::ExtGnu;
 
42251
  friend class ::PragmaOnceUnitState;
 
42252
  friend class ::PragmaOnce;
 
42253
  friend class ::CMatchSyntax;
 
42254
 
 
42255
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42256
 
 
42257
  CTree *_arg;
 
42258
 
 
42259
public:
 
42260
  /** Constructor.
 
42261
   *  \param arg The call argument. */
 
42262
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
42263
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
42264
  static const char *NodeId ();
 
42265
  /** Get the name of the node. Can be compared with NodeId(). */
 
42266
  const char *NodeName () const { return NodeId (); }
 
42267
  /** Get the number of sons. */
 
42268
  int Sons () const { return 1; }
 
42269
  /** Get the n-th son.
 
42270
   *  \param n The index of the son.
 
42271
   *  \return The n-th son or NULL. */
 
42272
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
42273
  /** Replace a son.
 
42274
   *  \param old_son The son to replace.
 
42275
   *  \param new_son The new son. */
 
42276
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
42277
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
42278
   private:
 
42279
  typedef CT_ImplicitCall CCExprResolveExpr;
 
42280
 
 
42281
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42282
 public :
 
42283
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
42284
  typedef CT_ImplicitCall CExprResolveExpr;
 
42285
 
 
42286
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42287
 public :
 
42288
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42289
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42290
};
 
42291
 
 
42292
/** \class CT_String CTree.h Puma/CTree.h
 
42293
 *  Tree node representing a string literal. */
 
42294
 
 
42295
#line 42296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42296
} // closed Puma
 
42297
class CCExprResolve;
 
42298
class CExprResolve;
 
42299
class WinIfExists;
 
42300
class WinImportHandler;
 
42301
class WinMacros;
 
42302
class WinAsm;
 
42303
class WinDeclSpecs;
 
42304
class WinMemberExplSpec;
 
42305
class WinTypeKeywords;
 
42306
class WinFriend;
 
42307
class ExtAC;
 
42308
class ExtACBuilderCoupling;
 
42309
class ExtACSyntaxCoupling;
 
42310
class ExtACTree;
 
42311
class ExtACKeywords;
 
42312
class ExtGnu;
 
42313
class PragmaOnceUnitState;
 
42314
class PragmaOnce;
 
42315
class CMatchSyntax;
 
42316
namespace Puma {
 
42317
 
 
42318
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42319
 
 
42320
#line 42321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42321
} // closed Puma
 
42322
 
 
42323
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42324
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42325
#include "CCExprResolveH.ah"
 
42326
#endif
 
42327
namespace Puma {
 
42328
 
 
42329
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42330
 
 
42331
#line 42332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42332
} // closed Puma
 
42333
 
 
42334
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42335
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42336
#include "CExprResolveH.ah"
 
42337
#endif
 
42338
namespace Puma {
 
42339
 
 
42340
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35833
42341
class CT_String : public CT_List, public CSemValue {
35834
 
#line 35835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42342
#line 42343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42343
  friend class ::CCExprResolve;
 
42344
  friend class ::CExprResolve;
35835
42345
  friend class ::WinIfExists;
35836
42346
  friend class ::WinImportHandler;
35837
42347
  friend class ::WinMacros;
35838
 
  friend class ::CMatchSyntax;
35839
 
  friend class ::ExtGnu;
 
42348
  friend class ::WinAsm;
 
42349
  friend class ::WinDeclSpecs;
 
42350
  friend class ::WinMemberExplSpec;
 
42351
  friend class ::WinTypeKeywords;
 
42352
  friend class ::WinFriend;
35840
42353
  friend class ::ExtAC;
35841
42354
  friend class ::ExtACBuilderCoupling;
35842
42355
  friend class ::ExtACSyntaxCoupling;
35843
42356
  friend class ::ExtACTree;
35844
42357
  friend class ::ExtACKeywords;
35845
 
  friend class ::WinAsm;
35846
 
  friend class ::WinDeclSpecs;
35847
 
  friend class ::WinMemberExplSpec;
35848
 
  friend class ::WinTypeKeywords;
 
42358
  friend class ::ExtGnu;
35849
42359
  friend class ::PragmaOnceUnitState;
35850
42360
  friend class ::PragmaOnce;
35851
 
  friend class ::CCExprResolve;
35852
 
  friend class ::CExprResolve;
 
42361
  friend class ::CMatchSyntax;
35853
42362
 
35854
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42363
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35855
42364
 
35856
42365
public:
 
42366
  /** Constructor. 
 
42367
   *  \param size The number of sub-strings. */
35857
42368
  CT_String (int size) : CT_List (size, 1) {}
 
42369
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35858
42370
  static const char *NodeId ();
 
42371
  /** Get the name of the node. Can be compared with NodeId(). */
35859
42372
  const char *NodeName () const { return NodeId (); }
35860
42373
 
 
42374
  /** Get the type of the string. 
 
42375
   *  \return The type or NULL. */
35861
42376
  CTypeInfo *Type () const { return type; }
 
42377
  /** Get the string value.
 
42378
   *  \return The value or NULL. */
35862
42379
  CExprValue *Value () const { return value; }
 
42380
  /** Get the semantic value info object.
 
42381
   *  \return The semantic value object or NULL. */
35863
42382
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
42383
  /** Get this. */
 
42384
  virtual CT_String *IsString () { return this; }
35864
42385
   private:
35865
42386
  typedef CT_String CCExprResolveExpr;
35866
42387
 
35867
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42388
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
35868
42389
 public :
35869
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42390
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
35870
42391
  typedef CT_String CExprResolveExpr;
35871
42392
 
35872
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42393
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
35873
42394
 public :
35874
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
35875
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42395
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42396
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35876
42397
};
35877
42398
 
 
42399
/** \class CT_WideString CTree.h Puma/CTree.h
 
42400
 *  Tree node representing a wide string literal. */
35878
42401
 
35879
 
#line 35880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42402
#line 42403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35880
42403
} // closed Puma
 
42404
class CCExprResolve;
 
42405
class CExprResolve;
35881
42406
class WinIfExists;
35882
42407
class WinImportHandler;
35883
42408
class WinMacros;
35884
 
class CMatchSyntax;
35885
 
class ExtGnu;
 
42409
class WinAsm;
 
42410
class WinDeclSpecs;
 
42411
class WinMemberExplSpec;
 
42412
class WinTypeKeywords;
 
42413
class WinFriend;
35886
42414
class ExtAC;
35887
42415
class ExtACBuilderCoupling;
35888
42416
class ExtACSyntaxCoupling;
35889
42417
class ExtACTree;
35890
42418
class ExtACKeywords;
35891
 
class WinAsm;
35892
 
class WinDeclSpecs;
35893
 
class WinMemberExplSpec;
35894
 
class WinTypeKeywords;
 
42419
class ExtGnu;
35895
42420
class PragmaOnceUnitState;
35896
42421
class PragmaOnce;
35897
 
class CCExprResolve;
35898
 
class CExprResolve;
35899
 
namespace Puma {
35900
 
 
35901
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42422
class CMatchSyntax;
 
42423
namespace Puma {
 
42424
 
 
42425
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42426
 
 
42427
#line 42428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42428
} // closed Puma
 
42429
 
 
42430
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42431
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42432
#include "CCExprResolveH.ah"
 
42433
#endif
 
42434
namespace Puma {
 
42435
 
 
42436
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42437
 
 
42438
#line 42439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42439
} // closed Puma
 
42440
 
 
42441
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42442
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42443
#include "CExprResolveH.ah"
 
42444
#endif
 
42445
namespace Puma {
 
42446
 
 
42447
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35902
42448
class CT_WideString : public CT_String {
35903
 
#line 35904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42449
#line 42450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42450
  friend class ::CCExprResolve;
 
42451
  friend class ::CExprResolve;
35904
42452
  friend class ::WinIfExists;
35905
42453
  friend class ::WinImportHandler;
35906
42454
  friend class ::WinMacros;
35907
 
  friend class ::CMatchSyntax;
35908
 
  friend class ::ExtGnu;
 
42455
  friend class ::WinAsm;
 
42456
  friend class ::WinDeclSpecs;
 
42457
  friend class ::WinMemberExplSpec;
 
42458
  friend class ::WinTypeKeywords;
 
42459
  friend class ::WinFriend;
35909
42460
  friend class ::ExtAC;
35910
42461
  friend class ::ExtACBuilderCoupling;
35911
42462
  friend class ::ExtACSyntaxCoupling;
35912
42463
  friend class ::ExtACTree;
35913
42464
  friend class ::ExtACKeywords;
35914
 
  friend class ::WinAsm;
35915
 
  friend class ::WinDeclSpecs;
35916
 
  friend class ::WinMemberExplSpec;
35917
 
  friend class ::WinTypeKeywords;
 
42465
  friend class ::ExtGnu;
35918
42466
  friend class ::PragmaOnceUnitState;
35919
42467
  friend class ::PragmaOnce;
35920
 
  friend class ::CCExprResolve;
35921
 
  friend class ::CExprResolve;
 
42468
  friend class ::CMatchSyntax;
35922
42469
 
35923
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42470
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35924
42471
 
35925
42472
public:
 
42473
  /** Constructor.
 
42474
   *  \param size The number of sub-strings. */
35926
42475
  CT_WideString (int size) : CT_String (size) {}
 
42476
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35927
42477
  static const char *NodeId ();
 
42478
  /** Get the name of the node. Can be compared with NodeId(). */
35928
42479
  const char *NodeName () const { return NodeId (); }
35929
42480
   private:
35930
42481
  typedef CT_WideString CCExprResolveExpr;
35931
42482
 
35932
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42483
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
35933
42484
 public :
35934
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42485
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
35935
42486
  typedef CT_WideString CExprResolveExpr;
35936
42487
 
35937
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42488
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
35938
42489
 public :
35939
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
35940
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42490
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42491
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35941
42492
};
35942
42493
 
 
42494
/** \class CT_Integer CTree.h Puma/CTree.h
 
42495
 *  Tree node representing an integer constant. */
35943
42496
 
35944
 
#line 35945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42497
#line 42498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
35945
42498
} // closed Puma
 
42499
class CCExprResolve;
 
42500
class CExprResolve;
35946
42501
class WinIfExists;
35947
42502
class WinImportHandler;
35948
42503
class WinMacros;
35949
 
class CMatchSyntax;
35950
 
class ExtGnu;
 
42504
class WinAsm;
 
42505
class WinDeclSpecs;
 
42506
class WinMemberExplSpec;
 
42507
class WinTypeKeywords;
 
42508
class WinFriend;
35951
42509
class ExtAC;
35952
42510
class ExtACBuilderCoupling;
35953
42511
class ExtACSyntaxCoupling;
35954
42512
class ExtACTree;
35955
42513
class ExtACKeywords;
35956
 
class WinAsm;
35957
 
class WinDeclSpecs;
35958
 
class WinMemberExplSpec;
35959
 
class WinTypeKeywords;
 
42514
class ExtGnu;
35960
42515
class PragmaOnceUnitState;
35961
42516
class PragmaOnce;
35962
 
class CCExprResolve;
35963
 
class CExprResolve;
35964
 
namespace Puma {
35965
 
 
35966
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42517
class CMatchSyntax;
 
42518
namespace Puma {
 
42519
 
 
42520
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42521
 
 
42522
#line 42523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42523
} // closed Puma
 
42524
 
 
42525
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42526
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42527
#include "CCExprResolveH.ah"
 
42528
#endif
 
42529
namespace Puma {
 
42530
 
 
42531
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42532
 
 
42533
#line 42534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42534
} // closed Puma
 
42535
 
 
42536
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42537
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42538
#include "CExprResolveH.ah"
 
42539
#endif
 
42540
namespace Puma {
 
42541
 
 
42542
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35967
42543
class CT_Integer : public CT_Expression {
35968
 
#line 35969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42544
#line 42545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42545
  friend class ::CCExprResolve;
 
42546
  friend class ::CExprResolve;
35969
42547
  friend class ::WinIfExists;
35970
42548
  friend class ::WinImportHandler;
35971
42549
  friend class ::WinMacros;
35972
 
  friend class ::CMatchSyntax;
35973
 
  friend class ::ExtGnu;
 
42550
  friend class ::WinAsm;
 
42551
  friend class ::WinDeclSpecs;
 
42552
  friend class ::WinMemberExplSpec;
 
42553
  friend class ::WinTypeKeywords;
 
42554
  friend class ::WinFriend;
35974
42555
  friend class ::ExtAC;
35975
42556
  friend class ::ExtACBuilderCoupling;
35976
42557
  friend class ::ExtACSyntaxCoupling;
35977
42558
  friend class ::ExtACTree;
35978
42559
  friend class ::ExtACKeywords;
35979
 
  friend class ::WinAsm;
35980
 
  friend class ::WinDeclSpecs;
35981
 
  friend class ::WinMemberExplSpec;
35982
 
  friend class ::WinTypeKeywords;
 
42560
  friend class ::ExtGnu;
35983
42561
  friend class ::PragmaOnceUnitState;
35984
42562
  friend class ::PragmaOnce;
35985
 
  friend class ::CCExprResolve;
35986
 
  friend class ::CExprResolve;
 
42563
  friend class ::CMatchSyntax;
35987
42564
 
35988
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42565
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
35989
42566
 
35990
42567
  CTree *_value;  // CT_Token
35991
42568
 
35992
42569
public:
35993
 
  CT_Integer (CTree *t) : _value (t) {}
 
42570
  /** Constructor.
 
42571
   *  \param token The token containing the integer value. */
 
42572
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
42573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
35994
42574
  static const char *NodeId ();
 
42575
  /** Get the name of the node. Can be compared with NodeId(). */
35995
42576
  const char *NodeName () const { return NodeId (); }
 
42577
  /** Get the number of sons. */
35996
42578
  int Sons () const { return _value ? 1 : 0; }
 
42579
  /** Get the n-th son.
 
42580
   *  \param n The index of the son.
 
42581
   *  \return The n-th son or NULL. */
35997
42582
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
42583
  /** Replace a son.
 
42584
   *  \param old_son The son to replace.
 
42585
   *  \param new_son The new son. */
35998
42586
  void ReplaceSon (CTree *old_son, CTree *new_son) 
35999
 
   { if (old_son == _value) _value = new_son; }
 
42587
   { CTree::ReplaceSon (_value, old_son, new_son); }
36000
42588
   private:
36001
42589
  typedef CT_Integer CCExprResolveExpr;
36002
42590
 
36003
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42591
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36004
42592
 public :
36005
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42593
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36006
42594
  typedef CT_Integer CExprResolveExpr;
36007
42595
 
36008
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36009
42597
 public :
36010
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36011
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42598
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42599
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36012
42600
};
36013
42601
 
 
42602
/** \class CT_Character CTree.h Puma/CTree.h
 
42603
 *  Tree node representing a single character constant. */
36014
42604
 
36015
 
#line 36016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42605
#line 42606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36016
42606
} // closed Puma
 
42607
class CCExprResolve;
 
42608
class CExprResolve;
36017
42609
class WinIfExists;
36018
42610
class WinImportHandler;
36019
42611
class WinMacros;
36020
 
class CMatchSyntax;
36021
 
class ExtGnu;
 
42612
class WinAsm;
 
42613
class WinDeclSpecs;
 
42614
class WinMemberExplSpec;
 
42615
class WinTypeKeywords;
 
42616
class WinFriend;
36022
42617
class ExtAC;
36023
42618
class ExtACBuilderCoupling;
36024
42619
class ExtACSyntaxCoupling;
36025
42620
class ExtACTree;
36026
42621
class ExtACKeywords;
36027
 
class WinAsm;
36028
 
class WinDeclSpecs;
36029
 
class WinMemberExplSpec;
36030
 
class WinTypeKeywords;
 
42622
class ExtGnu;
36031
42623
class PragmaOnceUnitState;
36032
42624
class PragmaOnce;
36033
 
class CCExprResolve;
36034
 
class CExprResolve;
36035
 
namespace Puma {
36036
 
 
36037
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42625
class CMatchSyntax;
 
42626
namespace Puma {
 
42627
 
 
42628
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42629
 
 
42630
#line 42631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42631
} // closed Puma
 
42632
 
 
42633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42635
#include "CCExprResolveH.ah"
 
42636
#endif
 
42637
namespace Puma {
 
42638
 
 
42639
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42640
 
 
42641
#line 42642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42642
} // closed Puma
 
42643
 
 
42644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42646
#include "CExprResolveH.ah"
 
42647
#endif
 
42648
namespace Puma {
 
42649
 
 
42650
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36038
42651
class CT_Character : public CT_Expression {
36039
 
#line 36040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42652
#line 42653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42653
  friend class ::CCExprResolve;
 
42654
  friend class ::CExprResolve;
36040
42655
  friend class ::WinIfExists;
36041
42656
  friend class ::WinImportHandler;
36042
42657
  friend class ::WinMacros;
36043
 
  friend class ::CMatchSyntax;
36044
 
  friend class ::ExtGnu;
 
42658
  friend class ::WinAsm;
 
42659
  friend class ::WinDeclSpecs;
 
42660
  friend class ::WinMemberExplSpec;
 
42661
  friend class ::WinTypeKeywords;
 
42662
  friend class ::WinFriend;
36045
42663
  friend class ::ExtAC;
36046
42664
  friend class ::ExtACBuilderCoupling;
36047
42665
  friend class ::ExtACSyntaxCoupling;
36048
42666
  friend class ::ExtACTree;
36049
42667
  friend class ::ExtACKeywords;
36050
 
  friend class ::WinAsm;
36051
 
  friend class ::WinDeclSpecs;
36052
 
  friend class ::WinMemberExplSpec;
36053
 
  friend class ::WinTypeKeywords;
 
42668
  friend class ::ExtGnu;
36054
42669
  friend class ::PragmaOnceUnitState;
36055
42670
  friend class ::PragmaOnce;
36056
 
  friend class ::CCExprResolve;
36057
 
  friend class ::CExprResolve;
 
42671
  friend class ::CMatchSyntax;
36058
42672
 
36059
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42673
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36060
42674
 
36061
42675
  CTree *_value;  // CT_Token
36062
42676
 
36063
42677
public:
36064
 
  CT_Character (CTree *t) : _value (t) {}
 
42678
  /** Constructor.
 
42679
   *  \param token The token containing the character value. */
 
42680
  CT_Character (CTree *token) { AddSon (_value, token); }
 
42681
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36065
42682
  static const char *NodeId ();
 
42683
  /** Get the name of the node. Can be compared with NodeId(). */
36066
42684
  const char *NodeName () const { return NodeId (); }
 
42685
  /** Get the number of sons. */
36067
42686
  int Sons () const { return 1; }
 
42687
  /** Get the n-th son.
 
42688
   *  \param n The index of the son.
 
42689
   *  \return The n-th son or NULL. */
36068
42690
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
42691
  /** Replace a son.
 
42692
   *  \param old_son The son to replace.
 
42693
   *  \param new_son The new son. */
36069
42694
  void ReplaceSon (CTree *old_son, CTree *new_son) 
36070
 
   { if (old_son == _value) _value = new_son; }
 
42695
   { CTree::ReplaceSon (_value, old_son, new_son); }
36071
42696
   private:
36072
42697
  typedef CT_Character CCExprResolveExpr;
36073
42698
 
36074
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42699
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36075
42700
 public :
36076
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42701
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36077
42702
  typedef CT_Character CExprResolveExpr;
36078
42703
 
36079
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42704
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36080
42705
 public :
36081
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36082
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42706
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42707
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36083
42708
};
36084
42709
 
 
42710
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
42711
 *  Tree node representing a wide character constant. */
36085
42712
 
36086
 
#line 36087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42713
#line 42714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36087
42714
} // closed Puma
 
42715
class CCExprResolve;
 
42716
class CExprResolve;
36088
42717
class WinIfExists;
36089
42718
class WinImportHandler;
36090
42719
class WinMacros;
36091
 
class CMatchSyntax;
36092
 
class ExtGnu;
 
42720
class WinAsm;
 
42721
class WinDeclSpecs;
 
42722
class WinMemberExplSpec;
 
42723
class WinTypeKeywords;
 
42724
class WinFriend;
36093
42725
class ExtAC;
36094
42726
class ExtACBuilderCoupling;
36095
42727
class ExtACSyntaxCoupling;
36096
42728
class ExtACTree;
36097
42729
class ExtACKeywords;
36098
 
class WinAsm;
36099
 
class WinDeclSpecs;
36100
 
class WinMemberExplSpec;
36101
 
class WinTypeKeywords;
 
42730
class ExtGnu;
36102
42731
class PragmaOnceUnitState;
36103
42732
class PragmaOnce;
36104
 
class CCExprResolve;
36105
 
class CExprResolve;
36106
 
namespace Puma {
36107
 
 
36108
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42733
class CMatchSyntax;
 
42734
namespace Puma {
 
42735
 
 
42736
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42737
 
 
42738
#line 42739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42739
} // closed Puma
 
42740
 
 
42741
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42742
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42743
#include "CCExprResolveH.ah"
 
42744
#endif
 
42745
namespace Puma {
 
42746
 
 
42747
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42748
 
 
42749
#line 42750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42750
} // closed Puma
 
42751
 
 
42752
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42753
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42754
#include "CExprResolveH.ah"
 
42755
#endif
 
42756
namespace Puma {
 
42757
 
 
42758
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36109
42759
class CT_WideCharacter : public CT_Character {
36110
 
#line 36111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42760
#line 42761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42761
  friend class ::CCExprResolve;
 
42762
  friend class ::CExprResolve;
36111
42763
  friend class ::WinIfExists;
36112
42764
  friend class ::WinImportHandler;
36113
42765
  friend class ::WinMacros;
36114
 
  friend class ::CMatchSyntax;
36115
 
  friend class ::ExtGnu;
 
42766
  friend class ::WinAsm;
 
42767
  friend class ::WinDeclSpecs;
 
42768
  friend class ::WinMemberExplSpec;
 
42769
  friend class ::WinTypeKeywords;
 
42770
  friend class ::WinFriend;
36116
42771
  friend class ::ExtAC;
36117
42772
  friend class ::ExtACBuilderCoupling;
36118
42773
  friend class ::ExtACSyntaxCoupling;
36119
42774
  friend class ::ExtACTree;
36120
42775
  friend class ::ExtACKeywords;
36121
 
  friend class ::WinAsm;
36122
 
  friend class ::WinDeclSpecs;
36123
 
  friend class ::WinMemberExplSpec;
36124
 
  friend class ::WinTypeKeywords;
 
42776
  friend class ::ExtGnu;
36125
42777
  friend class ::PragmaOnceUnitState;
36126
42778
  friend class ::PragmaOnce;
36127
 
  friend class ::CCExprResolve;
36128
 
  friend class ::CExprResolve;
36129
 
 
36130
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
36131
 
 
36132
 
  CTree *_value;  // CT_Token
 
42779
  friend class ::CMatchSyntax;
 
42780
 
 
42781
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36133
42782
 
36134
42783
public:
36135
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
42784
  /** Constructor.
 
42785
   *  \param token The token containing the wide character value. */
 
42786
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
42787
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36136
42788
  static const char *NodeId ();
 
42789
  /** Get the name of the node. Can be compared with NodeId(). */
36137
42790
  const char *NodeName () const { return NodeId (); }
36138
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
36139
 
   { if (old_son == _value) _value = new_son; }
36140
42791
   private:
36141
42792
  typedef CT_WideCharacter CCExprResolveExpr;
36142
42793
 
36143
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42794
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36144
42795
 public :
36145
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42796
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36146
42797
  typedef CT_WideCharacter CExprResolveExpr;
36147
42798
 
36148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42799
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36149
42800
 public :
36150
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36151
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42801
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42802
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36152
42803
};
36153
42804
 
 
42805
/** \class CT_Float CTree.h Puma/CTree.h
 
42806
 *  Tree node representing a floating point constant. */
36154
42807
 
36155
 
#line 36156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42808
#line 42809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36156
42809
} // closed Puma
 
42810
class CCExprResolve;
 
42811
class CExprResolve;
36157
42812
class WinIfExists;
36158
42813
class WinImportHandler;
36159
42814
class WinMacros;
36160
 
class CMatchSyntax;
36161
 
class ExtGnu;
 
42815
class WinAsm;
 
42816
class WinDeclSpecs;
 
42817
class WinMemberExplSpec;
 
42818
class WinTypeKeywords;
 
42819
class WinFriend;
36162
42820
class ExtAC;
36163
42821
class ExtACBuilderCoupling;
36164
42822
class ExtACSyntaxCoupling;
36165
42823
class ExtACTree;
36166
42824
class ExtACKeywords;
36167
 
class WinAsm;
36168
 
class WinDeclSpecs;
36169
 
class WinMemberExplSpec;
36170
 
class WinTypeKeywords;
 
42825
class ExtGnu;
36171
42826
class PragmaOnceUnitState;
36172
42827
class PragmaOnce;
36173
 
class CCExprResolve;
36174
 
class CExprResolve;
36175
 
namespace Puma {
36176
 
 
36177
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42828
class CMatchSyntax;
 
42829
namespace Puma {
 
42830
 
 
42831
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42832
 
 
42833
#line 42834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42834
} // closed Puma
 
42835
 
 
42836
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42837
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42838
#include "CCExprResolveH.ah"
 
42839
#endif
 
42840
namespace Puma {
 
42841
 
 
42842
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42843
 
 
42844
#line 42845 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42845
} // closed Puma
 
42846
 
 
42847
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42848
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42849
#include "CExprResolveH.ah"
 
42850
#endif
 
42851
namespace Puma {
 
42852
 
 
42853
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36178
42854
class CT_Float : public CT_Expression {
36179
 
#line 36180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42855
#line 42856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42856
  friend class ::CCExprResolve;
 
42857
  friend class ::CExprResolve;
36180
42858
  friend class ::WinIfExists;
36181
42859
  friend class ::WinImportHandler;
36182
42860
  friend class ::WinMacros;
36183
 
  friend class ::CMatchSyntax;
36184
 
  friend class ::ExtGnu;
 
42861
  friend class ::WinAsm;
 
42862
  friend class ::WinDeclSpecs;
 
42863
  friend class ::WinMemberExplSpec;
 
42864
  friend class ::WinTypeKeywords;
 
42865
  friend class ::WinFriend;
36185
42866
  friend class ::ExtAC;
36186
42867
  friend class ::ExtACBuilderCoupling;
36187
42868
  friend class ::ExtACSyntaxCoupling;
36188
42869
  friend class ::ExtACTree;
36189
42870
  friend class ::ExtACKeywords;
36190
 
  friend class ::WinAsm;
36191
 
  friend class ::WinDeclSpecs;
36192
 
  friend class ::WinMemberExplSpec;
36193
 
  friend class ::WinTypeKeywords;
 
42871
  friend class ::ExtGnu;
36194
42872
  friend class ::PragmaOnceUnitState;
36195
42873
  friend class ::PragmaOnce;
36196
 
  friend class ::CCExprResolve;
36197
 
  friend class ::CExprResolve;
 
42874
  friend class ::CMatchSyntax;
36198
42875
 
36199
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42876
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36200
42877
 
36201
42878
  CTree *_value;  // CT_Token
36202
42879
 
36203
42880
public:
36204
 
  CT_Float (CTree *t) : _value (t) {}
 
42881
  /** Constructor.
 
42882
   *  \param token The token containing the floating point value. */
 
42883
  CT_Float (CTree *token) { AddSon (_value, token); }
 
42884
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36205
42885
  static const char *NodeId ();
 
42886
  /** Get the name of the node. Can be compared with NodeId(). */
36206
42887
  const char *NodeName () const { return NodeId (); }
 
42888
  /** Get the number of sons. */
36207
42889
  int Sons () const { return 1; }
 
42890
  /** Get the n-th son.
 
42891
   *  \param n The index of the son.
 
42892
   *  \return The n-th son or NULL. */
36208
42893
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
42894
  /** Replace a son.
 
42895
   *  \param old_son The son to replace.
 
42896
   *  \param new_son The new son. */
36209
42897
  void ReplaceSon (CTree *old_son, CTree *new_son) 
36210
 
   { if (old_son == _value) _value = new_son; }
 
42898
   { CTree::ReplaceSon (_value, old_son, new_son); }
36211
42899
   private:
36212
42900
  typedef CT_Float CCExprResolveExpr;
36213
42901
 
36214
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
42902
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36215
42903
 public :
36216
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
42904
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36217
42905
  typedef CT_Float CExprResolveExpr;
36218
42906
 
36219
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
42907
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36220
42908
 public :
36221
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36222
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42909
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
42910
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36223
42911
};
36224
42912
 
 
42913
/** \class CT_Bool CTree.h Puma/CTree.h
 
42914
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
36225
42915
 
36226
 
#line 36227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42916
#line 42917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36227
42917
} // closed Puma
 
42918
class CCExprResolve;
 
42919
class CExprResolve;
36228
42920
class WinIfExists;
36229
42921
class WinImportHandler;
36230
42922
class WinMacros;
36231
 
class CMatchSyntax;
36232
 
class ExtGnu;
 
42923
class WinAsm;
 
42924
class WinDeclSpecs;
 
42925
class WinMemberExplSpec;
 
42926
class WinTypeKeywords;
 
42927
class WinFriend;
36233
42928
class ExtAC;
36234
42929
class ExtACBuilderCoupling;
36235
42930
class ExtACSyntaxCoupling;
36236
42931
class ExtACTree;
36237
42932
class ExtACKeywords;
36238
 
class WinAsm;
36239
 
class WinDeclSpecs;
36240
 
class WinMemberExplSpec;
36241
 
class WinTypeKeywords;
 
42933
class ExtGnu;
36242
42934
class PragmaOnceUnitState;
36243
42935
class PragmaOnce;
36244
 
class CCExprResolve;
36245
 
class CExprResolve;
36246
 
namespace Puma {
36247
 
 
36248
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42936
class CMatchSyntax;
 
42937
namespace Puma {
 
42938
 
 
42939
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42940
 
 
42941
#line 42942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42942
} // closed Puma
 
42943
 
 
42944
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42945
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
42946
#include "CCExprResolveH.ah"
 
42947
#endif
 
42948
namespace Puma {
 
42949
 
 
42950
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42951
 
 
42952
#line 42953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42953
} // closed Puma
 
42954
 
 
42955
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42956
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
42957
#include "CExprResolveH.ah"
 
42958
#endif
 
42959
namespace Puma {
 
42960
 
 
42961
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36249
42962
class CT_Bool : public CT_Expression {
36250
 
#line 36251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
42963
#line 42964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
42964
  friend class ::CCExprResolve;
 
42965
  friend class ::CExprResolve;
36251
42966
  friend class ::WinIfExists;
36252
42967
  friend class ::WinImportHandler;
36253
42968
  friend class ::WinMacros;
36254
 
  friend class ::CMatchSyntax;
36255
 
  friend class ::ExtGnu;
 
42969
  friend class ::WinAsm;
 
42970
  friend class ::WinDeclSpecs;
 
42971
  friend class ::WinMemberExplSpec;
 
42972
  friend class ::WinTypeKeywords;
 
42973
  friend class ::WinFriend;
36256
42974
  friend class ::ExtAC;
36257
42975
  friend class ::ExtACBuilderCoupling;
36258
42976
  friend class ::ExtACSyntaxCoupling;
36259
42977
  friend class ::ExtACTree;
36260
42978
  friend class ::ExtACKeywords;
36261
 
  friend class ::WinAsm;
36262
 
  friend class ::WinDeclSpecs;
36263
 
  friend class ::WinMemberExplSpec;
36264
 
  friend class ::WinTypeKeywords;
 
42979
  friend class ::ExtGnu;
36265
42980
  friend class ::PragmaOnceUnitState;
36266
42981
  friend class ::PragmaOnce;
36267
 
  friend class ::CCExprResolve;
36268
 
  friend class ::CExprResolve;
 
42982
  friend class ::CMatchSyntax;
36269
42983
 
36270
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
42984
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36271
42985
 
36272
42986
  CTree *_value;  // CT_Token
36273
42987
 
36274
42988
public:
36275
 
  CT_Bool (CTree *t) : _value (t) {}
 
42989
  /** Constructor.
 
42990
   *  \param token The token containing the boolean value. */
 
42991
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
42992
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36276
42993
  static const char *NodeId ();
 
42994
  /** Get the name of the node. Can be compared with NodeId(). */
36277
42995
  const char *NodeName () const { return NodeId (); }
 
42996
  /** Get the number of sons. */
36278
42997
  int Sons () const { return 1; }
 
42998
  /** Get the n-th son.
 
42999
   *  \param n The index of the son.
 
43000
   *  \return The n-th son or NULL. */
36279
43001
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
43002
  /** Replace a son.
 
43003
   *  \param old_son The son to replace.
 
43004
   *  \param new_son The new son. */
36280
43005
  void ReplaceSon (CTree *old_son, CTree *new_son) 
36281
 
   { if (old_son == _value) _value = new_son; }
 
43006
   { CTree::ReplaceSon (_value, old_son, new_son); }
36282
43007
   private:
36283
43008
  typedef CT_Bool CCExprResolveExpr;
36284
43009
 
36285
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43010
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36286
43011
 public :
36287
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43012
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36288
43013
  typedef CT_Bool CExprResolveExpr;
36289
43014
 
36290
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43015
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36291
43016
 public :
36292
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36293
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43017
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43018
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36294
43019
};
36295
43020
 
 
43021
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
43022
 *  Tree node representing a braced expression, e.g. (a+b). */
36296
43023
 
36297
 
#line 36298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43024
#line 43025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36298
43025
} // closed Puma
 
43026
class CCExprResolve;
 
43027
class CExprResolve;
36299
43028
class WinIfExists;
36300
43029
class WinImportHandler;
36301
43030
class WinMacros;
36302
 
class CMatchSyntax;
36303
 
class ExtGnu;
 
43031
class WinAsm;
 
43032
class WinDeclSpecs;
 
43033
class WinMemberExplSpec;
 
43034
class WinTypeKeywords;
 
43035
class WinFriend;
36304
43036
class ExtAC;
36305
43037
class ExtACBuilderCoupling;
36306
43038
class ExtACSyntaxCoupling;
36307
43039
class ExtACTree;
36308
43040
class ExtACKeywords;
36309
 
class WinAsm;
36310
 
class WinDeclSpecs;
36311
 
class WinMemberExplSpec;
36312
 
class WinTypeKeywords;
 
43041
class ExtGnu;
36313
43042
class PragmaOnceUnitState;
36314
43043
class PragmaOnce;
36315
 
class CCExprResolve;
36316
 
class CExprResolve;
36317
 
namespace Puma {
36318
 
 
36319
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43044
class CMatchSyntax;
 
43045
namespace Puma {
 
43046
 
 
43047
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43048
 
 
43049
#line 43050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43050
} // closed Puma
 
43051
 
 
43052
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43053
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43054
#include "CCExprResolveH.ah"
 
43055
#endif
 
43056
namespace Puma {
 
43057
 
 
43058
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43059
 
 
43060
#line 43061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43061
} // closed Puma
 
43062
 
 
43063
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43064
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43065
#include "CExprResolveH.ah"
 
43066
#endif
 
43067
namespace Puma {
 
43068
 
 
43069
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36320
43070
class CT_BracedExpr : public CT_Expression {
36321
 
#line 36322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43071
#line 43072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43072
  friend class ::CCExprResolve;
 
43073
  friend class ::CExprResolve;
36322
43074
  friend class ::WinIfExists;
36323
43075
  friend class ::WinImportHandler;
36324
43076
  friend class ::WinMacros;
36325
 
  friend class ::CMatchSyntax;
36326
 
  friend class ::ExtGnu;
 
43077
  friend class ::WinAsm;
 
43078
  friend class ::WinDeclSpecs;
 
43079
  friend class ::WinMemberExplSpec;
 
43080
  friend class ::WinTypeKeywords;
 
43081
  friend class ::WinFriend;
36327
43082
  friend class ::ExtAC;
36328
43083
  friend class ::ExtACBuilderCoupling;
36329
43084
  friend class ::ExtACSyntaxCoupling;
36330
43085
  friend class ::ExtACTree;
36331
43086
  friend class ::ExtACKeywords;
36332
 
  friend class ::WinAsm;
36333
 
  friend class ::WinDeclSpecs;
36334
 
  friend class ::WinMemberExplSpec;
36335
 
  friend class ::WinTypeKeywords;
 
43087
  friend class ::ExtGnu;
36336
43088
  friend class ::PragmaOnceUnitState;
36337
43089
  friend class ::PragmaOnce;
36338
 
  friend class ::CCExprResolve;
36339
 
  friend class ::CExprResolve;
 
43090
  friend class ::CMatchSyntax;
36340
43091
 
36341
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43092
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36342
43093
 
36343
43094
  CTree *sons[3]; // open, expr, close
36344
43095
 
36345
43096
public:
 
43097
  /** Constructor.
 
43098
   *  \param o The opening brace.
 
43099
   *  \param e The enclosed expression.
 
43100
   *  \param c The closing brace. */
36346
43101
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
36347
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
43102
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
36348
43103
  }
 
43104
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36349
43105
  static const char *NodeId ();
 
43106
  /** Get the name of the node. Can be compared with NodeId(). */
36350
43107
  const char *NodeName () const { return NodeId (); }
 
43108
  /** Get the number of sons. */
36351
43109
  int Sons () const { return 3; }
 
43110
  /** Get the n-th son.
 
43111
   *  \param n The index of the son.
 
43112
   *  \return The n-th son or NULL. */
36352
43113
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
43114
  /** Get the enclosed expression. */
36353
43115
  CTree *Expr () const { return sons[1]; }
 
43116
  /** Get the type of the enclosed expression. */
36354
43117
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
43118
  /** Get the value of the enclosed expression. */
36355
43119
  CExprValue *Value () const { return Expr ()->Value (); }
 
43120
  /** Get the semantic value object. */
36356
43121
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
43122
  /** Replace a son.
 
43123
   *  \param old_son The son to replace.
 
43124
   *  \param new_son The new son. */
36357
43125
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
36358
43126
    CTree::ReplaceSon (sons, 3, old_son, new_son);
36359
43127
  }
36360
43128
   private:
36361
43129
  typedef CT_BracedExpr CCExprResolveExpr;
36362
43130
 
36363
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43131
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36364
43132
 public :
36365
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43133
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36366
43134
  typedef CT_BracedExpr CExprResolveExpr;
36367
43135
 
36368
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43136
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36369
43137
 public :
36370
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36371
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43138
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43139
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36372
43140
};
36373
43141
 
 
43142
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
43143
 *  Base class for all tree nodes representing a name. */
36374
43144
 
36375
 
#line 36376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43145
#line 43146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36376
43146
} // closed Puma
 
43147
class CCExprResolve;
 
43148
class CExprResolve;
36377
43149
class WinIfExists;
36378
43150
class WinImportHandler;
36379
43151
class WinMacros;
36380
 
class CMatchSyntax;
36381
 
class ExtGnu;
 
43152
class WinAsm;
 
43153
class WinDeclSpecs;
 
43154
class WinMemberExplSpec;
 
43155
class WinTypeKeywords;
 
43156
class WinFriend;
36382
43157
class ExtAC;
36383
43158
class ExtACBuilderCoupling;
36384
43159
class ExtACSyntaxCoupling;
36385
43160
class ExtACTree;
36386
43161
class ExtACKeywords;
36387
 
class WinAsm;
36388
 
class WinDeclSpecs;
36389
 
class WinMemberExplSpec;
36390
 
class WinTypeKeywords;
 
43162
class ExtGnu;
36391
43163
class PragmaOnceUnitState;
36392
43164
class PragmaOnce;
36393
 
class CCExprResolve;
36394
 
class CExprResolve;
36395
 
namespace Puma {
36396
 
 
36397
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43165
class CMatchSyntax;
 
43166
namespace Puma {
 
43167
 
 
43168
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43169
 
 
43170
#line 43171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43171
} // closed Puma
 
43172
 
 
43173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43175
#include "CCExprResolveH.ah"
 
43176
#endif
 
43177
namespace Puma {
 
43178
 
 
43179
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43180
 
 
43181
#line 43182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43182
} // closed Puma
 
43183
 
 
43184
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43185
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43186
#include "CExprResolveH.ah"
 
43187
#endif
 
43188
namespace Puma {
 
43189
 
 
43190
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36398
43191
class CT_SimpleName : public CT_List, public Printable, 
36399
43192
                      public CSemValue, public CSemObject {
36400
 
#line 36401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43193
#line 43194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43194
  friend class ::CCExprResolve;
 
43195
  friend class ::CExprResolve;
36401
43196
  friend class ::WinIfExists;
36402
43197
  friend class ::WinImportHandler;
36403
43198
  friend class ::WinMacros;
36404
 
  friend class ::CMatchSyntax;
36405
 
  friend class ::ExtGnu;
 
43199
  friend class ::WinAsm;
 
43200
  friend class ::WinDeclSpecs;
 
43201
  friend class ::WinMemberExplSpec;
 
43202
  friend class ::WinTypeKeywords;
 
43203
  friend class ::WinFriend;
36406
43204
  friend class ::ExtAC;
36407
43205
  friend class ::ExtACBuilderCoupling;
36408
43206
  friend class ::ExtACSyntaxCoupling;
36409
43207
  friend class ::ExtACTree;
36410
43208
  friend class ::ExtACKeywords;
36411
 
  friend class ::WinAsm;
36412
 
  friend class ::WinDeclSpecs;
36413
 
  friend class ::WinMemberExplSpec;
36414
 
  friend class ::WinTypeKeywords;
 
43209
  friend class ::ExtGnu;
36415
43210
  friend class ::PragmaOnceUnitState;
36416
43211
  friend class ::PragmaOnce;
36417
 
  friend class ::CCExprResolve;
36418
 
  friend class ::CExprResolve;
 
43212
  friend class ::CMatchSyntax;
36419
43213
 
36420
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43214
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36421
43215
 
36422
43216
protected:
 
43217
  /** Constructor.
 
43218
   *  \param size The number of sub-names (for qualified names). */
36423
43219
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
43220
  /** Constructor.
 
43221
   *  \param size The number of sub-names (for qualified names). 
 
43222
   *  \param properties Additional name list properties (for root qualified names). */
36424
43223
  CT_SimpleName (int size, int properties) : 
36425
43224
    CT_List (size, 2, properties) {}
36426
43225
  
36427
43226
public:
 
43227
  /** Constructor.
 
43228
   *  \param n The sub-tree containing the name. */
36428
43229
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
43230
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36429
43231
  static const char *NodeId ();
 
43232
  /** Get the name of the node. Can be compared with NodeId(). */
36430
43233
  const char *NodeName () const { return NodeId (); }
 
43234
  /** Get the string containing the name. */
36431
43235
  virtual const char *Text () const 
36432
43236
   { return Son (Sons ()-1)->token ()->text (); }
 
43237
  /** Print the name on the given stream. 
 
43238
   *  \param os The output stream. */
36433
43239
  virtual void print (ostream &os) const { os << Text (); }
 
43240
  /** Get this. */
36434
43241
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
43242
  /** Get the type of the entity represented by the name. */
36435
43243
  CTypeInfo *Type () const { return type; }
 
43244
  /** Get the value of the entity represented by the name. */ 
36436
43245
  CExprValue *Value () const { return value; }
 
43246
  /** Get the sematic value information object. */
36437
43247
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
43248
  /** Get the sematic information object. */
36438
43249
  CSemObject *SemObject () const { return (CSemObject*)this; }
36439
 
  // special new / delete with reusing memory
36440
 
  void *operator new (size_t);
36441
 
  void  operator delete (void *);
36442
 
  // classification function
 
43250
  /** Get this. */
36443
43251
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
43252
 
 
43253
public:
 
43254
  /** Own new operator reusing memory. */
 
43255
  void *operator new (size_t);
 
43256
  /** Own delete operator. */
 
43257
  void operator delete (void *);
36444
43258
   private:
36445
43259
  typedef CT_SimpleName CCExprResolveExpr;
36446
43260
 
36447
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43261
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36448
43262
 public :
36449
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43263
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36450
43264
  typedef CT_SimpleName CExprResolveExpr;
36451
43265
 
36452
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43266
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36453
43267
 public :
36454
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36455
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43268
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43269
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36456
43270
};
36457
43271
 
 
43272
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
43273
 *  Base class for tree nodes representing a special name, like destructor names. */
36458
43274
 
36459
 
#line 36460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43275
#line 43276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36460
43276
} // closed Puma
 
43277
class CCExprResolve;
 
43278
class CExprResolve;
36461
43279
class WinIfExists;
36462
43280
class WinImportHandler;
36463
43281
class WinMacros;
36464
 
class CMatchSyntax;
36465
 
class ExtGnu;
 
43282
class WinAsm;
 
43283
class WinDeclSpecs;
 
43284
class WinMemberExplSpec;
 
43285
class WinTypeKeywords;
 
43286
class WinFriend;
36466
43287
class ExtAC;
36467
43288
class ExtACBuilderCoupling;
36468
43289
class ExtACSyntaxCoupling;
36469
43290
class ExtACTree;
36470
43291
class ExtACKeywords;
36471
 
class WinAsm;
36472
 
class WinDeclSpecs;
36473
 
class WinMemberExplSpec;
36474
 
class WinTypeKeywords;
 
43292
class ExtGnu;
36475
43293
class PragmaOnceUnitState;
36476
43294
class PragmaOnce;
36477
 
class CCExprResolve;
36478
 
class CExprResolve;
36479
 
namespace Puma {
36480
 
 
36481
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43295
class CMatchSyntax;
 
43296
namespace Puma {
 
43297
 
 
43298
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43299
 
 
43300
#line 43301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43301
} // closed Puma
 
43302
 
 
43303
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43304
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43305
#include "CCExprResolveH.ah"
 
43306
#endif
 
43307
namespace Puma {
 
43308
 
 
43309
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43310
 
 
43311
#line 43312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43312
} // closed Puma
 
43313
 
 
43314
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43315
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43316
#include "CExprResolveH.ah"
 
43317
#endif
 
43318
namespace Puma {
 
43319
 
 
43320
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36482
43321
class CT_SpecialName : public CT_SimpleName {
36483
 
#line 36484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43322
#line 43323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43323
  friend class ::CCExprResolve;
 
43324
  friend class ::CExprResolve;
36484
43325
  friend class ::WinIfExists;
36485
43326
  friend class ::WinImportHandler;
36486
43327
  friend class ::WinMacros;
36487
 
  friend class ::CMatchSyntax;
36488
 
  friend class ::ExtGnu;
 
43328
  friend class ::WinAsm;
 
43329
  friend class ::WinDeclSpecs;
 
43330
  friend class ::WinMemberExplSpec;
 
43331
  friend class ::WinTypeKeywords;
 
43332
  friend class ::WinFriend;
36489
43333
  friend class ::ExtAC;
36490
43334
  friend class ::ExtACBuilderCoupling;
36491
43335
  friend class ::ExtACSyntaxCoupling;
36492
43336
  friend class ::ExtACTree;
36493
43337
  friend class ::ExtACKeywords;
36494
 
  friend class ::WinAsm;
36495
 
  friend class ::WinDeclSpecs;
36496
 
  friend class ::WinMemberExplSpec;
36497
 
  friend class ::WinTypeKeywords;
 
43338
  friend class ::ExtGnu;
36498
43339
  friend class ::PragmaOnceUnitState;
36499
43340
  friend class ::PragmaOnce;
36500
 
  friend class ::CCExprResolve;
36501
 
  friend class ::CExprResolve;
 
43341
  friend class ::CMatchSyntax;
36502
43342
 
36503
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43343
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36504
43344
 
36505
43345
  char *_name;
36506
43346
  
36507
43347
protected:
 
43348
  /** Constructor.
 
43349
   *  \param size The number of sub-names (for qualified names). */
36508
43350
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
36509
43351
  
36510
43352
public:
 
43353
  /** Destructor. Deletes the name string. */
36511
43354
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
43355
  /** Get the string containing the name. */
36512
43356
  const char *Text () const { return _name; }
 
43357
  /** Set the name. The name is copied.
 
43358
   *  \param n The name. */
36513
43359
  void Name (const char *n) { 
36514
43360
    if (n) { 
36515
43361
      _name = new char[strlen(n) + 1];
36516
43362
      strcpy (_name,n);
36517
43363
    }
36518
43364
  }
36519
 
  // special new / delete with reusing memory
 
43365
 
 
43366
public:
 
43367
  /** Own new operator reusing memory. */
36520
43368
  void *operator new (size_t);
36521
 
  void  operator delete (void *);
 
43369
  /** Own delete operator. */
 
43370
  void operator delete (void *);
36522
43371
   private:
36523
43372
  typedef CT_SpecialName CCExprResolveExpr;
36524
43373
 
36525
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43374
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36526
43375
 public :
36527
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43376
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36528
43377
  typedef CT_SpecialName CExprResolveExpr;
36529
43378
 
36530
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43379
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36531
43380
 public :
36532
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36533
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43381
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43382
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36534
43383
};
36535
43384
 
 
43385
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
43386
 *  Tree node representing a private name. Private names 
 
43387
 *  are generated names for abstract declarators etc. */
36536
43388
 
36537
 
#line 36538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43389
#line 43390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36538
43390
} // closed Puma
 
43391
class CCExprResolve;
 
43392
class CExprResolve;
36539
43393
class WinIfExists;
36540
43394
class WinImportHandler;
36541
43395
class WinMacros;
36542
 
class CMatchSyntax;
36543
 
class ExtGnu;
 
43396
class WinAsm;
 
43397
class WinDeclSpecs;
 
43398
class WinMemberExplSpec;
 
43399
class WinTypeKeywords;
 
43400
class WinFriend;
36544
43401
class ExtAC;
36545
43402
class ExtACBuilderCoupling;
36546
43403
class ExtACSyntaxCoupling;
36547
43404
class ExtACTree;
36548
43405
class ExtACKeywords;
36549
 
class WinAsm;
36550
 
class WinDeclSpecs;
36551
 
class WinMemberExplSpec;
36552
 
class WinTypeKeywords;
 
43406
class ExtGnu;
36553
43407
class PragmaOnceUnitState;
36554
43408
class PragmaOnce;
36555
 
class CCExprResolve;
36556
 
class CExprResolve;
36557
 
namespace Puma {
36558
 
 
36559
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43409
class CMatchSyntax;
 
43410
namespace Puma {
 
43411
 
 
43412
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43413
 
 
43414
#line 43415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43415
} // closed Puma
 
43416
 
 
43417
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43418
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43419
#include "CCExprResolveH.ah"
 
43420
#endif
 
43421
namespace Puma {
 
43422
 
 
43423
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43424
 
 
43425
#line 43426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43426
} // closed Puma
 
43427
 
 
43428
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43429
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43430
#include "CExprResolveH.ah"
 
43431
#endif
 
43432
namespace Puma {
 
43433
 
 
43434
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36560
43435
class CT_PrivateName : public CT_SpecialName {
36561
 
#line 36562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43436
#line 43437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43437
  friend class ::CCExprResolve;
 
43438
  friend class ::CExprResolve;
36562
43439
  friend class ::WinIfExists;
36563
43440
  friend class ::WinImportHandler;
36564
43441
  friend class ::WinMacros;
36565
 
  friend class ::CMatchSyntax;
36566
 
  friend class ::ExtGnu;
 
43442
  friend class ::WinAsm;
 
43443
  friend class ::WinDeclSpecs;
 
43444
  friend class ::WinMemberExplSpec;
 
43445
  friend class ::WinTypeKeywords;
 
43446
  friend class ::WinFriend;
36567
43447
  friend class ::ExtAC;
36568
43448
  friend class ::ExtACBuilderCoupling;
36569
43449
  friend class ::ExtACSyntaxCoupling;
36570
43450
  friend class ::ExtACTree;
36571
43451
  friend class ::ExtACKeywords;
36572
 
  friend class ::WinAsm;
36573
 
  friend class ::WinDeclSpecs;
36574
 
  friend class ::WinMemberExplSpec;
36575
 
  friend class ::WinTypeKeywords;
 
43452
  friend class ::ExtGnu;
36576
43453
  friend class ::PragmaOnceUnitState;
36577
43454
  friend class ::PragmaOnce;
36578
 
  friend class ::CCExprResolve;
36579
 
  friend class ::CExprResolve;
 
43455
  friend class ::CMatchSyntax;
36580
43456
 
36581
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43457
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36582
43458
 
36583
43459
public:
 
43460
  /** Constructor.
 
43461
   *  \param n The private (generated) name. */
36584
43462
  CT_PrivateName (const char *n) { Name (n); }
 
43463
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36585
43464
  static const char *NodeId ();
 
43465
  /** Get the name of the node. Can be compared with NodeId(). */
36586
43466
  const char *NodeName () const { return NodeId (); }
 
43467
  /** Get the number of sons. */
36587
43468
  int Sons () const { return 0; }
 
43469
  /** Get the n-th son.
 
43470
   *  \param n The index of the son.
 
43471
   *  \return The n-th son or NULL. */
36588
43472
  CTree *Son (int n) const { return (CTree*)0; }
36589
 
  // special new / delete with reusing memory
 
43473
 
 
43474
public:
 
43475
  /** Own new operator reusing memory. */
36590
43476
  void *operator new (size_t);
36591
 
  void  operator delete (void *);
 
43477
  /** Own delete operator. */
 
43478
  void operator delete (void *);
36592
43479
   private:
36593
43480
  typedef CT_PrivateName CCExprResolveExpr;
36594
43481
 
36595
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43482
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36596
43483
 public :
36597
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43484
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36598
43485
  typedef CT_PrivateName CExprResolveExpr;
36599
43486
 
36600
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36601
43488
 public :
36602
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36603
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43489
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43490
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36604
43491
};
36605
43492
 
 
43493
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
43494
 *  Tree node representing a destructor name. */
36606
43495
 
36607
 
#line 36608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43496
#line 43497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36608
43497
} // closed Puma
 
43498
class CCExprResolve;
 
43499
class CExprResolve;
36609
43500
class WinIfExists;
36610
43501
class WinImportHandler;
36611
43502
class WinMacros;
36612
 
class CMatchSyntax;
36613
 
class ExtGnu;
 
43503
class WinAsm;
 
43504
class WinDeclSpecs;
 
43505
class WinMemberExplSpec;
 
43506
class WinTypeKeywords;
 
43507
class WinFriend;
36614
43508
class ExtAC;
36615
43509
class ExtACBuilderCoupling;
36616
43510
class ExtACSyntaxCoupling;
36617
43511
class ExtACTree;
36618
43512
class ExtACKeywords;
36619
 
class WinAsm;
36620
 
class WinDeclSpecs;
36621
 
class WinMemberExplSpec;
36622
 
class WinTypeKeywords;
 
43513
class ExtGnu;
36623
43514
class PragmaOnceUnitState;
36624
43515
class PragmaOnce;
36625
 
class CCExprResolve;
36626
 
class CExprResolve;
36627
 
namespace Puma {
36628
 
 
36629
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43516
class CMatchSyntax;
 
43517
namespace Puma {
 
43518
 
 
43519
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43520
 
 
43521
#line 43522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43522
} // closed Puma
 
43523
 
 
43524
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43525
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43526
#include "CCExprResolveH.ah"
 
43527
#endif
 
43528
namespace Puma {
 
43529
 
 
43530
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43531
 
 
43532
#line 43533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43533
} // closed Puma
 
43534
 
 
43535
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43536
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43537
#include "CExprResolveH.ah"
 
43538
#endif
 
43539
namespace Puma {
 
43540
 
 
43541
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36630
43542
class CT_DestructorName : public CT_SpecialName {
36631
 
#line 36632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43543
#line 43544 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43544
  friend class ::CCExprResolve;
 
43545
  friend class ::CExprResolve;
36632
43546
  friend class ::WinIfExists;
36633
43547
  friend class ::WinImportHandler;
36634
43548
  friend class ::WinMacros;
36635
 
  friend class ::CMatchSyntax;
36636
 
  friend class ::ExtGnu;
 
43549
  friend class ::WinAsm;
 
43550
  friend class ::WinDeclSpecs;
 
43551
  friend class ::WinMemberExplSpec;
 
43552
  friend class ::WinTypeKeywords;
 
43553
  friend class ::WinFriend;
36637
43554
  friend class ::ExtAC;
36638
43555
  friend class ::ExtACBuilderCoupling;
36639
43556
  friend class ::ExtACSyntaxCoupling;
36640
43557
  friend class ::ExtACTree;
36641
43558
  friend class ::ExtACKeywords;
36642
 
  friend class ::WinAsm;
36643
 
  friend class ::WinDeclSpecs;
36644
 
  friend class ::WinMemberExplSpec;
36645
 
  friend class ::WinTypeKeywords;
 
43559
  friend class ::ExtGnu;
36646
43560
  friend class ::PragmaOnceUnitState;
36647
43561
  friend class ::PragmaOnce;
36648
 
  friend class ::CCExprResolve;
36649
 
  friend class ::CExprResolve;
 
43562
  friend class ::CMatchSyntax;
36650
43563
 
36651
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43564
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36652
43565
 
36653
43566
public:
36654
 
  CT_DestructorName (CTree *, CTree *);
 
43567
  /** Constructor.
 
43568
   *  \param t The tilde operator.
 
43569
   *  \param n The class name. */
 
43570
  CT_DestructorName (CTree *t, CTree *n);
 
43571
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36655
43572
  static const char *NodeId ();
 
43573
  /** Get the name of the node. Can be compared with NodeId(). */
36656
43574
  const char *NodeName () const { return NodeId (); }
36657
 
  // special new / delete with reusing memory
 
43575
 
 
43576
public:
 
43577
  /** Own new operator reusing memory. */
36658
43578
  void *operator new (size_t);
36659
 
  void  operator delete (void *);
 
43579
  /** Own delete operator. */
 
43580
  void operator delete (void *);
36660
43581
   private:
36661
43582
  typedef CT_DestructorName CCExprResolveExpr;
36662
43583
 
36663
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43584
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36664
43585
 public :
36665
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43586
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36666
43587
  typedef CT_DestructorName CExprResolveExpr;
36667
43588
 
36668
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36669
43590
 public :
36670
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36671
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43591
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43592
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36672
43593
};
36673
43594
 
 
43595
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
43596
 *  Tree node representing a template name. */
36674
43597
 
36675
 
#line 36676 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43598
#line 43599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36676
43599
} // closed Puma
 
43600
class CCExprResolve;
 
43601
class CExprResolve;
36677
43602
class WinIfExists;
36678
43603
class WinImportHandler;
36679
43604
class WinMacros;
36680
 
class CMatchSyntax;
36681
 
class ExtGnu;
 
43605
class WinAsm;
 
43606
class WinDeclSpecs;
 
43607
class WinMemberExplSpec;
 
43608
class WinTypeKeywords;
 
43609
class WinFriend;
36682
43610
class ExtAC;
36683
43611
class ExtACBuilderCoupling;
36684
43612
class ExtACSyntaxCoupling;
36685
43613
class ExtACTree;
36686
43614
class ExtACKeywords;
36687
 
class WinAsm;
36688
 
class WinDeclSpecs;
36689
 
class WinMemberExplSpec;
36690
 
class WinTypeKeywords;
 
43615
class ExtGnu;
36691
43616
class PragmaOnceUnitState;
36692
43617
class PragmaOnce;
36693
 
class CCExprResolve;
36694
 
class CExprResolve;
36695
 
namespace Puma {
36696
 
 
36697
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43618
class CMatchSyntax;
 
43619
namespace Puma {
 
43620
 
 
43621
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43622
 
 
43623
#line 43624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43624
} // closed Puma
 
43625
 
 
43626
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43627
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43628
#include "CCExprResolveH.ah"
 
43629
#endif
 
43630
namespace Puma {
 
43631
 
 
43632
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43633
 
 
43634
#line 43635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43635
} // closed Puma
 
43636
 
 
43637
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43638
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43639
#include "CExprResolveH.ah"
 
43640
#endif
 
43641
namespace Puma {
 
43642
 
 
43643
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36698
43644
class CT_TemplateName : public CT_SpecialName {
36699
 
#line 36700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43645
#line 43646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43646
  friend class ::CCExprResolve;
 
43647
  friend class ::CExprResolve;
36700
43648
  friend class ::WinIfExists;
36701
43649
  friend class ::WinImportHandler;
36702
43650
  friend class ::WinMacros;
36703
 
  friend class ::CMatchSyntax;
36704
 
  friend class ::ExtGnu;
 
43651
  friend class ::WinAsm;
 
43652
  friend class ::WinDeclSpecs;
 
43653
  friend class ::WinMemberExplSpec;
 
43654
  friend class ::WinTypeKeywords;
 
43655
  friend class ::WinFriend;
36705
43656
  friend class ::ExtAC;
36706
43657
  friend class ::ExtACBuilderCoupling;
36707
43658
  friend class ::ExtACSyntaxCoupling;
36708
43659
  friend class ::ExtACTree;
36709
43660
  friend class ::ExtACKeywords;
36710
 
  friend class ::WinAsm;
36711
 
  friend class ::WinDeclSpecs;
36712
 
  friend class ::WinMemberExplSpec;
36713
 
  friend class ::WinTypeKeywords;
 
43661
  friend class ::ExtGnu;
36714
43662
  friend class ::PragmaOnceUnitState;
36715
43663
  friend class ::PragmaOnce;
36716
 
  friend class ::CCExprResolve;
36717
 
  friend class ::CExprResolve;
 
43664
  friend class ::CMatchSyntax;
36718
43665
 
36719
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43666
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36720
43667
 
36721
43668
public:
 
43669
  /** Constructor.
 
43670
   *  \param n The template class or function name.
 
43671
   *  \param a The template argument list. */
36722
43672
  CT_TemplateName (CTree *n, CTree *a) 
36723
43673
   { AddSon (n); AddSon (a); }
 
43674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36724
43675
  static const char *NodeId ();
 
43676
  /** Get the name of the node. Can be compared with NodeId(). */
36725
43677
  const char *NodeName () const { return NodeId (); }
 
43678
  /** Get the template argument list. */
36726
43679
  CT_TemplateArgList *Arguments () const 
36727
43680
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
43681
  /** Get the template class or function name. */
36728
43682
  CT_SimpleName *TemplateName () const 
36729
43683
   { return (CT_SimpleName*)Son (Sons ()-2); }
36730
43684
  // may change in the future
36731
43685
  const char *Text () const { return TemplateName ()->Text (); }
36732
 
  // special new / delete with reusing memory
 
43686
 
 
43687
public:
 
43688
  /** Own new operator reusing memory. */
36733
43689
  void *operator new (size_t);
36734
 
  void  operator delete (void *);
 
43690
  /** Own delete operator. */
 
43691
  void operator delete (void *);
36735
43692
   private:
36736
43693
  typedef CT_TemplateName CCExprResolveExpr;
36737
43694
 
36738
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43695
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36739
43696
 public :
36740
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43697
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36741
43698
  typedef CT_TemplateName CExprResolveExpr;
36742
43699
 
36743
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43700
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36744
43701
 public :
36745
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36746
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43702
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43703
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36747
43704
};
36748
43705
 
 
43706
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
43707
 *  Tree node representing the name of an overloaded operator. */
36749
43708
 
36750
 
#line 36751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43709
#line 43710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36751
43710
} // closed Puma
 
43711
class CCExprResolve;
 
43712
class CExprResolve;
36752
43713
class WinIfExists;
36753
43714
class WinImportHandler;
36754
43715
class WinMacros;
36755
 
class CMatchSyntax;
36756
 
class ExtGnu;
 
43716
class WinAsm;
 
43717
class WinDeclSpecs;
 
43718
class WinMemberExplSpec;
 
43719
class WinTypeKeywords;
 
43720
class WinFriend;
36757
43721
class ExtAC;
36758
43722
class ExtACBuilderCoupling;
36759
43723
class ExtACSyntaxCoupling;
36760
43724
class ExtACTree;
36761
43725
class ExtACKeywords;
36762
 
class WinAsm;
36763
 
class WinDeclSpecs;
36764
 
class WinMemberExplSpec;
36765
 
class WinTypeKeywords;
 
43726
class ExtGnu;
36766
43727
class PragmaOnceUnitState;
36767
43728
class PragmaOnce;
36768
 
class CCExprResolve;
36769
 
class CExprResolve;
36770
 
namespace Puma {
36771
 
 
36772
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43729
class CMatchSyntax;
 
43730
namespace Puma {
 
43731
 
 
43732
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43733
 
 
43734
#line 43735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43735
} // closed Puma
 
43736
 
 
43737
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43738
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43739
#include "CCExprResolveH.ah"
 
43740
#endif
 
43741
namespace Puma {
 
43742
 
 
43743
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43744
 
 
43745
#line 43746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43746
} // closed Puma
 
43747
 
 
43748
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43749
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43750
#include "CExprResolveH.ah"
 
43751
#endif
 
43752
namespace Puma {
 
43753
 
 
43754
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36773
43755
class CT_OperatorName : public CT_SpecialName {
36774
 
#line 36775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43756
#line 43757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43757
  friend class ::CCExprResolve;
 
43758
  friend class ::CExprResolve;
36775
43759
  friend class ::WinIfExists;
36776
43760
  friend class ::WinImportHandler;
36777
43761
  friend class ::WinMacros;
36778
 
  friend class ::CMatchSyntax;
36779
 
  friend class ::ExtGnu;
 
43762
  friend class ::WinAsm;
 
43763
  friend class ::WinDeclSpecs;
 
43764
  friend class ::WinMemberExplSpec;
 
43765
  friend class ::WinTypeKeywords;
 
43766
  friend class ::WinFriend;
36780
43767
  friend class ::ExtAC;
36781
43768
  friend class ::ExtACBuilderCoupling;
36782
43769
  friend class ::ExtACSyntaxCoupling;
36783
43770
  friend class ::ExtACTree;
36784
43771
  friend class ::ExtACKeywords;
36785
 
  friend class ::WinAsm;
36786
 
  friend class ::WinDeclSpecs;
36787
 
  friend class ::WinMemberExplSpec;
36788
 
  friend class ::WinTypeKeywords;
 
43772
  friend class ::ExtGnu;
36789
43773
  friend class ::PragmaOnceUnitState;
36790
43774
  friend class ::PragmaOnce;
36791
 
  friend class ::CCExprResolve;
36792
 
  friend class ::CExprResolve;
 
43775
  friend class ::CMatchSyntax;
36793
43776
 
36794
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43777
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36795
43778
 
36796
43779
  int _oper;
36797
43780
 
36798
43781
public:
36799
 
  enum { // complex operators
36800
 
    FCT_CALL = -100,
36801
 
    SUBSCRIPT,
36802
 
    NEW_ARRAY,
36803
 
    DEL_ARRAY
 
43782
  /** Complex operator types. */
 
43783
  enum { 
 
43784
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
43785
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
43786
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
43787
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
36804
43788
  };
36805
43789
 
36806
43790
public:
36807
 
  CT_OperatorName (CTree *);
36808
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
43791
  /** Constructor.
 
43792
   *  \param op The token containing the operator. */
 
43793
  CT_OperatorName (CTree *op);
 
43794
  /** Constructor.
 
43795
   *  \param f The operator function keyword 'operator'.
 
43796
   *  \param op The token containing the operator. 
 
43797
   *  \param o The token of '[' or '('.
 
43798
   *  \param c The token of ']' or ')'. */
 
43799
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
43800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36809
43801
  static const char *NodeId ();
 
43802
  /** Get the name of the node. Can be compared with NodeId(). */
36810
43803
  const char *NodeName () const { return NodeId (); }
 
43804
  /** Get the operator type (either the token type or one of 
 
43805
   *  the complex operator types). */
36811
43806
  int Operator () const { return _oper; }
36812
 
  // special new / delete with reusing memory
 
43807
 
 
43808
public:
 
43809
  /** Own new operator reusing memory. */
36813
43810
  void *operator new (size_t);
36814
 
  void  operator delete (void *);
 
43811
  /** Own delete operator. */
 
43812
  void operator delete (void *);
36815
43813
   private:
36816
43814
  typedef CT_OperatorName CCExprResolveExpr;
36817
43815
 
36818
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43816
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36819
43817
 public :
36820
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43818
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36821
43819
  typedef CT_OperatorName CExprResolveExpr;
36822
43820
 
36823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43821
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36824
43822
 public :
36825
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36826
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43823
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43824
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36827
43825
};
36828
43826
 
 
43827
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
43828
 *  Tree node representing the name of a conversion function. */
36829
43829
 
36830
 
#line 36831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43830
#line 43831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36831
43831
} // closed Puma
 
43832
class CCExprResolve;
 
43833
class CExprResolve;
36832
43834
class WinIfExists;
36833
43835
class WinImportHandler;
36834
43836
class WinMacros;
36835
 
class CMatchSyntax;
36836
 
class ExtGnu;
 
43837
class WinAsm;
 
43838
class WinDeclSpecs;
 
43839
class WinMemberExplSpec;
 
43840
class WinTypeKeywords;
 
43841
class WinFriend;
36837
43842
class ExtAC;
36838
43843
class ExtACBuilderCoupling;
36839
43844
class ExtACSyntaxCoupling;
36840
43845
class ExtACTree;
36841
43846
class ExtACKeywords;
36842
 
class WinAsm;
36843
 
class WinDeclSpecs;
36844
 
class WinMemberExplSpec;
36845
 
class WinTypeKeywords;
 
43847
class ExtGnu;
36846
43848
class PragmaOnceUnitState;
36847
43849
class PragmaOnce;
36848
 
class CCExprResolve;
36849
 
class CExprResolve;
36850
 
namespace Puma {
36851
 
 
36852
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43850
class CMatchSyntax;
 
43851
namespace Puma {
 
43852
 
 
43853
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43854
 
 
43855
#line 43856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43856
} // closed Puma
 
43857
 
 
43858
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43859
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43860
#include "CCExprResolveH.ah"
 
43861
#endif
 
43862
namespace Puma {
 
43863
 
 
43864
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43865
 
 
43866
#line 43867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43867
} // closed Puma
 
43868
 
 
43869
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43870
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43871
#include "CExprResolveH.ah"
 
43872
#endif
 
43873
namespace Puma {
 
43874
 
 
43875
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36853
43876
class CT_ConversionName : public CT_SpecialName {
36854
 
#line 36855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43877
#line 43878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43878
  friend class ::CCExprResolve;
 
43879
  friend class ::CExprResolve;
36855
43880
  friend class ::WinIfExists;
36856
43881
  friend class ::WinImportHandler;
36857
43882
  friend class ::WinMacros;
36858
 
  friend class ::CMatchSyntax;
36859
 
  friend class ::ExtGnu;
 
43883
  friend class ::WinAsm;
 
43884
  friend class ::WinDeclSpecs;
 
43885
  friend class ::WinMemberExplSpec;
 
43886
  friend class ::WinTypeKeywords;
 
43887
  friend class ::WinFriend;
36860
43888
  friend class ::ExtAC;
36861
43889
  friend class ::ExtACBuilderCoupling;
36862
43890
  friend class ::ExtACSyntaxCoupling;
36863
43891
  friend class ::ExtACTree;
36864
43892
  friend class ::ExtACKeywords;
36865
 
  friend class ::WinAsm;
36866
 
  friend class ::WinDeclSpecs;
36867
 
  friend class ::WinMemberExplSpec;
36868
 
  friend class ::WinTypeKeywords;
 
43893
  friend class ::ExtGnu;
36869
43894
  friend class ::PragmaOnceUnitState;
36870
43895
  friend class ::PragmaOnce;
36871
 
  friend class ::CCExprResolve;
36872
 
  friend class ::CExprResolve;
 
43896
  friend class ::CMatchSyntax;
36873
43897
 
36874
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43898
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36875
43899
 
36876
43900
public:
36877
 
  CT_ConversionName (CTree *, CTree *);
 
43901
  /** Constructor.
 
43902
   *  \param f The operator function keyword 'operator'.
 
43903
   *  \param t The sub-tree containing the conversion type. */
 
43904
  CT_ConversionName (CTree *f, CTree *t);
 
43905
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36878
43906
  static const char *NodeId ();
 
43907
  /** Get the name of the node. Can be compared with NodeId(). */
36879
43908
  const char *NodeName () const { return NodeId (); }
 
43909
  /** Get the conversion type. */
36880
43910
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
36881
 
  // special new / delete with reusing memory
 
43911
 
 
43912
public:
 
43913
  /** Own new operator reusing memory. */
36882
43914
  void *operator new (size_t);
36883
 
  void  operator delete (void *);
 
43915
  /** Own delete operator. */
 
43916
  void operator delete (void *);
36884
43917
   private:
36885
43918
  typedef CT_ConversionName CCExprResolveExpr;
36886
43919
 
36887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
43920
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36888
43921
 public :
36889
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
43922
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36890
43923
  typedef CT_ConversionName CExprResolveExpr;
36891
43924
 
36892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
43925
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36893
43926
 public :
36894
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36895
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43927
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
43928
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36896
43929
};
36897
43930
 
 
43931
/** \class CT_QualName CTree.h Puma/CTree.h
 
43932
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
36898
43933
 
36899
 
#line 36900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43934
#line 43935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36900
43935
} // closed Puma
 
43936
class CCExprResolve;
 
43937
class CExprResolve;
36901
43938
class WinIfExists;
36902
43939
class WinImportHandler;
36903
43940
class WinMacros;
36904
 
class CMatchSyntax;
36905
 
class ExtGnu;
 
43941
class WinAsm;
 
43942
class WinDeclSpecs;
 
43943
class WinMemberExplSpec;
 
43944
class WinTypeKeywords;
 
43945
class WinFriend;
36906
43946
class ExtAC;
36907
43947
class ExtACBuilderCoupling;
36908
43948
class ExtACSyntaxCoupling;
36909
43949
class ExtACTree;
36910
43950
class ExtACKeywords;
36911
 
class WinAsm;
36912
 
class WinDeclSpecs;
36913
 
class WinMemberExplSpec;
36914
 
class WinTypeKeywords;
 
43951
class ExtGnu;
36915
43952
class PragmaOnceUnitState;
36916
43953
class PragmaOnce;
36917
 
class CCExprResolve;
36918
 
class CExprResolve;
36919
 
namespace Puma {
36920
 
 
36921
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43954
class CMatchSyntax;
 
43955
namespace Puma {
 
43956
 
 
43957
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43958
 
 
43959
#line 43960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43960
} // closed Puma
 
43961
 
 
43962
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43963
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
43964
#include "CCExprResolveH.ah"
 
43965
#endif
 
43966
namespace Puma {
 
43967
 
 
43968
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
43969
 
 
43970
#line 43971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43971
} // closed Puma
 
43972
 
 
43973
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43974
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
43975
#include "CExprResolveH.ah"
 
43976
#endif
 
43977
namespace Puma {
 
43978
 
 
43979
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36922
43980
class CT_QualName : public CT_SimpleName {
36923
 
#line 36924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
43981
#line 43982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
43982
  friend class ::CCExprResolve;
 
43983
  friend class ::CExprResolve;
36924
43984
  friend class ::WinIfExists;
36925
43985
  friend class ::WinImportHandler;
36926
43986
  friend class ::WinMacros;
36927
 
  friend class ::CMatchSyntax;
36928
 
  friend class ::ExtGnu;
 
43987
  friend class ::WinAsm;
 
43988
  friend class ::WinDeclSpecs;
 
43989
  friend class ::WinMemberExplSpec;
 
43990
  friend class ::WinTypeKeywords;
 
43991
  friend class ::WinFriend;
36929
43992
  friend class ::ExtAC;
36930
43993
  friend class ::ExtACBuilderCoupling;
36931
43994
  friend class ::ExtACSyntaxCoupling;
36932
43995
  friend class ::ExtACTree;
36933
43996
  friend class ::ExtACKeywords;
36934
 
  friend class ::WinAsm;
36935
 
  friend class ::WinDeclSpecs;
36936
 
  friend class ::WinMemberExplSpec;
36937
 
  friend class ::WinTypeKeywords;
 
43997
  friend class ::ExtGnu;
36938
43998
  friend class ::PragmaOnceUnitState;
36939
43999
  friend class ::PragmaOnce;
36940
 
  friend class ::CCExprResolve;
36941
 
  friend class ::CExprResolve;
 
44000
  friend class ::CMatchSyntax;
36942
44001
 
36943
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44002
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36944
44003
 
36945
44004
public:
 
44005
  /** Constructor.
 
44006
   *  \param size The initial number sub-names plus separators. */
36946
44007
  CT_QualName (int size = 3) : 
36947
44008
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
44009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
36948
44010
  static const char *NodeId ();
 
44011
  /** Get the name of the node. Can be compared with NodeId(). */
36949
44012
  const char *NodeName () const { return NodeId (); }
36950
 
  void print (ostream &) const;
 
44013
  /** Print the qualified name on the given stream. 
 
44014
   *  \param os The output stream. */
 
44015
  void print (ostream &os) const;
 
44016
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
36951
44017
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
44018
  /** Get the string containing the last name of the qualified name. */
36952
44019
  const char *Text () const { return Name ()->Text (); }
 
44020
  /** Get the type of the last name. */
36953
44021
  CTypeInfo *Type () const { return Name ()->Type (); }
 
44022
  /** Get the value of the last name. */
36954
44023
  CExprValue *Value () const { return Name ()->Value (); }
 
44024
  /** Get the semantic value object of the last name. */
36955
44025
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
44026
  /** Get the semantic information object of the last name. */
36956
44027
  CSemObject *SemObject () const { return Name ()->SemObject (); }
36957
 
  // special new / delete with reusing memory
 
44028
 
 
44029
public:
 
44030
  /** Own new operator reusing memory. */
36958
44031
  void *operator new (size_t);
36959
 
  void  operator delete (void *);
 
44032
  /** Own delete operator. */
 
44033
  void operator delete (void *);
36960
44034
   private:
36961
44035
  typedef CT_QualName CCExprResolveExpr;
36962
44036
 
36963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44037
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
36964
44038
 public :
36965
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44039
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
36966
44040
  typedef CT_QualName CExprResolveExpr;
36967
44041
 
36968
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44042
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
36969
44043
 public :
36970
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
36971
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44044
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44045
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36972
44046
};
36973
44047
 
 
44048
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
44049
 *  Tree node representing a qualified name with introducing name separator,
 
44050
 *  e.g. ::X::Y::Z. */
36974
44051
 
36975
 
#line 36976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44052
#line 44053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
36976
44053
} // closed Puma
 
44054
class CCExprResolve;
 
44055
class CExprResolve;
36977
44056
class WinIfExists;
36978
44057
class WinImportHandler;
36979
44058
class WinMacros;
36980
 
class CMatchSyntax;
36981
 
class ExtGnu;
 
44059
class WinAsm;
 
44060
class WinDeclSpecs;
 
44061
class WinMemberExplSpec;
 
44062
class WinTypeKeywords;
 
44063
class WinFriend;
36982
44064
class ExtAC;
36983
44065
class ExtACBuilderCoupling;
36984
44066
class ExtACSyntaxCoupling;
36985
44067
class ExtACTree;
36986
44068
class ExtACKeywords;
36987
 
class WinAsm;
36988
 
class WinDeclSpecs;
36989
 
class WinMemberExplSpec;
36990
 
class WinTypeKeywords;
 
44069
class ExtGnu;
36991
44070
class PragmaOnceUnitState;
36992
44071
class PragmaOnce;
36993
 
class CCExprResolve;
36994
 
class CExprResolve;
36995
 
namespace Puma {
36996
 
 
36997
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44072
class CMatchSyntax;
 
44073
namespace Puma {
 
44074
 
 
44075
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44076
 
 
44077
#line 44078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44078
} // closed Puma
 
44079
 
 
44080
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44081
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44082
#include "CCExprResolveH.ah"
 
44083
#endif
 
44084
namespace Puma {
 
44085
 
 
44086
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44087
 
 
44088
#line 44089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44089
} // closed Puma
 
44090
 
 
44091
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44092
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44093
#include "CExprResolveH.ah"
 
44094
#endif
 
44095
namespace Puma {
 
44096
 
 
44097
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
36998
44098
class CT_RootQualName : public CT_QualName {
36999
 
#line 37000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44099
#line 44100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44100
  friend class ::CCExprResolve;
 
44101
  friend class ::CExprResolve;
37000
44102
  friend class ::WinIfExists;
37001
44103
  friend class ::WinImportHandler;
37002
44104
  friend class ::WinMacros;
37003
 
  friend class ::CMatchSyntax;
37004
 
  friend class ::ExtGnu;
 
44105
  friend class ::WinAsm;
 
44106
  friend class ::WinDeclSpecs;
 
44107
  friend class ::WinMemberExplSpec;
 
44108
  friend class ::WinTypeKeywords;
 
44109
  friend class ::WinFriend;
37005
44110
  friend class ::ExtAC;
37006
44111
  friend class ::ExtACBuilderCoupling;
37007
44112
  friend class ::ExtACSyntaxCoupling;
37008
44113
  friend class ::ExtACTree;
37009
44114
  friend class ::ExtACKeywords;
37010
 
  friend class ::WinAsm;
37011
 
  friend class ::WinDeclSpecs;
37012
 
  friend class ::WinMemberExplSpec;
37013
 
  friend class ::WinTypeKeywords;
 
44115
  friend class ::ExtGnu;
37014
44116
  friend class ::PragmaOnceUnitState;
37015
44117
  friend class ::PragmaOnce;
37016
 
  friend class ::CCExprResolve;
37017
 
  friend class ::CExprResolve;
 
44118
  friend class ::CMatchSyntax;
37018
44119
 
37019
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44120
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37020
44121
 
37021
44122
public:
 
44123
  /** Constructor.
 
44124
   *  \param size Initial number of sub-name plus separator. */
37022
44125
  CT_RootQualName (int size = 2) : 
37023
44126
    CT_QualName (size) { AddProperties (INTRO); }
 
44127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37024
44128
  static const char *NodeId ();
 
44129
  /** Get the name of the node. Can be compared with NodeId(). */
37025
44130
  const char *NodeName () const { return NodeId (); }
37026
 
  // special new / delete with reusing memory
 
44131
 
 
44132
public:
 
44133
  /** Own new operator reusing memory. */
37027
44134
  void *operator new (size_t);
37028
 
  void  operator delete (void *);
 
44135
  /** Own delete operator. */
 
44136
  void operator delete (void *);
37029
44137
   private:
37030
44138
  typedef CT_RootQualName CCExprResolveExpr;
37031
44139
 
37032
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44140
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37033
44141
 public :
37034
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44142
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37035
44143
  typedef CT_RootQualName CExprResolveExpr;
37036
44144
 
37037
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44145
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37038
44146
 public :
37039
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37040
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44147
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44148
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37041
44149
};
37042
44150
 
 
44151
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
44152
 *  Tree node representing a binary expression, e.g. a+b. */
37043
44153
 
37044
 
#line 37045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44154
#line 44155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37045
44155
} // closed Puma
 
44156
class CCExprResolve;
 
44157
class CExprResolve;
37046
44158
class WinIfExists;
37047
44159
class WinImportHandler;
37048
44160
class WinMacros;
37049
 
class CMatchSyntax;
37050
 
class ExtGnu;
 
44161
class WinAsm;
 
44162
class WinDeclSpecs;
 
44163
class WinMemberExplSpec;
 
44164
class WinTypeKeywords;
 
44165
class WinFriend;
37051
44166
class ExtAC;
37052
44167
class ExtACBuilderCoupling;
37053
44168
class ExtACSyntaxCoupling;
37054
44169
class ExtACTree;
37055
44170
class ExtACKeywords;
37056
 
class WinAsm;
37057
 
class WinDeclSpecs;
37058
 
class WinMemberExplSpec;
37059
 
class WinTypeKeywords;
 
44171
class ExtGnu;
37060
44172
class PragmaOnceUnitState;
37061
44173
class PragmaOnce;
37062
 
class CCExprResolve;
37063
 
class CExprResolve;
37064
 
namespace Puma {
37065
 
 
37066
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37067
 
class CT_BinaryExpr : public CT_Expression {
37068
 
#line 37069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44174
class CMatchSyntax;
 
44175
namespace Puma {
 
44176
 
 
44177
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44178
 
 
44179
#line 44180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44180
} // closed Puma
 
44181
 
 
44182
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44183
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44184
#include "CCExprResolveH.ah"
 
44185
#endif
 
44186
namespace Puma {
 
44187
 
 
44188
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44189
 
 
44190
#line 44191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44191
} // closed Puma
 
44192
 
 
44193
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44194
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44195
#include "CExprResolveH.ah"
 
44196
#endif
 
44197
namespace Puma {
 
44198
 
 
44199
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44200
class CT_BinaryExpr : public CT_Call {
 
44201
#line 44202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44202
  friend class ::CCExprResolve;
 
44203
  friend class ::CExprResolve;
37069
44204
  friend class ::WinIfExists;
37070
44205
  friend class ::WinImportHandler;
37071
44206
  friend class ::WinMacros;
37072
 
  friend class ::CMatchSyntax;
37073
 
  friend class ::ExtGnu;
 
44207
  friend class ::WinAsm;
 
44208
  friend class ::WinDeclSpecs;
 
44209
  friend class ::WinMemberExplSpec;
 
44210
  friend class ::WinTypeKeywords;
 
44211
  friend class ::WinFriend;
37074
44212
  friend class ::ExtAC;
37075
44213
  friend class ::ExtACBuilderCoupling;
37076
44214
  friend class ::ExtACSyntaxCoupling;
37077
44215
  friend class ::ExtACTree;
37078
44216
  friend class ::ExtACKeywords;
37079
 
  friend class ::WinAsm;
37080
 
  friend class ::WinDeclSpecs;
37081
 
  friend class ::WinMemberExplSpec;
37082
 
  friend class ::WinTypeKeywords;
 
44217
  friend class ::ExtGnu;
37083
44218
  friend class ::PragmaOnceUnitState;
37084
44219
  friend class ::PragmaOnce;
37085
 
  friend class ::CCExprResolve;
37086
 
  friend class ::CExprResolve;
 
44220
  friend class ::CMatchSyntax;
37087
44221
 
37088
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44222
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37089
44223
 
37090
44224
  CTree *sons[3]; // expr, oper, expr
37091
44225
 
37092
44226
public:
 
44227
  /** Constructor. 
 
44228
   *  \param l Left hand side of the expression. 
 
44229
   *  \param o The operator token. 
 
44230
   *  \param r Right hand side of the expression. */
37093
44231
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
37094
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
44232
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
37095
44233
  }
 
44234
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37096
44235
  static const char *NodeId ();
 
44236
  /** Get the name of the node. Can be compared with NodeId(). */
37097
44237
  const char *NodeName () const { return NodeId (); }
 
44238
  /** Get the number of sons. */
37098
44239
  int Sons () const { return 3; }
 
44240
  /** Get the n-th son.
 
44241
   *  \param n The index of the son.
 
44242
   *  \return The n-th son or NULL. */
37099
44243
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44244
  /** Replace a son.
 
44245
   *  \param old_son The son to replace.
 
44246
   *  \param new_son The new son. */
37100
44247
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37101
44248
    CTree::ReplaceSon (sons, 3, old_son, new_son);
37102
44249
  }
37103
44250
   private:
37104
44251
  typedef CT_BinaryExpr CCExprResolveExpr;
37105
44252
 
37106
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44253
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37107
44254
 public :
37108
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44255
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37109
44256
  typedef CT_BinaryExpr CExprResolveExpr;
37110
44257
 
37111
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44258
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37112
44259
 public :
37113
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37114
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44260
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44261
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37115
44262
};
37116
44263
 
 
44264
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
44265
 *  Tree node representing a member pointer expression, e.g. a->b. */
37117
44266
 
37118
 
#line 37119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44267
#line 44268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37119
44268
} // closed Puma
 
44269
class CCExprResolve;
 
44270
class CExprResolve;
37120
44271
class WinIfExists;
37121
44272
class WinImportHandler;
37122
44273
class WinMacros;
37123
 
class CMatchSyntax;
37124
 
class ExtGnu;
 
44274
class WinAsm;
 
44275
class WinDeclSpecs;
 
44276
class WinMemberExplSpec;
 
44277
class WinTypeKeywords;
 
44278
class WinFriend;
37125
44279
class ExtAC;
37126
44280
class ExtACBuilderCoupling;
37127
44281
class ExtACSyntaxCoupling;
37128
44282
class ExtACTree;
37129
44283
class ExtACKeywords;
37130
 
class WinAsm;
37131
 
class WinDeclSpecs;
37132
 
class WinMemberExplSpec;
37133
 
class WinTypeKeywords;
 
44284
class ExtGnu;
37134
44285
class PragmaOnceUnitState;
37135
44286
class PragmaOnce;
37136
 
class CCExprResolve;
37137
 
class CExprResolve;
37138
 
namespace Puma {
37139
 
 
37140
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37141
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
37142
 
#line 37143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44287
class CMatchSyntax;
 
44288
namespace Puma {
 
44289
 
 
44290
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44291
 
 
44292
#line 44293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44293
} // closed Puma
 
44294
 
 
44295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44297
#include "CCExprResolveH.ah"
 
44298
#endif
 
44299
namespace Puma {
 
44300
 
 
44301
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44302
 
 
44303
#line 44304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44304
} // closed Puma
 
44305
 
 
44306
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44307
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44308
#include "CExprResolveH.ah"
 
44309
#endif
 
44310
namespace Puma {
 
44311
 
 
44312
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44313
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
44314
#line 44315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44315
  friend class ::CCExprResolve;
 
44316
  friend class ::CExprResolve;
37143
44317
  friend class ::WinIfExists;
37144
44318
  friend class ::WinImportHandler;
37145
44319
  friend class ::WinMacros;
37146
 
  friend class ::CMatchSyntax;
37147
 
  friend class ::ExtGnu;
 
44320
  friend class ::WinAsm;
 
44321
  friend class ::WinDeclSpecs;
 
44322
  friend class ::WinMemberExplSpec;
 
44323
  friend class ::WinTypeKeywords;
 
44324
  friend class ::WinFriend;
37148
44325
  friend class ::ExtAC;
37149
44326
  friend class ::ExtACBuilderCoupling;
37150
44327
  friend class ::ExtACSyntaxCoupling;
37151
44328
  friend class ::ExtACTree;
37152
44329
  friend class ::ExtACKeywords;
37153
 
  friend class ::WinAsm;
37154
 
  friend class ::WinDeclSpecs;
37155
 
  friend class ::WinMemberExplSpec;
37156
 
  friend class ::WinTypeKeywords;
 
44330
  friend class ::ExtGnu;
37157
44331
  friend class ::PragmaOnceUnitState;
37158
44332
  friend class ::PragmaOnce;
37159
 
  friend class ::CCExprResolve;
37160
 
  friend class ::CExprResolve;
37161
 
 
37162
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37163
 
 
 
44333
  friend class ::CMatchSyntax;
 
44334
 
 
44335
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44336
 
 
44337
  CTree *sons[3]; // expr, oper, expr
 
44338
  
37164
44339
public:
37165
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
37166
 
    CT_BinaryExpr (e, o, i) {}
 
44340
  /** Constructor.
 
44341
   *  \param e Expression on which to call the member.
 
44342
   *  \param o The arrow operator token.
 
44343
   *  \param i The member name. */
 
44344
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
44345
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
44346
  }
 
44347
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37167
44348
  static const char *NodeId ();
 
44349
  /** Get the name of the node. Can be compared with NodeId(). */
37168
44350
  const char *NodeName () const { return NodeId (); }
37169
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
44351
  /** Get the number of sons. */
 
44352
  int Sons () const { return 3; }
 
44353
  /** Get the n-th son.
 
44354
   *  \param n The index of the son.
 
44355
   *  \return The n-th son or NULL. */
 
44356
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
44357
  /** Replace a son.
 
44358
   *  \param old_son The son to replace.
 
44359
   *  \param new_son The new son. */
 
44360
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
44361
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
44362
  }
37170
44363
   private:
37171
44364
  typedef CT_MembPtrExpr CCExprResolveExpr;
37172
44365
 
37173
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44366
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37174
44367
 public :
37175
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44368
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37176
44369
  typedef CT_MembPtrExpr CExprResolveExpr;
37177
44370
 
37178
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37179
44372
 public :
37180
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37181
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44373
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44374
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37182
44375
};
37183
44376
 
 
44377
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
44378
 *  Tree node representing a member reference expression, e.g. a.b. */
37184
44379
 
37185
 
#line 37186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44380
#line 44381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37186
44381
} // closed Puma
 
44382
class CCExprResolve;
 
44383
class CExprResolve;
37187
44384
class WinIfExists;
37188
44385
class WinImportHandler;
37189
44386
class WinMacros;
37190
 
class CMatchSyntax;
37191
 
class ExtGnu;
 
44387
class WinAsm;
 
44388
class WinDeclSpecs;
 
44389
class WinMemberExplSpec;
 
44390
class WinTypeKeywords;
 
44391
class WinFriend;
37192
44392
class ExtAC;
37193
44393
class ExtACBuilderCoupling;
37194
44394
class ExtACSyntaxCoupling;
37195
44395
class ExtACTree;
37196
44396
class ExtACKeywords;
37197
 
class WinAsm;
37198
 
class WinDeclSpecs;
37199
 
class WinMemberExplSpec;
37200
 
class WinTypeKeywords;
 
44397
class ExtGnu;
37201
44398
class PragmaOnceUnitState;
37202
44399
class PragmaOnce;
37203
 
class CCExprResolve;
37204
 
class CExprResolve;
37205
 
namespace Puma {
37206
 
 
37207
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44400
class CMatchSyntax;
 
44401
namespace Puma {
 
44402
 
 
44403
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44404
 
 
44405
#line 44406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44406
} // closed Puma
 
44407
 
 
44408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44410
#include "CCExprResolveH.ah"
 
44411
#endif
 
44412
namespace Puma {
 
44413
 
 
44414
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44415
 
 
44416
#line 44417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44417
} // closed Puma
 
44418
 
 
44419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44421
#include "CExprResolveH.ah"
 
44422
#endif
 
44423
namespace Puma {
 
44424
 
 
44425
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37208
44426
class CT_MembRefExpr : public CT_MembPtrExpr {
37209
 
#line 37210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44427
#line 44428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44428
  friend class ::CCExprResolve;
 
44429
  friend class ::CExprResolve;
37210
44430
  friend class ::WinIfExists;
37211
44431
  friend class ::WinImportHandler;
37212
44432
  friend class ::WinMacros;
37213
 
  friend class ::CMatchSyntax;
37214
 
  friend class ::ExtGnu;
 
44433
  friend class ::WinAsm;
 
44434
  friend class ::WinDeclSpecs;
 
44435
  friend class ::WinMemberExplSpec;
 
44436
  friend class ::WinTypeKeywords;
 
44437
  friend class ::WinFriend;
37215
44438
  friend class ::ExtAC;
37216
44439
  friend class ::ExtACBuilderCoupling;
37217
44440
  friend class ::ExtACSyntaxCoupling;
37218
44441
  friend class ::ExtACTree;
37219
44442
  friend class ::ExtACKeywords;
37220
 
  friend class ::WinAsm;
37221
 
  friend class ::WinDeclSpecs;
37222
 
  friend class ::WinMemberExplSpec;
37223
 
  friend class ::WinTypeKeywords;
 
44443
  friend class ::ExtGnu;
37224
44444
  friend class ::PragmaOnceUnitState;
37225
44445
  friend class ::PragmaOnce;
37226
 
  friend class ::CCExprResolve;
37227
 
  friend class ::CExprResolve;
 
44446
  friend class ::CMatchSyntax;
37228
44447
 
37229
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44448
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37230
44449
 
37231
44450
public:
 
44451
  /** Constructor.
 
44452
   *  \param e Expression on which to call the member.
 
44453
   *  \param o The dot operator.
 
44454
   *  \param i The member name. */
37232
44455
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
37233
44456
    CT_MembPtrExpr (e, o, i) {}
 
44457
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37234
44458
  static const char *NodeId ();
 
44459
  /** Get the name of the node. Can be compared with NodeId(). */
37235
44460
  const char *NodeName () const { return NodeId (); }
37236
44461
   private:
37237
44462
  typedef CT_MembRefExpr CCExprResolveExpr;
37238
44463
 
37239
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44464
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37240
44465
 public :
37241
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44466
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37242
44467
  typedef CT_MembRefExpr CExprResolveExpr;
37243
44468
 
37244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44469
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37245
44470
 public :
37246
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37247
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44471
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44472
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37248
44473
};
37249
44474
 
 
44475
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
44476
 *  Base class for tree nodes representing unary expressions. */
37250
44477
 
37251
 
#line 37252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44478
#line 44479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37252
44479
} // closed Puma
 
44480
class CCExprResolve;
 
44481
class CExprResolve;
37253
44482
class WinIfExists;
37254
44483
class WinImportHandler;
37255
44484
class WinMacros;
37256
 
class CMatchSyntax;
37257
 
class ExtGnu;
 
44485
class WinAsm;
 
44486
class WinDeclSpecs;
 
44487
class WinMemberExplSpec;
 
44488
class WinTypeKeywords;
 
44489
class WinFriend;
37258
44490
class ExtAC;
37259
44491
class ExtACBuilderCoupling;
37260
44492
class ExtACSyntaxCoupling;
37261
44493
class ExtACTree;
37262
44494
class ExtACKeywords;
37263
 
class WinAsm;
37264
 
class WinDeclSpecs;
37265
 
class WinMemberExplSpec;
37266
 
class WinTypeKeywords;
 
44495
class ExtGnu;
37267
44496
class PragmaOnceUnitState;
37268
44497
class PragmaOnce;
37269
 
class CCExprResolve;
37270
 
class CExprResolve;
37271
 
namespace Puma {
37272
 
 
37273
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
37274
 
class CT_UnaryExpr : public CT_Expression {
37275
 
#line 37276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44498
class CMatchSyntax;
 
44499
namespace Puma {
 
44500
 
 
44501
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44502
 
 
44503
#line 44504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44504
} // closed Puma
 
44505
 
 
44506
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44507
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44508
#include "CCExprResolveH.ah"
 
44509
#endif
 
44510
namespace Puma {
 
44511
 
 
44512
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44513
 
 
44514
#line 44515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44515
} // closed Puma
 
44516
 
 
44517
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44518
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44519
#include "CExprResolveH.ah"
 
44520
#endif
 
44521
namespace Puma {
 
44522
 
 
44523
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44524
class CT_UnaryExpr : public CT_Call {
 
44525
#line 44526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44526
  friend class ::CCExprResolve;
 
44527
  friend class ::CExprResolve;
37276
44528
  friend class ::WinIfExists;
37277
44529
  friend class ::WinImportHandler;
37278
44530
  friend class ::WinMacros;
37279
 
  friend class ::CMatchSyntax;
37280
 
  friend class ::ExtGnu;
 
44531
  friend class ::WinAsm;
 
44532
  friend class ::WinDeclSpecs;
 
44533
  friend class ::WinMemberExplSpec;
 
44534
  friend class ::WinTypeKeywords;
 
44535
  friend class ::WinFriend;
37281
44536
  friend class ::ExtAC;
37282
44537
  friend class ::ExtACBuilderCoupling;
37283
44538
  friend class ::ExtACSyntaxCoupling;
37284
44539
  friend class ::ExtACTree;
37285
44540
  friend class ::ExtACKeywords;
37286
 
  friend class ::WinAsm;
37287
 
  friend class ::WinDeclSpecs;
37288
 
  friend class ::WinMemberExplSpec;
37289
 
  friend class ::WinTypeKeywords;
 
44541
  friend class ::ExtGnu;
37290
44542
  friend class ::PragmaOnceUnitState;
37291
44543
  friend class ::PragmaOnce;
37292
 
  friend class ::CCExprResolve;
37293
 
  friend class ::CExprResolve;
 
44544
  friend class ::CMatchSyntax;
37294
44545
 
37295
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44546
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37296
44547
 
37297
44548
  CTree *sons[2]; // oper, expr
37298
44549
 
37299
44550
public:
37300
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
44551
  /** Constructor.
 
44552
   *  \param o The unary operator.
 
44553
   *  \param e The expression on which the operator is invoked. */
 
44554
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
44555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37301
44556
  static const char *NodeId ();
 
44557
  /** Get the name of the node. Can be compared with NodeId(). */
37302
44558
  const char *NodeName () const { return NodeId (); }
 
44559
  /** Get the number of sons. */
37303
44560
  int Sons () const { return 2; }
 
44561
  /** Get the n-th son.
 
44562
   *  \param n The index of the son.
 
44563
   *  \return The n-th son or NULL. */
37304
44564
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
44565
  /** Replace a son.
 
44566
   *  \param old_son The son to replace.
 
44567
   *  \param new_son The new son. */
37305
44568
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37306
44569
    CTree::ReplaceSon (sons, 2, old_son, new_son);
37307
44570
  }
 
44571
  /** Get the expression node. */
37308
44572
  CTree *Expr () const { return sons[1]; }
37309
44573
   private:
37310
44574
  typedef CT_UnaryExpr CCExprResolveExpr;
37311
44575
 
37312
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44576
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37313
44577
 public :
37314
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44578
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37315
44579
  typedef CT_UnaryExpr CExprResolveExpr;
37316
44580
 
37317
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44581
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37318
44582
 public :
37319
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37320
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44583
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44584
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37321
44585
};
37322
44586
 
 
44587
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
44588
 *  Tree node representing a postfix expression, e.g. a++. */
37323
44589
 
37324
 
#line 37325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44590
#line 44591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37325
44591
} // closed Puma
 
44592
class CCExprResolve;
 
44593
class CExprResolve;
37326
44594
class WinIfExists;
37327
44595
class WinImportHandler;
37328
44596
class WinMacros;
37329
 
class CMatchSyntax;
37330
 
class ExtGnu;
 
44597
class WinAsm;
 
44598
class WinDeclSpecs;
 
44599
class WinMemberExplSpec;
 
44600
class WinTypeKeywords;
 
44601
class WinFriend;
37331
44602
class ExtAC;
37332
44603
class ExtACBuilderCoupling;
37333
44604
class ExtACSyntaxCoupling;
37334
44605
class ExtACTree;
37335
44606
class ExtACKeywords;
37336
 
class WinAsm;
37337
 
class WinDeclSpecs;
37338
 
class WinMemberExplSpec;
37339
 
class WinTypeKeywords;
 
44607
class ExtGnu;
37340
44608
class PragmaOnceUnitState;
37341
44609
class PragmaOnce;
37342
 
class CCExprResolve;
37343
 
class CExprResolve;
37344
 
namespace Puma {
37345
 
 
37346
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44610
class CMatchSyntax;
 
44611
namespace Puma {
 
44612
 
 
44613
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44614
 
 
44615
#line 44616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44616
} // closed Puma
 
44617
 
 
44618
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44619
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44620
#include "CCExprResolveH.ah"
 
44621
#endif
 
44622
namespace Puma {
 
44623
 
 
44624
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44625
 
 
44626
#line 44627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44627
} // closed Puma
 
44628
 
 
44629
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44630
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44631
#include "CExprResolveH.ah"
 
44632
#endif
 
44633
namespace Puma {
 
44634
 
 
44635
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37347
44636
class CT_PostfixExpr : public CT_UnaryExpr {
37348
 
#line 37349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44637
#line 44638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44638
  friend class ::CCExprResolve;
 
44639
  friend class ::CExprResolve;
37349
44640
  friend class ::WinIfExists;
37350
44641
  friend class ::WinImportHandler;
37351
44642
  friend class ::WinMacros;
37352
 
  friend class ::CMatchSyntax;
37353
 
  friend class ::ExtGnu;
 
44643
  friend class ::WinAsm;
 
44644
  friend class ::WinDeclSpecs;
 
44645
  friend class ::WinMemberExplSpec;
 
44646
  friend class ::WinTypeKeywords;
 
44647
  friend class ::WinFriend;
37354
44648
  friend class ::ExtAC;
37355
44649
  friend class ::ExtACBuilderCoupling;
37356
44650
  friend class ::ExtACSyntaxCoupling;
37357
44651
  friend class ::ExtACTree;
37358
44652
  friend class ::ExtACKeywords;
37359
 
  friend class ::WinAsm;
37360
 
  friend class ::WinDeclSpecs;
37361
 
  friend class ::WinMemberExplSpec;
37362
 
  friend class ::WinTypeKeywords;
 
44653
  friend class ::ExtGnu;
37363
44654
  friend class ::PragmaOnceUnitState;
37364
44655
  friend class ::PragmaOnce;
37365
 
  friend class ::CCExprResolve;
37366
 
  friend class ::CExprResolve;
 
44656
  friend class ::CMatchSyntax;
37367
44657
 
37368
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44658
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37369
44659
 
37370
44660
public:
 
44661
  /** Constructor.
 
44662
   *  \param e The expression on which to invoke the operator. 
 
44663
   *  \param o The postfix operator. */
37371
44664
  CT_PostfixExpr (CTree *e, CTree *o) :
37372
44665
    CT_UnaryExpr (e, o) {}
 
44666
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37373
44667
  static const char *NodeId ();
 
44668
  /** Get the name of the node. Can be compared with NodeId(). */
37374
44669
  const char *NodeName () const { return NodeId (); }
37375
44670
   private:
37376
44671
  typedef CT_PostfixExpr CCExprResolveExpr;
37377
44672
 
37378
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44673
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37379
44674
 public :
37380
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44675
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37381
44676
  typedef CT_PostfixExpr CExprResolveExpr;
37382
44677
 
37383
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44678
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37384
44679
 public :
37385
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37386
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44680
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44681
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37387
44682
};
37388
44683
 
 
44684
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
44685
 *  Tree node representing an address expression, e.g. &a. */
37389
44686
 
37390
 
#line 37391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44687
#line 44688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37391
44688
} // closed Puma
 
44689
class CCExprResolve;
 
44690
class CExprResolve;
37392
44691
class WinIfExists;
37393
44692
class WinImportHandler;
37394
44693
class WinMacros;
37395
 
class CMatchSyntax;
37396
 
class ExtGnu;
 
44694
class WinAsm;
 
44695
class WinDeclSpecs;
 
44696
class WinMemberExplSpec;
 
44697
class WinTypeKeywords;
 
44698
class WinFriend;
37397
44699
class ExtAC;
37398
44700
class ExtACBuilderCoupling;
37399
44701
class ExtACSyntaxCoupling;
37400
44702
class ExtACTree;
37401
44703
class ExtACKeywords;
37402
 
class WinAsm;
37403
 
class WinDeclSpecs;
37404
 
class WinMemberExplSpec;
37405
 
class WinTypeKeywords;
 
44704
class ExtGnu;
37406
44705
class PragmaOnceUnitState;
37407
44706
class PragmaOnce;
37408
 
class CCExprResolve;
37409
 
class CExprResolve;
37410
 
namespace Puma {
37411
 
 
37412
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44707
class CMatchSyntax;
 
44708
namespace Puma {
 
44709
 
 
44710
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44711
 
 
44712
#line 44713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44713
} // closed Puma
 
44714
 
 
44715
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44716
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44717
#include "CCExprResolveH.ah"
 
44718
#endif
 
44719
namespace Puma {
 
44720
 
 
44721
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44722
 
 
44723
#line 44724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44724
} // closed Puma
 
44725
 
 
44726
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44727
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44728
#include "CExprResolveH.ah"
 
44729
#endif
 
44730
namespace Puma {
 
44731
 
 
44732
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37413
44733
class CT_AddrExpr : public CT_UnaryExpr {
37414
 
#line 37415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44734
#line 44735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44735
  friend class ::CCExprResolve;
 
44736
  friend class ::CExprResolve;
37415
44737
  friend class ::WinIfExists;
37416
44738
  friend class ::WinImportHandler;
37417
44739
  friend class ::WinMacros;
37418
 
  friend class ::CMatchSyntax;
37419
 
  friend class ::ExtGnu;
 
44740
  friend class ::WinAsm;
 
44741
  friend class ::WinDeclSpecs;
 
44742
  friend class ::WinMemberExplSpec;
 
44743
  friend class ::WinTypeKeywords;
 
44744
  friend class ::WinFriend;
37420
44745
  friend class ::ExtAC;
37421
44746
  friend class ::ExtACBuilderCoupling;
37422
44747
  friend class ::ExtACSyntaxCoupling;
37423
44748
  friend class ::ExtACTree;
37424
44749
  friend class ::ExtACKeywords;
37425
 
  friend class ::WinAsm;
37426
 
  friend class ::WinDeclSpecs;
37427
 
  friend class ::WinMemberExplSpec;
37428
 
  friend class ::WinTypeKeywords;
 
44750
  friend class ::ExtGnu;
37429
44751
  friend class ::PragmaOnceUnitState;
37430
44752
  friend class ::PragmaOnce;
37431
 
  friend class ::CCExprResolve;
37432
 
  friend class ::CExprResolve;
 
44753
  friend class ::CMatchSyntax;
37433
44754
 
37434
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44755
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37435
44756
 
37436
44757
public:
 
44758
  /** Constructor.
 
44759
   *  \param o The address operator, i.e. '&'.
 
44760
   *  \param e The expression from which to take the address. */
37437
44761
  CT_AddrExpr (CTree *o, CTree *e) :
37438
44762
    CT_UnaryExpr (o, e) {}
 
44763
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37439
44764
  static const char *NodeId ();
 
44765
  /** Get the name of the node. Can be compared with NodeId(). */
37440
44766
  const char *NodeName () const { return NodeId (); }
37441
44767
   private:
37442
44768
  typedef CT_AddrExpr CCExprResolveExpr;
37443
44769
 
37444
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44770
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37445
44771
 public :
37446
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44772
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37447
44773
  typedef CT_AddrExpr CExprResolveExpr;
37448
44774
 
37449
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44775
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37450
44776
 public :
37451
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37452
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44777
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44778
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37453
44779
};
37454
44780
 
 
44781
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
44782
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
37455
44783
 
37456
 
#line 37457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44784
#line 44785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37457
44785
} // closed Puma
 
44786
class CCExprResolve;
 
44787
class CExprResolve;
37458
44788
class WinIfExists;
37459
44789
class WinImportHandler;
37460
44790
class WinMacros;
37461
 
class CMatchSyntax;
37462
 
class ExtGnu;
 
44791
class WinAsm;
 
44792
class WinDeclSpecs;
 
44793
class WinMemberExplSpec;
 
44794
class WinTypeKeywords;
 
44795
class WinFriend;
37463
44796
class ExtAC;
37464
44797
class ExtACBuilderCoupling;
37465
44798
class ExtACSyntaxCoupling;
37466
44799
class ExtACTree;
37467
44800
class ExtACKeywords;
37468
 
class WinAsm;
37469
 
class WinDeclSpecs;
37470
 
class WinMemberExplSpec;
37471
 
class WinTypeKeywords;
 
44801
class ExtGnu;
37472
44802
class PragmaOnceUnitState;
37473
44803
class PragmaOnce;
37474
 
class CCExprResolve;
37475
 
class CExprResolve;
37476
 
namespace Puma {
37477
 
 
37478
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44804
class CMatchSyntax;
 
44805
namespace Puma {
 
44806
 
 
44807
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44808
 
 
44809
#line 44810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44810
} // closed Puma
 
44811
 
 
44812
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44813
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44814
#include "CCExprResolveH.ah"
 
44815
#endif
 
44816
namespace Puma {
 
44817
 
 
44818
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44819
 
 
44820
#line 44821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44821
} // closed Puma
 
44822
 
 
44823
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44824
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44825
#include "CExprResolveH.ah"
 
44826
#endif
 
44827
namespace Puma {
 
44828
 
 
44829
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37479
44830
class CT_DerefExpr : public CT_UnaryExpr {
37480
 
#line 37481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44831
#line 44832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44832
  friend class ::CCExprResolve;
 
44833
  friend class ::CExprResolve;
37481
44834
  friend class ::WinIfExists;
37482
44835
  friend class ::WinImportHandler;
37483
44836
  friend class ::WinMacros;
37484
 
  friend class ::CMatchSyntax;
37485
 
  friend class ::ExtGnu;
 
44837
  friend class ::WinAsm;
 
44838
  friend class ::WinDeclSpecs;
 
44839
  friend class ::WinMemberExplSpec;
 
44840
  friend class ::WinTypeKeywords;
 
44841
  friend class ::WinFriend;
37486
44842
  friend class ::ExtAC;
37487
44843
  friend class ::ExtACBuilderCoupling;
37488
44844
  friend class ::ExtACSyntaxCoupling;
37489
44845
  friend class ::ExtACTree;
37490
44846
  friend class ::ExtACKeywords;
37491
 
  friend class ::WinAsm;
37492
 
  friend class ::WinDeclSpecs;
37493
 
  friend class ::WinMemberExplSpec;
37494
 
  friend class ::WinTypeKeywords;
 
44847
  friend class ::ExtGnu;
37495
44848
  friend class ::PragmaOnceUnitState;
37496
44849
  friend class ::PragmaOnce;
37497
 
  friend class ::CCExprResolve;
37498
 
  friend class ::CExprResolve;
 
44850
  friend class ::CMatchSyntax;
37499
44851
 
37500
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44852
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37501
44853
 
37502
44854
public:
 
44855
  /** Constructor.
 
44856
   *  \param o The dereferencing operator, i.e. '*'.
 
44857
   *  \param e The expression to dereference. */
37503
44858
  CT_DerefExpr (CTree *o, CTree *e) :
37504
44859
    CT_UnaryExpr (o, e) {}
 
44860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37505
44861
  static const char *NodeId ();
 
44862
  /** Get the name of the node. Can be compared with NodeId(). */
37506
44863
  const char *NodeName () const { return NodeId (); }
37507
44864
   private:
37508
44865
  typedef CT_DerefExpr CCExprResolveExpr;
37509
44866
 
37510
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44867
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37511
44868
 public :
37512
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44869
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37513
44870
  typedef CT_DerefExpr CExprResolveExpr;
37514
44871
 
37515
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44872
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37516
44873
 public :
37517
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37518
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44874
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44875
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37519
44876
};
37520
44877
 
 
44878
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
44879
 *  Tree node representing a delete expression, e.g. delete a. */
37521
44880
 
37522
 
#line 37523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44881
#line 44882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37523
44882
} // closed Puma
 
44883
class CCExprResolve;
 
44884
class CExprResolve;
37524
44885
class WinIfExists;
37525
44886
class WinImportHandler;
37526
44887
class WinMacros;
37527
 
class CMatchSyntax;
37528
 
class ExtGnu;
 
44888
class WinAsm;
 
44889
class WinDeclSpecs;
 
44890
class WinMemberExplSpec;
 
44891
class WinTypeKeywords;
 
44892
class WinFriend;
37529
44893
class ExtAC;
37530
44894
class ExtACBuilderCoupling;
37531
44895
class ExtACSyntaxCoupling;
37532
44896
class ExtACTree;
37533
44897
class ExtACKeywords;
37534
 
class WinAsm;
37535
 
class WinDeclSpecs;
37536
 
class WinMemberExplSpec;
37537
 
class WinTypeKeywords;
 
44898
class ExtGnu;
37538
44899
class PragmaOnceUnitState;
37539
44900
class PragmaOnce;
37540
 
class CCExprResolve;
37541
 
class CExprResolve;
37542
 
namespace Puma {
37543
 
 
37544
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44901
class CMatchSyntax;
 
44902
namespace Puma {
 
44903
 
 
44904
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44905
 
 
44906
#line 44907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44907
} // closed Puma
 
44908
 
 
44909
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44910
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44911
#include "CCExprResolveH.ah"
 
44912
#endif
 
44913
namespace Puma {
 
44914
 
 
44915
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44916
 
 
44917
#line 44918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44918
} // closed Puma
 
44919
 
 
44920
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44921
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44922
#include "CExprResolveH.ah"
 
44923
#endif
 
44924
namespace Puma {
 
44925
 
 
44926
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37545
44927
class CT_DeleteExpr : public CT_Expression, public CSemObject {
37546
 
#line 37547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44928
#line 44929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
44929
  friend class ::CCExprResolve;
 
44930
  friend class ::CExprResolve;
37547
44931
  friend class ::WinIfExists;
37548
44932
  friend class ::WinImportHandler;
37549
44933
  friend class ::WinMacros;
37550
 
  friend class ::CMatchSyntax;
37551
 
  friend class ::ExtGnu;
 
44934
  friend class ::WinAsm;
 
44935
  friend class ::WinDeclSpecs;
 
44936
  friend class ::WinMemberExplSpec;
 
44937
  friend class ::WinTypeKeywords;
 
44938
  friend class ::WinFriend;
37552
44939
  friend class ::ExtAC;
37553
44940
  friend class ::ExtACBuilderCoupling;
37554
44941
  friend class ::ExtACSyntaxCoupling;
37555
44942
  friend class ::ExtACTree;
37556
44943
  friend class ::ExtACKeywords;
37557
 
  friend class ::WinAsm;
37558
 
  friend class ::WinDeclSpecs;
37559
 
  friend class ::WinMemberExplSpec;
37560
 
  friend class ::WinTypeKeywords;
 
44944
  friend class ::ExtGnu;
37561
44945
  friend class ::PragmaOnceUnitState;
37562
44946
  friend class ::PragmaOnce;
37563
 
  friend class ::CCExprResolve;
37564
 
  friend class ::CExprResolve;
 
44947
  friend class ::CMatchSyntax;
37565
44948
 
37566
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44949
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37567
44950
 
37568
44951
  CTree *sons[2]; // oper, expr
37569
44952
 
37570
44953
public:
37571
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
44954
  /** Constructor.
 
44955
   *  \param op The delete operator.
 
44956
   *  \param e The expression representing the object to delete. */
 
44957
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
44958
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37572
44959
  static const char *NodeId ();
 
44960
  /** Get the name of the node. Can be compared with NodeId(). */
37573
44961
  const char *NodeName () const { return NodeId (); }
 
44962
  /** Get the number of sons. */
37574
44963
  int Sons () const { return 2; }
 
44964
  /** Get the n-th son.
 
44965
   *  \param n The index of the son.
 
44966
   *  \return The n-th son or NULL. */
37575
44967
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
44968
  /** Replace a son.
 
44969
   *  \param old_son The son to replace.
 
44970
   *  \param new_son The new son. */
37576
44971
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37577
44972
    CTree::ReplaceSon (sons, 2, old_son, new_son);
37578
44973
  }
 
44974
  /** Get the expression. */
37579
44975
  CTree *Expr () const { return sons[1]; }
 
44976
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
37580
44977
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
44978
  /** Get the semantic information object. */
37581
44979
  CSemObject *SemObject () const { return (CSemObject*)this; }
37582
44980
   private:
37583
44981
  typedef CT_DeleteExpr CCExprResolveExpr;
37584
44982
 
37585
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
44983
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37586
44984
 public :
37587
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
44985
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37588
44986
  typedef CT_DeleteExpr CExprResolveExpr;
37589
44987
 
37590
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
44988
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37591
44989
 public :
37592
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37593
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
44990
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
44991
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37594
44992
};
37595
44993
 
 
44994
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
44995
 *  Tree node representing a new expression, e.g. new A(). */
37596
44996
 
37597
 
#line 37598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
44997
#line 44998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37598
44998
} // closed Puma
 
44999
class CCExprResolve;
 
45000
class CExprResolve;
37599
45001
class WinIfExists;
37600
45002
class WinImportHandler;
37601
45003
class WinMacros;
37602
 
class CMatchSyntax;
37603
 
class ExtGnu;
 
45004
class WinAsm;
 
45005
class WinDeclSpecs;
 
45006
class WinMemberExplSpec;
 
45007
class WinTypeKeywords;
 
45008
class WinFriend;
37604
45009
class ExtAC;
37605
45010
class ExtACBuilderCoupling;
37606
45011
class ExtACSyntaxCoupling;
37607
45012
class ExtACTree;
37608
45013
class ExtACKeywords;
37609
 
class WinAsm;
37610
 
class WinDeclSpecs;
37611
 
class WinMemberExplSpec;
37612
 
class WinTypeKeywords;
 
45014
class ExtGnu;
37613
45015
class PragmaOnceUnitState;
37614
45016
class PragmaOnce;
37615
 
class CCExprResolve;
37616
 
class CExprResolve;
37617
 
namespace Puma {
37618
 
 
37619
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45017
class CMatchSyntax;
 
45018
namespace Puma {
 
45019
 
 
45020
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45021
 
 
45022
#line 45023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45023
} // closed Puma
 
45024
 
 
45025
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45026
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45027
#include "CCExprResolveH.ah"
 
45028
#endif
 
45029
namespace Puma {
 
45030
 
 
45031
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45032
 
 
45033
#line 45034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45034
} // closed Puma
 
45035
 
 
45036
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45037
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45038
#include "CExprResolveH.ah"
 
45039
#endif
 
45040
namespace Puma {
 
45041
 
 
45042
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37620
45043
class CT_NewExpr : public CT_Expression, public CSemObject {
37621
 
#line 37622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45044
#line 45045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45045
  friend class ::CCExprResolve;
 
45046
  friend class ::CExprResolve;
37622
45047
  friend class ::WinIfExists;
37623
45048
  friend class ::WinImportHandler;
37624
45049
  friend class ::WinMacros;
37625
 
  friend class ::CMatchSyntax;
37626
 
  friend class ::ExtGnu;
 
45050
  friend class ::WinAsm;
 
45051
  friend class ::WinDeclSpecs;
 
45052
  friend class ::WinMemberExplSpec;
 
45053
  friend class ::WinTypeKeywords;
 
45054
  friend class ::WinFriend;
37627
45055
  friend class ::ExtAC;
37628
45056
  friend class ::ExtACBuilderCoupling;
37629
45057
  friend class ::ExtACSyntaxCoupling;
37630
45058
  friend class ::ExtACTree;
37631
45059
  friend class ::ExtACKeywords;
37632
 
  friend class ::WinAsm;
37633
 
  friend class ::WinDeclSpecs;
37634
 
  friend class ::WinMemberExplSpec;
37635
 
  friend class ::WinTypeKeywords;
 
45060
  friend class ::ExtGnu;
37636
45061
  friend class ::PragmaOnceUnitState;
37637
45062
  friend class ::PragmaOnce;
37638
 
  friend class ::CCExprResolve;
37639
 
  friend class ::CExprResolve;
 
45063
  friend class ::CMatchSyntax;
37640
45064
 
37641
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45065
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37642
45066
 
37643
45067
  CTree *sons[6]; // oper, placement, open, type, close, init
37644
45068
 
37645
45069
public:
 
45070
  /** Constructor.
 
45071
   *  \param op The new operator.
 
45072
   *  \param p The optional placement expression.
 
45073
   *  \param o The optional left parenthesis around the type identifier.
 
45074
   *  \param t The type identifier specifying the type of the object to create.
 
45075
   *  \param c The optional right parenthesis around the type identifier.
 
45076
   *  \param i The optional initializer. */
37646
45077
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
37647
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
45078
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
45079
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
37648
45080
  }
 
45081
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37649
45082
  static const char *NodeId ();
 
45083
  /** Get the name of the node. Can be compared with NodeId(). */
37650
45084
  const char *NodeName () const { return NodeId (); }
 
45085
  /** Get the number of sons. */
37651
45086
  int Sons () const { return CTree::Sons (sons, 6); }
 
45087
  /** Get the n-th son.
 
45088
   *  \param n The index of the son.
 
45089
   *  \return The n-th son or NULL. */
37652
45090
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
45091
  /** Replace a son.
 
45092
   *  \param old_son The son to replace.
 
45093
   *  \param new_son The new son. */
37653
45094
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37654
45095
    CTree::ReplaceSon (sons, 6, old_son, new_son);
37655
45096
  }
 
45097
  /** Get the operator name. */
37656
45098
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
45099
  /** Get the placement expression. */
37657
45100
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
45101
  /** Get the initializer. */
37658
45102
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
45103
  /** Get the type of the object to create. */
37659
45104
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
45105
  /** Get the semantic information object. */
37660
45106
  CSemObject *SemObject () const { return (CSemObject*)this; }
37661
45107
   private:
37662
45108
  typedef CT_NewExpr CCExprResolveExpr;
37663
45109
 
37664
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45110
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37665
45111
 public :
37666
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45112
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37667
45113
  typedef CT_NewExpr CExprResolveExpr;
37668
45114
 
37669
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45115
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37670
45116
 public :
37671
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37672
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45117
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45118
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37673
45119
};
37674
45120
 
 
45121
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
45122
 *  Tree node representing an if-then expression, 
 
45123
 *  e.g. a>0?a:b or a?:b. */
37675
45124
 
37676
 
#line 37677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45125
#line 45126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37677
45126
} // closed Puma
 
45127
class CCExprResolve;
 
45128
class CExprResolve;
37678
45129
class WinIfExists;
37679
45130
class WinImportHandler;
37680
45131
class WinMacros;
37681
 
class CMatchSyntax;
37682
 
class ExtGnu;
 
45132
class WinAsm;
 
45133
class WinDeclSpecs;
 
45134
class WinMemberExplSpec;
 
45135
class WinTypeKeywords;
 
45136
class WinFriend;
37683
45137
class ExtAC;
37684
45138
class ExtACBuilderCoupling;
37685
45139
class ExtACSyntaxCoupling;
37686
45140
class ExtACTree;
37687
45141
class ExtACKeywords;
37688
 
class WinAsm;
37689
 
class WinDeclSpecs;
37690
 
class WinMemberExplSpec;
37691
 
class WinTypeKeywords;
 
45142
class ExtGnu;
37692
45143
class PragmaOnceUnitState;
37693
45144
class PragmaOnce;
37694
 
class CCExprResolve;
37695
 
class CExprResolve;
37696
 
namespace Puma {
37697
 
 
37698
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45145
class CMatchSyntax;
 
45146
namespace Puma {
 
45147
 
 
45148
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45149
 
 
45150
#line 45151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45151
} // closed Puma
 
45152
 
 
45153
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45154
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45155
#include "CCExprResolveH.ah"
 
45156
#endif
 
45157
namespace Puma {
 
45158
 
 
45159
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45160
 
 
45161
#line 45162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45162
} // closed Puma
 
45163
 
 
45164
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45165
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45166
#include "CExprResolveH.ah"
 
45167
#endif
 
45168
namespace Puma {
 
45169
 
 
45170
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37699
45171
class CT_IfThenExpr : public CT_Expression {
37700
 
#line 37701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45172
#line 45173 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45173
  friend class ::CCExprResolve;
 
45174
  friend class ::CExprResolve;
37701
45175
  friend class ::WinIfExists;
37702
45176
  friend class ::WinImportHandler;
37703
45177
  friend class ::WinMacros;
37704
 
  friend class ::CMatchSyntax;
37705
 
  friend class ::ExtGnu;
 
45178
  friend class ::WinAsm;
 
45179
  friend class ::WinDeclSpecs;
 
45180
  friend class ::WinMemberExplSpec;
 
45181
  friend class ::WinTypeKeywords;
 
45182
  friend class ::WinFriend;
37706
45183
  friend class ::ExtAC;
37707
45184
  friend class ::ExtACBuilderCoupling;
37708
45185
  friend class ::ExtACSyntaxCoupling;
37709
45186
  friend class ::ExtACTree;
37710
45187
  friend class ::ExtACKeywords;
37711
 
  friend class ::WinAsm;
37712
 
  friend class ::WinDeclSpecs;
37713
 
  friend class ::WinMemberExplSpec;
37714
 
  friend class ::WinTypeKeywords;
 
45188
  friend class ::ExtGnu;
37715
45189
  friend class ::PragmaOnceUnitState;
37716
45190
  friend class ::PragmaOnce;
37717
 
  friend class ::CCExprResolve;
37718
 
  friend class ::CExprResolve;
 
45191
  friend class ::CMatchSyntax;
37719
45192
 
37720
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45193
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37721
45194
 
37722
45195
  CTree *sons[5]; // cond, oper, left, colon, right
37723
45196
 
37724
45197
public:
 
45198
  /** Constructor.
 
45199
   *  \param c1 The condition expression.
 
45200
   *  \param o The question mark operator. 
 
45201
   *  \param l The expression to the left of the colon.
 
45202
   *  \param c2 The colon operator.
 
45203
   *  \param r The expression to the right of the colon. */ 
37725
45204
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
37726
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
45205
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
45206
    AddSon (sons[3], c2); AddSon (sons[4], r);
37727
45207
  }
 
45208
  /** Constructor.
 
45209
   *  \param c1 The condition expression.
 
45210
   *  \param o The question mark operator. 
 
45211
   *  \param c2 The colon operator.
 
45212
   *  \param r The expression to the right of the colon. */ 
37728
45213
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
37729
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
45214
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
45215
    AddSon (sons[3], c2); AddSon (sons[4], r);
37730
45216
  }
 
45217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37731
45218
  static const char *NodeId ();
 
45219
  /** Get the name of the node. Can be compared with NodeId(). */
37732
45220
  const char *NodeName () const { return NodeId (); }
 
45221
  /** Get the number of sons. */
37733
45222
  int Sons () const { return CTree::Sons (sons, 5); }
 
45223
  /** Get the n-th son.
 
45224
   *  \param n The index of the son.
 
45225
   *  \return The n-th son or NULL. */
37734
45226
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
45227
  /** Get the condition expression. */
37735
45228
  CTree *Condition () const { return sons[0]; }
 
45229
  /** Get the left expression (condition=true). */
37736
45230
  CTree *LeftOperand () const { return sons[2]; }
 
45231
  /** Get the right expression (condition=false). */
37737
45232
  CTree *RightOperand () const { return sons[4]; }
 
45233
  /** Replace a son.
 
45234
   *  \param old_son The son to replace.
 
45235
   *  \param new_son The new son. */
37738
45236
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37739
45237
    CTree::ReplaceSon (sons, 5, old_son, new_son);
37740
45238
  }
37741
45239
   private:
37742
45240
  typedef CT_IfThenExpr CCExprResolveExpr;
37743
45241
 
37744
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37745
45243
 public :
37746
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45244
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37747
45245
  typedef CT_IfThenExpr CExprResolveExpr;
37748
45246
 
37749
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37750
45248
 public :
37751
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37752
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45249
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45250
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37753
45251
};
37754
45252
 
 
45253
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
45254
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
37755
45255
 
37756
 
#line 37757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45256
#line 45257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37757
45257
} // closed Puma
 
45258
class CCExprResolve;
 
45259
class CExprResolve;
37758
45260
class WinIfExists;
37759
45261
class WinImportHandler;
37760
45262
class WinMacros;
37761
 
class CMatchSyntax;
37762
 
class ExtGnu;
 
45263
class WinAsm;
 
45264
class WinDeclSpecs;
 
45265
class WinMemberExplSpec;
 
45266
class WinTypeKeywords;
 
45267
class WinFriend;
37763
45268
class ExtAC;
37764
45269
class ExtACBuilderCoupling;
37765
45270
class ExtACSyntaxCoupling;
37766
45271
class ExtACTree;
37767
45272
class ExtACKeywords;
37768
 
class WinAsm;
37769
 
class WinDeclSpecs;
37770
 
class WinMemberExplSpec;
37771
 
class WinTypeKeywords;
 
45273
class ExtGnu;
37772
45274
class PragmaOnceUnitState;
37773
45275
class PragmaOnce;
37774
 
class CCExprResolve;
37775
 
class CExprResolve;
37776
 
namespace Puma {
37777
 
 
37778
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45276
class CMatchSyntax;
 
45277
namespace Puma {
 
45278
 
 
45279
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45280
 
 
45281
#line 45282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45282
} // closed Puma
 
45283
 
 
45284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45286
#include "CCExprResolveH.ah"
 
45287
#endif
 
45288
namespace Puma {
 
45289
 
 
45290
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45291
 
 
45292
#line 45293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45293
} // closed Puma
 
45294
 
 
45295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45297
#include "CExprResolveH.ah"
 
45298
#endif
 
45299
namespace Puma {
 
45300
 
 
45301
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37779
45302
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
37780
 
#line 37781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45303
#line 45304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45304
  friend class ::CCExprResolve;
 
45305
  friend class ::CExprResolve;
37781
45306
  friend class ::WinIfExists;
37782
45307
  friend class ::WinImportHandler;
37783
45308
  friend class ::WinMacros;
37784
 
  friend class ::CMatchSyntax;
37785
 
  friend class ::ExtGnu;
 
45309
  friend class ::WinAsm;
 
45310
  friend class ::WinDeclSpecs;
 
45311
  friend class ::WinMemberExplSpec;
 
45312
  friend class ::WinTypeKeywords;
 
45313
  friend class ::WinFriend;
37786
45314
  friend class ::ExtAC;
37787
45315
  friend class ::ExtACBuilderCoupling;
37788
45316
  friend class ::ExtACSyntaxCoupling;
37789
45317
  friend class ::ExtACTree;
37790
45318
  friend class ::ExtACKeywords;
37791
 
  friend class ::WinAsm;
37792
 
  friend class ::WinDeclSpecs;
37793
 
  friend class ::WinMemberExplSpec;
37794
 
  friend class ::WinTypeKeywords;
 
45319
  friend class ::ExtGnu;
37795
45320
  friend class ::PragmaOnceUnitState;
37796
45321
  friend class ::PragmaOnce;
37797
 
  friend class ::CCExprResolve;
37798
 
  friend class ::CExprResolve;
 
45322
  friend class ::CMatchSyntax;
37799
45323
 
37800
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45324
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37801
45325
 
37802
45326
  CTree *sons[4]; // open, type, close, init
37803
45327
 
37804
45328
public:
 
45329
  /** Constructor.
 
45330
   *  \param r Left parenthesis of the type name.
 
45331
   *  \param t The type name.
 
45332
   *  \param cr Right parenthesis of the type name.
 
45333
   *  \param i The initializer list. */
37805
45334
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
37806
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
45335
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
45336
    AddSon (sons[2], cr); AddSon (sons[3], i);
37807
45337
  }
 
45338
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37808
45339
  static const char *NodeId ();
 
45340
  /** Get the name of the node. Can be compared with NodeId(). */
37809
45341
  const char *NodeName () const { return NodeId (); }
 
45342
  /** Get the number of sons. */
37810
45343
  int Sons () const { return 4; }
 
45344
  /** Get the n-th son.
 
45345
   *  \param n The index of the son.
 
45346
   *  \return The n-th son or NULL. */
37811
45347
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
45348
  /** Replace a son.
 
45349
   *  \param old_son The son to replace.
 
45350
   *  \param new_son The new son. */
37812
45351
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37813
45352
    CTree::ReplaceSon (sons, 4, old_son, new_son);
37814
45353
  }
 
45354
  /** Get the type name. */
37815
45355
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
45356
  /** Get the initializer list. */
37816
45357
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
45358
  /** Get the semantic information object. */
37817
45359
  CSemObject *SemObject () const { return (CSemObject*)this; }
37818
45360
   private:
37819
45361
  typedef CT_CmpdLiteral CCExprResolveExpr;
37820
45362
 
37821
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45363
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37822
45364
 public :
37823
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45365
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37824
45366
  typedef CT_CmpdLiteral CExprResolveExpr;
37825
45367
 
37826
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45368
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37827
45369
 public :
37828
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37829
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45370
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45371
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37830
45372
};
37831
45373
 
 
45374
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
45375
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
37832
45376
 
37833
 
#line 37834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45377
#line 45378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37834
45378
} // closed Puma
 
45379
class CCExprResolve;
 
45380
class CExprResolve;
37835
45381
class WinIfExists;
37836
45382
class WinImportHandler;
37837
45383
class WinMacros;
37838
 
class CMatchSyntax;
37839
 
class ExtGnu;
 
45384
class WinAsm;
 
45385
class WinDeclSpecs;
 
45386
class WinMemberExplSpec;
 
45387
class WinTypeKeywords;
 
45388
class WinFriend;
37840
45389
class ExtAC;
37841
45390
class ExtACBuilderCoupling;
37842
45391
class ExtACSyntaxCoupling;
37843
45392
class ExtACTree;
37844
45393
class ExtACKeywords;
37845
 
class WinAsm;
37846
 
class WinDeclSpecs;
37847
 
class WinMemberExplSpec;
37848
 
class WinTypeKeywords;
 
45394
class ExtGnu;
37849
45395
class PragmaOnceUnitState;
37850
45396
class PragmaOnce;
37851
 
class CCExprResolve;
37852
 
class CExprResolve;
37853
 
namespace Puma {
37854
 
 
37855
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45397
class CMatchSyntax;
 
45398
namespace Puma {
 
45399
 
 
45400
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45401
 
 
45402
#line 45403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45403
} // closed Puma
 
45404
 
 
45405
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45406
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45407
#include "CCExprResolveH.ah"
 
45408
#endif
 
45409
namespace Puma {
 
45410
 
 
45411
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45412
 
 
45413
#line 45414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45414
} // closed Puma
 
45415
 
 
45416
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45417
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45418
#include "CExprResolveH.ah"
 
45419
#endif
 
45420
namespace Puma {
 
45421
 
 
45422
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37856
45423
class CT_ConstructExpr : public CT_Expression, public CSemObject {
37857
 
#line 37858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45424
#line 45425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45425
  friend class ::CCExprResolve;
 
45426
  friend class ::CExprResolve;
37858
45427
  friend class ::WinIfExists;
37859
45428
  friend class ::WinImportHandler;
37860
45429
  friend class ::WinMacros;
37861
 
  friend class ::CMatchSyntax;
37862
 
  friend class ::ExtGnu;
 
45430
  friend class ::WinAsm;
 
45431
  friend class ::WinDeclSpecs;
 
45432
  friend class ::WinMemberExplSpec;
 
45433
  friend class ::WinTypeKeywords;
 
45434
  friend class ::WinFriend;
37863
45435
  friend class ::ExtAC;
37864
45436
  friend class ::ExtACBuilderCoupling;
37865
45437
  friend class ::ExtACSyntaxCoupling;
37866
45438
  friend class ::ExtACTree;
37867
45439
  friend class ::ExtACKeywords;
37868
 
  friend class ::WinAsm;
37869
 
  friend class ::WinDeclSpecs;
37870
 
  friend class ::WinMemberExplSpec;
37871
 
  friend class ::WinTypeKeywords;
 
45440
  friend class ::ExtGnu;
37872
45441
  friend class ::PragmaOnceUnitState;
37873
45442
  friend class ::PragmaOnce;
37874
 
  friend class ::CCExprResolve;
37875
 
  friend class ::CExprResolve;
 
45443
  friend class ::CMatchSyntax;
37876
45444
 
37877
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45445
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37878
45446
 
37879
45447
  CTree *sons[2]; // type, init
37880
45448
 
37881
45449
public:
37882
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
45450
  /** Constructor.
 
45451
   *  \param t The type name.
 
45452
   *  \param i The initializer list. */
 
45453
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
45454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37883
45455
  static const char *NodeId ();
 
45456
  /** Get the name of the node. Can be compared with NodeId(). */
37884
45457
  const char *NodeName () const { return NodeId (); }
 
45458
  /** Get the number of sons. */
37885
45459
  int Sons () const { return 2; }
 
45460
  /** Get the n-th son.
 
45461
   *  \param n The index of the son.
 
45462
   *  \return The n-th son or NULL. */
37886
45463
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
45464
  /** Replace a son.
 
45465
   *  \param old_son The son to replace.
 
45466
   *  \param new_son The new son. */
37887
45467
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37888
45468
    CTree::ReplaceSon (sons, 2, old_son, new_son);
37889
45469
  }
 
45470
  /** Get the type name. */
37890
45471
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
45472
  /** Get the initializer. */
37891
45473
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
45474
  /** Get the semantic information object. */
37892
45475
  CSemObject *SemObject () const { return (CSemObject*)this; }
37893
45476
   private:
37894
45477
  typedef CT_ConstructExpr CCExprResolveExpr;
37895
45478
 
37896
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45479
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37897
45480
 public :
37898
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45481
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37899
45482
  typedef CT_ConstructExpr CExprResolveExpr;
37900
45483
 
37901
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45484
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37902
45485
 public :
37903
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37904
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45486
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45487
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37905
45488
};
37906
45489
 
 
45490
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
45491
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
37907
45492
 
37908
 
#line 37909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45493
#line 45494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37909
45494
} // closed Puma
 
45495
class CCExprResolve;
 
45496
class CExprResolve;
37910
45497
class WinIfExists;
37911
45498
class WinImportHandler;
37912
45499
class WinMacros;
37913
 
class CMatchSyntax;
37914
 
class ExtGnu;
 
45500
class WinAsm;
 
45501
class WinDeclSpecs;
 
45502
class WinMemberExplSpec;
 
45503
class WinTypeKeywords;
 
45504
class WinFriend;
37915
45505
class ExtAC;
37916
45506
class ExtACBuilderCoupling;
37917
45507
class ExtACSyntaxCoupling;
37918
45508
class ExtACTree;
37919
45509
class ExtACKeywords;
37920
 
class WinAsm;
37921
 
class WinDeclSpecs;
37922
 
class WinMemberExplSpec;
37923
 
class WinTypeKeywords;
 
45510
class ExtGnu;
37924
45511
class PragmaOnceUnitState;
37925
45512
class PragmaOnce;
37926
 
class CCExprResolve;
37927
 
class CExprResolve;
37928
 
namespace Puma {
37929
 
 
37930
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45513
class CMatchSyntax;
 
45514
namespace Puma {
 
45515
 
 
45516
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45517
 
 
45518
#line 45519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45519
} // closed Puma
 
45520
 
 
45521
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45522
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45523
#include "CCExprResolveH.ah"
 
45524
#endif
 
45525
namespace Puma {
 
45526
 
 
45527
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45528
 
 
45529
#line 45530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45530
} // closed Puma
 
45531
 
 
45532
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45533
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45534
#include "CExprResolveH.ah"
 
45535
#endif
 
45536
namespace Puma {
 
45537
 
 
45538
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37931
45539
class CT_ThrowExpr : public CT_Expression {
37932
 
#line 37933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45540
#line 45541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45541
  friend class ::CCExprResolve;
 
45542
  friend class ::CExprResolve;
37933
45543
  friend class ::WinIfExists;
37934
45544
  friend class ::WinImportHandler;
37935
45545
  friend class ::WinMacros;
37936
 
  friend class ::CMatchSyntax;
37937
 
  friend class ::ExtGnu;
 
45546
  friend class ::WinAsm;
 
45547
  friend class ::WinDeclSpecs;
 
45548
  friend class ::WinMemberExplSpec;
 
45549
  friend class ::WinTypeKeywords;
 
45550
  friend class ::WinFriend;
37938
45551
  friend class ::ExtAC;
37939
45552
  friend class ::ExtACBuilderCoupling;
37940
45553
  friend class ::ExtACSyntaxCoupling;
37941
45554
  friend class ::ExtACTree;
37942
45555
  friend class ::ExtACKeywords;
37943
 
  friend class ::WinAsm;
37944
 
  friend class ::WinDeclSpecs;
37945
 
  friend class ::WinMemberExplSpec;
37946
 
  friend class ::WinTypeKeywords;
 
45556
  friend class ::ExtGnu;
37947
45557
  friend class ::PragmaOnceUnitState;
37948
45558
  friend class ::PragmaOnce;
37949
 
  friend class ::CCExprResolve;
37950
 
  friend class ::CExprResolve;
 
45559
  friend class ::CMatchSyntax;
37951
45560
 
37952
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45561
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37953
45562
 
37954
45563
  CTree *sons[2]; // throw, expr
37955
45564
 
37956
45565
public:
37957
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
45566
  /** Constructor.
 
45567
   *  \param t The 'throw' keyword.
 
45568
   *  \param e The expression. */
 
45569
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
45570
  /** Get the identifier for this node type. Can be compared with NodeName(). */
37958
45571
  static const char *NodeId ();
 
45572
  /** Get the name of the node. Can be compared with NodeId(). */
37959
45573
  const char *NodeName () const { return NodeId (); }
 
45574
  /** Get the number of sons. */
37960
45575
  int Sons () const { return CTree::Sons (sons, 2); }
 
45576
  /** Get the n-th son.
 
45577
   *  \param n The index of the son.
 
45578
   *  \return The n-th son or NULL. */
37961
45579
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
45580
  /** Replace a son.
 
45581
   *  \param old_son The son to replace.
 
45582
   *  \param new_son The new son. */
37962
45583
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
37963
45584
    CTree::ReplaceSon (sons, 2, old_son, new_son);
37964
45585
  }
 
45586
  /** Get the expression. */
37965
45587
  CTree *Expr () const { return sons[1]; }
37966
45588
   private:
37967
45589
  typedef CT_ThrowExpr CCExprResolveExpr;
37968
45590
 
37969
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45591
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
37970
45592
 public :
37971
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45593
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
37972
45594
  typedef CT_ThrowExpr CExprResolveExpr;
37973
45595
 
37974
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
37975
45597
 public :
37976
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
37977
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45598
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45599
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
37978
45600
};
37979
45601
 
 
45602
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
45603
 *  Tree node representing an index expression. */
37980
45604
 
37981
 
#line 37982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45605
#line 45606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
37982
45606
} // closed Puma
 
45607
class CCExprResolve;
 
45608
class CExprResolve;
37983
45609
class WinIfExists;
37984
45610
class WinImportHandler;
37985
45611
class WinMacros;
37986
 
class CMatchSyntax;
37987
 
class ExtGnu;
 
45612
class WinAsm;
 
45613
class WinDeclSpecs;
 
45614
class WinMemberExplSpec;
 
45615
class WinTypeKeywords;
 
45616
class WinFriend;
37988
45617
class ExtAC;
37989
45618
class ExtACBuilderCoupling;
37990
45619
class ExtACSyntaxCoupling;
37991
45620
class ExtACTree;
37992
45621
class ExtACKeywords;
37993
 
class WinAsm;
37994
 
class WinDeclSpecs;
37995
 
class WinMemberExplSpec;
37996
 
class WinTypeKeywords;
 
45622
class ExtGnu;
37997
45623
class PragmaOnceUnitState;
37998
45624
class PragmaOnce;
37999
 
class CCExprResolve;
38000
 
class CExprResolve;
38001
 
namespace Puma {
38002
 
 
38003
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38004
 
class CT_IndexExpr : public CT_Expression {
38005
 
#line 38006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45625
class CMatchSyntax;
 
45626
namespace Puma {
 
45627
 
 
45628
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45629
 
 
45630
#line 45631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45631
} // closed Puma
 
45632
 
 
45633
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45634
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45635
#include "CCExprResolveH.ah"
 
45636
#endif
 
45637
namespace Puma {
 
45638
 
 
45639
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45640
 
 
45641
#line 45642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45642
} // closed Puma
 
45643
 
 
45644
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45645
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45646
#include "CExprResolveH.ah"
 
45647
#endif
 
45648
namespace Puma {
 
45649
 
 
45650
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45651
class CT_IndexExpr : public CT_Call {
 
45652
#line 45653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45653
  friend class ::CCExprResolve;
 
45654
  friend class ::CExprResolve;
38006
45655
  friend class ::WinIfExists;
38007
45656
  friend class ::WinImportHandler;
38008
45657
  friend class ::WinMacros;
38009
 
  friend class ::CMatchSyntax;
38010
 
  friend class ::ExtGnu;
 
45658
  friend class ::WinAsm;
 
45659
  friend class ::WinDeclSpecs;
 
45660
  friend class ::WinMemberExplSpec;
 
45661
  friend class ::WinTypeKeywords;
 
45662
  friend class ::WinFriend;
38011
45663
  friend class ::ExtAC;
38012
45664
  friend class ::ExtACBuilderCoupling;
38013
45665
  friend class ::ExtACSyntaxCoupling;
38014
45666
  friend class ::ExtACTree;
38015
45667
  friend class ::ExtACKeywords;
38016
 
  friend class ::WinAsm;
38017
 
  friend class ::WinDeclSpecs;
38018
 
  friend class ::WinMemberExplSpec;
38019
 
  friend class ::WinTypeKeywords;
 
45668
  friend class ::ExtGnu;
38020
45669
  friend class ::PragmaOnceUnitState;
38021
45670
  friend class ::PragmaOnce;
38022
 
  friend class ::CCExprResolve;
38023
 
  friend class ::CExprResolve;
 
45671
  friend class ::CMatchSyntax;
38024
45672
 
38025
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45673
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38026
45674
 
38027
45675
  CTree *sons[4]; // expr, open, index, close
38028
45676
 
38029
45677
public:
 
45678
  /** Constructor.
 
45679
   *  \param e The expression on which to invoke the index operator.
 
45680
   *  \param o Left parenthesis of the index expression.
 
45681
   *  \param i The index expression. 
 
45682
   *  \param c Right parenthesis of the index expression. */
38030
45683
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
38031
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
45684
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
45685
    AddSon (sons[2], i); AddSon (sons[3], c);
38032
45686
  }
 
45687
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38033
45688
  static const char *NodeId ();
 
45689
  /** Get the name of the node. Can be compared with NodeId(). */
38034
45690
  const char *NodeName () const { return NodeId (); }
 
45691
  /** Get the number of sons. */
38035
45692
  int Sons () const { return 4; }
 
45693
  /** Get the n-th son.
 
45694
   *  \param n The index of the son.
 
45695
   *  \return The n-th son or NULL. */
38036
45696
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
45697
  /** Replace a son.
 
45698
   *  \param old_son The son to replace.
 
45699
   *  \param new_son The new son. */
38037
45700
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38038
45701
    CTree::ReplaceSon (sons, 4, old_son, new_son);
38039
45702
  }
38040
45703
   private:
38041
45704
  typedef CT_IndexExpr CCExprResolveExpr;
38042
45705
 
38043
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45706
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38044
45707
 public :
38045
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45708
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38046
45709
  typedef CT_IndexExpr CExprResolveExpr;
38047
45710
 
38048
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38049
45712
 public :
38050
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38051
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45713
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45714
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38052
45715
};
38053
45716
 
 
45717
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
45718
 *  Tree node representing a function call expression, e.g. f(i). */
38054
45719
 
38055
 
#line 38056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45720
#line 45721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38056
45721
} // closed Puma
 
45722
class CCExprResolve;
 
45723
class CExprResolve;
38057
45724
class WinIfExists;
38058
45725
class WinImportHandler;
38059
45726
class WinMacros;
38060
 
class CMatchSyntax;
38061
 
class ExtGnu;
 
45727
class WinAsm;
 
45728
class WinDeclSpecs;
 
45729
class WinMemberExplSpec;
 
45730
class WinTypeKeywords;
 
45731
class WinFriend;
38062
45732
class ExtAC;
38063
45733
class ExtACBuilderCoupling;
38064
45734
class ExtACSyntaxCoupling;
38065
45735
class ExtACTree;
38066
45736
class ExtACKeywords;
38067
 
class WinAsm;
38068
 
class WinDeclSpecs;
38069
 
class WinMemberExplSpec;
38070
 
class WinTypeKeywords;
 
45737
class ExtGnu;
38071
45738
class PragmaOnceUnitState;
38072
45739
class PragmaOnce;
38073
 
class CCExprResolve;
38074
 
class CExprResolve;
38075
 
namespace Puma {
38076
 
 
38077
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
38078
 
class CT_CallExpr : public CT_Expression, public CSemObject {
38079
 
#line 38080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45740
class CMatchSyntax;
 
45741
namespace Puma {
 
45742
 
 
45743
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45744
 
 
45745
#line 45746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45746
} // closed Puma
 
45747
 
 
45748
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45749
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45750
#include "CCExprResolveH.ah"
 
45751
#endif
 
45752
namespace Puma {
 
45753
 
 
45754
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45755
 
 
45756
#line 45757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45757
} // closed Puma
 
45758
 
 
45759
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45760
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45761
#include "CExprResolveH.ah"
 
45762
#endif
 
45763
namespace Puma {
 
45764
 
 
45765
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45766
class CT_CallExpr : public CT_Call {
 
45767
#line 45768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45768
  friend class ::CCExprResolve;
 
45769
  friend class ::CExprResolve;
38080
45770
  friend class ::WinIfExists;
38081
45771
  friend class ::WinImportHandler;
38082
45772
  friend class ::WinMacros;
38083
 
  friend class ::CMatchSyntax;
38084
 
  friend class ::ExtGnu;
 
45773
  friend class ::WinAsm;
 
45774
  friend class ::WinDeclSpecs;
 
45775
  friend class ::WinMemberExplSpec;
 
45776
  friend class ::WinTypeKeywords;
 
45777
  friend class ::WinFriend;
38085
45778
  friend class ::ExtAC;
38086
45779
  friend class ::ExtACBuilderCoupling;
38087
45780
  friend class ::ExtACSyntaxCoupling;
38088
45781
  friend class ::ExtACTree;
38089
45782
  friend class ::ExtACKeywords;
38090
 
  friend class ::WinAsm;
38091
 
  friend class ::WinDeclSpecs;
38092
 
  friend class ::WinMemberExplSpec;
38093
 
  friend class ::WinTypeKeywords;
 
45783
  friend class ::ExtGnu;
38094
45784
  friend class ::PragmaOnceUnitState;
38095
45785
  friend class ::PragmaOnce;
38096
 
  friend class ::CCExprResolve;
38097
 
  friend class ::CExprResolve;
 
45786
  friend class ::CMatchSyntax;
38098
45787
 
38099
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45788
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38100
45789
 
38101
45790
  CTree *sons[2]; // expr, args
38102
45791
 
38103
45792
public:
38104
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
38105
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
45793
  /** Constructor.
 
45794
   *  \param e The expression on which the call is invoked. */
 
45795
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
45796
  /** Constructor.
 
45797
   *  \param e The expression on which the call is invoked.
 
45798
   *  \param l The argument list of the call. */
 
45799
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
45800
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38106
45801
  static const char *NodeId ();
 
45802
  /** Get the name of the node. Can be compared with NodeId(). */
38107
45803
  const char *NodeName () const { return NodeId (); }
 
45804
  /** Get the number of sons. */
38108
45805
  int Sons () const { return CTree::Sons (sons, 2); }
 
45806
  /** Get the n-th son.
 
45807
   *  \param n The index of the son.
 
45808
   *  \return The n-th son or NULL. */
38109
45809
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
45810
  /** Replace a son.
 
45811
   *  \param old_son The son to replace.
 
45812
   *  \param new_son The new son. */
38110
45813
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38111
45814
    CTree::ReplaceSon (sons, 2, old_son, new_son);
38112
45815
  }
38113
45816
  CTree *Expr () const { return sons[0]; }
38114
45817
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
38115
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
38116
45818
   private:
38117
45819
  typedef CT_CallExpr CCExprResolveExpr;
38118
45820
 
38119
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45821
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38120
45822
 public :
38121
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45823
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38122
45824
  typedef CT_CallExpr CExprResolveExpr;
38123
45825
 
38124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45826
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38125
45827
 public :
38126
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38127
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45828
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45829
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38128
45830
};
38129
45831
 
 
45832
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
45833
 *  Tree node representing a cast expression, e.g. (int)a. */
38130
45834
 
38131
 
#line 38132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45835
#line 45836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38132
45836
} // closed Puma
 
45837
class CCExprResolve;
 
45838
class CExprResolve;
38133
45839
class WinIfExists;
38134
45840
class WinImportHandler;
38135
45841
class WinMacros;
38136
 
class CMatchSyntax;
38137
 
class ExtGnu;
 
45842
class WinAsm;
 
45843
class WinDeclSpecs;
 
45844
class WinMemberExplSpec;
 
45845
class WinTypeKeywords;
 
45846
class WinFriend;
38138
45847
class ExtAC;
38139
45848
class ExtACBuilderCoupling;
38140
45849
class ExtACSyntaxCoupling;
38141
45850
class ExtACTree;
38142
45851
class ExtACKeywords;
38143
 
class WinAsm;
38144
 
class WinDeclSpecs;
38145
 
class WinMemberExplSpec;
38146
 
class WinTypeKeywords;
 
45852
class ExtGnu;
38147
45853
class PragmaOnceUnitState;
38148
45854
class PragmaOnce;
38149
 
class CCExprResolve;
38150
 
class CExprResolve;
38151
 
namespace Puma {
38152
 
 
38153
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45855
class CMatchSyntax;
 
45856
namespace Puma {
 
45857
 
 
45858
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45859
 
 
45860
#line 45861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45861
} // closed Puma
 
45862
 
 
45863
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45864
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45865
#include "CCExprResolveH.ah"
 
45866
#endif
 
45867
namespace Puma {
 
45868
 
 
45869
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45870
 
 
45871
#line 45872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45872
} // closed Puma
 
45873
 
 
45874
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45875
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45876
#include "CExprResolveH.ah"
 
45877
#endif
 
45878
namespace Puma {
 
45879
 
 
45880
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38154
45881
class CT_CastExpr : public CT_Expression {
38155
 
#line 38156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45882
#line 45883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45883
  friend class ::CCExprResolve;
 
45884
  friend class ::CExprResolve;
38156
45885
  friend class ::WinIfExists;
38157
45886
  friend class ::WinImportHandler;
38158
45887
  friend class ::WinMacros;
38159
 
  friend class ::CMatchSyntax;
38160
 
  friend class ::ExtGnu;
 
45888
  friend class ::WinAsm;
 
45889
  friend class ::WinDeclSpecs;
 
45890
  friend class ::WinMemberExplSpec;
 
45891
  friend class ::WinTypeKeywords;
 
45892
  friend class ::WinFriend;
38161
45893
  friend class ::ExtAC;
38162
45894
  friend class ::ExtACBuilderCoupling;
38163
45895
  friend class ::ExtACSyntaxCoupling;
38164
45896
  friend class ::ExtACTree;
38165
45897
  friend class ::ExtACKeywords;
38166
 
  friend class ::WinAsm;
38167
 
  friend class ::WinDeclSpecs;
38168
 
  friend class ::WinMemberExplSpec;
38169
 
  friend class ::WinTypeKeywords;
 
45898
  friend class ::ExtGnu;
38170
45899
  friend class ::PragmaOnceUnitState;
38171
45900
  friend class ::PragmaOnce;
38172
 
  friend class ::CCExprResolve;
38173
 
  friend class ::CExprResolve;
 
45901
  friend class ::CMatchSyntax;
38174
45902
 
38175
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45903
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38176
45904
 
38177
45905
  CTree *sons[4]; // open, type, close, expr
38178
45906
 
38179
45907
public:
 
45908
  /** Constructor.
 
45909
   *  \param o Left parenthesis of the type name.
 
45910
   *  \param t The type to cast to.
 
45911
   *  \param c Right parenthesis of the type name. 
 
45912
   *  \param e The expression to cast. */
38180
45913
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
38181
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
45914
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
45915
    AddSon (sons[2], c); AddSon (sons[3], e);
38182
45916
  }
 
45917
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38183
45918
  static const char *NodeId ();
 
45919
  /** Get the name of the node. Can be compared with NodeId(). */
38184
45920
  const char *NodeName () const { return NodeId (); }
 
45921
  /** Get the number of sons. */
38185
45922
  int Sons () const { return 4; }
 
45923
  /** Get the n-th son.
 
45924
   *  \param n The index of the son.
 
45925
   *  \return The n-th son or NULL. */
38186
45926
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
45927
  /** Replace a son.
 
45928
   *  \param old_son The son to replace.
 
45929
   *  \param new_son The new son. */
38187
45930
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38188
45931
    CTree::ReplaceSon (sons, 4, old_son, new_son);
38189
45932
  }
 
45933
  /** Get the casted expression. */
38190
45934
  CTree *Expr () const { return sons[3]; }
 
45935
  /** Get the type to cast to. */
38191
45936
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
38192
45937
   private:
38193
45938
  typedef CT_CastExpr CCExprResolveExpr;
38194
45939
 
38195
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45940
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38196
45941
 public :
38197
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45942
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38198
45943
  typedef CT_CastExpr CExprResolveExpr;
38199
45944
 
38200
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45945
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38201
45946
 public :
38202
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38203
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45947
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45948
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38204
45949
};
38205
45950
 
 
45951
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
45952
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
38206
45953
 
38207
 
#line 38208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
45954
#line 45955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38208
45955
} // closed Puma
 
45956
class CCExprResolve;
 
45957
class CExprResolve;
38209
45958
class WinIfExists;
38210
45959
class WinImportHandler;
38211
45960
class WinMacros;
38212
 
class CMatchSyntax;
38213
 
class ExtGnu;
 
45961
class WinAsm;
 
45962
class WinDeclSpecs;
 
45963
class WinMemberExplSpec;
 
45964
class WinTypeKeywords;
 
45965
class WinFriend;
38214
45966
class ExtAC;
38215
45967
class ExtACBuilderCoupling;
38216
45968
class ExtACSyntaxCoupling;
38217
45969
class ExtACTree;
38218
45970
class ExtACKeywords;
38219
 
class WinAsm;
38220
 
class WinDeclSpecs;
38221
 
class WinMemberExplSpec;
38222
 
class WinTypeKeywords;
 
45971
class ExtGnu;
38223
45972
class PragmaOnceUnitState;
38224
45973
class PragmaOnce;
38225
 
class CCExprResolve;
38226
 
class CExprResolve;
38227
 
namespace Puma {
38228
 
 
38229
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45974
class CMatchSyntax;
 
45975
namespace Puma {
 
45976
 
 
45977
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45978
 
 
45979
#line 45980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45980
} // closed Puma
 
45981
 
 
45982
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45983
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45984
#include "CCExprResolveH.ah"
 
45985
#endif
 
45986
namespace Puma {
 
45987
 
 
45988
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45989
 
 
45990
#line 45991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
45991
} // closed Puma
 
45992
 
 
45993
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45994
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45995
#include "CExprResolveH.ah"
 
45996
#endif
 
45997
namespace Puma {
 
45998
 
 
45999
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38230
46000
class CT_StaticCast : public CT_Expression {
38231
 
#line 38232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46001
#line 46002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46002
  friend class ::CCExprResolve;
 
46003
  friend class ::CExprResolve;
38232
46004
  friend class ::WinIfExists;
38233
46005
  friend class ::WinImportHandler;
38234
46006
  friend class ::WinMacros;
38235
 
  friend class ::CMatchSyntax;
38236
 
  friend class ::ExtGnu;
 
46007
  friend class ::WinAsm;
 
46008
  friend class ::WinDeclSpecs;
 
46009
  friend class ::WinMemberExplSpec;
 
46010
  friend class ::WinTypeKeywords;
 
46011
  friend class ::WinFriend;
38237
46012
  friend class ::ExtAC;
38238
46013
  friend class ::ExtACBuilderCoupling;
38239
46014
  friend class ::ExtACSyntaxCoupling;
38240
46015
  friend class ::ExtACTree;
38241
46016
  friend class ::ExtACKeywords;
38242
 
  friend class ::WinAsm;
38243
 
  friend class ::WinDeclSpecs;
38244
 
  friend class ::WinMemberExplSpec;
38245
 
  friend class ::WinTypeKeywords;
 
46017
  friend class ::ExtGnu;
38246
46018
  friend class ::PragmaOnceUnitState;
38247
46019
  friend class ::PragmaOnce;
38248
 
  friend class ::CCExprResolve;
38249
 
  friend class ::CExprResolve;
 
46020
  friend class ::CMatchSyntax;
38250
46021
 
38251
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46022
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38252
46023
 
38253
46024
  CTree *sons[5]; // cast, open, type, close, expr
38254
46025
 
38255
46026
public:
 
46027
  /** Constructor.
 
46028
   *  \param cst The cast operator, i.e. 'static_cast'.
 
46029
   *  \param o Left arrow bracket of the type name.
 
46030
   *  \param t The type to cast to.
 
46031
   *  \param c Right array bracket of the type name.
 
46032
   *  \param e The expression to cast. */
38256
46033
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
38257
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
46034
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
46035
    AddSon (sons[3], c); AddSon (sons[4], e);
38258
46036
  }
 
46037
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38259
46038
  static const char *NodeId ();
 
46039
  /** Get the name of the node. Can be compared with NodeId(). */
38260
46040
  const char *NodeName () const { return NodeId (); }
 
46041
  /** Get the number of sons. */
38261
46042
  int Sons () const { return 5; }
 
46043
  /** Get the n-th son.
 
46044
   *  \param n The index of the son.
 
46045
   *  \return The n-th son or NULL. */
38262
46046
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
46047
  /** Replace a son.
 
46048
   *  \param old_son The son to replace.
 
46049
   *  \param new_son The new son. */
38263
46050
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38264
46051
    CTree::ReplaceSon (sons, 5, old_son, new_son);
38265
46052
  }
 
46053
  /** Get the casted expression. */
38266
46054
  CTree *Expr () const { return sons[4]; }
 
46055
  /** Get the type to cast to. */
38267
46056
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
38268
46057
   private:
38269
46058
  typedef CT_StaticCast CCExprResolveExpr;
38270
46059
 
38271
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46060
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38272
46061
 public :
38273
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46062
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38274
46063
  typedef CT_StaticCast CExprResolveExpr;
38275
46064
 
38276
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46065
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38277
46066
 public :
38278
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38279
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46067
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46068
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38280
46069
};
38281
46070
 
 
46071
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
46072
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
38282
46073
 
38283
 
#line 38284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46074
#line 46075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38284
46075
} // closed Puma
 
46076
class CCExprResolve;
 
46077
class CExprResolve;
38285
46078
class WinIfExists;
38286
46079
class WinImportHandler;
38287
46080
class WinMacros;
38288
 
class CMatchSyntax;
38289
 
class ExtGnu;
 
46081
class WinAsm;
 
46082
class WinDeclSpecs;
 
46083
class WinMemberExplSpec;
 
46084
class WinTypeKeywords;
 
46085
class WinFriend;
38290
46086
class ExtAC;
38291
46087
class ExtACBuilderCoupling;
38292
46088
class ExtACSyntaxCoupling;
38293
46089
class ExtACTree;
38294
46090
class ExtACKeywords;
38295
 
class WinAsm;
38296
 
class WinDeclSpecs;
38297
 
class WinMemberExplSpec;
38298
 
class WinTypeKeywords;
 
46091
class ExtGnu;
38299
46092
class PragmaOnceUnitState;
38300
46093
class PragmaOnce;
38301
 
class CCExprResolve;
38302
 
class CExprResolve;
38303
 
namespace Puma {
38304
 
 
38305
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46094
class CMatchSyntax;
 
46095
namespace Puma {
 
46096
 
 
46097
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46098
 
 
46099
#line 46100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46100
} // closed Puma
 
46101
 
 
46102
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46103
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46104
#include "CCExprResolveH.ah"
 
46105
#endif
 
46106
namespace Puma {
 
46107
 
 
46108
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46109
 
 
46110
#line 46111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46111
} // closed Puma
 
46112
 
 
46113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46115
#include "CExprResolveH.ah"
 
46116
#endif
 
46117
namespace Puma {
 
46118
 
 
46119
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38306
46120
class CT_ConstCast : public CT_StaticCast {
38307
 
#line 38308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46121
#line 46122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46122
  friend class ::CCExprResolve;
 
46123
  friend class ::CExprResolve;
38308
46124
  friend class ::WinIfExists;
38309
46125
  friend class ::WinImportHandler;
38310
46126
  friend class ::WinMacros;
38311
 
  friend class ::CMatchSyntax;
38312
 
  friend class ::ExtGnu;
 
46127
  friend class ::WinAsm;
 
46128
  friend class ::WinDeclSpecs;
 
46129
  friend class ::WinMemberExplSpec;
 
46130
  friend class ::WinTypeKeywords;
 
46131
  friend class ::WinFriend;
38313
46132
  friend class ::ExtAC;
38314
46133
  friend class ::ExtACBuilderCoupling;
38315
46134
  friend class ::ExtACSyntaxCoupling;
38316
46135
  friend class ::ExtACTree;
38317
46136
  friend class ::ExtACKeywords;
38318
 
  friend class ::WinAsm;
38319
 
  friend class ::WinDeclSpecs;
38320
 
  friend class ::WinMemberExplSpec;
38321
 
  friend class ::WinTypeKeywords;
 
46137
  friend class ::ExtGnu;
38322
46138
  friend class ::PragmaOnceUnitState;
38323
46139
  friend class ::PragmaOnce;
38324
 
  friend class ::CCExprResolve;
38325
 
  friend class ::CExprResolve;
 
46140
  friend class ::CMatchSyntax;
38326
46141
 
38327
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46142
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38328
46143
 
38329
46144
public:
 
46145
  /** Constructor.
 
46146
   *  \param cst The cast operator, i.e. 'const_cast'.
 
46147
   *  \param o Left arrow bracket of the type name.
 
46148
   *  \param t The type to cast to.
 
46149
   *  \param c Right array bracket of the type name.
 
46150
   *  \param e The expression to cast. */
38330
46151
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
38331
46152
    CT_StaticCast (cst, o, t, c, e) {}
 
46153
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38332
46154
  static const char *NodeId ();
 
46155
  /** Get the name of the node. Can be compared with NodeId(). */
38333
46156
  const char *NodeName () const { return NodeId (); }
38334
46157
   private:
38335
46158
  typedef CT_ConstCast CCExprResolveExpr;
38336
46159
 
38337
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46160
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38338
46161
 public :
38339
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46162
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38340
46163
  typedef CT_ConstCast CExprResolveExpr;
38341
46164
 
38342
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46165
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38343
46166
 public :
38344
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38345
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46167
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46168
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38346
46169
};
38347
46170
 
 
46171
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
46172
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
38348
46173
 
38349
 
#line 38350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46174
#line 46175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38350
46175
} // closed Puma
 
46176
class CCExprResolve;
 
46177
class CExprResolve;
38351
46178
class WinIfExists;
38352
46179
class WinImportHandler;
38353
46180
class WinMacros;
38354
 
class CMatchSyntax;
38355
 
class ExtGnu;
 
46181
class WinAsm;
 
46182
class WinDeclSpecs;
 
46183
class WinMemberExplSpec;
 
46184
class WinTypeKeywords;
 
46185
class WinFriend;
38356
46186
class ExtAC;
38357
46187
class ExtACBuilderCoupling;
38358
46188
class ExtACSyntaxCoupling;
38359
46189
class ExtACTree;
38360
46190
class ExtACKeywords;
38361
 
class WinAsm;
38362
 
class WinDeclSpecs;
38363
 
class WinMemberExplSpec;
38364
 
class WinTypeKeywords;
 
46191
class ExtGnu;
38365
46192
class PragmaOnceUnitState;
38366
46193
class PragmaOnce;
38367
 
class CCExprResolve;
38368
 
class CExprResolve;
38369
 
namespace Puma {
38370
 
 
38371
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46194
class CMatchSyntax;
 
46195
namespace Puma {
 
46196
 
 
46197
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46198
 
 
46199
#line 46200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46200
} // closed Puma
 
46201
 
 
46202
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46203
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46204
#include "CCExprResolveH.ah"
 
46205
#endif
 
46206
namespace Puma {
 
46207
 
 
46208
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46209
 
 
46210
#line 46211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46211
} // closed Puma
 
46212
 
 
46213
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46214
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46215
#include "CExprResolveH.ah"
 
46216
#endif
 
46217
namespace Puma {
 
46218
 
 
46219
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38372
46220
class CT_ReintCast : public CT_StaticCast {
38373
 
#line 38374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46221
#line 46222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46222
  friend class ::CCExprResolve;
 
46223
  friend class ::CExprResolve;
38374
46224
  friend class ::WinIfExists;
38375
46225
  friend class ::WinImportHandler;
38376
46226
  friend class ::WinMacros;
38377
 
  friend class ::CMatchSyntax;
38378
 
  friend class ::ExtGnu;
 
46227
  friend class ::WinAsm;
 
46228
  friend class ::WinDeclSpecs;
 
46229
  friend class ::WinMemberExplSpec;
 
46230
  friend class ::WinTypeKeywords;
 
46231
  friend class ::WinFriend;
38379
46232
  friend class ::ExtAC;
38380
46233
  friend class ::ExtACBuilderCoupling;
38381
46234
  friend class ::ExtACSyntaxCoupling;
38382
46235
  friend class ::ExtACTree;
38383
46236
  friend class ::ExtACKeywords;
38384
 
  friend class ::WinAsm;
38385
 
  friend class ::WinDeclSpecs;
38386
 
  friend class ::WinMemberExplSpec;
38387
 
  friend class ::WinTypeKeywords;
 
46237
  friend class ::ExtGnu;
38388
46238
  friend class ::PragmaOnceUnitState;
38389
46239
  friend class ::PragmaOnce;
38390
 
  friend class ::CCExprResolve;
38391
 
  friend class ::CExprResolve;
 
46240
  friend class ::CMatchSyntax;
38392
46241
 
38393
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46242
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38394
46243
 
38395
46244
public:
 
46245
  /** Constructor.
 
46246
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
46247
   *  \param o Left arrow bracket of the type name.
 
46248
   *  \param t The type to cast to.
 
46249
   *  \param c Right array bracket of the type name.
 
46250
   *  \param e The expression to cast. */
38396
46251
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
38397
46252
    CT_StaticCast (cst, o, t, c, e) {}
 
46253
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38398
46254
  static const char *NodeId ();
 
46255
  /** Get the name of the node. Can be compared with NodeId(). */
38399
46256
  const char *NodeName () const { return NodeId (); }
38400
46257
   private:
38401
46258
  typedef CT_ReintCast CCExprResolveExpr;
38402
46259
 
38403
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46260
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38404
46261
 public :
38405
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46262
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38406
46263
  typedef CT_ReintCast CExprResolveExpr;
38407
46264
 
38408
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38409
46266
 public :
38410
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38411
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46267
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46268
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38412
46269
};
38413
46270
 
 
46271
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
46272
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
38414
46273
 
38415
 
#line 38416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46274
#line 46275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38416
46275
} // closed Puma
 
46276
class CCExprResolve;
 
46277
class CExprResolve;
38417
46278
class WinIfExists;
38418
46279
class WinImportHandler;
38419
46280
class WinMacros;
38420
 
class CMatchSyntax;
38421
 
class ExtGnu;
 
46281
class WinAsm;
 
46282
class WinDeclSpecs;
 
46283
class WinMemberExplSpec;
 
46284
class WinTypeKeywords;
 
46285
class WinFriend;
38422
46286
class ExtAC;
38423
46287
class ExtACBuilderCoupling;
38424
46288
class ExtACSyntaxCoupling;
38425
46289
class ExtACTree;
38426
46290
class ExtACKeywords;
38427
 
class WinAsm;
38428
 
class WinDeclSpecs;
38429
 
class WinMemberExplSpec;
38430
 
class WinTypeKeywords;
 
46291
class ExtGnu;
38431
46292
class PragmaOnceUnitState;
38432
46293
class PragmaOnce;
38433
 
class CCExprResolve;
38434
 
class CExprResolve;
38435
 
namespace Puma {
38436
 
 
38437
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46294
class CMatchSyntax;
 
46295
namespace Puma {
 
46296
 
 
46297
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46298
 
 
46299
#line 46300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46300
} // closed Puma
 
46301
 
 
46302
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46303
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46304
#include "CCExprResolveH.ah"
 
46305
#endif
 
46306
namespace Puma {
 
46307
 
 
46308
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46309
 
 
46310
#line 46311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46311
} // closed Puma
 
46312
 
 
46313
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46314
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46315
#include "CExprResolveH.ah"
 
46316
#endif
 
46317
namespace Puma {
 
46318
 
 
46319
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38438
46320
class CT_DynamicCast : public CT_StaticCast {
38439
 
#line 38440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46321
#line 46322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46322
  friend class ::CCExprResolve;
 
46323
  friend class ::CExprResolve;
38440
46324
  friend class ::WinIfExists;
38441
46325
  friend class ::WinImportHandler;
38442
46326
  friend class ::WinMacros;
38443
 
  friend class ::CMatchSyntax;
38444
 
  friend class ::ExtGnu;
 
46327
  friend class ::WinAsm;
 
46328
  friend class ::WinDeclSpecs;
 
46329
  friend class ::WinMemberExplSpec;
 
46330
  friend class ::WinTypeKeywords;
 
46331
  friend class ::WinFriend;
38445
46332
  friend class ::ExtAC;
38446
46333
  friend class ::ExtACBuilderCoupling;
38447
46334
  friend class ::ExtACSyntaxCoupling;
38448
46335
  friend class ::ExtACTree;
38449
46336
  friend class ::ExtACKeywords;
38450
 
  friend class ::WinAsm;
38451
 
  friend class ::WinDeclSpecs;
38452
 
  friend class ::WinMemberExplSpec;
38453
 
  friend class ::WinTypeKeywords;
 
46337
  friend class ::ExtGnu;
38454
46338
  friend class ::PragmaOnceUnitState;
38455
46339
  friend class ::PragmaOnce;
38456
 
  friend class ::CCExprResolve;
38457
 
  friend class ::CExprResolve;
 
46340
  friend class ::CMatchSyntax;
38458
46341
 
38459
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46342
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38460
46343
 
38461
46344
public:
 
46345
  /** Constructor.
 
46346
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
46347
   *  \param o Left arrow bracket of the type name.
 
46348
   *  \param t The type to cast to.
 
46349
   *  \param c Right array bracket of the type name.
 
46350
   *  \param e The expression to cast. */
38462
46351
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
38463
46352
    CT_StaticCast (cst, o, t, c, e) {}
 
46353
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38464
46354
  static const char *NodeId ();
 
46355
  /** Get the name of the node. Can be compared with NodeId(). */
38465
46356
  const char *NodeName () const { return NodeId (); }
38466
46357
   private:
38467
46358
  typedef CT_DynamicCast CCExprResolveExpr;
38468
46359
 
38469
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46360
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38470
46361
 public :
38471
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46362
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38472
46363
  typedef CT_DynamicCast CExprResolveExpr;
38473
46364
 
38474
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46365
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38475
46366
 public :
38476
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38477
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46367
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46368
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38478
46369
};
38479
46370
 
 
46371
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
46372
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
46373
 *  where 1.2 is implicitely casted from float to int. */
38480
46374
 
38481
 
#line 38482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46375
#line 46376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38482
46376
} // closed Puma
 
46377
class CCExprResolve;
 
46378
class CExprResolve;
38483
46379
class WinIfExists;
38484
46380
class WinImportHandler;
38485
46381
class WinMacros;
38486
 
class CMatchSyntax;
38487
 
class ExtGnu;
 
46382
class WinAsm;
 
46383
class WinDeclSpecs;
 
46384
class WinMemberExplSpec;
 
46385
class WinTypeKeywords;
 
46386
class WinFriend;
38488
46387
class ExtAC;
38489
46388
class ExtACBuilderCoupling;
38490
46389
class ExtACSyntaxCoupling;
38491
46390
class ExtACTree;
38492
46391
class ExtACKeywords;
38493
 
class WinAsm;
38494
 
class WinDeclSpecs;
38495
 
class WinMemberExplSpec;
38496
 
class WinTypeKeywords;
 
46392
class ExtGnu;
38497
46393
class PragmaOnceUnitState;
38498
46394
class PragmaOnce;
38499
 
class CCExprResolve;
38500
 
class CExprResolve;
38501
 
namespace Puma {
38502
 
 
38503
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46395
class CMatchSyntax;
 
46396
namespace Puma {
 
46397
 
 
46398
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46399
 
 
46400
#line 46401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46401
} // closed Puma
 
46402
 
 
46403
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46404
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46405
#include "CCExprResolveH.ah"
 
46406
#endif
 
46407
namespace Puma {
 
46408
 
 
46409
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46410
 
 
46411
#line 46412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46412
} // closed Puma
 
46413
 
 
46414
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46415
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46416
#include "CExprResolveH.ah"
 
46417
#endif
 
46418
namespace Puma {
 
46419
 
 
46420
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38504
46421
class CT_ImplicitCast : public CT_Expression {
38505
 
#line 38506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46422
#line 46423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46423
  friend class ::CCExprResolve;
 
46424
  friend class ::CExprResolve;
38506
46425
  friend class ::WinIfExists;
38507
46426
  friend class ::WinImportHandler;
38508
46427
  friend class ::WinMacros;
38509
 
  friend class ::CMatchSyntax;
38510
 
  friend class ::ExtGnu;
 
46428
  friend class ::WinAsm;
 
46429
  friend class ::WinDeclSpecs;
 
46430
  friend class ::WinMemberExplSpec;
 
46431
  friend class ::WinTypeKeywords;
 
46432
  friend class ::WinFriend;
38511
46433
  friend class ::ExtAC;
38512
46434
  friend class ::ExtACBuilderCoupling;
38513
46435
  friend class ::ExtACSyntaxCoupling;
38514
46436
  friend class ::ExtACTree;
38515
46437
  friend class ::ExtACKeywords;
38516
 
  friend class ::WinAsm;
38517
 
  friend class ::WinDeclSpecs;
38518
 
  friend class ::WinMemberExplSpec;
38519
 
  friend class ::WinTypeKeywords;
 
46438
  friend class ::ExtGnu;
38520
46439
  friend class ::PragmaOnceUnitState;
38521
46440
  friend class ::PragmaOnce;
38522
 
  friend class ::CCExprResolve;
38523
 
  friend class ::CExprResolve;
 
46441
  friend class ::CMatchSyntax;
38524
46442
 
38525
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46443
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38526
46444
 
38527
46445
  CTree *_expr; // casted expression
38528
46446
 
38529
46447
public:
38530
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
46448
  /** Constructor.
 
46449
   *  \param e The expression that is implicitely casted. */
 
46450
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
46451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38531
46452
  static const char *NodeId ();
 
46453
  /** Get the name of the node. Can be compared with NodeId(). */
38532
46454
  const char *NodeName () const { return NodeId (); }
 
46455
  /** Get the number of sons. */
38533
46456
  int Sons () const { return 1; }
 
46457
  /** Get the n-th son.
 
46458
   *  \param n The index of the son.
 
46459
   *  \return The n-th son or NULL. */
38534
46460
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
46461
  /** Get the casted expression. */
38535
46462
  CTree *Expr () const { return _expr; }
 
46463
  /** Replace a son.
 
46464
   *  \param old_son The son to replace.
 
46465
   *  \param new_son The new son. */
38536
46466
  void ReplaceSon (CTree *old_son, CTree *new_son) 
38537
 
   { if (old_son == _expr) _expr = new_son; }
 
46467
   { CTree::ReplaceSon (_expr, old_son, new_son); }
38538
46468
   private:
38539
46469
  typedef CT_ImplicitCast CCExprResolveExpr;
38540
46470
 
38541
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46471
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38542
46472
 public :
38543
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46473
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38544
46474
  typedef CT_ImplicitCast CExprResolveExpr;
38545
46475
 
38546
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46476
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38547
46477
 public :
38548
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38549
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46478
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46479
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38550
46480
};
38551
46481
 
 
46482
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
46483
 *  Tree node representing a typeid expression, e.g. typeid(X). */
38552
46484
 
38553
 
#line 38554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46485
#line 46486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38554
46486
} // closed Puma
 
46487
class CCExprResolve;
 
46488
class CExprResolve;
38555
46489
class WinIfExists;
38556
46490
class WinImportHandler;
38557
46491
class WinMacros;
38558
 
class CMatchSyntax;
38559
 
class ExtGnu;
 
46492
class WinAsm;
 
46493
class WinDeclSpecs;
 
46494
class WinMemberExplSpec;
 
46495
class WinTypeKeywords;
 
46496
class WinFriend;
38560
46497
class ExtAC;
38561
46498
class ExtACBuilderCoupling;
38562
46499
class ExtACSyntaxCoupling;
38563
46500
class ExtACTree;
38564
46501
class ExtACKeywords;
38565
 
class WinAsm;
38566
 
class WinDeclSpecs;
38567
 
class WinMemberExplSpec;
38568
 
class WinTypeKeywords;
 
46502
class ExtGnu;
38569
46503
class PragmaOnceUnitState;
38570
46504
class PragmaOnce;
38571
 
class CCExprResolve;
38572
 
class CExprResolve;
38573
 
namespace Puma {
38574
 
 
38575
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46505
class CMatchSyntax;
 
46506
namespace Puma {
 
46507
 
 
46508
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46509
 
 
46510
#line 46511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46511
} // closed Puma
 
46512
 
 
46513
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46514
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46515
#include "CCExprResolveH.ah"
 
46516
#endif
 
46517
namespace Puma {
 
46518
 
 
46519
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46520
 
 
46521
#line 46522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46522
} // closed Puma
 
46523
 
 
46524
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46525
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46526
#include "CExprResolveH.ah"
 
46527
#endif
 
46528
namespace Puma {
 
46529
 
 
46530
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38576
46531
class CT_TypeidExpr : public CT_Expression {
38577
 
#line 38578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46532
#line 46533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46533
  friend class ::CCExprResolve;
 
46534
  friend class ::CExprResolve;
38578
46535
  friend class ::WinIfExists;
38579
46536
  friend class ::WinImportHandler;
38580
46537
  friend class ::WinMacros;
38581
 
  friend class ::CMatchSyntax;
38582
 
  friend class ::ExtGnu;
 
46538
  friend class ::WinAsm;
 
46539
  friend class ::WinDeclSpecs;
 
46540
  friend class ::WinMemberExplSpec;
 
46541
  friend class ::WinTypeKeywords;
 
46542
  friend class ::WinFriend;
38583
46543
  friend class ::ExtAC;
38584
46544
  friend class ::ExtACBuilderCoupling;
38585
46545
  friend class ::ExtACSyntaxCoupling;
38586
46546
  friend class ::ExtACTree;
38587
46547
  friend class ::ExtACKeywords;
38588
 
  friend class ::WinAsm;
38589
 
  friend class ::WinDeclSpecs;
38590
 
  friend class ::WinMemberExplSpec;
38591
 
  friend class ::WinTypeKeywords;
 
46548
  friend class ::ExtGnu;
38592
46549
  friend class ::PragmaOnceUnitState;
38593
46550
  friend class ::PragmaOnce;
38594
 
  friend class ::CCExprResolve;
38595
 
  friend class ::CExprResolve;
 
46551
  friend class ::CMatchSyntax;
38596
46552
 
38597
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46553
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38598
46554
 
38599
46555
  CTree *sons[4]; // typeid, open, type_id/expr, close
38600
46556
 
38601
46557
public:
 
46558
  /** Constructor.
 
46559
   *  \param tid The 'typeid' operator.
 
46560
   *  \param o The left parenthesis of the type name or expression.
 
46561
   *  \param e The expression or type name for which to get the type identifier.
 
46562
   *  \param c The right parenthesis of the type name or expression. */
38602
46563
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
38603
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
46564
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
46565
    AddSon (sons[2], e); AddSon (sons[3], c);
38604
46566
  }
 
46567
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38605
46568
  static const char *NodeId ();
 
46569
  /** Get the name of the node. Can be compared with NodeId(). */
38606
46570
  const char *NodeName () const { return NodeId (); }
 
46571
  /** Get the number of sons. */
38607
46572
  int Sons () const { return 4; }
 
46573
  /** Get the n-th son.
 
46574
   *  \param n The index of the son.
 
46575
   *  \return The n-th son or NULL. */
38608
46576
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
46577
  /** Replace a son.
 
46578
   *  \param old_son The son to replace.
 
46579
   *  \param new_son The new son. */
38609
46580
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38610
46581
    CTree::ReplaceSon (sons, 4, old_son, new_son);
38611
46582
  }
 
46583
  /** Get the typeid argument, i.e. the expression or type name for
 
46584
   *  which to get the type identifier. */
38612
46585
  CTree *Arg () const { return sons[2]; }
38613
46586
   private:
38614
46587
  typedef CT_TypeidExpr CCExprResolveExpr;
38615
46588
 
38616
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38617
46590
 public :
38618
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46591
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38619
46592
  typedef CT_TypeidExpr CExprResolveExpr;
38620
46593
 
38621
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46594
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38622
46595
 public :
38623
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38624
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46596
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46597
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38625
46598
};
38626
46599
 
 
46600
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
46601
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
38627
46602
 
38628
 
#line 38629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46603
#line 46604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38629
46604
} // closed Puma
 
46605
class CCExprResolve;
 
46606
class CExprResolve;
38630
46607
class WinIfExists;
38631
46608
class WinImportHandler;
38632
46609
class WinMacros;
38633
 
class CMatchSyntax;
38634
 
class ExtGnu;
 
46610
class WinAsm;
 
46611
class WinDeclSpecs;
 
46612
class WinMemberExplSpec;
 
46613
class WinTypeKeywords;
 
46614
class WinFriend;
38635
46615
class ExtAC;
38636
46616
class ExtACBuilderCoupling;
38637
46617
class ExtACSyntaxCoupling;
38638
46618
class ExtACTree;
38639
46619
class ExtACKeywords;
38640
 
class WinAsm;
38641
 
class WinDeclSpecs;
38642
 
class WinMemberExplSpec;
38643
 
class WinTypeKeywords;
 
46620
class ExtGnu;
38644
46621
class PragmaOnceUnitState;
38645
46622
class PragmaOnce;
38646
 
class CCExprResolve;
38647
 
class CExprResolve;
38648
 
namespace Puma {
38649
 
 
38650
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46623
class CMatchSyntax;
 
46624
namespace Puma {
 
46625
 
 
46626
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46627
 
 
46628
#line 46629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46629
} // closed Puma
 
46630
 
 
46631
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46632
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46633
#include "CCExprResolveH.ah"
 
46634
#endif
 
46635
namespace Puma {
 
46636
 
 
46637
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46638
 
 
46639
#line 46640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46640
} // closed Puma
 
46641
 
 
46642
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46643
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46644
#include "CExprResolveH.ah"
 
46645
#endif
 
46646
namespace Puma {
 
46647
 
 
46648
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38651
46649
class CT_SizeofExpr : public CT_Expression {
38652
 
#line 38653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46650
#line 46651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46651
  friend class ::CCExprResolve;
 
46652
  friend class ::CExprResolve;
38653
46653
  friend class ::WinIfExists;
38654
46654
  friend class ::WinImportHandler;
38655
46655
  friend class ::WinMacros;
38656
 
  friend class ::CMatchSyntax;
38657
 
  friend class ::ExtGnu;
 
46656
  friend class ::WinAsm;
 
46657
  friend class ::WinDeclSpecs;
 
46658
  friend class ::WinMemberExplSpec;
 
46659
  friend class ::WinTypeKeywords;
 
46660
  friend class ::WinFriend;
38658
46661
  friend class ::ExtAC;
38659
46662
  friend class ::ExtACBuilderCoupling;
38660
46663
  friend class ::ExtACSyntaxCoupling;
38661
46664
  friend class ::ExtACTree;
38662
46665
  friend class ::ExtACKeywords;
38663
 
  friend class ::WinAsm;
38664
 
  friend class ::WinDeclSpecs;
38665
 
  friend class ::WinMemberExplSpec;
38666
 
  friend class ::WinTypeKeywords;
 
46666
  friend class ::ExtGnu;
38667
46667
  friend class ::PragmaOnceUnitState;
38668
46668
  friend class ::PragmaOnce;
38669
 
  friend class ::CCExprResolve;
38670
 
  friend class ::CExprResolve;
 
46669
  friend class ::CMatchSyntax;
38671
46670
 
38672
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46671
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38673
46672
 
38674
46673
  CTree *sons[5]; // key, open, type, close, expr
38675
46674
 
38676
46675
public:
 
46676
  /** Constructor.
 
46677
   *  \param k The 'sizeof' keyword.
 
46678
   *  \param o Left parenthesis around the type name.
 
46679
   *  \param t The type from which to get the size.
 
46680
   *  \param c Right parenthesis around the type name. */
38677
46681
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
38678
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
46682
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
46683
    AddSon (sons[3], c); AddSon (sons[4], 0);
38679
46684
  }
 
46685
  /** Constructor.
 
46686
   *  \param k The 'sizeof' keyword.
 
46687
   *  \param e The expression from which to get the size. */
38680
46688
  CT_SizeofExpr (CTree *k, CTree *e) {
38681
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
46689
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
46690
    AddSon (sons[3], 0); AddSon (sons[4], e);
38682
46691
  }
 
46692
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38683
46693
  static const char *NodeId ();
 
46694
  /** Get the name of the node. Can be compared with NodeId(). */
38684
46695
  const char *NodeName () const { return NodeId (); }
 
46696
  /** Get the number of sons. */
38685
46697
  int Sons () const { return CTree::Sons (sons, 5); }
 
46698
  /** Get the n-th son.
 
46699
   *  \param n The index of the son.
 
46700
   *  \return The n-th son or NULL. */
38686
46701
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
46702
  /** Replace a son.
 
46703
   *  \param old_son The son to replace.
 
46704
   *  \param new_son The new son. */
38687
46705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38688
46706
    CTree::ReplaceSon (sons, 5, old_son, new_son);
38689
46707
  }
 
46708
  /** Get the expression. */
38690
46709
  CTree *Expr () const { return sons[4]; }
 
46710
  /** Get the type name. */
38691
46711
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
38692
46712
   private:
38693
46713
  typedef CT_SizeofExpr CCExprResolveExpr;
38694
46714
 
38695
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46715
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38696
46716
 public :
38697
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46717
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38698
46718
  typedef CT_SizeofExpr CExprResolveExpr;
38699
46719
 
38700
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38701
46721
 public :
38702
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38703
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46722
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46723
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38704
46724
};
38705
46725
 
 
46726
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
46727
 *  Tree node representing an index designator, i.e. [1]. */
38706
46728
 
38707
 
#line 38708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46729
#line 46730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38708
46730
} // closed Puma
 
46731
class CCExprResolve;
 
46732
class CExprResolve;
38709
46733
class WinIfExists;
38710
46734
class WinImportHandler;
38711
46735
class WinMacros;
38712
 
class CMatchSyntax;
38713
 
class ExtGnu;
 
46736
class WinAsm;
 
46737
class WinDeclSpecs;
 
46738
class WinMemberExplSpec;
 
46739
class WinTypeKeywords;
 
46740
class WinFriend;
38714
46741
class ExtAC;
38715
46742
class ExtACBuilderCoupling;
38716
46743
class ExtACSyntaxCoupling;
38717
46744
class ExtACTree;
38718
46745
class ExtACKeywords;
38719
 
class WinAsm;
38720
 
class WinDeclSpecs;
38721
 
class WinMemberExplSpec;
38722
 
class WinTypeKeywords;
 
46746
class ExtGnu;
38723
46747
class PragmaOnceUnitState;
38724
46748
class PragmaOnce;
38725
 
class CCExprResolve;
38726
 
class CExprResolve;
38727
 
namespace Puma {
38728
 
 
38729
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46749
class CMatchSyntax;
 
46750
namespace Puma {
 
46751
 
 
46752
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46753
 
 
46754
#line 46755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46755
} // closed Puma
 
46756
 
 
46757
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46758
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46759
#include "CCExprResolveH.ah"
 
46760
#endif
 
46761
namespace Puma {
 
46762
 
 
46763
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46764
 
 
46765
#line 46766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46766
} // closed Puma
 
46767
 
 
46768
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46769
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46770
#include "CExprResolveH.ah"
 
46771
#endif
 
46772
namespace Puma {
 
46773
 
 
46774
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38730
46775
class CT_IndexDesignator : public CT_Expression {
38731
 
#line 38732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46776
#line 46777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46777
  friend class ::CCExprResolve;
 
46778
  friend class ::CExprResolve;
38732
46779
  friend class ::WinIfExists;
38733
46780
  friend class ::WinImportHandler;
38734
46781
  friend class ::WinMacros;
38735
 
  friend class ::CMatchSyntax;
38736
 
  friend class ::ExtGnu;
 
46782
  friend class ::WinAsm;
 
46783
  friend class ::WinDeclSpecs;
 
46784
  friend class ::WinMemberExplSpec;
 
46785
  friend class ::WinTypeKeywords;
 
46786
  friend class ::WinFriend;
38737
46787
  friend class ::ExtAC;
38738
46788
  friend class ::ExtACBuilderCoupling;
38739
46789
  friend class ::ExtACSyntaxCoupling;
38740
46790
  friend class ::ExtACTree;
38741
46791
  friend class ::ExtACKeywords;
38742
 
  friend class ::WinAsm;
38743
 
  friend class ::WinDeclSpecs;
38744
 
  friend class ::WinMemberExplSpec;
38745
 
  friend class ::WinTypeKeywords;
 
46792
  friend class ::ExtGnu;
38746
46793
  friend class ::PragmaOnceUnitState;
38747
46794
  friend class ::PragmaOnce;
38748
 
  friend class ::CCExprResolve;
38749
 
  friend class ::CExprResolve;
 
46795
  friend class ::CMatchSyntax;
38750
46796
 
38751
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46797
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38752
46798
 
38753
46799
  CTree *sons[3]; // open, index, close
38754
46800
 
38755
46801
public:
 
46802
  /** Constructor.
 
46803
   *  \param o Left bracket of the index designator.
 
46804
   *  \param i The index expression.
 
46805
   *  \param c Right bracket of the index designator. */
38756
46806
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
38757
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
46807
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
38758
46808
  }
 
46809
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38759
46810
  static const char *NodeId ();
 
46811
  /** Get the name of the node. Can be compared with NodeId(). */
38760
46812
  const char *NodeName () const { return NodeId (); }
 
46813
  /** Get the number of sons. */
38761
46814
  int Sons () const { return 3; }
 
46815
  /** Get the n-th son.
 
46816
   *  \param n The index of the son.
 
46817
   *  \return The n-th son or NULL. */
38762
46818
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
46819
  /** Replace a son.
 
46820
   *  \param old_son The son to replace.
 
46821
   *  \param new_son The new son. */
38763
46822
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38764
46823
    CTree::ReplaceSon (sons, 3, old_son, new_son);
38765
46824
  }
38766
46825
   private:
38767
46826
  typedef CT_IndexDesignator CCExprResolveExpr;
38768
46827
 
38769
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46828
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38770
46829
 public :
38771
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46830
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38772
46831
  typedef CT_IndexDesignator CExprResolveExpr;
38773
46832
 
38774
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46833
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38775
46834
 public :
38776
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38777
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46835
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46836
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38778
46837
};
38779
46838
 
 
46839
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
46840
 *  Tree node representing a member designator, e.g. .a. */
38780
46841
 
38781
 
#line 38782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46842
#line 46843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38782
46843
} // closed Puma
 
46844
class CCExprResolve;
 
46845
class CExprResolve;
38783
46846
class WinIfExists;
38784
46847
class WinImportHandler;
38785
46848
class WinMacros;
38786
 
class CMatchSyntax;
38787
 
class ExtGnu;
 
46849
class WinAsm;
 
46850
class WinDeclSpecs;
 
46851
class WinMemberExplSpec;
 
46852
class WinTypeKeywords;
 
46853
class WinFriend;
38788
46854
class ExtAC;
38789
46855
class ExtACBuilderCoupling;
38790
46856
class ExtACSyntaxCoupling;
38791
46857
class ExtACTree;
38792
46858
class ExtACKeywords;
38793
 
class WinAsm;
38794
 
class WinDeclSpecs;
38795
 
class WinMemberExplSpec;
38796
 
class WinTypeKeywords;
 
46859
class ExtGnu;
38797
46860
class PragmaOnceUnitState;
38798
46861
class PragmaOnce;
38799
 
class CCExprResolve;
38800
 
class CExprResolve;
38801
 
namespace Puma {
38802
 
 
38803
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46862
class CMatchSyntax;
 
46863
namespace Puma {
 
46864
 
 
46865
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46866
 
 
46867
#line 46868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46868
} // closed Puma
 
46869
 
 
46870
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46871
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46872
#include "CCExprResolveH.ah"
 
46873
#endif
 
46874
namespace Puma {
 
46875
 
 
46876
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46877
 
 
46878
#line 46879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46879
} // closed Puma
 
46880
 
 
46881
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46882
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46883
#include "CExprResolveH.ah"
 
46884
#endif
 
46885
namespace Puma {
 
46886
 
 
46887
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38804
46888
class CT_MembDesignator : public CT_Expression {
38805
 
#line 38806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46889
#line 46890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46890
  friend class ::CCExprResolve;
 
46891
  friend class ::CExprResolve;
38806
46892
  friend class ::WinIfExists;
38807
46893
  friend class ::WinImportHandler;
38808
46894
  friend class ::WinMacros;
38809
 
  friend class ::CMatchSyntax;
38810
 
  friend class ::ExtGnu;
 
46895
  friend class ::WinAsm;
 
46896
  friend class ::WinDeclSpecs;
 
46897
  friend class ::WinMemberExplSpec;
 
46898
  friend class ::WinTypeKeywords;
 
46899
  friend class ::WinFriend;
38811
46900
  friend class ::ExtAC;
38812
46901
  friend class ::ExtACBuilderCoupling;
38813
46902
  friend class ::ExtACSyntaxCoupling;
38814
46903
  friend class ::ExtACTree;
38815
46904
  friend class ::ExtACKeywords;
38816
 
  friend class ::WinAsm;
38817
 
  friend class ::WinDeclSpecs;
38818
 
  friend class ::WinMemberExplSpec;
38819
 
  friend class ::WinTypeKeywords;
 
46905
  friend class ::ExtGnu;
38820
46906
  friend class ::PragmaOnceUnitState;
38821
46907
  friend class ::PragmaOnce;
38822
 
  friend class ::CCExprResolve;
38823
 
  friend class ::CExprResolve;
 
46908
  friend class ::CMatchSyntax;
38824
46909
 
38825
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46910
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38826
46911
 
38827
46912
  CTree *sons[2]; // dot, member
38828
46913
 
38829
46914
public:
38830
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
46915
  /** Constructor.
 
46916
   *  \param d The dot before the member name.
 
46917
   *  \param m The member name. */
 
46918
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
46919
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38831
46920
  static const char *NodeId ();
 
46921
  /** Get the name of the node. Can be compared with NodeId(). */
38832
46922
  const char *NodeName () const { return NodeId (); }
 
46923
  /** Get the number of sons. */
38833
46924
  int Sons () const { return 2; }
 
46925
  /** Get the n-th son.
 
46926
   *  \param n The index of the son.
 
46927
   *  \return The n-th son or NULL. */
38834
46928
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
46929
  /** Replace a son.
 
46930
   *  \param old_son The son to replace.
 
46931
   *  \param new_son The new son. */
38835
46932
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
38836
46933
    CTree::ReplaceSon (sons, 2, old_son, new_son);
38837
46934
  }
38838
46935
   private:
38839
46936
  typedef CT_MembDesignator CCExprResolveExpr;
38840
46937
 
38841
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46938
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
38842
46939
 public :
38843
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46940
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
38844
46941
  typedef CT_MembDesignator CExprResolveExpr;
38845
46942
 
38846
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46943
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
38847
46944
 public :
38848
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
38849
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46945
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46946
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38850
46947
};
38851
46948
 
 
46949
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
46950
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
38852
46951
 
38853
 
#line 38854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46952
#line 46953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38854
46953
} // closed Puma
 
46954
class CCExprResolve;
 
46955
class CExprResolve;
38855
46956
class WinIfExists;
38856
46957
class WinImportHandler;
38857
46958
class WinMacros;
38858
 
class CMatchSyntax;
38859
 
class ExtGnu;
 
46959
class WinAsm;
 
46960
class WinDeclSpecs;
 
46961
class WinMemberExplSpec;
 
46962
class WinTypeKeywords;
 
46963
class WinFriend;
38860
46964
class ExtAC;
38861
46965
class ExtACBuilderCoupling;
38862
46966
class ExtACSyntaxCoupling;
38863
46967
class ExtACTree;
38864
46968
class ExtACKeywords;
38865
 
class WinAsm;
38866
 
class WinDeclSpecs;
38867
 
class WinMemberExplSpec;
38868
 
class WinTypeKeywords;
 
46969
class ExtGnu;
38869
46970
class PragmaOnceUnitState;
38870
46971
class PragmaOnce;
38871
 
class CCExprResolve;
38872
 
class CExprResolve;
 
46972
class CMatchSyntax;
38873
46973
namespace Puma {
38874
46974
 
38875
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46975
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38876
46976
class CT_DesignatorSeq : public CT_List, public CSemValue {
38877
 
#line 38878 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
46977
#line 46978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
46978
  friend class ::CCExprResolve;
 
46979
  friend class ::CExprResolve;
38878
46980
  friend class ::WinIfExists;
38879
46981
  friend class ::WinImportHandler;
38880
46982
  friend class ::WinMacros;
38881
 
  friend class ::CMatchSyntax;
38882
 
  friend class ::ExtGnu;
 
46983
  friend class ::WinAsm;
 
46984
  friend class ::WinDeclSpecs;
 
46985
  friend class ::WinMemberExplSpec;
 
46986
  friend class ::WinTypeKeywords;
 
46987
  friend class ::WinFriend;
38883
46988
  friend class ::ExtAC;
38884
46989
  friend class ::ExtACBuilderCoupling;
38885
46990
  friend class ::ExtACSyntaxCoupling;
38886
46991
  friend class ::ExtACTree;
38887
46992
  friend class ::ExtACKeywords;
38888
 
  friend class ::WinAsm;
38889
 
  friend class ::WinDeclSpecs;
38890
 
  friend class ::WinMemberExplSpec;
38891
 
  friend class ::WinTypeKeywords;
 
46993
  friend class ::ExtGnu;
38892
46994
  friend class ::PragmaOnceUnitState;
38893
46995
  friend class ::PragmaOnce;
38894
 
  friend class ::CCExprResolve;
38895
 
  friend class ::CExprResolve;
 
46996
  friend class ::CMatchSyntax;
38896
46997
 
38897
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46998
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38898
46999
 
38899
47000
public:
 
47001
  /** Constructor.
 
47002
   *  \param size Initial number of designators. */
38900
47003
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
47004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
38901
47005
  static const char *NodeId ();
 
47006
  /** Get the name of the node. Can be compared with NodeId(). */
38902
47007
  const char *NodeName () const { return NodeId (); }
38903
47008
 
 
47009
  /** Get the type of the entity to initialize. */
38904
47010
  CTypeInfo *Type () const { return type; }
 
47011
  /** Get the value of the entity to initialize. */
38905
47012
  CExprValue *Value () const { return value; }
 
47013
  /** Get the semantic value object. */
38906
47014
  CSemValue *SemValue () const { return (CSemValue*)this; }
38907
47015
};
38908
47016
 
38912
47020
/*                                                                           */
38913
47021
/*****************************************************************************/
38914
47022
 
 
47023
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
47024
 *  Base class for all tree nodes representing declaration specifiers. */
38915
47025
 
38916
 
#line 38917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47026
#line 47027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38917
47027
} // closed Puma
 
47028
class CCExprResolve;
 
47029
class CExprResolve;
38918
47030
class WinIfExists;
38919
47031
class WinImportHandler;
38920
47032
class WinMacros;
38921
 
class CMatchSyntax;
38922
 
class ExtGnu;
 
47033
class WinAsm;
 
47034
class WinDeclSpecs;
 
47035
class WinMemberExplSpec;
 
47036
class WinTypeKeywords;
 
47037
class WinFriend;
38923
47038
class ExtAC;
38924
47039
class ExtACBuilderCoupling;
38925
47040
class ExtACSyntaxCoupling;
38926
47041
class ExtACTree;
38927
47042
class ExtACKeywords;
38928
 
class WinAsm;
38929
 
class WinDeclSpecs;
38930
 
class WinMemberExplSpec;
38931
 
class WinTypeKeywords;
 
47043
class ExtGnu;
38932
47044
class PragmaOnceUnitState;
38933
47045
class PragmaOnce;
38934
 
class CCExprResolve;
38935
 
class CExprResolve;
 
47046
class CMatchSyntax;
38936
47047
namespace Puma {
38937
47048
 
38938
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47049
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38939
47050
class CT_DeclSpec : public CTree {
38940
 
#line 38941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47051
#line 47052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47052
  friend class ::CCExprResolve;
 
47053
  friend class ::CExprResolve;
38941
47054
  friend class ::WinIfExists;
38942
47055
  friend class ::WinImportHandler;
38943
47056
  friend class ::WinMacros;
38944
 
  friend class ::CMatchSyntax;
38945
 
  friend class ::ExtGnu;
 
47057
  friend class ::WinAsm;
 
47058
  friend class ::WinDeclSpecs;
 
47059
  friend class ::WinMemberExplSpec;
 
47060
  friend class ::WinTypeKeywords;
 
47061
  friend class ::WinFriend;
38946
47062
  friend class ::ExtAC;
38947
47063
  friend class ::ExtACBuilderCoupling;
38948
47064
  friend class ::ExtACSyntaxCoupling;
38949
47065
  friend class ::ExtACTree;
38950
47066
  friend class ::ExtACKeywords;
38951
 
  friend class ::WinAsm;
38952
 
  friend class ::WinDeclSpecs;
38953
 
  friend class ::WinMemberExplSpec;
38954
 
  friend class ::WinTypeKeywords;
 
47067
  friend class ::ExtGnu;
38955
47068
  friend class ::PragmaOnceUnitState;
38956
47069
  friend class ::PragmaOnce;
38957
 
  friend class ::CCExprResolve;
38958
 
  friend class ::CExprResolve;
 
47070
  friend class ::CMatchSyntax;
38959
47071
 
38960
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47072
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38961
47073
 
38962
47074
protected:
 
47075
  /** Constructor. */
38963
47076
  CT_DeclSpec () {}
38964
47077
};
38965
47078
 
 
47079
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
47080
 *  Tree node representing a primitive declaration specifier. */
38966
47081
 
38967
 
#line 38968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47082
#line 47083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
38968
47083
} // closed Puma
 
47084
class CCExprResolve;
 
47085
class CExprResolve;
38969
47086
class WinIfExists;
38970
47087
class WinImportHandler;
38971
47088
class WinMacros;
38972
 
class CMatchSyntax;
38973
 
class ExtGnu;
 
47089
class WinAsm;
 
47090
class WinDeclSpecs;
 
47091
class WinMemberExplSpec;
 
47092
class WinTypeKeywords;
 
47093
class WinFriend;
38974
47094
class ExtAC;
38975
47095
class ExtACBuilderCoupling;
38976
47096
class ExtACSyntaxCoupling;
38977
47097
class ExtACTree;
38978
47098
class ExtACKeywords;
38979
 
class WinAsm;
38980
 
class WinDeclSpecs;
38981
 
class WinMemberExplSpec;
38982
 
class WinTypeKeywords;
 
47099
class ExtGnu;
38983
47100
class PragmaOnceUnitState;
38984
47101
class PragmaOnce;
38985
 
class CCExprResolve;
38986
 
class CExprResolve;
 
47102
class CMatchSyntax;
38987
47103
namespace Puma {
38988
47104
 
38989
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47105
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
38990
47106
class CT_PrimDeclSpec : public CT_DeclSpec {
38991
 
#line 38992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47107
#line 47108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47108
  friend class ::CCExprResolve;
 
47109
  friend class ::CExprResolve;
38992
47110
  friend class ::WinIfExists;
38993
47111
  friend class ::WinImportHandler;
38994
47112
  friend class ::WinMacros;
38995
 
  friend class ::CMatchSyntax;
38996
 
  friend class ::ExtGnu;
 
47113
  friend class ::WinAsm;
 
47114
  friend class ::WinDeclSpecs;
 
47115
  friend class ::WinMemberExplSpec;
 
47116
  friend class ::WinTypeKeywords;
 
47117
  friend class ::WinFriend;
38997
47118
  friend class ::ExtAC;
38998
47119
  friend class ::ExtACBuilderCoupling;
38999
47120
  friend class ::ExtACSyntaxCoupling;
39000
47121
  friend class ::ExtACTree;
39001
47122
  friend class ::ExtACKeywords;
39002
 
  friend class ::WinAsm;
39003
 
  friend class ::WinDeclSpecs;
39004
 
  friend class ::WinMemberExplSpec;
39005
 
  friend class ::WinTypeKeywords;
 
47123
  friend class ::ExtGnu;
39006
47124
  friend class ::PragmaOnceUnitState;
39007
47125
  friend class ::PragmaOnce;
39008
 
  friend class ::CCExprResolve;
39009
 
  friend class ::CExprResolve;
 
47126
  friend class ::CMatchSyntax;
39010
47127
 
39011
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47128
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39012
47129
 
39013
47130
public:
39014
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
39015
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
39016
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
39017
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
39018
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
39019
 
              // AspectC++ specific type specifier
39020
 
              PDS_UNKNOWN_T,
39021
 
              // Win specific declaration specifiers
39022
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
39023
 
              PDS_UNKNOWN, PDS_NUM };
 
47131
  /** Declaration specifier types. */
 
47132
  enum Type { 
 
47133
    PDS_FRIEND,    /** friend */
 
47134
    PDS_TYPEDEF,   /** typedef */
 
47135
    PDS_AUTO,      /** auto */
 
47136
    PDS_REGISTER,  /** register */
 
47137
    PDS_STATIC,    /** static */
 
47138
    PDS_EXTERN,    /** extern */
 
47139
    PDS_MUTABLE,   /** mutable */
 
47140
    PDS_INLINE,    /** inline */
 
47141
    PDS_VIRTUAL,   /** virtual */
 
47142
    PDS_EXPLICIT,  /** explicit */
 
47143
    PDS_CONST,     /** const */
 
47144
    PDS_VOLATILE,  /** volatile */
 
47145
    PDS_RESTRICT,  /** restrict */
 
47146
    PDS_CHAR,      /** char */
 
47147
    PDS_WCHAR_T,   /** wchar_t */
 
47148
    PDS_BOOL,      /** bool */
 
47149
    PDS_SHORT,     /** short */
 
47150
    PDS_INT,       /** int */
 
47151
    PDS_LONG,      /** long */
 
47152
    PDS_SIGNED,    /** signed */
 
47153
    PDS_UNSIGNED,  /** unsigned */
 
47154
    PDS_FLOAT,     /** float */
 
47155
    PDS_DOUBLE,    /** double */
 
47156
    PDS_VOID,      /** void */
 
47157
    // AspectC++ specific type specifier
 
47158
    PDS_UNKNOWN_T, /** unknown_t */
 
47159
    // Win specific declaration specifiers
 
47160
    PDS_CDECL,     /** __cdecl */
 
47161
    PDS_STDCALL,   /** __stdcall */
 
47162
    PDS_FASTCALL,  /** __fastcall */
 
47163
    PDS_INT64,     /** __int64 */
 
47164
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
47165
    PDS_NUM        /** Number of declaration specifier types. */
 
47166
  };
39024
47167
 
39025
47168
private:
39026
47169
  Type _type;
39027
 
  CT_Token *_token;
 
47170
  CTree *_token; // has to be a CT_Token
39028
47171
 
39029
47172
  void determine_type ();
39030
47173
 
39031
47174
public:
39032
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
47175
  /** Constructor.
 
47176
   *  \param t The token containing the declaration specifier. */
 
47177
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
47178
  /** Constructor.
 
47179
   *  \param t The declaration specifier type. */
39033
47180
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
47181
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39034
47182
  static const char *NodeId ();
 
47183
  /** Get the name of the node. Can be compared with NodeId(). */
39035
47184
  const char *NodeName () const { return NodeId (); }
 
47185
  /** Get the number of sons. */
39036
47186
  int Sons () const { return _token ? 1 : 0; }
 
47187
  /** Get the n-th son.
 
47188
   *  \param n The index of the son.
 
47189
   *  \return The n-th son or NULL. */
39037
47190
  CTree *Son (int n) const 
39038
47191
   { return (n == 0) ? _token : (CTree*)0; }
 
47192
  /** Get the textual representation of the declaration specifier.
 
47193
   *  \return The string representation or " ". */
39039
47194
  const char *SpecText () const 
39040
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
47195
   { return _token ? _token->token ()->text () : " "; }
 
47196
  /** Get the declaration specifier type. */
39041
47197
  Type SpecType () const { return _type; }
 
47198
  /** Number of declaration specifier types. */
39042
47199
  static const int NumTypes = PDS_NUM;
 
47200
  /** Replace a son.
 
47201
   *  \param old_son The son to replace.
 
47202
   *  \param new_son The new son. */
 
47203
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
47204
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
47205
    determine_type ();
 
47206
  }
39043
47207
};
39044
47208
 
 
47209
/** \class CT_NamedType CTree.h Puma/CTree.h
 
47210
 *  Tree node representing a named type, e.g. (int*)a. 
 
47211
 *  where int* is a type with a generated name. */
39045
47212
 
39046
 
#line 39047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47213
#line 47214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39047
47214
} // closed Puma
 
47215
class CCExprResolve;
 
47216
class CExprResolve;
39048
47217
class WinIfExists;
39049
47218
class WinImportHandler;
39050
47219
class WinMacros;
39051
 
class CMatchSyntax;
39052
 
class ExtGnu;
 
47220
class WinAsm;
 
47221
class WinDeclSpecs;
 
47222
class WinMemberExplSpec;
 
47223
class WinTypeKeywords;
 
47224
class WinFriend;
39053
47225
class ExtAC;
39054
47226
class ExtACBuilderCoupling;
39055
47227
class ExtACSyntaxCoupling;
39056
47228
class ExtACTree;
39057
47229
class ExtACKeywords;
39058
 
class WinAsm;
39059
 
class WinDeclSpecs;
39060
 
class WinMemberExplSpec;
39061
 
class WinTypeKeywords;
 
47230
class ExtGnu;
39062
47231
class PragmaOnceUnitState;
39063
47232
class PragmaOnce;
39064
 
class CCExprResolve;
39065
 
class CExprResolve;
 
47233
class CMatchSyntax;
39066
47234
namespace Puma {
39067
47235
 
39068
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47236
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39069
47237
class CT_NamedType : public CT_DeclSpec, public CSemObject {
39070
 
#line 39071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47238
#line 47239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47239
  friend class ::CCExprResolve;
 
47240
  friend class ::CExprResolve;
39071
47241
  friend class ::WinIfExists;
39072
47242
  friend class ::WinImportHandler;
39073
47243
  friend class ::WinMacros;
39074
 
  friend class ::CMatchSyntax;
39075
 
  friend class ::ExtGnu;
 
47244
  friend class ::WinAsm;
 
47245
  friend class ::WinDeclSpecs;
 
47246
  friend class ::WinMemberExplSpec;
 
47247
  friend class ::WinTypeKeywords;
 
47248
  friend class ::WinFriend;
39076
47249
  friend class ::ExtAC;
39077
47250
  friend class ::ExtACBuilderCoupling;
39078
47251
  friend class ::ExtACSyntaxCoupling;
39079
47252
  friend class ::ExtACTree;
39080
47253
  friend class ::ExtACKeywords;
39081
 
  friend class ::WinAsm;
39082
 
  friend class ::WinDeclSpecs;
39083
 
  friend class ::WinMemberExplSpec;
39084
 
  friend class ::WinTypeKeywords;
 
47254
  friend class ::ExtGnu;
39085
47255
  friend class ::PragmaOnceUnitState;
39086
47256
  friend class ::PragmaOnce;
39087
 
  friend class ::CCExprResolve;
39088
 
  friend class ::CExprResolve;
 
47257
  friend class ::CMatchSyntax;
39089
47258
 
39090
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47259
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39091
47260
 
39092
47261
  CTree *sons[2]; // declspecs, declarator
39093
47262
 
39094
47263
public:
39095
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
47264
  /** Constructor.
 
47265
   *  \param dss The declaration specifier sequence of the type.
 
47266
   *  \param d The type declarator. */
 
47267
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
47268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39096
47269
  static const char *NodeId ();
 
47270
  /** Get the name of the node. Can be compared with NodeId(). */
39097
47271
  const char *NodeName () const { return NodeId (); }
 
47272
  /** Get the number of sons. */
39098
47273
  int Sons () const { return CTree::Sons (sons, 2); }
 
47274
  /** Get the n-th son.
 
47275
   *  \param n The index of the son.
 
47276
   *  \return The n-th son or NULL. */
39099
47277
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
47278
  /** Get the declarator. */
39100
47279
  CTree *Declarator () const { return sons[1]; }
 
47280
  /** Replace a son.
 
47281
   *  \param old_son The son to replace.
 
47282
   *  \param new_son The new son. */
39101
47283
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39102
47284
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39103
47285
  }
 
47286
  /** Get the semantic information object. */
39104
47287
  CSemObject *SemObject () const { return (CSemObject*)this; }
39105
47288
};
39106
47289
      
 
47290
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
47291
 *  Tree node representing a class specifier, e.g. class X. */
39107
47292
 
39108
 
#line 39109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47293
#line 47294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39109
47294
} // closed Puma
 
47295
class CCExprResolve;
 
47296
class CExprResolve;
39110
47297
class WinIfExists;
39111
47298
class WinImportHandler;
39112
47299
class WinMacros;
39113
 
class CMatchSyntax;
39114
 
class ExtGnu;
 
47300
class WinAsm;
 
47301
class WinDeclSpecs;
 
47302
class WinMemberExplSpec;
 
47303
class WinTypeKeywords;
 
47304
class WinFriend;
39115
47305
class ExtAC;
39116
47306
class ExtACBuilderCoupling;
39117
47307
class ExtACSyntaxCoupling;
39118
47308
class ExtACTree;
39119
47309
class ExtACKeywords;
39120
 
class WinAsm;
39121
 
class WinDeclSpecs;
39122
 
class WinMemberExplSpec;
39123
 
class WinTypeKeywords;
 
47310
class ExtGnu;
39124
47311
class PragmaOnceUnitState;
39125
47312
class PragmaOnce;
39126
 
class CCExprResolve;
39127
 
class CExprResolve;
 
47313
class CMatchSyntax;
39128
47314
namespace Puma {
39129
47315
 
39130
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47316
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39131
47317
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
39132
 
#line 39133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47318
#line 47319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47319
  friend class ::CCExprResolve;
 
47320
  friend class ::CExprResolve;
39133
47321
  friend class ::WinIfExists;
39134
47322
  friend class ::WinImportHandler;
39135
47323
  friend class ::WinMacros;
39136
 
  friend class ::CMatchSyntax;
39137
 
  friend class ::ExtGnu;
 
47324
  friend class ::WinAsm;
 
47325
  friend class ::WinDeclSpecs;
 
47326
  friend class ::WinMemberExplSpec;
 
47327
  friend class ::WinTypeKeywords;
 
47328
  friend class ::WinFriend;
39138
47329
  friend class ::ExtAC;
39139
47330
  friend class ::ExtACBuilderCoupling;
39140
47331
  friend class ::ExtACSyntaxCoupling;
39141
47332
  friend class ::ExtACTree;
39142
47333
  friend class ::ExtACKeywords;
39143
 
  friend class ::WinAsm;
39144
 
  friend class ::WinDeclSpecs;
39145
 
  friend class ::WinMemberExplSpec;
39146
 
  friend class ::WinTypeKeywords;
 
47334
  friend class ::ExtGnu;
39147
47335
  friend class ::PragmaOnceUnitState;
39148
47336
  friend class ::PragmaOnce;
39149
 
  friend class ::CCExprResolve;
39150
 
  friend class ::CExprResolve;
 
47337
  friend class ::CMatchSyntax;
39151
47338
 
39152
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47339
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39153
47340
 
39154
47341
  CTree *sons[2]; // key, name
39155
47342
  
39156
47343
public:
39157
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
47344
  /** Constructor.
 
47345
   *  \param k The 'class' or 'struct' keyword.
 
47346
   *  \param n The class name. */
 
47347
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
47348
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39158
47349
  static const char *NodeId ();
 
47350
  /** Get the name of the node. Can be compared with NodeId(). */
39159
47351
  const char *NodeName () const { return NodeId (); }
 
47352
  /** Get the number of sons. */
39160
47353
  int Sons () const { return 2; }
 
47354
  /** Get the n-th son.
 
47355
   *  \param n The index of the son.
 
47356
   *  \return The n-th son or NULL. */
39161
47357
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
47358
  /** Get the class name. */
39162
47359
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
47360
  /** Get the semantic information object. */
39163
47361
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
47362
  /** Replace a son.
 
47363
   *  \param old_son The son to replace.
 
47364
   *  \param new_son The new son. */
39164
47365
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39165
47366
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39166
47367
  }
39167
47368
};
39168
47369
 
 
47370
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
47371
 *  Tree node representing a union specifier, e.g. union X. */
39169
47372
 
39170
 
#line 39171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47373
#line 47374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39171
47374
} // closed Puma
 
47375
class CCExprResolve;
 
47376
class CExprResolve;
39172
47377
class WinIfExists;
39173
47378
class WinImportHandler;
39174
47379
class WinMacros;
39175
 
class CMatchSyntax;
39176
 
class ExtGnu;
 
47380
class WinAsm;
 
47381
class WinDeclSpecs;
 
47382
class WinMemberExplSpec;
 
47383
class WinTypeKeywords;
 
47384
class WinFriend;
39177
47385
class ExtAC;
39178
47386
class ExtACBuilderCoupling;
39179
47387
class ExtACSyntaxCoupling;
39180
47388
class ExtACTree;
39181
47389
class ExtACKeywords;
39182
 
class WinAsm;
39183
 
class WinDeclSpecs;
39184
 
class WinMemberExplSpec;
39185
 
class WinTypeKeywords;
 
47390
class ExtGnu;
39186
47391
class PragmaOnceUnitState;
39187
47392
class PragmaOnce;
39188
 
class CCExprResolve;
39189
 
class CExprResolve;
 
47393
class CMatchSyntax;
39190
47394
namespace Puma {
39191
47395
 
39192
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47396
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39193
47397
class CT_UnionSpec : public CT_ClassSpec {
39194
 
#line 39195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47398
#line 47399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47399
  friend class ::CCExprResolve;
 
47400
  friend class ::CExprResolve;
39195
47401
  friend class ::WinIfExists;
39196
47402
  friend class ::WinImportHandler;
39197
47403
  friend class ::WinMacros;
39198
 
  friend class ::CMatchSyntax;
39199
 
  friend class ::ExtGnu;
 
47404
  friend class ::WinAsm;
 
47405
  friend class ::WinDeclSpecs;
 
47406
  friend class ::WinMemberExplSpec;
 
47407
  friend class ::WinTypeKeywords;
 
47408
  friend class ::WinFriend;
39200
47409
  friend class ::ExtAC;
39201
47410
  friend class ::ExtACBuilderCoupling;
39202
47411
  friend class ::ExtACSyntaxCoupling;
39203
47412
  friend class ::ExtACTree;
39204
47413
  friend class ::ExtACKeywords;
39205
 
  friend class ::WinAsm;
39206
 
  friend class ::WinDeclSpecs;
39207
 
  friend class ::WinMemberExplSpec;
39208
 
  friend class ::WinTypeKeywords;
 
47414
  friend class ::ExtGnu;
39209
47415
  friend class ::PragmaOnceUnitState;
39210
47416
  friend class ::PragmaOnce;
39211
 
  friend class ::CCExprResolve;
39212
 
  friend class ::CExprResolve;
 
47417
  friend class ::CMatchSyntax;
39213
47418
 
39214
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47419
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39215
47420
 
39216
47421
public:
 
47422
  /** Constructor.
 
47423
   *  \param k The 'union' keyword.
 
47424
   *  \param n The name of the union. */
39217
47425
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
47426
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39218
47427
  static const char *NodeId ();
 
47428
  /** Get the name of the node. Can be compared with NodeId(). */
39219
47429
  const char *NodeName () const { return NodeId (); }
39220
47430
};
39221
47431
 
 
47432
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
47433
 *  Tree node representing an enumeration specifier, e.g. enum X. */
39222
47434
 
39223
 
#line 39224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47435
#line 47436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39224
47436
} // closed Puma
 
47437
class CCExprResolve;
 
47438
class CExprResolve;
39225
47439
class WinIfExists;
39226
47440
class WinImportHandler;
39227
47441
class WinMacros;
39228
 
class CMatchSyntax;
39229
 
class ExtGnu;
 
47442
class WinAsm;
 
47443
class WinDeclSpecs;
 
47444
class WinMemberExplSpec;
 
47445
class WinTypeKeywords;
 
47446
class WinFriend;
39230
47447
class ExtAC;
39231
47448
class ExtACBuilderCoupling;
39232
47449
class ExtACSyntaxCoupling;
39233
47450
class ExtACTree;
39234
47451
class ExtACKeywords;
39235
 
class WinAsm;
39236
 
class WinDeclSpecs;
39237
 
class WinMemberExplSpec;
39238
 
class WinTypeKeywords;
 
47452
class ExtGnu;
39239
47453
class PragmaOnceUnitState;
39240
47454
class PragmaOnce;
39241
 
class CCExprResolve;
39242
 
class CExprResolve;
 
47455
class CMatchSyntax;
39243
47456
namespace Puma {
39244
47457
 
39245
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47458
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39246
47459
class CT_EnumSpec : public CT_ClassSpec {
39247
 
#line 39248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47460
#line 47461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47461
  friend class ::CCExprResolve;
 
47462
  friend class ::CExprResolve;
39248
47463
  friend class ::WinIfExists;
39249
47464
  friend class ::WinImportHandler;
39250
47465
  friend class ::WinMacros;
39251
 
  friend class ::CMatchSyntax;
39252
 
  friend class ::ExtGnu;
 
47466
  friend class ::WinAsm;
 
47467
  friend class ::WinDeclSpecs;
 
47468
  friend class ::WinMemberExplSpec;
 
47469
  friend class ::WinTypeKeywords;
 
47470
  friend class ::WinFriend;
39253
47471
  friend class ::ExtAC;
39254
47472
  friend class ::ExtACBuilderCoupling;
39255
47473
  friend class ::ExtACSyntaxCoupling;
39256
47474
  friend class ::ExtACTree;
39257
47475
  friend class ::ExtACKeywords;
39258
 
  friend class ::WinAsm;
39259
 
  friend class ::WinDeclSpecs;
39260
 
  friend class ::WinMemberExplSpec;
39261
 
  friend class ::WinTypeKeywords;
 
47476
  friend class ::ExtGnu;
39262
47477
  friend class ::PragmaOnceUnitState;
39263
47478
  friend class ::PragmaOnce;
39264
 
  friend class ::CCExprResolve;
39265
 
  friend class ::CExprResolve;
 
47479
  friend class ::CMatchSyntax;
39266
47480
 
39267
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47481
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39268
47482
 
39269
47483
public:
 
47484
  /** Constructor.
 
47485
   *  \param k The 'enum' keyword. 
 
47486
   *  \param n The name of the enumeration. */
39270
47487
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
47488
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39271
47489
  static const char *NodeId ();
 
47490
  /** Get the name of the node. Can be compared with NodeId(). */
39272
47491
  const char *NodeName () const { return NodeId (); }
39273
47492
};
39274
47493
 
 
47494
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
47495
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
39275
47496
 
39276
 
#line 39277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47497
#line 47498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39277
47498
} // closed Puma
 
47499
class CCExprResolve;
 
47500
class CExprResolve;
39278
47501
class WinIfExists;
39279
47502
class WinImportHandler;
39280
47503
class WinMacros;
39281
 
class CMatchSyntax;
39282
 
class ExtGnu;
 
47504
class WinAsm;
 
47505
class WinDeclSpecs;
 
47506
class WinMemberExplSpec;
 
47507
class WinTypeKeywords;
 
47508
class WinFriend;
39283
47509
class ExtAC;
39284
47510
class ExtACBuilderCoupling;
39285
47511
class ExtACSyntaxCoupling;
39286
47512
class ExtACTree;
39287
47513
class ExtACKeywords;
39288
 
class WinAsm;
39289
 
class WinDeclSpecs;
39290
 
class WinMemberExplSpec;
39291
 
class WinTypeKeywords;
 
47514
class ExtGnu;
39292
47515
class PragmaOnceUnitState;
39293
47516
class PragmaOnce;
39294
 
class CCExprResolve;
39295
 
class CExprResolve;
 
47517
class CMatchSyntax;
39296
47518
namespace Puma {
39297
47519
 
39298
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47520
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39299
47521
class CT_ExceptionSpec : public CT_DeclSpec {
39300
 
#line 39301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47522
#line 47523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47523
  friend class ::CCExprResolve;
 
47524
  friend class ::CExprResolve;
39301
47525
  friend class ::WinIfExists;
39302
47526
  friend class ::WinImportHandler;
39303
47527
  friend class ::WinMacros;
39304
 
  friend class ::CMatchSyntax;
39305
 
  friend class ::ExtGnu;
 
47528
  friend class ::WinAsm;
 
47529
  friend class ::WinDeclSpecs;
 
47530
  friend class ::WinMemberExplSpec;
 
47531
  friend class ::WinTypeKeywords;
 
47532
  friend class ::WinFriend;
39306
47533
  friend class ::ExtAC;
39307
47534
  friend class ::ExtACBuilderCoupling;
39308
47535
  friend class ::ExtACSyntaxCoupling;
39309
47536
  friend class ::ExtACTree;
39310
47537
  friend class ::ExtACKeywords;
39311
 
  friend class ::WinAsm;
39312
 
  friend class ::WinDeclSpecs;
39313
 
  friend class ::WinMemberExplSpec;
39314
 
  friend class ::WinTypeKeywords;
 
47538
  friend class ::ExtGnu;
39315
47539
  friend class ::PragmaOnceUnitState;
39316
47540
  friend class ::PragmaOnce;
39317
 
  friend class ::CCExprResolve;
39318
 
  friend class ::CExprResolve;
 
47541
  friend class ::CMatchSyntax;
39319
47542
 
39320
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47543
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39321
47544
 
39322
47545
  CTree *sons[2]; // throw, type_id_list
39323
47546
  
39324
47547
public:
39325
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
47548
  /** Constructor.
 
47549
   *  \param k The 'throw' keyword.
 
47550
   *  \param l The type list for the exception type to throw. */
 
47551
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
47552
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39326
47553
  static const char *NodeId ();
 
47554
  /** Get the name of the node. Can be compared with NodeId(). */
39327
47555
  const char *NodeName () const { return NodeId (); }
 
47556
  /** Get the number of sons. */
39328
47557
  int Sons () const { return 2; }
 
47558
  /** Get the n-th son.
 
47559
   *  \param n The index of the son.
 
47560
   *  \return The n-th son or NULL. */
39329
47561
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
47562
  /** Get the exception type list. */
39330
47563
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
47564
  /** Replace a son.
 
47565
   *  \param old_son The son to replace.
 
47566
   *  \param new_son The new son. */
39331
47567
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39332
47568
    CTree::ReplaceSon (sons, 2, old_son, new_son);
39333
47569
  }
39339
47575
/*                                                                           */
39340
47576
/*****************************************************************************/
39341
47577
 
 
47578
/** \class CT_Decl CTree.h Puma/CTree.h
 
47579
 *  Base class for all tree nodes representing declarations. */
39342
47580
 
39343
 
#line 39344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47581
#line 47582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39344
47582
} // closed Puma
 
47583
class CCExprResolve;
 
47584
class CExprResolve;
39345
47585
class WinIfExists;
39346
47586
class WinImportHandler;
39347
47587
class WinMacros;
39348
 
class CMatchSyntax;
39349
 
class ExtGnu;
 
47588
class WinAsm;
 
47589
class WinDeclSpecs;
 
47590
class WinMemberExplSpec;
 
47591
class WinTypeKeywords;
 
47592
class WinFriend;
39350
47593
class ExtAC;
39351
47594
class ExtACBuilderCoupling;
39352
47595
class ExtACSyntaxCoupling;
39353
47596
class ExtACTree;
39354
47597
class ExtACKeywords;
39355
 
class WinAsm;
39356
 
class WinDeclSpecs;
39357
 
class WinMemberExplSpec;
39358
 
class WinTypeKeywords;
 
47598
class ExtGnu;
39359
47599
class PragmaOnceUnitState;
39360
47600
class PragmaOnce;
39361
 
class CCExprResolve;
39362
 
class CExprResolve;
 
47601
class CMatchSyntax;
39363
47602
namespace Puma {
39364
47603
 
39365
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47604
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39366
47605
class CT_Decl : public CTree {
39367
 
#line 39368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47606
#line 47607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47607
  friend class ::CCExprResolve;
 
47608
  friend class ::CExprResolve;
39368
47609
  friend class ::WinIfExists;
39369
47610
  friend class ::WinImportHandler;
39370
47611
  friend class ::WinMacros;
39371
 
  friend class ::CMatchSyntax;
39372
 
  friend class ::ExtGnu;
 
47612
  friend class ::WinAsm;
 
47613
  friend class ::WinDeclSpecs;
 
47614
  friend class ::WinMemberExplSpec;
 
47615
  friend class ::WinTypeKeywords;
 
47616
  friend class ::WinFriend;
39373
47617
  friend class ::ExtAC;
39374
47618
  friend class ::ExtACBuilderCoupling;
39375
47619
  friend class ::ExtACSyntaxCoupling;
39376
47620
  friend class ::ExtACTree;
39377
47621
  friend class ::ExtACKeywords;
39378
 
  friend class ::WinAsm;
39379
 
  friend class ::WinDeclSpecs;
39380
 
  friend class ::WinMemberExplSpec;
39381
 
  friend class ::WinTypeKeywords;
 
47622
  friend class ::ExtGnu;
39382
47623
  friend class ::PragmaOnceUnitState;
39383
47624
  friend class ::PragmaOnce;
39384
 
  friend class ::CCExprResolve;
39385
 
  friend class ::CExprResolve;
 
47625
  friend class ::CMatchSyntax;
39386
47626
 
39387
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47627
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39388
47628
 
39389
47629
  CT_LinkageSpec *_linkage;
 
47630
  
39390
47631
protected:
 
47632
  /** Constructor. */
39391
47633
  CT_Decl () : _linkage (0) {}
 
47634
  
39392
47635
public:
 
47636
  /** Set the linkage of the declared entity.
 
47637
   *  \param l The linkage specifiers. */
39393
47638
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
47639
  /** Get the linkage specifiers. */
39394
47640
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
47641
  /** Get this. */
 
47642
  virtual CT_Decl *IsDeclaration () { return this; }
39395
47643
};
39396
47644
 
 
47645
/** \class CT_Program CTree.h Puma/CTree.h
 
47646
 *  Root node of C/C++ syntax tree. */
39397
47647
 
39398
 
#line 39399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47648
#line 47649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39399
47649
} // closed Puma
 
47650
class CCExprResolve;
 
47651
class CExprResolve;
39400
47652
class WinIfExists;
39401
47653
class WinImportHandler;
39402
47654
class WinMacros;
39403
 
class CMatchSyntax;
39404
 
class ExtGnu;
 
47655
class WinAsm;
 
47656
class WinDeclSpecs;
 
47657
class WinMemberExplSpec;
 
47658
class WinTypeKeywords;
 
47659
class WinFriend;
39405
47660
class ExtAC;
39406
47661
class ExtACBuilderCoupling;
39407
47662
class ExtACSyntaxCoupling;
39408
47663
class ExtACTree;
39409
47664
class ExtACKeywords;
39410
 
class WinAsm;
39411
 
class WinDeclSpecs;
39412
 
class WinMemberExplSpec;
39413
 
class WinTypeKeywords;
 
47665
class ExtGnu;
39414
47666
class PragmaOnceUnitState;
39415
47667
class PragmaOnce;
39416
 
class CCExprResolve;
39417
 
class CExprResolve;
 
47668
class CMatchSyntax;
39418
47669
namespace Puma {
39419
47670
 
39420
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47671
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39421
47672
class CT_Program : public CT_DeclList, public CSemScope {
39422
 
#line 39423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47673
#line 47674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47674
  friend class ::CCExprResolve;
 
47675
  friend class ::CExprResolve;
39423
47676
  friend class ::WinIfExists;
39424
47677
  friend class ::WinImportHandler;
39425
47678
  friend class ::WinMacros;
39426
 
  friend class ::CMatchSyntax;
39427
 
  friend class ::ExtGnu;
 
47679
  friend class ::WinAsm;
 
47680
  friend class ::WinDeclSpecs;
 
47681
  friend class ::WinMemberExplSpec;
 
47682
  friend class ::WinTypeKeywords;
 
47683
  friend class ::WinFriend;
39428
47684
  friend class ::ExtAC;
39429
47685
  friend class ::ExtACBuilderCoupling;
39430
47686
  friend class ::ExtACSyntaxCoupling;
39431
47687
  friend class ::ExtACTree;
39432
47688
  friend class ::ExtACKeywords;
39433
 
  friend class ::WinAsm;
39434
 
  friend class ::WinDeclSpecs;
39435
 
  friend class ::WinMemberExplSpec;
39436
 
  friend class ::WinTypeKeywords;
 
47689
  friend class ::ExtGnu;
39437
47690
  friend class ::PragmaOnceUnitState;
39438
47691
  friend class ::PragmaOnce;
39439
 
  friend class ::CCExprResolve;
39440
 
  friend class ::CExprResolve;
 
47692
  friend class ::CMatchSyntax;
39441
47693
 
39442
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47694
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39443
47695
 
39444
47696
public:
 
47697
  /** Constructor.
 
47698
   *  \param size The initial number of declarations in the program.
 
47699
   *  \param incr The initial increment count. */
39445
47700
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
47701
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39446
47702
  static const char *NodeId ();
 
47703
  /** Get the name of the node. Can be compared with NodeId(). */
39447
47704
  const char *NodeName () const { return NodeId (); }
 
47705
  /** Get the semantic scope object. */
 
47706
  CSemScope *SemScope () const { return (CSemScope*)this; }
39448
47707
};
39449
47708
   
 
47709
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
47710
 *  Tree node representing an object declaration, e.g. int *i. */
39450
47711
 
39451
 
#line 39452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47712
#line 47713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39452
47713
} // closed Puma
 
47714
class CCExprResolve;
 
47715
class CExprResolve;
39453
47716
class WinIfExists;
39454
47717
class WinImportHandler;
39455
47718
class WinMacros;
39456
 
class CMatchSyntax;
39457
 
class ExtGnu;
 
47719
class WinAsm;
 
47720
class WinDeclSpecs;
 
47721
class WinMemberExplSpec;
 
47722
class WinTypeKeywords;
 
47723
class WinFriend;
39458
47724
class ExtAC;
39459
47725
class ExtACBuilderCoupling;
39460
47726
class ExtACSyntaxCoupling;
39461
47727
class ExtACTree;
39462
47728
class ExtACKeywords;
39463
 
class WinAsm;
39464
 
class WinDeclSpecs;
39465
 
class WinMemberExplSpec;
39466
 
class WinTypeKeywords;
 
47729
class ExtGnu;
39467
47730
class PragmaOnceUnitState;
39468
47731
class PragmaOnce;
39469
 
class CCExprResolve;
39470
 
class CExprResolve;
 
47732
class CMatchSyntax;
39471
47733
namespace Puma {
39472
47734
 
39473
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47735
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39474
47736
class CT_ObjDecl : public CT_Decl {
39475
 
#line 39476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47737
#line 47738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47738
  friend class ::CCExprResolve;
 
47739
  friend class ::CExprResolve;
39476
47740
  friend class ::WinIfExists;
39477
47741
  friend class ::WinImportHandler;
39478
47742
  friend class ::WinMacros;
39479
 
  friend class ::CMatchSyntax;
39480
 
  friend class ::ExtGnu;
 
47743
  friend class ::WinAsm;
 
47744
  friend class ::WinDeclSpecs;
 
47745
  friend class ::WinMemberExplSpec;
 
47746
  friend class ::WinTypeKeywords;
 
47747
  friend class ::WinFriend;
39481
47748
  friend class ::ExtAC;
39482
47749
  friend class ::ExtACBuilderCoupling;
39483
47750
  friend class ::ExtACSyntaxCoupling;
39484
47751
  friend class ::ExtACTree;
39485
47752
  friend class ::ExtACKeywords;
39486
 
  friend class ::WinAsm;
39487
 
  friend class ::WinDeclSpecs;
39488
 
  friend class ::WinMemberExplSpec;
39489
 
  friend class ::WinTypeKeywords;
 
47753
  friend class ::ExtGnu;
39490
47754
  friend class ::PragmaOnceUnitState;
39491
47755
  friend class ::PragmaOnce;
39492
 
  friend class ::CCExprResolve;
39493
 
  friend class ::CExprResolve;
 
47756
  friend class ::CMatchSyntax;
39494
47757
 
39495
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47758
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39496
47759
 
39497
47760
  CTree *sons[3]; // declspecs, declarators, colon
39498
47761
 
39499
47762
public:
 
47763
  /** Constructor.
 
47764
   *  \param dsl The declaration specifier sequence.
 
47765
   *  \param dl The declarator list.
 
47766
   *  \param c Optional colon. */
39500
47767
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
39501
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
47768
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
39502
47769
  }
 
47770
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39503
47771
  static const char *NodeId ();
 
47772
  /** Get the name of the node. Can be compared with NodeId(). */
39504
47773
  const char *NodeName () const { return NodeId (); }
 
47774
  /** Get the number of sons. */
39505
47775
  int Sons () const { return 3; }
 
47776
  /** Get the n-th son.
 
47777
   *  \param n The index of the son.
 
47778
   *  \return The n-th son or NULL. */
39506
47779
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47780
  /** Get the declaration specifier sequence. */
39507
47781
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
47782
  /** Get the declarator list. */
39508
47783
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
47784
  /** Replace a son.
 
47785
   *  \param old_son The son to replace.
 
47786
   *  \param new_son The new son. */
39509
47787
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39510
47788
    CTree::ReplaceSon (sons, 3, old_son, new_son);
39511
47789
  }
39512
47790
};
39513
47791
 
 
47792
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
47793
 *  Tree node representing a template declaration. */
39514
47794
 
39515
 
#line 39516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47795
#line 47796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39516
47796
} // closed Puma
 
47797
class CCExprResolve;
 
47798
class CExprResolve;
39517
47799
class WinIfExists;
39518
47800
class WinImportHandler;
39519
47801
class WinMacros;
39520
 
class CMatchSyntax;
39521
 
class ExtGnu;
 
47802
class WinAsm;
 
47803
class WinDeclSpecs;
 
47804
class WinMemberExplSpec;
 
47805
class WinTypeKeywords;
 
47806
class WinFriend;
39522
47807
class ExtAC;
39523
47808
class ExtACBuilderCoupling;
39524
47809
class ExtACSyntaxCoupling;
39525
47810
class ExtACTree;
39526
47811
class ExtACKeywords;
39527
 
class WinAsm;
39528
 
class WinDeclSpecs;
39529
 
class WinMemberExplSpec;
39530
 
class WinTypeKeywords;
 
47812
class ExtGnu;
39531
47813
class PragmaOnceUnitState;
39532
47814
class PragmaOnce;
39533
 
class CCExprResolve;
39534
 
class CExprResolve;
 
47815
class CMatchSyntax;
39535
47816
namespace Puma {
39536
47817
 
39537
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47818
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39538
47819
class CT_TemplateDecl : public CT_Decl, public CSemScope {
39539
 
#line 39540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47820
#line 47821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47821
  friend class ::CCExprResolve;
 
47822
  friend class ::CExprResolve;
39540
47823
  friend class ::WinIfExists;
39541
47824
  friend class ::WinImportHandler;
39542
47825
  friend class ::WinMacros;
39543
 
  friend class ::CMatchSyntax;
39544
 
  friend class ::ExtGnu;
 
47826
  friend class ::WinAsm;
 
47827
  friend class ::WinDeclSpecs;
 
47828
  friend class ::WinMemberExplSpec;
 
47829
  friend class ::WinTypeKeywords;
 
47830
  friend class ::WinFriend;
39545
47831
  friend class ::ExtAC;
39546
47832
  friend class ::ExtACBuilderCoupling;
39547
47833
  friend class ::ExtACSyntaxCoupling;
39548
47834
  friend class ::ExtACTree;
39549
47835
  friend class ::ExtACKeywords;
39550
 
  friend class ::WinAsm;
39551
 
  friend class ::WinDeclSpecs;
39552
 
  friend class ::WinMemberExplSpec;
39553
 
  friend class ::WinTypeKeywords;
 
47836
  friend class ::ExtGnu;
39554
47837
  friend class ::PragmaOnceUnitState;
39555
47838
  friend class ::PragmaOnce;
39556
 
  friend class ::CCExprResolve;
39557
 
  friend class ::CExprResolve;
 
47839
  friend class ::CMatchSyntax;
39558
47840
 
39559
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47841
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39560
47842
 
39561
47843
  CTree *sons[3]; // export, param_list, decl
39562
47844
 
39563
47845
public:
 
47846
  /** Constructor.
 
47847
   *  \param e Optional 'export' keyword. 
 
47848
   *  \param p The template parameter list.
 
47849
   *  \param d The class or function declaration. */
39564
47850
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
39565
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
47851
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
39566
47852
  }
 
47853
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39567
47854
  static const char *NodeId ();
 
47855
  /** Get the name of the node. Can be compared with NodeId(). */
39568
47856
  const char *NodeName () const { return NodeId (); }
 
47857
  /** Get the number of sons. */
39569
47858
  int Sons () const { return CTree::Sons (sons, 3); }
 
47859
  /** Get the n-th son.
 
47860
   *  \param n The index of the son.
 
47861
   *  \return The n-th son or NULL. */
39570
47862
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47863
  /** Replace a son.
 
47864
   *  \param old_son The son to replace.
 
47865
   *  \param new_son The new son. */
39571
47866
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39572
47867
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
39573
47868
  }
 
47869
  /** Get the 'export' keyword. */
39574
47870
  CTree *Export () const { return sons[0]; }
 
47871
  /** Get the template parameter list. */
39575
47872
  CT_TemplateParamList *Parameters () const { 
39576
47873
    return (CT_TemplateParamList*)sons[1]; 
39577
47874
  }
 
47875
  /** Get the class or function declaration. */
39578
47876
  CTree *Declaration () const { return sons[2]; }
 
47877
  /** Get the semantic scope object. */
 
47878
  CSemScope *SemScope () const { return (CSemScope*)this; }
39579
47879
};
39580
47880
 
 
47881
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
47882
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
39581
47883
 
39582
 
#line 39583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47884
#line 47885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39583
47885
} // closed Puma
 
47886
class CCExprResolve;
 
47887
class CExprResolve;
39584
47888
class WinIfExists;
39585
47889
class WinImportHandler;
39586
47890
class WinMacros;
39587
 
class CMatchSyntax;
39588
 
class ExtGnu;
 
47891
class WinAsm;
 
47892
class WinDeclSpecs;
 
47893
class WinMemberExplSpec;
 
47894
class WinTypeKeywords;
 
47895
class WinFriend;
39589
47896
class ExtAC;
39590
47897
class ExtACBuilderCoupling;
39591
47898
class ExtACSyntaxCoupling;
39592
47899
class ExtACTree;
39593
47900
class ExtACKeywords;
39594
 
class WinAsm;
39595
 
class WinDeclSpecs;
39596
 
class WinMemberExplSpec;
39597
 
class WinTypeKeywords;
 
47901
class ExtGnu;
39598
47902
class PragmaOnceUnitState;
39599
47903
class PragmaOnce;
39600
 
class CCExprResolve;
39601
 
class CExprResolve;
 
47904
class CMatchSyntax;
39602
47905
namespace Puma {
39603
47906
 
39604
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47907
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39605
47908
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
39606
 
#line 39607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47909
#line 47910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47910
  friend class ::CCExprResolve;
 
47911
  friend class ::CExprResolve;
39607
47912
  friend class ::WinIfExists;
39608
47913
  friend class ::WinImportHandler;
39609
47914
  friend class ::WinMacros;
39610
 
  friend class ::CMatchSyntax;
39611
 
  friend class ::ExtGnu;
 
47915
  friend class ::WinAsm;
 
47916
  friend class ::WinDeclSpecs;
 
47917
  friend class ::WinMemberExplSpec;
 
47918
  friend class ::WinTypeKeywords;
 
47919
  friend class ::WinFriend;
39612
47920
  friend class ::ExtAC;
39613
47921
  friend class ::ExtACBuilderCoupling;
39614
47922
  friend class ::ExtACSyntaxCoupling;
39615
47923
  friend class ::ExtACTree;
39616
47924
  friend class ::ExtACKeywords;
39617
 
  friend class ::WinAsm;
39618
 
  friend class ::WinDeclSpecs;
39619
 
  friend class ::WinMemberExplSpec;
39620
 
  friend class ::WinTypeKeywords;
 
47925
  friend class ::ExtGnu;
39621
47926
  friend class ::PragmaOnceUnitState;
39622
47927
  friend class ::PragmaOnce;
39623
 
  friend class ::CCExprResolve;
39624
 
  friend class ::CExprResolve;
 
47928
  friend class ::CMatchSyntax;
39625
47929
 
39626
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47930
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39627
47931
 
39628
47932
protected:
 
47933
  /** Constructor. */
39629
47934
  CT_TemplateParamDecl () {}
39630
47935
  
39631
47936
public:
 
47937
  /** Get the template default argument. */
39632
47938
  virtual CT_ExprList *DefaultArgument () const = 0;
 
47939
  /** Get the semantic information object. */
39633
47940
  CSemObject *SemObject () const { return (CSemObject*)this; }
39634
47941
};
39635
47942
 
39636
47943
 
39637
 
#line 39638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47944
#line 47945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39638
47945
} // closed Puma
 
47946
class CCExprResolve;
 
47947
class CExprResolve;
39639
47948
class WinIfExists;
39640
47949
class WinImportHandler;
39641
47950
class WinMacros;
39642
 
class CMatchSyntax;
39643
 
class ExtGnu;
 
47951
class WinAsm;
 
47952
class WinDeclSpecs;
 
47953
class WinMemberExplSpec;
 
47954
class WinTypeKeywords;
 
47955
class WinFriend;
39644
47956
class ExtAC;
39645
47957
class ExtACBuilderCoupling;
39646
47958
class ExtACSyntaxCoupling;
39647
47959
class ExtACTree;
39648
47960
class ExtACKeywords;
39649
 
class WinAsm;
39650
 
class WinDeclSpecs;
39651
 
class WinMemberExplSpec;
39652
 
class WinTypeKeywords;
 
47961
class ExtGnu;
39653
47962
class PragmaOnceUnitState;
39654
47963
class PragmaOnce;
39655
 
class CCExprResolve;
39656
 
class CExprResolve;
 
47964
class CMatchSyntax;
39657
47965
namespace Puma {
39658
47966
 
39659
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47967
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39660
47968
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
39661
 
#line 39662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
47969
#line 47970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
47970
  friend class ::CCExprResolve;
 
47971
  friend class ::CExprResolve;
39662
47972
  friend class ::WinIfExists;
39663
47973
  friend class ::WinImportHandler;
39664
47974
  friend class ::WinMacros;
39665
 
  friend class ::CMatchSyntax;
39666
 
  friend class ::ExtGnu;
 
47975
  friend class ::WinAsm;
 
47976
  friend class ::WinDeclSpecs;
 
47977
  friend class ::WinMemberExplSpec;
 
47978
  friend class ::WinTypeKeywords;
 
47979
  friend class ::WinFriend;
39667
47980
  friend class ::ExtAC;
39668
47981
  friend class ::ExtACBuilderCoupling;
39669
47982
  friend class ::ExtACSyntaxCoupling;
39670
47983
  friend class ::ExtACTree;
39671
47984
  friend class ::ExtACKeywords;
39672
 
  friend class ::WinAsm;
39673
 
  friend class ::WinDeclSpecs;
39674
 
  friend class ::WinMemberExplSpec;
39675
 
  friend class ::WinTypeKeywords;
 
47985
  friend class ::ExtGnu;
39676
47986
  friend class ::PragmaOnceUnitState;
39677
47987
  friend class ::PragmaOnce;
39678
 
  friend class ::CCExprResolve;
39679
 
  friend class ::CExprResolve;
 
47988
  friend class ::CMatchSyntax;
39680
47989
 
39681
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47990
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39682
47991
 
39683
47992
  CTree *sons[3]; // declspecs, declarator, init
39684
47993
 
39685
47994
public:
39686
47995
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
39687
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
47996
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
39688
47997
  }
 
47998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39689
47999
  static const char *NodeId ();
 
48000
  /** Get the name of the node. Can be compared with NodeId(). */
39690
48001
  const char *NodeName () const { return NodeId (); }
 
48002
  /** Get the number of sons. */
39691
48003
  int Sons () const { return CTree::Sons (sons, 3); }
 
48004
  /** Get the n-th son.
 
48005
   *  \param n The index of the son.
 
48006
   *  \return The n-th son or NULL. */
39692
48007
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
39693
48008
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
39694
48009
  CTree *Declarator () const { return sons[1]; }
39695
48010
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
39696
48011
  CSemObject *SemObject () const { return (CSemObject*)this; }
39697
 
  void Initializer (CTree *i) { sons[2] = i; }
 
48012
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
48013
  /** Replace a son.
 
48014
   *  \param old_son The son to replace.
 
48015
   *  \param new_son The new son. */
39698
48016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39699
48017
    CTree::ReplaceSon (sons, 3, old_son, new_son);
39700
48018
  }
39701
48019
};
39702
48020
 
39703
48021
 
39704
 
#line 39705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48022
#line 48023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39705
48023
} // closed Puma
 
48024
class CCExprResolve;
 
48025
class CExprResolve;
39706
48026
class WinIfExists;
39707
48027
class WinImportHandler;
39708
48028
class WinMacros;
39709
 
class CMatchSyntax;
39710
 
class ExtGnu;
 
48029
class WinAsm;
 
48030
class WinDeclSpecs;
 
48031
class WinMemberExplSpec;
 
48032
class WinTypeKeywords;
 
48033
class WinFriend;
39711
48034
class ExtAC;
39712
48035
class ExtACBuilderCoupling;
39713
48036
class ExtACSyntaxCoupling;
39714
48037
class ExtACTree;
39715
48038
class ExtACKeywords;
39716
 
class WinAsm;
39717
 
class WinDeclSpecs;
39718
 
class WinMemberExplSpec;
39719
 
class WinTypeKeywords;
 
48039
class ExtGnu;
39720
48040
class PragmaOnceUnitState;
39721
48041
class PragmaOnce;
39722
 
class CCExprResolve;
39723
 
class CExprResolve;
 
48042
class CMatchSyntax;
39724
48043
namespace Puma {
39725
48044
 
39726
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48045
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39727
48046
class CT_TypeParamDecl : public CT_TemplateParamDecl {
39728
 
#line 39729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48047
#line 48048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48048
  friend class ::CCExprResolve;
 
48049
  friend class ::CExprResolve;
39729
48050
  friend class ::WinIfExists;
39730
48051
  friend class ::WinImportHandler;
39731
48052
  friend class ::WinMacros;
39732
 
  friend class ::CMatchSyntax;
39733
 
  friend class ::ExtGnu;
 
48053
  friend class ::WinAsm;
 
48054
  friend class ::WinDeclSpecs;
 
48055
  friend class ::WinMemberExplSpec;
 
48056
  friend class ::WinTypeKeywords;
 
48057
  friend class ::WinFriend;
39734
48058
  friend class ::ExtAC;
39735
48059
  friend class ::ExtACBuilderCoupling;
39736
48060
  friend class ::ExtACSyntaxCoupling;
39737
48061
  friend class ::ExtACTree;
39738
48062
  friend class ::ExtACKeywords;
39739
 
  friend class ::WinAsm;
39740
 
  friend class ::WinDeclSpecs;
39741
 
  friend class ::WinMemberExplSpec;
39742
 
  friend class ::WinTypeKeywords;
 
48063
  friend class ::ExtGnu;
39743
48064
  friend class ::PragmaOnceUnitState;
39744
48065
  friend class ::PragmaOnce;
39745
 
  friend class ::CCExprResolve;
39746
 
  friend class ::CExprResolve;
 
48066
  friend class ::CMatchSyntax;
39747
48067
 
39748
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48068
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39749
48069
 
39750
48070
  CTree *sons[4]; // params, key, id, init
39751
48071
 
39752
48072
public:
39753
48073
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
39754
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
48074
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
48075
    AddSon (sons[2], id); AddSon (sons[3], i);
39755
48076
  }
 
48077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39756
48078
  static const char *NodeId ();
 
48079
  /** Get the name of the node. Can be compared with NodeId(). */
39757
48080
  const char *NodeName () const { return NodeId (); }
 
48081
  /** Get the number of sons. */
39758
48082
  int Sons () const { return CTree::Sons (sons, 4); }
 
48083
  /** Get the n-th son.
 
48084
   *  \param n The index of the son.
 
48085
   *  \return The n-th son or NULL. */
39759
48086
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
39760
48087
  CT_TemplateParamList *Parameters () const { 
39761
48088
    return (CT_TemplateParamList*)sons[0]; 
39762
48089
  }
39763
48090
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
39764
48091
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
39765
 
  void Initializer (CTree *i) { sons[3] = i; }
 
48092
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
48093
  /** Replace a son.
 
48094
   *  \param old_son The son to replace.
 
48095
   *  \param new_son The new son. */
39766
48096
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39767
48097
    CTree::ReplaceSon (sons, 4, old_son, new_son);
39768
48098
  }
39769
48099
};
39770
48100
 
39771
48101
 
39772
 
#line 39773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48102
#line 48103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39773
48103
} // closed Puma
 
48104
class CCExprResolve;
 
48105
class CExprResolve;
39774
48106
class WinIfExists;
39775
48107
class WinImportHandler;
39776
48108
class WinMacros;
39777
 
class CMatchSyntax;
39778
 
class ExtGnu;
 
48109
class WinAsm;
 
48110
class WinDeclSpecs;
 
48111
class WinMemberExplSpec;
 
48112
class WinTypeKeywords;
 
48113
class WinFriend;
39779
48114
class ExtAC;
39780
48115
class ExtACBuilderCoupling;
39781
48116
class ExtACSyntaxCoupling;
39782
48117
class ExtACTree;
39783
48118
class ExtACKeywords;
39784
 
class WinAsm;
39785
 
class WinDeclSpecs;
39786
 
class WinMemberExplSpec;
39787
 
class WinTypeKeywords;
 
48119
class ExtGnu;
39788
48120
class PragmaOnceUnitState;
39789
48121
class PragmaOnce;
39790
 
class CCExprResolve;
39791
 
class CExprResolve;
 
48122
class CMatchSyntax;
39792
48123
namespace Puma {
39793
48124
 
39794
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48125
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39795
48126
class CT_EnumDef : public CT_Decl, public CSemObject {
39796
 
#line 39797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48127
#line 48128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48128
  friend class ::CCExprResolve;
 
48129
  friend class ::CExprResolve;
39797
48130
  friend class ::WinIfExists;
39798
48131
  friend class ::WinImportHandler;
39799
48132
  friend class ::WinMacros;
39800
 
  friend class ::CMatchSyntax;
39801
 
  friend class ::ExtGnu;
 
48133
  friend class ::WinAsm;
 
48134
  friend class ::WinDeclSpecs;
 
48135
  friend class ::WinMemberExplSpec;
 
48136
  friend class ::WinTypeKeywords;
 
48137
  friend class ::WinFriend;
39802
48138
  friend class ::ExtAC;
39803
48139
  friend class ::ExtACBuilderCoupling;
39804
48140
  friend class ::ExtACSyntaxCoupling;
39805
48141
  friend class ::ExtACTree;
39806
48142
  friend class ::ExtACKeywords;
39807
 
  friend class ::WinAsm;
39808
 
  friend class ::WinDeclSpecs;
39809
 
  friend class ::WinMemberExplSpec;
39810
 
  friend class ::WinTypeKeywords;
 
48143
  friend class ::ExtGnu;
39811
48144
  friend class ::PragmaOnceUnitState;
39812
48145
  friend class ::PragmaOnce;
39813
 
  friend class ::CCExprResolve;
39814
 
  friend class ::CExprResolve;
 
48146
  friend class ::CMatchSyntax;
39815
48147
 
39816
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48148
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39817
48149
 
39818
48150
  CTree *sons[3]; // key, name, enumerators
39819
48151
 
39820
48152
public:
39821
48153
  CT_EnumDef (CTree *k, CTree *n) {
39822
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
48154
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
39823
48155
  }
 
48156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39824
48157
  static const char *NodeId ();
 
48158
  /** Get the name of the node. Can be compared with NodeId(). */
39825
48159
  const char *NodeName () const { return NodeId (); }
 
48160
  /** Get the number of sons. */
39826
48161
  int Sons () const { return CTree::Sons (sons, 3); }
 
48162
  /** Get the n-th son.
 
48163
   *  \param n The index of the son.
 
48164
   *  \return The n-th son or NULL. */
39827
48165
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
39828
48166
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
39829
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
48167
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
39830
48168
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
48169
  /** Replace a son.
 
48170
   *  \param old_son The son to replace.
 
48171
   *  \param new_son The new son. */
39831
48172
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39832
48173
    CTree::ReplaceSon (sons, 3, old_son, new_son);
39833
48174
  }
39835
48176
};
39836
48177
 
39837
48178
 
39838
 
#line 39839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48179
#line 48180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39839
48180
} // closed Puma
 
48181
class CCExprResolve;
 
48182
class CExprResolve;
39840
48183
class WinIfExists;
39841
48184
class WinImportHandler;
39842
48185
class WinMacros;
39843
 
class CMatchSyntax;
39844
 
class ExtGnu;
 
48186
class WinAsm;
 
48187
class WinDeclSpecs;
 
48188
class WinMemberExplSpec;
 
48189
class WinTypeKeywords;
 
48190
class WinFriend;
39845
48191
class ExtAC;
39846
48192
class ExtACBuilderCoupling;
39847
48193
class ExtACSyntaxCoupling;
39848
48194
class ExtACTree;
39849
48195
class ExtACKeywords;
39850
 
class WinAsm;
39851
 
class WinDeclSpecs;
39852
 
class WinMemberExplSpec;
39853
 
class WinTypeKeywords;
 
48196
class ExtGnu;
39854
48197
class PragmaOnceUnitState;
39855
48198
class PragmaOnce;
39856
 
class CCExprResolve;
39857
 
class CExprResolve;
 
48199
class CMatchSyntax;
39858
48200
namespace Puma {
39859
48201
 
39860
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48202
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39861
48203
class CT_Enumerator : public CT_Decl, public CSemObject {
39862
 
#line 39863 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48204
#line 48205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48205
  friend class ::CCExprResolve;
 
48206
  friend class ::CExprResolve;
39863
48207
  friend class ::WinIfExists;
39864
48208
  friend class ::WinImportHandler;
39865
48209
  friend class ::WinMacros;
39866
 
  friend class ::CMatchSyntax;
39867
 
  friend class ::ExtGnu;
 
48210
  friend class ::WinAsm;
 
48211
  friend class ::WinDeclSpecs;
 
48212
  friend class ::WinMemberExplSpec;
 
48213
  friend class ::WinTypeKeywords;
 
48214
  friend class ::WinFriend;
39868
48215
  friend class ::ExtAC;
39869
48216
  friend class ::ExtACBuilderCoupling;
39870
48217
  friend class ::ExtACSyntaxCoupling;
39871
48218
  friend class ::ExtACTree;
39872
48219
  friend class ::ExtACKeywords;
39873
 
  friend class ::WinAsm;
39874
 
  friend class ::WinDeclSpecs;
39875
 
  friend class ::WinMemberExplSpec;
39876
 
  friend class ::WinTypeKeywords;
 
48220
  friend class ::ExtGnu;
39877
48221
  friend class ::PragmaOnceUnitState;
39878
48222
  friend class ::PragmaOnce;
39879
 
  friend class ::CCExprResolve;
39880
 
  friend class ::CExprResolve;
 
48223
  friend class ::CMatchSyntax;
39881
48224
 
39882
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48225
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39883
48226
 
39884
48227
  CTree *sons[2]; // name, init
39885
48228
 
39886
48229
public:
39887
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
48230
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
48231
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39888
48232
  static const char *NodeId ();
 
48233
  /** Get the name of the node. Can be compared with NodeId(). */
39889
48234
  const char *NodeName () const { return NodeId (); }
 
48235
  /** Get the number of sons. */
39890
48236
  int Sons () const { return CTree::Sons (sons, 2); }
 
48237
  /** Get the n-th son.
 
48238
   *  \param n The index of the son.
 
48239
   *  \return The n-th son or NULL. */
39891
48240
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
39892
48241
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
39893
 
  void Initializer (CTree *i) { sons[1] = i; }
 
48242
  void Initializer (CTree *i) { AddSon (sons[1], i); }
39894
48243
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
48244
  /** Replace a son.
 
48245
   *  \param old_son The son to replace.
 
48246
   *  \param new_son The new son. */
39895
48247
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39896
48248
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
39897
48249
  }
39899
48251
};
39900
48252
 
39901
48253
 
39902
 
#line 39903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48254
#line 48255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39903
48255
} // closed Puma
 
48256
class CCExprResolve;
 
48257
class CExprResolve;
39904
48258
class WinIfExists;
39905
48259
class WinImportHandler;
39906
48260
class WinMacros;
39907
 
class CMatchSyntax;
39908
 
class ExtGnu;
 
48261
class WinAsm;
 
48262
class WinDeclSpecs;
 
48263
class WinMemberExplSpec;
 
48264
class WinTypeKeywords;
 
48265
class WinFriend;
39909
48266
class ExtAC;
39910
48267
class ExtACBuilderCoupling;
39911
48268
class ExtACSyntaxCoupling;
39912
48269
class ExtACTree;
39913
48270
class ExtACKeywords;
39914
 
class WinAsm;
39915
 
class WinDeclSpecs;
39916
 
class WinMemberExplSpec;
39917
 
class WinTypeKeywords;
 
48271
class ExtGnu;
39918
48272
class PragmaOnceUnitState;
39919
48273
class PragmaOnce;
39920
 
class CCExprResolve;
39921
 
class CExprResolve;
 
48274
class CMatchSyntax;
39922
48275
namespace Puma {
39923
48276
 
39924
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48277
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39925
48278
class CT_FctDef : public CT_Decl, public CSemObject {
39926
 
#line 39927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48279
#line 48280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48280
  friend class ::CCExprResolve;
 
48281
  friend class ::CExprResolve;
39927
48282
  friend class ::WinIfExists;
39928
48283
  friend class ::WinImportHandler;
39929
48284
  friend class ::WinMacros;
39930
 
  friend class ::CMatchSyntax;
39931
 
  friend class ::ExtGnu;
 
48285
  friend class ::WinAsm;
 
48286
  friend class ::WinDeclSpecs;
 
48287
  friend class ::WinMemberExplSpec;
 
48288
  friend class ::WinTypeKeywords;
 
48289
  friend class ::WinFriend;
39932
48290
  friend class ::ExtAC;
39933
48291
  friend class ::ExtACBuilderCoupling;
39934
48292
  friend class ::ExtACSyntaxCoupling;
39935
48293
  friend class ::ExtACTree;
39936
48294
  friend class ::ExtACKeywords;
39937
 
  friend class ::WinAsm;
39938
 
  friend class ::WinDeclSpecs;
39939
 
  friend class ::WinMemberExplSpec;
39940
 
  friend class ::WinTypeKeywords;
 
48295
  friend class ::ExtGnu;
39941
48296
  friend class ::PragmaOnceUnitState;
39942
48297
  friend class ::PragmaOnce;
39943
 
  friend class ::CCExprResolve;
39944
 
  friend class ::CExprResolve;
 
48298
  friend class ::CMatchSyntax;
39945
48299
 
39946
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48300
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
39947
48301
 
39948
48302
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
39949
48303
 
39950
48304
public:
39951
48305
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
39952
48306
             CTree *b, CTree *hs) {
39953
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
39954
 
    sons[5] = b; sons[6] = hs; 
 
48307
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
48308
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
48309
    AddSon (sons[6], hs); 
39955
48310
  }
 
48311
  /** Get the identifier for this node type. Can be compared with NodeName(). */
39956
48312
  static const char *NodeId ();
 
48313
  /** Get the name of the node. Can be compared with NodeId(). */
39957
48314
  const char *NodeName () const { return NodeId (); }
 
48315
  /** Get the number of sons. */
39958
48316
  int Sons () const { return CTree::Sons (sons, 7); }
 
48317
  /** Get the n-th son.
 
48318
   *  \param n The index of the son.
 
48319
   *  \return The n-th son or NULL. */
39959
48320
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
39960
48321
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
39961
48322
  CTree *Declarator () const { return sons[1]; }
39965
48326
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
39966
48327
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
39967
48328
  CSemObject *SemObject () const { return (CSemObject*)this; }
39968
 
  void CtorInit (CTree *i) { sons[3] = i; }
39969
 
  void Body (CTree *b) { sons[5] = b; }
 
48329
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
48330
  void Body (CTree *b) { AddSon (sons[5], b); }
39970
48331
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
39971
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
48332
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
48333
    AddSon (sons[5], b); AddSon (sons[6], h);
39972
48334
  }
 
48335
  /** Replace a son.
 
48336
   *  \param old_son The son to replace.
 
48337
   *  \param new_son The new son. */
39973
48338
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
39974
48339
    CTree::ReplaceSon (sons, 7, old_son, new_son);
39975
48340
  }
39976
48341
};
39977
48342
 
39978
48343
 
39979
 
#line 39980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48344
#line 48345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
39980
48345
} // closed Puma
 
48346
class CCExprResolve;
 
48347
class CExprResolve;
39981
48348
class WinIfExists;
39982
48349
class WinImportHandler;
39983
48350
class WinMacros;
39984
 
class CMatchSyntax;
39985
 
class ExtGnu;
 
48351
class WinAsm;
 
48352
class WinDeclSpecs;
 
48353
class WinMemberExplSpec;
 
48354
class WinTypeKeywords;
 
48355
class WinFriend;
39986
48356
class ExtAC;
39987
48357
class ExtACBuilderCoupling;
39988
48358
class ExtACSyntaxCoupling;
39989
48359
class ExtACTree;
39990
48360
class ExtACKeywords;
39991
 
class WinAsm;
39992
 
class WinDeclSpecs;
39993
 
class WinMemberExplSpec;
39994
 
class WinTypeKeywords;
 
48361
class ExtGnu;
39995
48362
class PragmaOnceUnitState;
39996
48363
class PragmaOnce;
39997
 
class CCExprResolve;
39998
 
class CExprResolve;
 
48364
class CMatchSyntax;
39999
48365
namespace Puma {
40000
48366
 
40001
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48367
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40002
48368
class CT_AsmDef : public CT_Decl {
40003
 
#line 40004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48369
#line 48370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48370
  friend class ::CCExprResolve;
 
48371
  friend class ::CExprResolve;
40004
48372
  friend class ::WinIfExists;
40005
48373
  friend class ::WinImportHandler;
40006
48374
  friend class ::WinMacros;
40007
 
  friend class ::CMatchSyntax;
40008
 
  friend class ::ExtGnu;
 
48375
  friend class ::WinAsm;
 
48376
  friend class ::WinDeclSpecs;
 
48377
  friend class ::WinMemberExplSpec;
 
48378
  friend class ::WinTypeKeywords;
 
48379
  friend class ::WinFriend;
40009
48380
  friend class ::ExtAC;
40010
48381
  friend class ::ExtACBuilderCoupling;
40011
48382
  friend class ::ExtACSyntaxCoupling;
40012
48383
  friend class ::ExtACTree;
40013
48384
  friend class ::ExtACKeywords;
40014
 
  friend class ::WinAsm;
40015
 
  friend class ::WinDeclSpecs;
40016
 
  friend class ::WinMemberExplSpec;
40017
 
  friend class ::WinTypeKeywords;
 
48385
  friend class ::ExtGnu;
40018
48386
  friend class ::PragmaOnceUnitState;
40019
48387
  friend class ::PragmaOnce;
40020
 
  friend class ::CCExprResolve;
40021
 
  friend class ::CExprResolve;
 
48388
  friend class ::CMatchSyntax;
40022
48389
 
40023
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48390
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40024
48391
 
40025
48392
  CTree *sons[5]; // asm, open, str, close, semi_colon
40026
48393
 
40027
48394
public:
40028
48395
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
40029
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
48396
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
48397
    AddSon (sons[3], c); AddSon (sons[4], sc); 
40030
48398
  }
 
48399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40031
48400
  static const char *NodeId ();
 
48401
  /** Get the name of the node. Can be compared with NodeId(). */
40032
48402
  const char *NodeName () const { return NodeId (); }
 
48403
  /** Get the number of sons. */
40033
48404
  int Sons () const { return 5; }
 
48405
  /** Get the n-th son.
 
48406
   *  \param n The index of the son.
 
48407
   *  \return The n-th son or NULL. */
40034
48408
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
40035
48409
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
48410
  /** Replace a son.
 
48411
   *  \param old_son The son to replace.
 
48412
   *  \param new_son The new son. */
40036
48413
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40037
48414
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40038
48415
  }
40039
48416
};
40040
48417
 
40041
48418
 
40042
 
#line 40043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48419
#line 48420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40043
48420
} // closed Puma
 
48421
class CCExprResolve;
 
48422
class CExprResolve;
40044
48423
class WinIfExists;
40045
48424
class WinImportHandler;
40046
48425
class WinMacros;
40047
 
class CMatchSyntax;
40048
 
class ExtGnu;
 
48426
class WinAsm;
 
48427
class WinDeclSpecs;
 
48428
class WinMemberExplSpec;
 
48429
class WinTypeKeywords;
 
48430
class WinFriend;
40049
48431
class ExtAC;
40050
48432
class ExtACBuilderCoupling;
40051
48433
class ExtACSyntaxCoupling;
40052
48434
class ExtACTree;
40053
48435
class ExtACKeywords;
40054
 
class WinAsm;
40055
 
class WinDeclSpecs;
40056
 
class WinMemberExplSpec;
40057
 
class WinTypeKeywords;
 
48436
class ExtGnu;
40058
48437
class PragmaOnceUnitState;
40059
48438
class PragmaOnce;
40060
 
class CCExprResolve;
40061
 
class CExprResolve;
 
48439
class CMatchSyntax;
40062
48440
namespace Puma {
40063
48441
 
40064
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48442
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40065
48443
class CT_Handler : public CT_Decl, public CSemScope {
40066
 
#line 40067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48444
#line 48445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48445
  friend class ::CCExprResolve;
 
48446
  friend class ::CExprResolve;
40067
48447
  friend class ::WinIfExists;
40068
48448
  friend class ::WinImportHandler;
40069
48449
  friend class ::WinMacros;
40070
 
  friend class ::CMatchSyntax;
40071
 
  friend class ::ExtGnu;
 
48450
  friend class ::WinAsm;
 
48451
  friend class ::WinDeclSpecs;
 
48452
  friend class ::WinMemberExplSpec;
 
48453
  friend class ::WinTypeKeywords;
 
48454
  friend class ::WinFriend;
40072
48455
  friend class ::ExtAC;
40073
48456
  friend class ::ExtACBuilderCoupling;
40074
48457
  friend class ::ExtACSyntaxCoupling;
40075
48458
  friend class ::ExtACTree;
40076
48459
  friend class ::ExtACKeywords;
40077
 
  friend class ::WinAsm;
40078
 
  friend class ::WinDeclSpecs;
40079
 
  friend class ::WinMemberExplSpec;
40080
 
  friend class ::WinTypeKeywords;
 
48460
  friend class ::ExtGnu;
40081
48461
  friend class ::PragmaOnceUnitState;
40082
48462
  friend class ::PragmaOnce;
40083
 
  friend class ::CCExprResolve;
40084
 
  friend class ::CExprResolve;
 
48463
  friend class ::CMatchSyntax;
40085
48464
 
40086
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48465
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40087
48466
 
40088
48467
  CTree *sons[3]; // catch, exception_decl, stmt
40089
48468
 
40090
48469
public:
40091
48470
  CT_Handler (CTree *c, CTree *e, CTree *s) {
40092
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
48471
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
40093
48472
  }
 
48473
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40094
48474
  static const char *NodeId ();
 
48475
  /** Get the name of the node. Can be compared with NodeId(). */
40095
48476
  const char *NodeName () const { return NodeId (); }
 
48477
  /** Get the number of sons. */
40096
48478
  int Sons () const { return 3; }
 
48479
  /** Get the n-th son.
 
48480
   *  \param n The index of the son.
 
48481
   *  \return The n-th son or NULL. */
40097
48482
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
40098
48483
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
40099
48484
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
48485
  /** Replace a son.
 
48486
   *  \param old_son The son to replace.
 
48487
   *  \param new_son The new son. */
40100
48488
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40101
48489
    CTree::ReplaceSon (sons, 3, old_son, new_son);
40102
48490
  }
 
48491
  CSemScope *SemScope () const { return (CSemScope*)this; }
40103
48492
};
40104
48493
 
40105
48494
 
40106
 
#line 40107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48495
#line 48496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40107
48496
} // closed Puma
 
48497
class CCExprResolve;
 
48498
class CExprResolve;
40108
48499
class WinIfExists;
40109
48500
class WinImportHandler;
40110
48501
class WinMacros;
40111
 
class CMatchSyntax;
40112
 
class ExtGnu;
 
48502
class WinAsm;
 
48503
class WinDeclSpecs;
 
48504
class WinMemberExplSpec;
 
48505
class WinTypeKeywords;
 
48506
class WinFriend;
40113
48507
class ExtAC;
40114
48508
class ExtACBuilderCoupling;
40115
48509
class ExtACSyntaxCoupling;
40116
48510
class ExtACTree;
40117
48511
class ExtACKeywords;
40118
 
class WinAsm;
40119
 
class WinDeclSpecs;
40120
 
class WinMemberExplSpec;
40121
 
class WinTypeKeywords;
 
48512
class ExtGnu;
40122
48513
class PragmaOnceUnitState;
40123
48514
class PragmaOnce;
40124
 
class CCExprResolve;
40125
 
class CExprResolve;
 
48515
class CMatchSyntax;
40126
48516
namespace Puma {
40127
48517
 
40128
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48518
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40129
48519
class CT_LinkageSpec : public CT_Decl {
40130
 
#line 40131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48520
#line 48521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48521
  friend class ::CCExprResolve;
 
48522
  friend class ::CExprResolve;
40131
48523
  friend class ::WinIfExists;
40132
48524
  friend class ::WinImportHandler;
40133
48525
  friend class ::WinMacros;
40134
 
  friend class ::CMatchSyntax;
40135
 
  friend class ::ExtGnu;
 
48526
  friend class ::WinAsm;
 
48527
  friend class ::WinDeclSpecs;
 
48528
  friend class ::WinMemberExplSpec;
 
48529
  friend class ::WinTypeKeywords;
 
48530
  friend class ::WinFriend;
40136
48531
  friend class ::ExtAC;
40137
48532
  friend class ::ExtACBuilderCoupling;
40138
48533
  friend class ::ExtACSyntaxCoupling;
40139
48534
  friend class ::ExtACTree;
40140
48535
  friend class ::ExtACKeywords;
40141
 
  friend class ::WinAsm;
40142
 
  friend class ::WinDeclSpecs;
40143
 
  friend class ::WinMemberExplSpec;
40144
 
  friend class ::WinTypeKeywords;
 
48536
  friend class ::ExtGnu;
40145
48537
  friend class ::PragmaOnceUnitState;
40146
48538
  friend class ::PragmaOnce;
40147
 
  friend class ::CCExprResolve;
40148
 
  friend class ::CExprResolve;
 
48539
  friend class ::CMatchSyntax;
40149
48540
 
40150
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48541
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40151
48542
 
40152
48543
  CTree *sons[5]; // extern, str, open, decls, close
40153
48544
 
40154
48545
public:
40155
48546
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
40156
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
48547
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
48548
    AddSon (sons[3], d); AddSon (sons[4], c);
40157
48549
    if (isList ())
40158
48550
      ((CT_DeclList*)Decls ())->Linkage (this);
40159
48551
    else
40160
48552
      ((CT_Decl*)Decls ())->Linkage (this);
40161
48553
  }
 
48554
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40162
48555
  static const char *NodeId ();
 
48556
  /** Get the name of the node. Can be compared with NodeId(). */
40163
48557
  const char *NodeName () const { return NodeId (); }
 
48558
  /** Get the number of sons. */
40164
48559
  int Sons () const { return CTree::Sons (sons, 5); }
 
48560
  /** Get the n-th son.
 
48561
   *  \param n The index of the son.
 
48562
   *  \return The n-th son or NULL. */
40165
48563
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
40166
48564
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
40167
48565
  CTree *Decls () const { return sons[3]; }
40168
48566
  bool isList () const {
40169
48567
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
40170
48568
  }
 
48569
  /** Replace a son.
 
48570
   *  \param old_son The son to replace.
 
48571
   *  \param new_son The new son. */
40171
48572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40172
48573
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40173
48574
  }
40174
48575
};
40175
48576
 
40176
48577
 
40177
 
#line 40178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48578
#line 48579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40178
48579
} // closed Puma
 
48580
class CCExprResolve;
 
48581
class CExprResolve;
40179
48582
class WinIfExists;
40180
48583
class WinImportHandler;
40181
48584
class WinMacros;
40182
 
class CMatchSyntax;
40183
 
class ExtGnu;
 
48585
class WinAsm;
 
48586
class WinDeclSpecs;
 
48587
class WinMemberExplSpec;
 
48588
class WinTypeKeywords;
 
48589
class WinFriend;
40184
48590
class ExtAC;
40185
48591
class ExtACBuilderCoupling;
40186
48592
class ExtACSyntaxCoupling;
40187
48593
class ExtACTree;
40188
48594
class ExtACKeywords;
40189
 
class WinAsm;
40190
 
class WinDeclSpecs;
40191
 
class WinMemberExplSpec;
40192
 
class WinTypeKeywords;
 
48595
class ExtGnu;
40193
48596
class PragmaOnceUnitState;
40194
48597
class PragmaOnce;
40195
 
class CCExprResolve;
40196
 
class CExprResolve;
 
48598
class CMatchSyntax;
40197
48599
namespace Puma {
40198
48600
 
40199
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48601
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40200
48602
class CT_ArgDecl : public CT_Decl, public CSemObject {
40201
 
#line 40202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48603
#line 48604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48604
  friend class ::CCExprResolve;
 
48605
  friend class ::CExprResolve;
40202
48606
  friend class ::WinIfExists;
40203
48607
  friend class ::WinImportHandler;
40204
48608
  friend class ::WinMacros;
40205
 
  friend class ::CMatchSyntax;
40206
 
  friend class ::ExtGnu;
 
48609
  friend class ::WinAsm;
 
48610
  friend class ::WinDeclSpecs;
 
48611
  friend class ::WinMemberExplSpec;
 
48612
  friend class ::WinTypeKeywords;
 
48613
  friend class ::WinFriend;
40207
48614
  friend class ::ExtAC;
40208
48615
  friend class ::ExtACBuilderCoupling;
40209
48616
  friend class ::ExtACSyntaxCoupling;
40210
48617
  friend class ::ExtACTree;
40211
48618
  friend class ::ExtACKeywords;
40212
 
  friend class ::WinAsm;
40213
 
  friend class ::WinDeclSpecs;
40214
 
  friend class ::WinMemberExplSpec;
40215
 
  friend class ::WinTypeKeywords;
 
48619
  friend class ::ExtGnu;
40216
48620
  friend class ::PragmaOnceUnitState;
40217
48621
  friend class ::PragmaOnce;
40218
 
  friend class ::CCExprResolve;
40219
 
  friend class ::CExprResolve;
 
48622
  friend class ::CMatchSyntax;
40220
48623
 
40221
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48624
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40222
48625
 
40223
48626
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
40224
48627
 
40225
48628
public:
40226
48629
  CT_ArgDecl (CTree *dsl, CTree *d) {
40227
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
48630
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
48631
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
40228
48632
  }
40229
48633
  CT_ArgDecl (CTree *ellipsis) {
40230
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
48634
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
48635
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
40231
48636
  }
 
48637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40232
48638
  static const char *NodeId ();
 
48639
  /** Get the name of the node. Can be compared with NodeId(). */
40233
48640
  const char *NodeName () const { return NodeId (); }
 
48641
  /** Get the number of sons. */
40234
48642
  int Sons () const { return CTree::Sons (sons, 4); }
 
48643
  /** Get the n-th son.
 
48644
   *  \param n The index of the son.
 
48645
   *  \return The n-th son or NULL. */
40235
48646
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40236
48647
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
40237
48648
  CTree *Declarator () const { return sons[1]; }
40238
48649
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
40239
48650
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
40240
48651
  CSemObject *SemObject () const { return (CSemObject*)this; }
40241
 
  void Initializer (CTree *i) { sons[2] = i; }
 
48652
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
48653
  /** Replace a son.
 
48654
   *  \param old_son The son to replace.
 
48655
   *  \param new_son The new son. */
40242
48656
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40243
48657
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40244
48658
  }
40245
48659
};
40246
48660
 
40247
48661
 
40248
 
#line 40249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48662
#line 48663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40249
48663
} // closed Puma
 
48664
class CCExprResolve;
 
48665
class CExprResolve;
40250
48666
class WinIfExists;
40251
48667
class WinImportHandler;
40252
48668
class WinMacros;
40253
 
class CMatchSyntax;
40254
 
class ExtGnu;
 
48669
class WinAsm;
 
48670
class WinDeclSpecs;
 
48671
class WinMemberExplSpec;
 
48672
class WinTypeKeywords;
 
48673
class WinFriend;
40255
48674
class ExtAC;
40256
48675
class ExtACBuilderCoupling;
40257
48676
class ExtACSyntaxCoupling;
40258
48677
class ExtACTree;
40259
48678
class ExtACKeywords;
40260
 
class WinAsm;
40261
 
class WinDeclSpecs;
40262
 
class WinMemberExplSpec;
40263
 
class WinTypeKeywords;
 
48679
class ExtGnu;
40264
48680
class PragmaOnceUnitState;
40265
48681
class PragmaOnce;
40266
 
class CCExprResolve;
40267
 
class CExprResolve;
 
48682
class CMatchSyntax;
40268
48683
namespace Puma {
40269
48684
 
40270
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48685
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40271
48686
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
40272
 
#line 40273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48687
#line 48688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48688
  friend class ::CCExprResolve;
 
48689
  friend class ::CExprResolve;
40273
48690
  friend class ::WinIfExists;
40274
48691
  friend class ::WinImportHandler;
40275
48692
  friend class ::WinMacros;
40276
 
  friend class ::CMatchSyntax;
40277
 
  friend class ::ExtGnu;
 
48693
  friend class ::WinAsm;
 
48694
  friend class ::WinDeclSpecs;
 
48695
  friend class ::WinMemberExplSpec;
 
48696
  friend class ::WinTypeKeywords;
 
48697
  friend class ::WinFriend;
40278
48698
  friend class ::ExtAC;
40279
48699
  friend class ::ExtACBuilderCoupling;
40280
48700
  friend class ::ExtACSyntaxCoupling;
40281
48701
  friend class ::ExtACTree;
40282
48702
  friend class ::ExtACKeywords;
40283
 
  friend class ::WinAsm;
40284
 
  friend class ::WinDeclSpecs;
40285
 
  friend class ::WinMemberExplSpec;
40286
 
  friend class ::WinTypeKeywords;
 
48703
  friend class ::ExtGnu;
40287
48704
  friend class ::PragmaOnceUnitState;
40288
48705
  friend class ::PragmaOnce;
40289
 
  friend class ::CCExprResolve;
40290
 
  friend class ::CExprResolve;
 
48706
  friend class ::CMatchSyntax;
40291
48707
 
40292
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48708
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40293
48709
 
40294
48710
public:
40295
48711
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
40296
48712
   CT_DeclList (size, 2) { AddProperties (props); }
 
48713
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40297
48714
  static const char *NodeId ();
 
48715
  /** Get the name of the node. Can be compared with NodeId(). */
40298
48716
  const char *NodeName () const { return NodeId (); }
 
48717
  CSemScope *SemScope () const { return (CSemScope*)this; }
40299
48718
};
40300
48719
 
40301
48720
 
40302
 
#line 40303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48721
#line 48722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40303
48722
} // closed Puma
 
48723
class CCExprResolve;
 
48724
class CExprResolve;
40304
48725
class WinIfExists;
40305
48726
class WinImportHandler;
40306
48727
class WinMacros;
40307
 
class CMatchSyntax;
40308
 
class ExtGnu;
 
48728
class WinAsm;
 
48729
class WinDeclSpecs;
 
48730
class WinMemberExplSpec;
 
48731
class WinTypeKeywords;
 
48732
class WinFriend;
40309
48733
class ExtAC;
40310
48734
class ExtACBuilderCoupling;
40311
48735
class ExtACSyntaxCoupling;
40312
48736
class ExtACTree;
40313
48737
class ExtACKeywords;
40314
 
class WinAsm;
40315
 
class WinDeclSpecs;
40316
 
class WinMemberExplSpec;
40317
 
class WinTypeKeywords;
 
48738
class ExtGnu;
40318
48739
class PragmaOnceUnitState;
40319
48740
class PragmaOnce;
40320
 
class CCExprResolve;
40321
 
class CExprResolve;
 
48741
class CMatchSyntax;
40322
48742
namespace Puma {
40323
48743
 
40324
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48744
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40325
48745
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
40326
 
#line 40327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48746
#line 48747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48747
  friend class ::CCExprResolve;
 
48748
  friend class ::CExprResolve;
40327
48749
  friend class ::WinIfExists;
40328
48750
  friend class ::WinImportHandler;
40329
48751
  friend class ::WinMacros;
40330
 
  friend class ::CMatchSyntax;
40331
 
  friend class ::ExtGnu;
 
48752
  friend class ::WinAsm;
 
48753
  friend class ::WinDeclSpecs;
 
48754
  friend class ::WinMemberExplSpec;
 
48755
  friend class ::WinTypeKeywords;
 
48756
  friend class ::WinFriend;
40332
48757
  friend class ::ExtAC;
40333
48758
  friend class ::ExtACBuilderCoupling;
40334
48759
  friend class ::ExtACSyntaxCoupling;
40335
48760
  friend class ::ExtACTree;
40336
48761
  friend class ::ExtACKeywords;
40337
 
  friend class ::WinAsm;
40338
 
  friend class ::WinDeclSpecs;
40339
 
  friend class ::WinMemberExplSpec;
40340
 
  friend class ::WinTypeKeywords;
 
48762
  friend class ::ExtGnu;
40341
48763
  friend class ::PragmaOnceUnitState;
40342
48764
  friend class ::PragmaOnce;
40343
 
  friend class ::CCExprResolve;
40344
 
  friend class ::CExprResolve;
 
48765
  friend class ::CMatchSyntax;
40345
48766
 
40346
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48767
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40347
48768
 
40348
48769
public:
40349
48770
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
48771
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40350
48772
  static const char *NodeId ();
 
48773
  /** Get the name of the node. Can be compared with NodeId(). */
40351
48774
  const char *NodeName () const { return NodeId (); }
 
48775
  CSemScope *SemScope () const { return (CSemScope*)this; }
40352
48776
};
40353
48777
 
40354
48778
 
40355
 
#line 40356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48779
#line 48780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40356
48780
} // closed Puma
 
48781
class CCExprResolve;
 
48782
class CExprResolve;
40357
48783
class WinIfExists;
40358
48784
class WinImportHandler;
40359
48785
class WinMacros;
40360
 
class CMatchSyntax;
40361
 
class ExtGnu;
 
48786
class WinAsm;
 
48787
class WinDeclSpecs;
 
48788
class WinMemberExplSpec;
 
48789
class WinTypeKeywords;
 
48790
class WinFriend;
40362
48791
class ExtAC;
40363
48792
class ExtACBuilderCoupling;
40364
48793
class ExtACSyntaxCoupling;
40365
48794
class ExtACTree;
40366
48795
class ExtACKeywords;
40367
 
class WinAsm;
40368
 
class WinDeclSpecs;
40369
 
class WinMemberExplSpec;
40370
 
class WinTypeKeywords;
 
48796
class ExtGnu;
40371
48797
class PragmaOnceUnitState;
40372
48798
class PragmaOnce;
40373
 
class CCExprResolve;
40374
 
class CExprResolve;
 
48799
class CMatchSyntax;
40375
48800
namespace Puma {
40376
48801
 
40377
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48802
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40378
48803
class CT_ArgNameList : public CT_ArgDeclList {
40379
 
#line 40380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48804
#line 48805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48805
  friend class ::CCExprResolve;
 
48806
  friend class ::CExprResolve;
40380
48807
  friend class ::WinIfExists;
40381
48808
  friend class ::WinImportHandler;
40382
48809
  friend class ::WinMacros;
40383
 
  friend class ::CMatchSyntax;
40384
 
  friend class ::ExtGnu;
 
48810
  friend class ::WinAsm;
 
48811
  friend class ::WinDeclSpecs;
 
48812
  friend class ::WinMemberExplSpec;
 
48813
  friend class ::WinTypeKeywords;
 
48814
  friend class ::WinFriend;
40385
48815
  friend class ::ExtAC;
40386
48816
  friend class ::ExtACBuilderCoupling;
40387
48817
  friend class ::ExtACSyntaxCoupling;
40388
48818
  friend class ::ExtACTree;
40389
48819
  friend class ::ExtACKeywords;
40390
 
  friend class ::WinAsm;
40391
 
  friend class ::WinDeclSpecs;
40392
 
  friend class ::WinMemberExplSpec;
40393
 
  friend class ::WinTypeKeywords;
 
48820
  friend class ::ExtGnu;
40394
48821
  friend class ::PragmaOnceUnitState;
40395
48822
  friend class ::PragmaOnce;
40396
 
  friend class ::CCExprResolve;
40397
 
  friend class ::CExprResolve;
 
48823
  friend class ::CMatchSyntax;
40398
48824
 
40399
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48825
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40400
48826
 
40401
48827
public:
40402
48828
  CT_ArgNameList () : CT_ArgDeclList () {}
 
48829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40403
48830
  static const char *NodeId ();
 
48831
  /** Get the name of the node. Can be compared with NodeId(). */
40404
48832
  const char *NodeName () const { return NodeId (); }
40405
48833
};
40406
48834
 
40407
48835
 
40408
 
#line 40409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48836
#line 48837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40409
48837
} // closed Puma
 
48838
class CCExprResolve;
 
48839
class CExprResolve;
40410
48840
class WinIfExists;
40411
48841
class WinImportHandler;
40412
48842
class WinMacros;
40413
 
class CMatchSyntax;
40414
 
class ExtGnu;
 
48843
class WinAsm;
 
48844
class WinDeclSpecs;
 
48845
class WinMemberExplSpec;
 
48846
class WinTypeKeywords;
 
48847
class WinFriend;
40415
48848
class ExtAC;
40416
48849
class ExtACBuilderCoupling;
40417
48850
class ExtACSyntaxCoupling;
40418
48851
class ExtACTree;
40419
48852
class ExtACKeywords;
40420
 
class WinAsm;
40421
 
class WinDeclSpecs;
40422
 
class WinMemberExplSpec;
40423
 
class WinTypeKeywords;
 
48853
class ExtGnu;
40424
48854
class PragmaOnceUnitState;
40425
48855
class PragmaOnce;
40426
 
class CCExprResolve;
40427
 
class CExprResolve;
 
48856
class CMatchSyntax;
40428
48857
namespace Puma {
40429
48858
 
40430
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48859
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40431
48860
class CT_NamespaceDef : public CT_Decl, public CSemObject {
40432
 
#line 40433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48861
#line 48862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48862
  friend class ::CCExprResolve;
 
48863
  friend class ::CExprResolve;
40433
48864
  friend class ::WinIfExists;
40434
48865
  friend class ::WinImportHandler;
40435
48866
  friend class ::WinMacros;
40436
 
  friend class ::CMatchSyntax;
40437
 
  friend class ::ExtGnu;
 
48867
  friend class ::WinAsm;
 
48868
  friend class ::WinDeclSpecs;
 
48869
  friend class ::WinMemberExplSpec;
 
48870
  friend class ::WinTypeKeywords;
 
48871
  friend class ::WinFriend;
40438
48872
  friend class ::ExtAC;
40439
48873
  friend class ::ExtACBuilderCoupling;
40440
48874
  friend class ::ExtACSyntaxCoupling;
40441
48875
  friend class ::ExtACTree;
40442
48876
  friend class ::ExtACKeywords;
40443
 
  friend class ::WinAsm;
40444
 
  friend class ::WinDeclSpecs;
40445
 
  friend class ::WinMemberExplSpec;
40446
 
  friend class ::WinTypeKeywords;
 
48877
  friend class ::ExtGnu;
40447
48878
  friend class ::PragmaOnceUnitState;
40448
48879
  friend class ::PragmaOnce;
40449
 
  friend class ::CCExprResolve;
40450
 
  friend class ::CExprResolve;
 
48880
  friend class ::CMatchSyntax;
40451
48881
 
40452
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48882
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40453
48883
 
40454
48884
  CTree *sons[3]; // ns, name, members
40455
48885
 
40456
48886
public:
40457
48887
  CT_NamespaceDef (CTree *n, CTree *nm) {
40458
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
48888
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
40459
48889
  }
40460
48890
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
40461
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
48891
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
40462
48892
  }
 
48893
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40463
48894
  static const char *NodeId ();
 
48895
  /** Get the name of the node. Can be compared with NodeId(). */
40464
48896
  const char *NodeName () const { return NodeId (); }
 
48897
  /** Get the number of sons. */
40465
48898
  int Sons () const { return CTree::Sons (sons, 3); }
 
48899
  /** Get the n-th son.
 
48900
   *  \param n The index of the son.
 
48901
   *  \return The n-th son or NULL. */
40466
48902
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
40467
 
  void Members (CTree *m) { sons[2] = m; }
 
48903
  void Members (CTree *m) { AddSon (sons[2], m); }
40468
48904
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
40469
48905
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
40470
48906
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48907
  /** Replace a son.
 
48908
   *  \param old_son The son to replace.
 
48909
   *  \param new_son The new son. */
40471
48910
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40472
48911
    CTree::ReplaceSon (sons, 3, old_son, new_son);
40473
48912
  }
40474
48913
};
40475
48914
 
40476
48915
 
40477
 
#line 40478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48916
#line 48917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40478
48917
} // closed Puma
 
48918
class CCExprResolve;
 
48919
class CExprResolve;
40479
48920
class WinIfExists;
40480
48921
class WinImportHandler;
40481
48922
class WinMacros;
40482
 
class CMatchSyntax;
40483
 
class ExtGnu;
 
48923
class WinAsm;
 
48924
class WinDeclSpecs;
 
48925
class WinMemberExplSpec;
 
48926
class WinTypeKeywords;
 
48927
class WinFriend;
40484
48928
class ExtAC;
40485
48929
class ExtACBuilderCoupling;
40486
48930
class ExtACSyntaxCoupling;
40487
48931
class ExtACTree;
40488
48932
class ExtACKeywords;
40489
 
class WinAsm;
40490
 
class WinDeclSpecs;
40491
 
class WinMemberExplSpec;
40492
 
class WinTypeKeywords;
 
48933
class ExtGnu;
40493
48934
class PragmaOnceUnitState;
40494
48935
class PragmaOnce;
40495
 
class CCExprResolve;
40496
 
class CExprResolve;
 
48936
class CMatchSyntax;
40497
48937
namespace Puma {
40498
48938
 
40499
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48939
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40500
48940
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
40501
 
#line 40502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48941
#line 48942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
48942
  friend class ::CCExprResolve;
 
48943
  friend class ::CExprResolve;
40502
48944
  friend class ::WinIfExists;
40503
48945
  friend class ::WinImportHandler;
40504
48946
  friend class ::WinMacros;
40505
 
  friend class ::CMatchSyntax;
40506
 
  friend class ::ExtGnu;
 
48947
  friend class ::WinAsm;
 
48948
  friend class ::WinDeclSpecs;
 
48949
  friend class ::WinMemberExplSpec;
 
48950
  friend class ::WinTypeKeywords;
 
48951
  friend class ::WinFriend;
40507
48952
  friend class ::ExtAC;
40508
48953
  friend class ::ExtACBuilderCoupling;
40509
48954
  friend class ::ExtACSyntaxCoupling;
40510
48955
  friend class ::ExtACTree;
40511
48956
  friend class ::ExtACKeywords;
40512
 
  friend class ::WinAsm;
40513
 
  friend class ::WinDeclSpecs;
40514
 
  friend class ::WinMemberExplSpec;
40515
 
  friend class ::WinTypeKeywords;
 
48957
  friend class ::ExtGnu;
40516
48958
  friend class ::PragmaOnceUnitState;
40517
48959
  friend class ::PragmaOnce;
40518
 
  friend class ::CCExprResolve;
40519
 
  friend class ::CExprResolve;
 
48960
  friend class ::CMatchSyntax;
40520
48961
 
40521
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48962
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40522
48963
 
40523
48964
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
40524
48965
 
40525
48966
public:
40526
48967
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
40527
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
48968
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
48969
    AddSon (sons[3], nm); AddSon (sons[4], s); 
40528
48970
  }
 
48971
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40529
48972
  static const char *NodeId ();
 
48973
  /** Get the name of the node. Can be compared with NodeId(). */
40530
48974
  const char *NodeName () const { return NodeId (); }
 
48975
  /** Get the number of sons. */
40531
48976
  int Sons () const { return 5; }
 
48977
  /** Get the n-th son.
 
48978
   *  \param n The index of the son.
 
48979
   *  \return The n-th son or NULL. */
40532
48980
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
40533
48981
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
40534
48982
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
40535
48983
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
48984
  /** Replace a son.
 
48985
   *  \param old_son The son to replace.
 
48986
   *  \param new_son The new son. */
40536
48987
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40537
48988
    CTree::ReplaceSon (sons, 5, old_son, new_son);
40538
48989
  }
40539
48990
};
40540
48991
 
40541
48992
 
40542
 
#line 40543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
48993
#line 48994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40543
48994
} // closed Puma
 
48995
class CCExprResolve;
 
48996
class CExprResolve;
40544
48997
class WinIfExists;
40545
48998
class WinImportHandler;
40546
48999
class WinMacros;
40547
 
class CMatchSyntax;
40548
 
class ExtGnu;
 
49000
class WinAsm;
 
49001
class WinDeclSpecs;
 
49002
class WinMemberExplSpec;
 
49003
class WinTypeKeywords;
 
49004
class WinFriend;
40549
49005
class ExtAC;
40550
49006
class ExtACBuilderCoupling;
40551
49007
class ExtACSyntaxCoupling;
40552
49008
class ExtACTree;
40553
49009
class ExtACKeywords;
40554
 
class WinAsm;
40555
 
class WinDeclSpecs;
40556
 
class WinMemberExplSpec;
40557
 
class WinTypeKeywords;
 
49010
class ExtGnu;
40558
49011
class PragmaOnceUnitState;
40559
49012
class PragmaOnce;
40560
 
class CCExprResolve;
40561
 
class CExprResolve;
 
49013
class CMatchSyntax;
40562
49014
namespace Puma {
40563
49015
 
40564
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49016
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40565
49017
class CT_UsingDirective : public CT_Decl {
40566
 
#line 40567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49018
#line 49019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49019
  friend class ::CCExprResolve;
 
49020
  friend class ::CExprResolve;
40567
49021
  friend class ::WinIfExists;
40568
49022
  friend class ::WinImportHandler;
40569
49023
  friend class ::WinMacros;
40570
 
  friend class ::CMatchSyntax;
40571
 
  friend class ::ExtGnu;
 
49024
  friend class ::WinAsm;
 
49025
  friend class ::WinDeclSpecs;
 
49026
  friend class ::WinMemberExplSpec;
 
49027
  friend class ::WinTypeKeywords;
 
49028
  friend class ::WinFriend;
40572
49029
  friend class ::ExtAC;
40573
49030
  friend class ::ExtACBuilderCoupling;
40574
49031
  friend class ::ExtACSyntaxCoupling;
40575
49032
  friend class ::ExtACTree;
40576
49033
  friend class ::ExtACKeywords;
40577
 
  friend class ::WinAsm;
40578
 
  friend class ::WinDeclSpecs;
40579
 
  friend class ::WinMemberExplSpec;
40580
 
  friend class ::WinTypeKeywords;
 
49034
  friend class ::ExtGnu;
40581
49035
  friend class ::PragmaOnceUnitState;
40582
49036
  friend class ::PragmaOnce;
40583
 
  friend class ::CCExprResolve;
40584
 
  friend class ::CExprResolve;
 
49037
  friend class ::CMatchSyntax;
40585
49038
 
40586
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49039
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40587
49040
 
40588
49041
  CTree *sons[4]; // using, ns, name, semi_colon
40589
49042
 
40590
49043
public:
40591
49044
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
40592
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
49045
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
49046
    AddSon (sons[3], s); 
40593
49047
  }
 
49048
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40594
49049
  static const char *NodeId ();
 
49050
  /** Get the name of the node. Can be compared with NodeId(). */
40595
49051
  const char *NodeName () const { return NodeId (); }
 
49052
  /** Get the number of sons. */
40596
49053
  int Sons () const { return 4; }
 
49054
  /** Get the n-th son.
 
49055
   *  \param n The index of the son.
 
49056
   *  \return The n-th son or NULL. */
40597
49057
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40598
49058
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
49059
  /** Replace a son.
 
49060
   *  \param old_son The son to replace.
 
49061
   *  \param new_son The new son. */
40599
49062
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40600
49063
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40601
49064
  }
40608
49071
/*****************************************************************************/
40609
49072
 
40610
49073
 
40611
 
#line 40612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49074
#line 49075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40612
49075
} // closed Puma
 
49076
class CCExprResolve;
 
49077
class CExprResolve;
40613
49078
class WinIfExists;
40614
49079
class WinImportHandler;
40615
49080
class WinMacros;
40616
 
class CMatchSyntax;
40617
 
class ExtGnu;
 
49081
class WinAsm;
 
49082
class WinDeclSpecs;
 
49083
class WinMemberExplSpec;
 
49084
class WinTypeKeywords;
 
49085
class WinFriend;
40618
49086
class ExtAC;
40619
49087
class ExtACBuilderCoupling;
40620
49088
class ExtACSyntaxCoupling;
40621
49089
class ExtACTree;
40622
49090
class ExtACKeywords;
40623
 
class WinAsm;
40624
 
class WinDeclSpecs;
40625
 
class WinMemberExplSpec;
40626
 
class WinTypeKeywords;
 
49091
class ExtGnu;
40627
49092
class PragmaOnceUnitState;
40628
49093
class PragmaOnce;
40629
 
class CCExprResolve;
40630
 
class CExprResolve;
 
49094
class CMatchSyntax;
40631
49095
namespace Puma {
40632
49096
 
40633
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49097
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40634
49098
class CT_Declarator : public CTree {
40635
 
#line 40636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49099
#line 49100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49100
  friend class ::CCExprResolve;
 
49101
  friend class ::CExprResolve;
40636
49102
  friend class ::WinIfExists;
40637
49103
  friend class ::WinImportHandler;
40638
49104
  friend class ::WinMacros;
40639
 
  friend class ::CMatchSyntax;
40640
 
  friend class ::ExtGnu;
 
49105
  friend class ::WinAsm;
 
49106
  friend class ::WinDeclSpecs;
 
49107
  friend class ::WinMemberExplSpec;
 
49108
  friend class ::WinTypeKeywords;
 
49109
  friend class ::WinFriend;
40641
49110
  friend class ::ExtAC;
40642
49111
  friend class ::ExtACBuilderCoupling;
40643
49112
  friend class ::ExtACSyntaxCoupling;
40644
49113
  friend class ::ExtACTree;
40645
49114
  friend class ::ExtACKeywords;
40646
 
  friend class ::WinAsm;
40647
 
  friend class ::WinDeclSpecs;
40648
 
  friend class ::WinMemberExplSpec;
40649
 
  friend class ::WinTypeKeywords;
 
49115
  friend class ::ExtGnu;
40650
49116
  friend class ::PragmaOnceUnitState;
40651
49117
  friend class ::PragmaOnce;
40652
 
  friend class ::CCExprResolve;
40653
 
  friend class ::CExprResolve;
 
49118
  friend class ::CMatchSyntax;
40654
49119
 
40655
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49120
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40656
49121
 
40657
49122
protected:
40658
49123
  CT_Declarator () {}
40667
49132
};
40668
49133
 
40669
49134
 
40670
 
#line 40671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49135
#line 49136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40671
49136
} // closed Puma
 
49137
class CCExprResolve;
 
49138
class CExprResolve;
40672
49139
class WinIfExists;
40673
49140
class WinImportHandler;
40674
49141
class WinMacros;
40675
 
class CMatchSyntax;
40676
 
class ExtGnu;
 
49142
class WinAsm;
 
49143
class WinDeclSpecs;
 
49144
class WinMemberExplSpec;
 
49145
class WinTypeKeywords;
 
49146
class WinFriend;
40677
49147
class ExtAC;
40678
49148
class ExtACBuilderCoupling;
40679
49149
class ExtACSyntaxCoupling;
40680
49150
class ExtACTree;
40681
49151
class ExtACKeywords;
40682
 
class WinAsm;
40683
 
class WinDeclSpecs;
40684
 
class WinMemberExplSpec;
40685
 
class WinTypeKeywords;
 
49152
class ExtGnu;
40686
49153
class PragmaOnceUnitState;
40687
49154
class PragmaOnce;
40688
 
class CCExprResolve;
40689
 
class CExprResolve;
 
49155
class CMatchSyntax;
40690
49156
namespace Puma {
40691
49157
 
40692
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49158
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40693
49159
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
40694
 
#line 40695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49160
#line 49161 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49161
  friend class ::CCExprResolve;
 
49162
  friend class ::CExprResolve;
40695
49163
  friend class ::WinIfExists;
40696
49164
  friend class ::WinImportHandler;
40697
49165
  friend class ::WinMacros;
40698
 
  friend class ::CMatchSyntax;
40699
 
  friend class ::ExtGnu;
 
49166
  friend class ::WinAsm;
 
49167
  friend class ::WinDeclSpecs;
 
49168
  friend class ::WinMemberExplSpec;
 
49169
  friend class ::WinTypeKeywords;
 
49170
  friend class ::WinFriend;
40700
49171
  friend class ::ExtAC;
40701
49172
  friend class ::ExtACBuilderCoupling;
40702
49173
  friend class ::ExtACSyntaxCoupling;
40703
49174
  friend class ::ExtACTree;
40704
49175
  friend class ::ExtACKeywords;
40705
 
  friend class ::WinAsm;
40706
 
  friend class ::WinDeclSpecs;
40707
 
  friend class ::WinMemberExplSpec;
40708
 
  friend class ::WinTypeKeywords;
 
49176
  friend class ::ExtGnu;
40709
49177
  friend class ::PragmaOnceUnitState;
40710
49178
  friend class ::PragmaOnce;
40711
 
  friend class ::CCExprResolve;
40712
 
  friend class ::CExprResolve;
40713
 
 
40714
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40715
 
 
40716
 
  CTree *sons[2]; // declarator, init
 
49179
  friend class ::CMatchSyntax;
 
49180
 
 
49181
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49182
 
 
49183
  CTree *sons[3]; // declarator, ext, init
40717
49184
  CTree *obj_decl;
40718
49185
 
40719
49186
public:
40720
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
40721
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
49187
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
49188
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
49189
    AddSon (obj_decl, 0); 
40722
49190
  }
 
49191
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40723
49192
  static const char *NodeId ();
 
49193
  /** Get the name of the node. Can be compared with NodeId(). */
40724
49194
  const char *NodeName () const { return NodeId (); }
40725
 
  int Sons () const { return CTree::Sons (sons, 2); }
40726
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
49195
  /** Get the number of sons. */
 
49196
  int Sons () const { return CTree::Sons (sons, 3); }
 
49197
  /** Get the n-th son.
 
49198
   *  \param n The index of the son.
 
49199
   *  \return The n-th son or NULL. */
 
49200
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
40727
49201
  CTree *Declarator () const { return sons[0]; }
40728
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
49202
  CTree *Extension () const { return sons[1]; }
 
49203
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
40729
49204
  CSemObject *SemObject () const { return (CSemObject*)this; }
40730
49205
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
40731
 
  void Initializer (CTree* i) { sons[1] = i; }
40732
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
49206
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
49207
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
49208
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
49209
  /** Replace a son.
 
49210
   *  \param old_son The son to replace.
 
49211
   *  \param new_son The new son. */
40733
49212
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40734
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
49213
    CTree::ReplaceSon (sons, 3, old_son, new_son);
40735
49214
  }
40736
49215
};
40737
49216
 
40738
49217
 
40739
 
#line 40740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49218
#line 49219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40740
49219
} // closed Puma
 
49220
class CCExprResolve;
 
49221
class CExprResolve;
40741
49222
class WinIfExists;
40742
49223
class WinImportHandler;
40743
49224
class WinMacros;
40744
 
class CMatchSyntax;
40745
 
class ExtGnu;
 
49225
class WinAsm;
 
49226
class WinDeclSpecs;
 
49227
class WinMemberExplSpec;
 
49228
class WinTypeKeywords;
 
49229
class WinFriend;
40746
49230
class ExtAC;
40747
49231
class ExtACBuilderCoupling;
40748
49232
class ExtACSyntaxCoupling;
40749
49233
class ExtACTree;
40750
49234
class ExtACKeywords;
40751
 
class WinAsm;
40752
 
class WinDeclSpecs;
40753
 
class WinMemberExplSpec;
40754
 
class WinTypeKeywords;
 
49235
class ExtGnu;
40755
49236
class PragmaOnceUnitState;
40756
49237
class PragmaOnce;
40757
 
class CCExprResolve;
40758
 
class CExprResolve;
 
49238
class CMatchSyntax;
40759
49239
namespace Puma {
40760
49240
 
40761
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49241
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40762
49242
class CT_BracedDeclarator : public CT_Declarator {
40763
 
#line 40764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49243
#line 49244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49244
  friend class ::CCExprResolve;
 
49245
  friend class ::CExprResolve;
40764
49246
  friend class ::WinIfExists;
40765
49247
  friend class ::WinImportHandler;
40766
49248
  friend class ::WinMacros;
40767
 
  friend class ::CMatchSyntax;
40768
 
  friend class ::ExtGnu;
 
49249
  friend class ::WinAsm;
 
49250
  friend class ::WinDeclSpecs;
 
49251
  friend class ::WinMemberExplSpec;
 
49252
  friend class ::WinTypeKeywords;
 
49253
  friend class ::WinFriend;
40769
49254
  friend class ::ExtAC;
40770
49255
  friend class ::ExtACBuilderCoupling;
40771
49256
  friend class ::ExtACSyntaxCoupling;
40772
49257
  friend class ::ExtACTree;
40773
49258
  friend class ::ExtACKeywords;
40774
 
  friend class ::WinAsm;
40775
 
  friend class ::WinDeclSpecs;
40776
 
  friend class ::WinMemberExplSpec;
40777
 
  friend class ::WinTypeKeywords;
 
49259
  friend class ::ExtGnu;
40778
49260
  friend class ::PragmaOnceUnitState;
40779
49261
  friend class ::PragmaOnce;
40780
 
  friend class ::CCExprResolve;
40781
 
  friend class ::CExprResolve;
 
49262
  friend class ::CMatchSyntax;
40782
49263
 
40783
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49264
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40784
49265
 
40785
49266
  CTree *sons[4]; // open, win_specs, declarator, close
40786
49267
 
40787
49268
public:
40788
49269
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
40789
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
49270
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
49271
    AddSon (sons[2], d); AddSon (sons[3], c); 
40790
49272
  }
40791
49273
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
40792
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
49274
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
49275
    AddSon (sons[2], d); AddSon (sons[3], c); 
40793
49276
  }
 
49277
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40794
49278
  static const char *NodeId ();
 
49279
  /** Get the name of the node. Can be compared with NodeId(). */
40795
49280
  const char *NodeName () const { return NodeId (); }
 
49281
  /** Get the number of sons. */
40796
49282
  int Sons () const { return CTree::Sons (sons, 4); }
 
49283
  /** Get the n-th son.
 
49284
   *  \param n The index of the son.
 
49285
   *  \return The n-th son or NULL. */
40797
49286
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40798
49287
  CTree *Declarator () const { return sons[2]; }
 
49288
  /** Replace a son.
 
49289
   *  \param old_son The son to replace.
 
49290
   *  \param new_son The new son. */
40799
49291
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40800
49292
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40801
49293
  }
40802
49294
};
40803
49295
 
40804
49296
 
40805
 
#line 40806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49297
#line 49298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40806
49298
} // closed Puma
 
49299
class CCExprResolve;
 
49300
class CExprResolve;
40807
49301
class WinIfExists;
40808
49302
class WinImportHandler;
40809
49303
class WinMacros;
40810
 
class CMatchSyntax;
40811
 
class ExtGnu;
 
49304
class WinAsm;
 
49305
class WinDeclSpecs;
 
49306
class WinMemberExplSpec;
 
49307
class WinTypeKeywords;
 
49308
class WinFriend;
40812
49309
class ExtAC;
40813
49310
class ExtACBuilderCoupling;
40814
49311
class ExtACSyntaxCoupling;
40815
49312
class ExtACTree;
40816
49313
class ExtACKeywords;
40817
 
class WinAsm;
40818
 
class WinDeclSpecs;
40819
 
class WinMemberExplSpec;
40820
 
class WinTypeKeywords;
 
49314
class ExtGnu;
40821
49315
class PragmaOnceUnitState;
40822
49316
class PragmaOnce;
40823
 
class CCExprResolve;
40824
 
class CExprResolve;
 
49317
class CMatchSyntax;
40825
49318
namespace Puma {
40826
49319
 
40827
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49320
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40828
49321
class CT_ArrayDelimiter : public CTree {
40829
 
#line 40830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49322
#line 49323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49323
  friend class ::CCExprResolve;
 
49324
  friend class ::CExprResolve;
40830
49325
  friend class ::WinIfExists;
40831
49326
  friend class ::WinImportHandler;
40832
49327
  friend class ::WinMacros;
40833
 
  friend class ::CMatchSyntax;
40834
 
  friend class ::ExtGnu;
 
49328
  friend class ::WinAsm;
 
49329
  friend class ::WinDeclSpecs;
 
49330
  friend class ::WinMemberExplSpec;
 
49331
  friend class ::WinTypeKeywords;
 
49332
  friend class ::WinFriend;
40835
49333
  friend class ::ExtAC;
40836
49334
  friend class ::ExtACBuilderCoupling;
40837
49335
  friend class ::ExtACSyntaxCoupling;
40838
49336
  friend class ::ExtACTree;
40839
49337
  friend class ::ExtACKeywords;
40840
 
  friend class ::WinAsm;
40841
 
  friend class ::WinDeclSpecs;
40842
 
  friend class ::WinMemberExplSpec;
40843
 
  friend class ::WinTypeKeywords;
 
49338
  friend class ::ExtGnu;
40844
49339
  friend class ::PragmaOnceUnitState;
40845
49340
  friend class ::PragmaOnce;
40846
 
  friend class ::CCExprResolve;
40847
 
  friend class ::CExprResolve;
 
49341
  friend class ::CMatchSyntax;
40848
49342
 
40849
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49343
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40850
49344
 
40851
49345
  CTree *sons[4]; // star, static, quals, expr
40852
49346
  bool pos0;
40853
49347
 
40854
49348
public:
40855
49349
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
40856
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
49350
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
49351
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
40857
49352
  }
 
49353
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40858
49354
  static const char *NodeId ();
 
49355
  /** Get the name of the node. Can be compared with NodeId(). */
40859
49356
  const char *NodeName () const { return NodeId (); }
 
49357
  /** Get the number of sons. */
40860
49358
  int Sons () const { return CTree::Sons (sons, 4); }
 
49359
  /** Get the n-th son.
 
49360
   *  \param n The index of the son.
 
49361
   *  \return The n-th son or NULL. */
40861
49362
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40862
49363
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
40863
49364
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
40864
49365
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
40865
49366
  CTree *Expr () const { return sons[3]; }
 
49367
  /** Replace a son.
 
49368
   *  \param old_son The son to replace.
 
49369
   *  \param new_son The new son. */
40866
49370
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40867
49371
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40868
49372
  }
40869
49373
};
40870
49374
 
40871
49375
 
40872
 
#line 40873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49376
#line 49377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40873
49377
} // closed Puma
 
49378
class CCExprResolve;
 
49379
class CExprResolve;
40874
49380
class WinIfExists;
40875
49381
class WinImportHandler;
40876
49382
class WinMacros;
40877
 
class CMatchSyntax;
40878
 
class ExtGnu;
 
49383
class WinAsm;
 
49384
class WinDeclSpecs;
 
49385
class WinMemberExplSpec;
 
49386
class WinTypeKeywords;
 
49387
class WinFriend;
40879
49388
class ExtAC;
40880
49389
class ExtACBuilderCoupling;
40881
49390
class ExtACSyntaxCoupling;
40882
49391
class ExtACTree;
40883
49392
class ExtACKeywords;
40884
 
class WinAsm;
40885
 
class WinDeclSpecs;
40886
 
class WinMemberExplSpec;
40887
 
class WinTypeKeywords;
 
49393
class ExtGnu;
40888
49394
class PragmaOnceUnitState;
40889
49395
class PragmaOnce;
40890
 
class CCExprResolve;
40891
 
class CExprResolve;
 
49396
class CMatchSyntax;
40892
49397
namespace Puma {
40893
49398
 
40894
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49399
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40895
49400
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
40896
 
#line 40897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49401
#line 49402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49402
  friend class ::CCExprResolve;
 
49403
  friend class ::CExprResolve;
40897
49404
  friend class ::WinIfExists;
40898
49405
  friend class ::WinImportHandler;
40899
49406
  friend class ::WinMacros;
40900
 
  friend class ::CMatchSyntax;
40901
 
  friend class ::ExtGnu;
 
49407
  friend class ::WinAsm;
 
49408
  friend class ::WinDeclSpecs;
 
49409
  friend class ::WinMemberExplSpec;
 
49410
  friend class ::WinTypeKeywords;
 
49411
  friend class ::WinFriend;
40902
49412
  friend class ::ExtAC;
40903
49413
  friend class ::ExtACBuilderCoupling;
40904
49414
  friend class ::ExtACSyntaxCoupling;
40905
49415
  friend class ::ExtACTree;
40906
49416
  friend class ::ExtACKeywords;
40907
 
  friend class ::WinAsm;
40908
 
  friend class ::WinDeclSpecs;
40909
 
  friend class ::WinMemberExplSpec;
40910
 
  friend class ::WinTypeKeywords;
 
49417
  friend class ::ExtGnu;
40911
49418
  friend class ::PragmaOnceUnitState;
40912
49419
  friend class ::PragmaOnce;
40913
 
  friend class ::CCExprResolve;
40914
 
  friend class ::CExprResolve;
 
49420
  friend class ::CMatchSyntax;
40915
49421
 
40916
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49422
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40917
49423
 
40918
49424
  CTree *sons[4]; // declarator, open, delim, close
40919
49425
 
40920
49426
public:
40921
49427
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
40922
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
49428
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
49429
    AddSon (sons[2], ad); AddSon (sons[3], c); 
40923
49430
  }
 
49431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40924
49432
  static const char *NodeId ();
 
49433
  /** Get the name of the node. Can be compared with NodeId(). */
40925
49434
  const char *NodeName () const { return NodeId (); }
 
49435
  /** Get the number of sons. */
40926
49436
  int Sons () const { return 4; }
 
49437
  /** Get the n-th son.
 
49438
   *  \param n The index of the son.
 
49439
   *  \return The n-th son or NULL. */
40927
49440
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40928
49441
  CTree *Declarator () const { return sons[0]; }
40929
49442
  CT_ArrayDelimiter *Delimiter () const 
40930
49443
   { return (CT_ArrayDelimiter*)sons[2]; }
 
49444
  /** Replace a son.
 
49445
   *  \param old_son The son to replace.
 
49446
   *  \param new_son The new son. */
40931
49447
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
40932
49448
    CTree::ReplaceSon (sons, 4, old_son, new_son);
40933
49449
  }
40937
49453
};
40938
49454
 
40939
49455
 
40940
 
#line 40941 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49456
#line 49457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
40941
49457
} // closed Puma
 
49458
class CCExprResolve;
 
49459
class CExprResolve;
40942
49460
class WinIfExists;
40943
49461
class WinImportHandler;
40944
49462
class WinMacros;
40945
 
class CMatchSyntax;
40946
 
class ExtGnu;
 
49463
class WinAsm;
 
49464
class WinDeclSpecs;
 
49465
class WinMemberExplSpec;
 
49466
class WinTypeKeywords;
 
49467
class WinFriend;
40947
49468
class ExtAC;
40948
49469
class ExtACBuilderCoupling;
40949
49470
class ExtACSyntaxCoupling;
40950
49471
class ExtACTree;
40951
49472
class ExtACKeywords;
40952
 
class WinAsm;
40953
 
class WinDeclSpecs;
40954
 
class WinMemberExplSpec;
40955
 
class WinTypeKeywords;
 
49473
class ExtGnu;
40956
49474
class PragmaOnceUnitState;
40957
49475
class PragmaOnce;
40958
 
class CCExprResolve;
40959
 
class CExprResolve;
 
49476
class CMatchSyntax;
40960
49477
namespace Puma {
40961
49478
 
40962
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49479
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40963
49480
class CT_FctDeclarator : public CT_Declarator {
40964
 
#line 40965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49481
#line 49482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49482
  friend class ::CCExprResolve;
 
49483
  friend class ::CExprResolve;
40965
49484
  friend class ::WinIfExists;
40966
49485
  friend class ::WinImportHandler;
40967
49486
  friend class ::WinMacros;
40968
 
  friend class ::CMatchSyntax;
40969
 
  friend class ::ExtGnu;
 
49487
  friend class ::WinAsm;
 
49488
  friend class ::WinDeclSpecs;
 
49489
  friend class ::WinMemberExplSpec;
 
49490
  friend class ::WinTypeKeywords;
 
49491
  friend class ::WinFriend;
40970
49492
  friend class ::ExtAC;
40971
49493
  friend class ::ExtACBuilderCoupling;
40972
49494
  friend class ::ExtACSyntaxCoupling;
40973
49495
  friend class ::ExtACTree;
40974
49496
  friend class ::ExtACKeywords;
40975
 
  friend class ::WinAsm;
40976
 
  friend class ::WinDeclSpecs;
40977
 
  friend class ::WinMemberExplSpec;
40978
 
  friend class ::WinTypeKeywords;
 
49497
  friend class ::ExtGnu;
40979
49498
  friend class ::PragmaOnceUnitState;
40980
49499
  friend class ::PragmaOnce;
40981
 
  friend class ::CCExprResolve;
40982
 
  friend class ::CExprResolve;
 
49500
  friend class ::CMatchSyntax;
40983
49501
 
40984
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49502
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40985
49503
 
40986
49504
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
40987
49505
 
40988
49506
public:
40989
49507
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
40990
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
49508
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
49509
    AddSon (sons[2], cv); AddSon (sons[3], es); 
40991
49510
  }
 
49511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40992
49512
  static const char *NodeId ();
 
49513
  /** Get the name of the node. Can be compared with NodeId(). */
40993
49514
  const char *NodeName () const { return NodeId (); }
 
49515
  /** Get the number of sons. */
40994
49516
  int Sons () const { return CTree::Sons (sons, 4); }
 
49517
  /** Get the n-th son.
 
49518
   *  \param n The index of the son.
 
49519
   *  \return The n-th son or NULL. */
40995
49520
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
40996
49521
  CTree *Declarator () const { return sons[0]; }
40997
49522
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
40998
49523
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
40999
49524
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
49525
  /** Replace a son.
 
49526
   *  \param old_son The son to replace.
 
49527
   *  \param new_son The new son. */
41000
49528
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41001
49529
    CTree::ReplaceSon (sons, 4, old_son, new_son);
41002
49530
  }
41003
49531
};
41004
49532
 
41005
49533
 
41006
 
#line 41007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49534
#line 49535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41007
49535
} // closed Puma
 
49536
class CCExprResolve;
 
49537
class CExprResolve;
41008
49538
class WinIfExists;
41009
49539
class WinImportHandler;
41010
49540
class WinMacros;
41011
 
class CMatchSyntax;
41012
 
class ExtGnu;
 
49541
class WinAsm;
 
49542
class WinDeclSpecs;
 
49543
class WinMemberExplSpec;
 
49544
class WinTypeKeywords;
 
49545
class WinFriend;
41013
49546
class ExtAC;
41014
49547
class ExtACBuilderCoupling;
41015
49548
class ExtACSyntaxCoupling;
41016
49549
class ExtACTree;
41017
49550
class ExtACKeywords;
41018
 
class WinAsm;
41019
 
class WinDeclSpecs;
41020
 
class WinMemberExplSpec;
41021
 
class WinTypeKeywords;
 
49551
class ExtGnu;
41022
49552
class PragmaOnceUnitState;
41023
49553
class PragmaOnce;
41024
 
class CCExprResolve;
41025
 
class CExprResolve;
 
49554
class CMatchSyntax;
41026
49555
namespace Puma {
41027
49556
 
41028
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49557
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41029
49558
class CT_RefDeclarator : public CT_Declarator {
41030
 
#line 41031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49559
#line 49560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49560
  friend class ::CCExprResolve;
 
49561
  friend class ::CExprResolve;
41031
49562
  friend class ::WinIfExists;
41032
49563
  friend class ::WinImportHandler;
41033
49564
  friend class ::WinMacros;
41034
 
  friend class ::CMatchSyntax;
41035
 
  friend class ::ExtGnu;
 
49565
  friend class ::WinAsm;
 
49566
  friend class ::WinDeclSpecs;
 
49567
  friend class ::WinMemberExplSpec;
 
49568
  friend class ::WinTypeKeywords;
 
49569
  friend class ::WinFriend;
41036
49570
  friend class ::ExtAC;
41037
49571
  friend class ::ExtACBuilderCoupling;
41038
49572
  friend class ::ExtACSyntaxCoupling;
41039
49573
  friend class ::ExtACTree;
41040
49574
  friend class ::ExtACKeywords;
41041
 
  friend class ::WinAsm;
41042
 
  friend class ::WinDeclSpecs;
41043
 
  friend class ::WinMemberExplSpec;
41044
 
  friend class ::WinTypeKeywords;
 
49575
  friend class ::ExtGnu;
41045
49576
  friend class ::PragmaOnceUnitState;
41046
49577
  friend class ::PragmaOnce;
41047
 
  friend class ::CCExprResolve;
41048
 
  friend class ::CExprResolve;
 
49578
  friend class ::CMatchSyntax;
41049
49579
 
41050
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49580
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41051
49581
 
41052
49582
  CTree *sons[2]; // ref, declarator
41053
49583
 
41054
49584
public:
41055
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
49585
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
49586
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41056
49587
  static const char *NodeId ();
 
49588
  /** Get the name of the node. Can be compared with NodeId(). */
41057
49589
  const char *NodeName () const { return NodeId (); }
 
49590
  /** Get the number of sons. */
41058
49591
  int Sons () const { return 2; }
 
49592
  /** Get the n-th son.
 
49593
   *  \param n The index of the son.
 
49594
   *  \return The n-th son or NULL. */
41059
49595
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41060
49596
  CTree *Declarator () const { return sons[1]; }
 
49597
  /** Replace a son.
 
49598
   *  \param old_son The son to replace.
 
49599
   *  \param new_son The new son. */
41061
49600
  void ReplaceSon (CTree *old_son, CTree *new_son) {
41062
49601
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41063
49602
  }
41064
49603
};
41065
49604
 
41066
49605
 
41067
 
#line 41068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49606
#line 49607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41068
49607
} // closed Puma
 
49608
class CCExprResolve;
 
49609
class CExprResolve;
41069
49610
class WinIfExists;
41070
49611
class WinImportHandler;
41071
49612
class WinMacros;
41072
 
class CMatchSyntax;
41073
 
class ExtGnu;
 
49613
class WinAsm;
 
49614
class WinDeclSpecs;
 
49615
class WinMemberExplSpec;
 
49616
class WinTypeKeywords;
 
49617
class WinFriend;
41074
49618
class ExtAC;
41075
49619
class ExtACBuilderCoupling;
41076
49620
class ExtACSyntaxCoupling;
41077
49621
class ExtACTree;
41078
49622
class ExtACKeywords;
41079
 
class WinAsm;
41080
 
class WinDeclSpecs;
41081
 
class WinMemberExplSpec;
41082
 
class WinTypeKeywords;
 
49623
class ExtGnu;
41083
49624
class PragmaOnceUnitState;
41084
49625
class PragmaOnce;
41085
 
class CCExprResolve;
41086
 
class CExprResolve;
 
49626
class CMatchSyntax;
41087
49627
namespace Puma {
41088
49628
 
41089
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49629
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41090
49630
class CT_PtrDeclarator : public CT_Declarator {
41091
 
#line 41092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49631
#line 49632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49632
  friend class ::CCExprResolve;
 
49633
  friend class ::CExprResolve;
41092
49634
  friend class ::WinIfExists;
41093
49635
  friend class ::WinImportHandler;
41094
49636
  friend class ::WinMacros;
41095
 
  friend class ::CMatchSyntax;
41096
 
  friend class ::ExtGnu;
 
49637
  friend class ::WinAsm;
 
49638
  friend class ::WinDeclSpecs;
 
49639
  friend class ::WinMemberExplSpec;
 
49640
  friend class ::WinTypeKeywords;
 
49641
  friend class ::WinFriend;
41097
49642
  friend class ::ExtAC;
41098
49643
  friend class ::ExtACBuilderCoupling;
41099
49644
  friend class ::ExtACSyntaxCoupling;
41100
49645
  friend class ::ExtACTree;
41101
49646
  friend class ::ExtACKeywords;
41102
 
  friend class ::WinAsm;
41103
 
  friend class ::WinDeclSpecs;
41104
 
  friend class ::WinMemberExplSpec;
41105
 
  friend class ::WinTypeKeywords;
 
49647
  friend class ::ExtGnu;
41106
49648
  friend class ::PragmaOnceUnitState;
41107
49649
  friend class ::PragmaOnce;
41108
 
  friend class ::CCExprResolve;
41109
 
  friend class ::CExprResolve;
 
49650
  friend class ::CMatchSyntax;
41110
49651
 
41111
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49652
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41112
49653
 
41113
49654
  CTree *sons[3]; // ptr, cv_quals, declarator
41114
49655
 
41115
49656
public:
41116
49657
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
41117
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
49658
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
41118
49659
  }
 
49660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41119
49661
  static const char *NodeId ();
 
49662
  /** Get the name of the node. Can be compared with NodeId(). */
41120
49663
  const char *NodeName () const { return NodeId (); }
 
49664
  /** Get the number of sons. */
41121
49665
  int Sons () const { return CTree::Sons (sons, 3); }
 
49666
  /** Get the n-th son.
 
49667
   *  \param n The index of the son.
 
49668
   *  \return The n-th son or NULL. */
41122
49669
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41123
49670
  CTree *Declarator () const { return sons[2]; }
41124
49671
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
49672
  /** Replace a son.
 
49673
   *  \param old_son The son to replace.
 
49674
   *  \param new_son The new son. */
41125
49675
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41126
49676
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41127
49677
  }
41128
49678
};
41129
49679
 
41130
49680
 
41131
 
#line 41132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49681
#line 49682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41132
49682
} // closed Puma
 
49683
class CCExprResolve;
 
49684
class CExprResolve;
41133
49685
class WinIfExists;
41134
49686
class WinImportHandler;
41135
49687
class WinMacros;
41136
 
class CMatchSyntax;
41137
 
class ExtGnu;
 
49688
class WinAsm;
 
49689
class WinDeclSpecs;
 
49690
class WinMemberExplSpec;
 
49691
class WinTypeKeywords;
 
49692
class WinFriend;
41138
49693
class ExtAC;
41139
49694
class ExtACBuilderCoupling;
41140
49695
class ExtACSyntaxCoupling;
41141
49696
class ExtACTree;
41142
49697
class ExtACKeywords;
41143
 
class WinAsm;
41144
 
class WinDeclSpecs;
41145
 
class WinMemberExplSpec;
41146
 
class WinTypeKeywords;
 
49698
class ExtGnu;
41147
49699
class PragmaOnceUnitState;
41148
49700
class PragmaOnce;
41149
 
class CCExprResolve;
41150
 
class CExprResolve;
 
49701
class CMatchSyntax;
41151
49702
namespace Puma {
41152
49703
 
41153
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49704
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41154
49705
class CT_MembPtrDeclarator : public CT_Declarator {
41155
 
#line 41156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49706
#line 49707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49707
  friend class ::CCExprResolve;
 
49708
  friend class ::CExprResolve;
41156
49709
  friend class ::WinIfExists;
41157
49710
  friend class ::WinImportHandler;
41158
49711
  friend class ::WinMacros;
41159
 
  friend class ::CMatchSyntax;
41160
 
  friend class ::ExtGnu;
 
49712
  friend class ::WinAsm;
 
49713
  friend class ::WinDeclSpecs;
 
49714
  friend class ::WinMemberExplSpec;
 
49715
  friend class ::WinTypeKeywords;
 
49716
  friend class ::WinFriend;
41161
49717
  friend class ::ExtAC;
41162
49718
  friend class ::ExtACBuilderCoupling;
41163
49719
  friend class ::ExtACSyntaxCoupling;
41164
49720
  friend class ::ExtACTree;
41165
49721
  friend class ::ExtACKeywords;
41166
 
  friend class ::WinAsm;
41167
 
  friend class ::WinDeclSpecs;
41168
 
  friend class ::WinMemberExplSpec;
41169
 
  friend class ::WinTypeKeywords;
 
49722
  friend class ::ExtGnu;
41170
49723
  friend class ::PragmaOnceUnitState;
41171
49724
  friend class ::PragmaOnce;
41172
 
  friend class ::CCExprResolve;
41173
 
  friend class ::CExprResolve;
 
49725
  friend class ::CMatchSyntax;
41174
49726
 
41175
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49727
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41176
49728
 
41177
49729
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
41178
49730
 
41179
49731
public:
41180
49732
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
41181
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
49733
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
49734
    AddSon (sons[3], q); AddSon (sons[4], d); 
41182
49735
  }
 
49736
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41183
49737
  static const char *NodeId ();
 
49738
  /** Get the name of the node. Can be compared with NodeId(). */
41184
49739
  const char *NodeName () const { return NodeId (); }
 
49740
  /** Get the number of sons. */
41185
49741
  int Sons () const { return CTree::Sons (sons, 5); }
 
49742
  /** Get the n-th son.
 
49743
   *  \param n The index of the son.
 
49744
   *  \return The n-th son or NULL. */
41186
49745
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41187
49746
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
41188
49747
  CTree *Declarator () const { return sons[4]; }
41189
49748
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
49749
  /** Replace a son.
 
49750
   *  \param old_son The son to replace.
 
49751
   *  \param new_son The new son. */
41190
49752
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41191
49753
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41192
49754
  }
41193
49755
};
41194
49756
 
41195
49757
 
41196
 
#line 41197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49758
#line 49759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41197
49759
} // closed Puma
 
49760
class CCExprResolve;
 
49761
class CExprResolve;
41198
49762
class WinIfExists;
41199
49763
class WinImportHandler;
41200
49764
class WinMacros;
41201
 
class CMatchSyntax;
41202
 
class ExtGnu;
 
49765
class WinAsm;
 
49766
class WinDeclSpecs;
 
49767
class WinMemberExplSpec;
 
49768
class WinTypeKeywords;
 
49769
class WinFriend;
41203
49770
class ExtAC;
41204
49771
class ExtACBuilderCoupling;
41205
49772
class ExtACSyntaxCoupling;
41206
49773
class ExtACTree;
41207
49774
class ExtACKeywords;
41208
 
class WinAsm;
41209
 
class WinDeclSpecs;
41210
 
class WinMemberExplSpec;
41211
 
class WinTypeKeywords;
 
49775
class ExtGnu;
41212
49776
class PragmaOnceUnitState;
41213
49777
class PragmaOnce;
41214
 
class CCExprResolve;
41215
 
class CExprResolve;
 
49778
class CMatchSyntax;
41216
49779
namespace Puma {
41217
49780
 
41218
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49781
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41219
49782
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
41220
 
#line 41221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49783
#line 49784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49784
  friend class ::CCExprResolve;
 
49785
  friend class ::CExprResolve;
41221
49786
  friend class ::WinIfExists;
41222
49787
  friend class ::WinImportHandler;
41223
49788
  friend class ::WinMacros;
41224
 
  friend class ::CMatchSyntax;
41225
 
  friend class ::ExtGnu;
 
49789
  friend class ::WinAsm;
 
49790
  friend class ::WinDeclSpecs;
 
49791
  friend class ::WinMemberExplSpec;
 
49792
  friend class ::WinTypeKeywords;
 
49793
  friend class ::WinFriend;
41226
49794
  friend class ::ExtAC;
41227
49795
  friend class ::ExtACBuilderCoupling;
41228
49796
  friend class ::ExtACSyntaxCoupling;
41229
49797
  friend class ::ExtACTree;
41230
49798
  friend class ::ExtACKeywords;
41231
 
  friend class ::WinAsm;
41232
 
  friend class ::WinDeclSpecs;
41233
 
  friend class ::WinMemberExplSpec;
41234
 
  friend class ::WinTypeKeywords;
 
49799
  friend class ::ExtGnu;
41235
49800
  friend class ::PragmaOnceUnitState;
41236
49801
  friend class ::PragmaOnce;
41237
 
  friend class ::CCExprResolve;
41238
 
  friend class ::CExprResolve;
 
49802
  friend class ::CMatchSyntax;
41239
49803
 
41240
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49804
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41241
49805
 
41242
49806
  CTree *sons[3]; // declarator, colon, expr
41243
49807
 
41244
49808
public:
41245
49809
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
41246
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
49810
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
41247
49811
  }
 
49812
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41248
49813
  static const char *NodeId ();
 
49814
  /** Get the name of the node. Can be compared with NodeId(). */
41249
49815
  const char *NodeName () const { return NodeId (); }
 
49816
  /** Get the number of sons. */
41250
49817
  int Sons () const { return CTree::Sons (sons, 3); }
 
49818
  /** Get the n-th son.
 
49819
   *  \param n The index of the son.
 
49820
   *  \return The n-th son or NULL. */
41251
49821
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41252
49822
  CTree *Declarator () const { return sons[0]; }
41253
49823
  CTree *Expr () const { return sons[2]; }
41254
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
49824
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
41255
49825
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
49826
  /** Replace a son.
 
49827
   *  \param old_son The son to replace.
 
49828
   *  \param new_son The new son. */
41256
49829
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41257
49830
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41258
49831
  }
41265
49838
/*****************************************************************************/
41266
49839
 
41267
49840
 
41268
 
#line 41269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49841
#line 49842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41269
49842
} // closed Puma
 
49843
class CCExprResolve;
 
49844
class CExprResolve;
41270
49845
class WinIfExists;
41271
49846
class WinImportHandler;
41272
49847
class WinMacros;
41273
 
class CMatchSyntax;
41274
 
class ExtGnu;
 
49848
class WinAsm;
 
49849
class WinDeclSpecs;
 
49850
class WinMemberExplSpec;
 
49851
class WinTypeKeywords;
 
49852
class WinFriend;
41275
49853
class ExtAC;
41276
49854
class ExtACBuilderCoupling;
41277
49855
class ExtACSyntaxCoupling;
41278
49856
class ExtACTree;
41279
49857
class ExtACKeywords;
41280
 
class WinAsm;
41281
 
class WinDeclSpecs;
41282
 
class WinMemberExplSpec;
41283
 
class WinTypeKeywords;
 
49858
class ExtGnu;
41284
49859
class PragmaOnceUnitState;
41285
49860
class PragmaOnce;
41286
 
class CCExprResolve;
41287
 
class CExprResolve;
 
49861
class CMatchSyntax;
41288
49862
namespace Puma {
41289
49863
 
41290
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49864
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41291
49865
class CT_Statement : public CTree {
41292
 
#line 41293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49866
#line 49867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49867
  friend class ::CCExprResolve;
 
49868
  friend class ::CExprResolve;
41293
49869
  friend class ::WinIfExists;
41294
49870
  friend class ::WinImportHandler;
41295
49871
  friend class ::WinMacros;
41296
 
  friend class ::CMatchSyntax;
41297
 
  friend class ::ExtGnu;
 
49872
  friend class ::WinAsm;
 
49873
  friend class ::WinDeclSpecs;
 
49874
  friend class ::WinMemberExplSpec;
 
49875
  friend class ::WinTypeKeywords;
 
49876
  friend class ::WinFriend;
41298
49877
  friend class ::ExtAC;
41299
49878
  friend class ::ExtACBuilderCoupling;
41300
49879
  friend class ::ExtACSyntaxCoupling;
41301
49880
  friend class ::ExtACTree;
41302
49881
  friend class ::ExtACKeywords;
41303
 
  friend class ::WinAsm;
41304
 
  friend class ::WinDeclSpecs;
41305
 
  friend class ::WinMemberExplSpec;
41306
 
  friend class ::WinTypeKeywords;
 
49882
  friend class ::ExtGnu;
41307
49883
  friend class ::PragmaOnceUnitState;
41308
49884
  friend class ::PragmaOnce;
41309
 
  friend class ::CCExprResolve;
41310
 
  friend class ::CExprResolve;
 
49885
  friend class ::CMatchSyntax;
41311
49886
 
41312
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49887
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41313
49888
 
41314
49889
protected:
41315
49890
  CT_Statement () {}
 
49891
  virtual CT_Statement *IsStatement () { return this; }
41316
49892
};
41317
49893
 
41318
49894
 
41319
 
#line 41320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49895
#line 49896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41320
49896
} // closed Puma
 
49897
class CCExprResolve;
 
49898
class CExprResolve;
41321
49899
class WinIfExists;
41322
49900
class WinImportHandler;
41323
49901
class WinMacros;
41324
 
class CMatchSyntax;
41325
 
class ExtGnu;
 
49902
class WinAsm;
 
49903
class WinDeclSpecs;
 
49904
class WinMemberExplSpec;
 
49905
class WinTypeKeywords;
 
49906
class WinFriend;
41326
49907
class ExtAC;
41327
49908
class ExtACBuilderCoupling;
41328
49909
class ExtACSyntaxCoupling;
41329
49910
class ExtACTree;
41330
49911
class ExtACKeywords;
41331
 
class WinAsm;
41332
 
class WinDeclSpecs;
41333
 
class WinMemberExplSpec;
41334
 
class WinTypeKeywords;
 
49912
class ExtGnu;
41335
49913
class PragmaOnceUnitState;
41336
49914
class PragmaOnce;
41337
 
class CCExprResolve;
41338
 
class CExprResolve;
 
49915
class CMatchSyntax;
41339
49916
namespace Puma {
41340
49917
 
41341
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49918
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41342
49919
class CT_LabelStmt : public CT_Statement {
41343
 
#line 41344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49920
#line 49921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49921
  friend class ::CCExprResolve;
 
49922
  friend class ::CExprResolve;
41344
49923
  friend class ::WinIfExists;
41345
49924
  friend class ::WinImportHandler;
41346
49925
  friend class ::WinMacros;
41347
 
  friend class ::CMatchSyntax;
41348
 
  friend class ::ExtGnu;
 
49926
  friend class ::WinAsm;
 
49927
  friend class ::WinDeclSpecs;
 
49928
  friend class ::WinMemberExplSpec;
 
49929
  friend class ::WinTypeKeywords;
 
49930
  friend class ::WinFriend;
41349
49931
  friend class ::ExtAC;
41350
49932
  friend class ::ExtACBuilderCoupling;
41351
49933
  friend class ::ExtACSyntaxCoupling;
41352
49934
  friend class ::ExtACTree;
41353
49935
  friend class ::ExtACKeywords;
41354
 
  friend class ::WinAsm;
41355
 
  friend class ::WinDeclSpecs;
41356
 
  friend class ::WinMemberExplSpec;
41357
 
  friend class ::WinTypeKeywords;
 
49936
  friend class ::ExtGnu;
41358
49937
  friend class ::PragmaOnceUnitState;
41359
49938
  friend class ::PragmaOnce;
41360
 
  friend class ::CCExprResolve;
41361
 
  friend class ::CExprResolve;
 
49939
  friend class ::CMatchSyntax;
41362
49940
 
41363
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49941
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41364
49942
 
41365
49943
  CTree *sons[3]; // id, colon, stmt
41366
49944
 
41367
49945
public:
41368
49946
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
41369
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
49947
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
41370
49948
  }
 
49949
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41371
49950
  static const char *NodeId ();
 
49951
  /** Get the name of the node. Can be compared with NodeId(). */
41372
49952
  const char *NodeName () const { return NodeId (); }
 
49953
  /** Get the number of sons. */
41373
49954
  int Sons () const { return 3; }
 
49955
  /** Get the n-th son.
 
49956
   *  \param n The index of the son.
 
49957
   *  \return The n-th son or NULL. */
41374
49958
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41375
49959
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
41376
49960
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
49961
  /** Replace a son.
 
49962
   *  \param old_son The son to replace.
 
49963
   *  \param new_son The new son. */
41377
49964
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41378
49965
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41379
49966
  }
41380
49967
};
41381
49968
 
41382
49969
 
41383
 
#line 41384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49970
#line 49971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41384
49971
} // closed Puma
 
49972
class CCExprResolve;
 
49973
class CExprResolve;
41385
49974
class WinIfExists;
41386
49975
class WinImportHandler;
41387
49976
class WinMacros;
41388
 
class CMatchSyntax;
41389
 
class ExtGnu;
 
49977
class WinAsm;
 
49978
class WinDeclSpecs;
 
49979
class WinMemberExplSpec;
 
49980
class WinTypeKeywords;
 
49981
class WinFriend;
41390
49982
class ExtAC;
41391
49983
class ExtACBuilderCoupling;
41392
49984
class ExtACSyntaxCoupling;
41393
49985
class ExtACTree;
41394
49986
class ExtACKeywords;
41395
 
class WinAsm;
41396
 
class WinDeclSpecs;
41397
 
class WinMemberExplSpec;
41398
 
class WinTypeKeywords;
 
49987
class ExtGnu;
41399
49988
class PragmaOnceUnitState;
41400
49989
class PragmaOnce;
41401
 
class CCExprResolve;
41402
 
class CExprResolve;
 
49990
class CMatchSyntax;
41403
49991
namespace Puma {
41404
49992
 
41405
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49993
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41406
49994
class CT_DefaultStmt : public CT_Statement {
41407
 
#line 41408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
49995
#line 49996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
49996
  friend class ::CCExprResolve;
 
49997
  friend class ::CExprResolve;
41408
49998
  friend class ::WinIfExists;
41409
49999
  friend class ::WinImportHandler;
41410
50000
  friend class ::WinMacros;
41411
 
  friend class ::CMatchSyntax;
41412
 
  friend class ::ExtGnu;
 
50001
  friend class ::WinAsm;
 
50002
  friend class ::WinDeclSpecs;
 
50003
  friend class ::WinMemberExplSpec;
 
50004
  friend class ::WinTypeKeywords;
 
50005
  friend class ::WinFriend;
41413
50006
  friend class ::ExtAC;
41414
50007
  friend class ::ExtACBuilderCoupling;
41415
50008
  friend class ::ExtACSyntaxCoupling;
41416
50009
  friend class ::ExtACTree;
41417
50010
  friend class ::ExtACKeywords;
41418
 
  friend class ::WinAsm;
41419
 
  friend class ::WinDeclSpecs;
41420
 
  friend class ::WinMemberExplSpec;
41421
 
  friend class ::WinTypeKeywords;
 
50011
  friend class ::ExtGnu;
41422
50012
  friend class ::PragmaOnceUnitState;
41423
50013
  friend class ::PragmaOnce;
41424
 
  friend class ::CCExprResolve;
41425
 
  friend class ::CExprResolve;
 
50014
  friend class ::CMatchSyntax;
41426
50015
 
41427
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50016
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41428
50017
 
41429
50018
  CTree *sons[3]; // keyword, colon, stmt
41430
50019
 
41431
50020
public:
41432
50021
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
41433
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
50022
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
41434
50023
  }
 
50024
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41435
50025
  static const char *NodeId ();
 
50026
  /** Get the name of the node. Can be compared with NodeId(). */
41436
50027
  const char *NodeName () const { return NodeId (); }
 
50028
  /** Get the number of sons. */
41437
50029
  int Sons () const { return 3; }
 
50030
  /** Get the n-th son.
 
50031
   *  \param n The index of the son.
 
50032
   *  \return The n-th son or NULL. */
41438
50033
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41439
50034
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
50035
  /** Replace a son.
 
50036
   *  \param old_son The son to replace.
 
50037
   *  \param new_son The new son. */
41440
50038
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41441
50039
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41442
50040
  }
41443
50041
};
41444
50042
 
41445
50043
 
41446
 
#line 41447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50044
#line 50045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41447
50045
} // closed Puma
 
50046
class CCExprResolve;
 
50047
class CExprResolve;
41448
50048
class WinIfExists;
41449
50049
class WinImportHandler;
41450
50050
class WinMacros;
41451
 
class CMatchSyntax;
41452
 
class ExtGnu;
 
50051
class WinAsm;
 
50052
class WinDeclSpecs;
 
50053
class WinMemberExplSpec;
 
50054
class WinTypeKeywords;
 
50055
class WinFriend;
41453
50056
class ExtAC;
41454
50057
class ExtACBuilderCoupling;
41455
50058
class ExtACSyntaxCoupling;
41456
50059
class ExtACTree;
41457
50060
class ExtACKeywords;
41458
 
class WinAsm;
41459
 
class WinDeclSpecs;
41460
 
class WinMemberExplSpec;
41461
 
class WinTypeKeywords;
 
50061
class ExtGnu;
41462
50062
class PragmaOnceUnitState;
41463
50063
class PragmaOnce;
41464
 
class CCExprResolve;
41465
 
class CExprResolve;
 
50064
class CMatchSyntax;
41466
50065
namespace Puma {
41467
50066
 
41468
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50067
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41469
50068
class CT_TryStmt : public CT_Statement {
41470
 
#line 41471 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50069
#line 50070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50070
  friend class ::CCExprResolve;
 
50071
  friend class ::CExprResolve;
41471
50072
  friend class ::WinIfExists;
41472
50073
  friend class ::WinImportHandler;
41473
50074
  friend class ::WinMacros;
41474
 
  friend class ::CMatchSyntax;
41475
 
  friend class ::ExtGnu;
 
50075
  friend class ::WinAsm;
 
50076
  friend class ::WinDeclSpecs;
 
50077
  friend class ::WinMemberExplSpec;
 
50078
  friend class ::WinTypeKeywords;
 
50079
  friend class ::WinFriend;
41476
50080
  friend class ::ExtAC;
41477
50081
  friend class ::ExtACBuilderCoupling;
41478
50082
  friend class ::ExtACSyntaxCoupling;
41479
50083
  friend class ::ExtACTree;
41480
50084
  friend class ::ExtACKeywords;
41481
 
  friend class ::WinAsm;
41482
 
  friend class ::WinDeclSpecs;
41483
 
  friend class ::WinMemberExplSpec;
41484
 
  friend class ::WinTypeKeywords;
 
50085
  friend class ::ExtGnu;
41485
50086
  friend class ::PragmaOnceUnitState;
41486
50087
  friend class ::PragmaOnce;
41487
 
  friend class ::CCExprResolve;
41488
 
  friend class ::CExprResolve;
 
50088
  friend class ::CMatchSyntax;
41489
50089
 
41490
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50090
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41491
50091
 
41492
50092
  CTree *sons[3]; // try, stmt, handlers
41493
50093
 
41494
50094
public:
41495
50095
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
41496
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
50096
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
41497
50097
  }
 
50098
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41498
50099
  static const char *NodeId ();
 
50100
  /** Get the name of the node. Can be compared with NodeId(). */
41499
50101
  const char *NodeName () const { return NodeId (); }
 
50102
  /** Get the number of sons. */
41500
50103
  int Sons () const { return 3; }
 
50104
  /** Get the n-th son.
 
50105
   *  \param n The index of the son.
 
50106
   *  \return The n-th son or NULL. */
41501
50107
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
41502
50108
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
41503
50109
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
50110
  /** Replace a son.
 
50111
   *  \param old_son The son to replace.
 
50112
   *  \param new_son The new son. */
41504
50113
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41505
50114
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41506
50115
  }
41507
50116
};
41508
50117
 
41509
50118
 
41510
 
#line 41511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50119
#line 50120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41511
50120
} // closed Puma
 
50121
class CCExprResolve;
 
50122
class CExprResolve;
41512
50123
class WinIfExists;
41513
50124
class WinImportHandler;
41514
50125
class WinMacros;
41515
 
class CMatchSyntax;
41516
 
class ExtGnu;
 
50126
class WinAsm;
 
50127
class WinDeclSpecs;
 
50128
class WinMemberExplSpec;
 
50129
class WinTypeKeywords;
 
50130
class WinFriend;
41517
50131
class ExtAC;
41518
50132
class ExtACBuilderCoupling;
41519
50133
class ExtACSyntaxCoupling;
41520
50134
class ExtACTree;
41521
50135
class ExtACKeywords;
41522
 
class WinAsm;
41523
 
class WinDeclSpecs;
41524
 
class WinMemberExplSpec;
41525
 
class WinTypeKeywords;
 
50136
class ExtGnu;
41526
50137
class PragmaOnceUnitState;
41527
50138
class PragmaOnce;
41528
 
class CCExprResolve;
41529
 
class CExprResolve;
 
50139
class CMatchSyntax;
41530
50140
namespace Puma {
41531
50141
 
41532
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50142
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41533
50143
class CT_CaseStmt : public CT_Statement {
41534
 
#line 41535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50144
#line 50145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50145
  friend class ::CCExprResolve;
 
50146
  friend class ::CExprResolve;
41535
50147
  friend class ::WinIfExists;
41536
50148
  friend class ::WinImportHandler;
41537
50149
  friend class ::WinMacros;
41538
 
  friend class ::CMatchSyntax;
41539
 
  friend class ::ExtGnu;
 
50150
  friend class ::WinAsm;
 
50151
  friend class ::WinDeclSpecs;
 
50152
  friend class ::WinMemberExplSpec;
 
50153
  friend class ::WinTypeKeywords;
 
50154
  friend class ::WinFriend;
41540
50155
  friend class ::ExtAC;
41541
50156
  friend class ::ExtACBuilderCoupling;
41542
50157
  friend class ::ExtACSyntaxCoupling;
41543
50158
  friend class ::ExtACTree;
41544
50159
  friend class ::ExtACKeywords;
41545
 
  friend class ::WinAsm;
41546
 
  friend class ::WinDeclSpecs;
41547
 
  friend class ::WinMemberExplSpec;
41548
 
  friend class ::WinTypeKeywords;
 
50160
  friend class ::ExtGnu;
41549
50161
  friend class ::PragmaOnceUnitState;
41550
50162
  friend class ::PragmaOnce;
41551
 
  friend class ::CCExprResolve;
41552
 
  friend class ::CExprResolve;
 
50163
  friend class ::CMatchSyntax;
41553
50164
 
41554
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50165
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41555
50166
 
41556
50167
  CTree *sons[4]; // keyword, expr, colon, stmt
41557
50168
 
41558
50169
public:
41559
50170
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
41560
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
50171
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
50172
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
41561
50173
  }
 
50174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41562
50175
  static const char *NodeId ();
 
50176
  /** Get the name of the node. Can be compared with NodeId(). */
41563
50177
  const char *NodeName () const { return NodeId (); }
 
50178
  /** Get the number of sons. */
41564
50179
  int Sons () const { return 4; }
 
50180
  /** Get the n-th son.
 
50181
   *  \param n The index of the son.
 
50182
   *  \return The n-th son or NULL. */
41565
50183
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
41566
50184
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
41567
50185
  CTree *Expr () const { return sons[1]; }
 
50186
  /** Replace a son.
 
50187
   *  \param old_son The son to replace.
 
50188
   *  \param new_son The new son. */
41568
50189
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41569
50190
    CTree::ReplaceSon (sons, 4, old_son, new_son);
41570
50191
  }
41571
50192
};
41572
50193
 
41573
50194
 
41574
 
#line 41575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50195
#line 50196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41575
50196
} // closed Puma
 
50197
class CCExprResolve;
 
50198
class CExprResolve;
41576
50199
class WinIfExists;
41577
50200
class WinImportHandler;
41578
50201
class WinMacros;
41579
 
class CMatchSyntax;
41580
 
class ExtGnu;
 
50202
class WinAsm;
 
50203
class WinDeclSpecs;
 
50204
class WinMemberExplSpec;
 
50205
class WinTypeKeywords;
 
50206
class WinFriend;
41581
50207
class ExtAC;
41582
50208
class ExtACBuilderCoupling;
41583
50209
class ExtACSyntaxCoupling;
41584
50210
class ExtACTree;
41585
50211
class ExtACKeywords;
41586
 
class WinAsm;
41587
 
class WinDeclSpecs;
41588
 
class WinMemberExplSpec;
41589
 
class WinTypeKeywords;
 
50212
class ExtGnu;
41590
50213
class PragmaOnceUnitState;
41591
50214
class PragmaOnce;
41592
 
class CCExprResolve;
41593
 
class CExprResolve;
 
50215
class CMatchSyntax;
41594
50216
namespace Puma {
41595
50217
 
41596
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50218
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41597
50219
class CT_ExprStmt : public CT_Statement {
41598
 
#line 41599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50220
#line 50221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50221
  friend class ::CCExprResolve;
 
50222
  friend class ::CExprResolve;
41599
50223
  friend class ::WinIfExists;
41600
50224
  friend class ::WinImportHandler;
41601
50225
  friend class ::WinMacros;
41602
 
  friend class ::CMatchSyntax;
41603
 
  friend class ::ExtGnu;
 
50226
  friend class ::WinAsm;
 
50227
  friend class ::WinDeclSpecs;
 
50228
  friend class ::WinMemberExplSpec;
 
50229
  friend class ::WinTypeKeywords;
 
50230
  friend class ::WinFriend;
41604
50231
  friend class ::ExtAC;
41605
50232
  friend class ::ExtACBuilderCoupling;
41606
50233
  friend class ::ExtACSyntaxCoupling;
41607
50234
  friend class ::ExtACTree;
41608
50235
  friend class ::ExtACKeywords;
41609
 
  friend class ::WinAsm;
41610
 
  friend class ::WinDeclSpecs;
41611
 
  friend class ::WinMemberExplSpec;
41612
 
  friend class ::WinTypeKeywords;
 
50236
  friend class ::ExtGnu;
41613
50237
  friend class ::PragmaOnceUnitState;
41614
50238
  friend class ::PragmaOnce;
41615
 
  friend class ::CCExprResolve;
41616
 
  friend class ::CExprResolve;
 
50239
  friend class ::CMatchSyntax;
41617
50240
 
41618
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50241
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41619
50242
 
41620
50243
  CTree *sons[2]; // expr, semi_colon
41621
50244
 
41622
50245
public:
41623
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
50246
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
50247
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41624
50248
  static const char *NodeId ();
 
50249
  /** Get the name of the node. Can be compared with NodeId(). */
41625
50250
  const char *NodeName () const { return NodeId (); }
 
50251
  /** Get the number of sons. */
41626
50252
  int Sons () const { return CTree::Sons (sons, 2); }
 
50253
  /** Get the n-th son.
 
50254
   *  \param n The index of the son.
 
50255
   *  \return The n-th son or NULL. */
41627
50256
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
41628
50257
  CTree *Expr () const { return sons[0]; }
 
50258
  /** Replace a son.
 
50259
   *  \param old_son The son to replace.
 
50260
   *  \param new_son The new son. */
41629
50261
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41630
50262
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41631
50263
  }
41632
50264
};
41633
50265
 
41634
50266
 
41635
 
#line 41636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50267
#line 50268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41636
50268
} // closed Puma
 
50269
class CCExprResolve;
 
50270
class CExprResolve;
41637
50271
class WinIfExists;
41638
50272
class WinImportHandler;
41639
50273
class WinMacros;
41640
 
class CMatchSyntax;
41641
 
class ExtGnu;
 
50274
class WinAsm;
 
50275
class WinDeclSpecs;
 
50276
class WinMemberExplSpec;
 
50277
class WinTypeKeywords;
 
50278
class WinFriend;
41642
50279
class ExtAC;
41643
50280
class ExtACBuilderCoupling;
41644
50281
class ExtACSyntaxCoupling;
41645
50282
class ExtACTree;
41646
50283
class ExtACKeywords;
41647
 
class WinAsm;
41648
 
class WinDeclSpecs;
41649
 
class WinMemberExplSpec;
41650
 
class WinTypeKeywords;
 
50284
class ExtGnu;
41651
50285
class PragmaOnceUnitState;
41652
50286
class PragmaOnce;
41653
 
class CCExprResolve;
41654
 
class CExprResolve;
 
50287
class CMatchSyntax;
41655
50288
namespace Puma {
41656
50289
 
41657
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50290
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41658
50291
class CT_DeclStmt : public CT_Statement {
41659
 
#line 41660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50292
#line 50293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50293
  friend class ::CCExprResolve;
 
50294
  friend class ::CExprResolve;
41660
50295
  friend class ::WinIfExists;
41661
50296
  friend class ::WinImportHandler;
41662
50297
  friend class ::WinMacros;
41663
 
  friend class ::CMatchSyntax;
41664
 
  friend class ::ExtGnu;
 
50298
  friend class ::WinAsm;
 
50299
  friend class ::WinDeclSpecs;
 
50300
  friend class ::WinMemberExplSpec;
 
50301
  friend class ::WinTypeKeywords;
 
50302
  friend class ::WinFriend;
41665
50303
  friend class ::ExtAC;
41666
50304
  friend class ::ExtACBuilderCoupling;
41667
50305
  friend class ::ExtACSyntaxCoupling;
41668
50306
  friend class ::ExtACTree;
41669
50307
  friend class ::ExtACKeywords;
41670
 
  friend class ::WinAsm;
41671
 
  friend class ::WinDeclSpecs;
41672
 
  friend class ::WinMemberExplSpec;
41673
 
  friend class ::WinTypeKeywords;
 
50308
  friend class ::ExtGnu;
41674
50309
  friend class ::PragmaOnceUnitState;
41675
50310
  friend class ::PragmaOnce;
41676
 
  friend class ::CCExprResolve;
41677
 
  friend class ::CExprResolve;
 
50311
  friend class ::CMatchSyntax;
41678
50312
 
41679
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50313
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41680
50314
 
41681
50315
  CTree *_decl;
41682
50316
 
41683
50317
public:
41684
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
50318
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
50319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41685
50320
  static const char *NodeId ();
 
50321
  /** Get the name of the node. Can be compared with NodeId(). */
41686
50322
  const char *NodeName () const { return NodeId (); }
 
50323
  /** Get the number of sons. */
41687
50324
  int Sons () const { return 1; }
 
50325
  /** Get the n-th son.
 
50326
   *  \param n The index of the son.
 
50327
   *  \return The n-th son or NULL. */
41688
50328
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
50329
  /** Replace a son.
 
50330
   *  \param old_son The son to replace.
 
50331
   *  \param new_son The new son. */
41689
50332
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41690
 
   { if (old_son == _decl) _decl = new_son; }
 
50333
   { CTree::ReplaceSon (_decl, old_son, new_son); }
41691
50334
};
41692
50335
 
41693
50336
 
41694
 
#line 41695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50337
#line 50338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41695
50338
} // closed Puma
 
50339
class CCExprResolve;
 
50340
class CExprResolve;
41696
50341
class WinIfExists;
41697
50342
class WinImportHandler;
41698
50343
class WinMacros;
41699
 
class CMatchSyntax;
41700
 
class ExtGnu;
 
50344
class WinAsm;
 
50345
class WinDeclSpecs;
 
50346
class WinMemberExplSpec;
 
50347
class WinTypeKeywords;
 
50348
class WinFriend;
41701
50349
class ExtAC;
41702
50350
class ExtACBuilderCoupling;
41703
50351
class ExtACSyntaxCoupling;
41704
50352
class ExtACTree;
41705
50353
class ExtACKeywords;
41706
 
class WinAsm;
41707
 
class WinDeclSpecs;
41708
 
class WinMemberExplSpec;
41709
 
class WinTypeKeywords;
 
50354
class ExtGnu;
41710
50355
class PragmaOnceUnitState;
41711
50356
class PragmaOnce;
41712
 
class CCExprResolve;
41713
 
class CExprResolve;
 
50357
class CMatchSyntax;
41714
50358
namespace Puma {
41715
50359
 
41716
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50360
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41717
50361
class CT_SwitchStmt : public CT_Statement, public CSemScope {
41718
 
#line 41719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50362
#line 50363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50363
  friend class ::CCExprResolve;
 
50364
  friend class ::CExprResolve;
41719
50365
  friend class ::WinIfExists;
41720
50366
  friend class ::WinImportHandler;
41721
50367
  friend class ::WinMacros;
41722
 
  friend class ::CMatchSyntax;
41723
 
  friend class ::ExtGnu;
 
50368
  friend class ::WinAsm;
 
50369
  friend class ::WinDeclSpecs;
 
50370
  friend class ::WinMemberExplSpec;
 
50371
  friend class ::WinTypeKeywords;
 
50372
  friend class ::WinFriend;
41724
50373
  friend class ::ExtAC;
41725
50374
  friend class ::ExtACBuilderCoupling;
41726
50375
  friend class ::ExtACSyntaxCoupling;
41727
50376
  friend class ::ExtACTree;
41728
50377
  friend class ::ExtACKeywords;
41729
 
  friend class ::WinAsm;
41730
 
  friend class ::WinDeclSpecs;
41731
 
  friend class ::WinMemberExplSpec;
41732
 
  friend class ::WinTypeKeywords;
 
50378
  friend class ::ExtGnu;
41733
50379
  friend class ::PragmaOnceUnitState;
41734
50380
  friend class ::PragmaOnce;
41735
 
  friend class ::CCExprResolve;
41736
 
  friend class ::CExprResolve;
 
50381
  friend class ::CMatchSyntax;
41737
50382
 
41738
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50383
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41739
50384
 
41740
50385
  CTree *sons[5]; // keyword, open, cond, close, stmt
41741
50386
 
41742
50387
public:
41743
50388
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
41744
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
50389
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
50390
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
41745
50391
  }
 
50392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41746
50393
  static const char *NodeId ();
 
50394
  /** Get the name of the node. Can be compared with NodeId(). */
41747
50395
  const char *NodeName () const { return NodeId (); }
 
50396
  /** Get the number of sons. */
41748
50397
  int Sons () const { return 5; }
 
50398
  /** Get the n-th son.
 
50399
   *  \param n The index of the son.
 
50400
   *  \return The n-th son or NULL. */
41749
50401
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41750
50402
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
41751
50403
  CTree *Condition () const { return sons[2]; }
 
50404
  /** Replace a son.
 
50405
   *  \param old_son The son to replace.
 
50406
   *  \param new_son The new son. */
41752
50407
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41753
50408
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41754
50409
  }
 
50410
  CSemScope *SemScope () const { return (CSemScope*)this; }
41755
50411
};
41756
50412
 
41757
50413
 
41758
 
#line 41759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50414
#line 50415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41759
50415
} // closed Puma
 
50416
class CCExprResolve;
 
50417
class CExprResolve;
41760
50418
class WinIfExists;
41761
50419
class WinImportHandler;
41762
50420
class WinMacros;
41763
 
class CMatchSyntax;
41764
 
class ExtGnu;
 
50421
class WinAsm;
 
50422
class WinDeclSpecs;
 
50423
class WinMemberExplSpec;
 
50424
class WinTypeKeywords;
 
50425
class WinFriend;
41765
50426
class ExtAC;
41766
50427
class ExtACBuilderCoupling;
41767
50428
class ExtACSyntaxCoupling;
41768
50429
class ExtACTree;
41769
50430
class ExtACKeywords;
41770
 
class WinAsm;
41771
 
class WinDeclSpecs;
41772
 
class WinMemberExplSpec;
41773
 
class WinTypeKeywords;
 
50431
class ExtGnu;
41774
50432
class PragmaOnceUnitState;
41775
50433
class PragmaOnce;
41776
 
class CCExprResolve;
41777
 
class CExprResolve;
 
50434
class CMatchSyntax;
41778
50435
namespace Puma {
41779
50436
 
41780
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50437
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41781
50438
class CT_IfStmt : public CT_Statement, public CSemScope {
41782
 
#line 41783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50439
#line 50440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50440
  friend class ::CCExprResolve;
 
50441
  friend class ::CExprResolve;
41783
50442
  friend class ::WinIfExists;
41784
50443
  friend class ::WinImportHandler;
41785
50444
  friend class ::WinMacros;
41786
 
  friend class ::CMatchSyntax;
41787
 
  friend class ::ExtGnu;
 
50445
  friend class ::WinAsm;
 
50446
  friend class ::WinDeclSpecs;
 
50447
  friend class ::WinMemberExplSpec;
 
50448
  friend class ::WinTypeKeywords;
 
50449
  friend class ::WinFriend;
41788
50450
  friend class ::ExtAC;
41789
50451
  friend class ::ExtACBuilderCoupling;
41790
50452
  friend class ::ExtACSyntaxCoupling;
41791
50453
  friend class ::ExtACTree;
41792
50454
  friend class ::ExtACKeywords;
41793
 
  friend class ::WinAsm;
41794
 
  friend class ::WinDeclSpecs;
41795
 
  friend class ::WinMemberExplSpec;
41796
 
  friend class ::WinTypeKeywords;
 
50455
  friend class ::ExtGnu;
41797
50456
  friend class ::PragmaOnceUnitState;
41798
50457
  friend class ::PragmaOnce;
41799
 
  friend class ::CCExprResolve;
41800
 
  friend class ::CExprResolve;
 
50458
  friend class ::CMatchSyntax;
41801
50459
 
41802
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50460
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41803
50461
 
41804
50462
  CTree *sons[5]; // keyword, open, cond, close, stmt
41805
50463
 
41806
50464
public:
41807
50465
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
41808
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
50466
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
50467
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
41809
50468
  }
 
50469
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41810
50470
  static const char *NodeId ();
 
50471
  /** Get the name of the node. Can be compared with NodeId(). */
41811
50472
  const char *NodeName () const { return NodeId (); }
 
50473
  /** Get the number of sons. */
41812
50474
  int Sons () const { return 5; }
 
50475
  /** Get the n-th son.
 
50476
   *  \param n The index of the son.
 
50477
   *  \return The n-th son or NULL. */
41813
50478
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
41814
50479
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
41815
50480
  CTree *Condition () const { return sons[2]; }
 
50481
  /** Replace a son.
 
50482
   *  \param old_son The son to replace.
 
50483
   *  \param new_son The new son. */
41816
50484
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41817
50485
    CTree::ReplaceSon (sons, 5, old_son, new_son);
41818
50486
  }
 
50487
  CSemScope *SemScope () const { return (CSemScope*)this; }
41819
50488
};
41820
50489
 
41821
50490
 
41822
 
#line 41823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50491
#line 50492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41823
50492
} // closed Puma
 
50493
class CCExprResolve;
 
50494
class CExprResolve;
41824
50495
class WinIfExists;
41825
50496
class WinImportHandler;
41826
50497
class WinMacros;
41827
 
class CMatchSyntax;
41828
 
class ExtGnu;
 
50498
class WinAsm;
 
50499
class WinDeclSpecs;
 
50500
class WinMemberExplSpec;
 
50501
class WinTypeKeywords;
 
50502
class WinFriend;
41829
50503
class ExtAC;
41830
50504
class ExtACBuilderCoupling;
41831
50505
class ExtACSyntaxCoupling;
41832
50506
class ExtACTree;
41833
50507
class ExtACKeywords;
41834
 
class WinAsm;
41835
 
class WinDeclSpecs;
41836
 
class WinMemberExplSpec;
41837
 
class WinTypeKeywords;
 
50508
class ExtGnu;
41838
50509
class PragmaOnceUnitState;
41839
50510
class PragmaOnce;
41840
 
class CCExprResolve;
41841
 
class CExprResolve;
 
50511
class CMatchSyntax;
41842
50512
namespace Puma {
41843
50513
 
41844
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50514
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41845
50515
class CT_IfElseStmt : public CT_Statement, public CSemScope {
41846
 
#line 41847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50516
#line 50517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50517
  friend class ::CCExprResolve;
 
50518
  friend class ::CExprResolve;
41847
50519
  friend class ::WinIfExists;
41848
50520
  friend class ::WinImportHandler;
41849
50521
  friend class ::WinMacros;
41850
 
  friend class ::CMatchSyntax;
41851
 
  friend class ::ExtGnu;
 
50522
  friend class ::WinAsm;
 
50523
  friend class ::WinDeclSpecs;
 
50524
  friend class ::WinMemberExplSpec;
 
50525
  friend class ::WinTypeKeywords;
 
50526
  friend class ::WinFriend;
41852
50527
  friend class ::ExtAC;
41853
50528
  friend class ::ExtACBuilderCoupling;
41854
50529
  friend class ::ExtACSyntaxCoupling;
41855
50530
  friend class ::ExtACTree;
41856
50531
  friend class ::ExtACKeywords;
41857
 
  friend class ::WinAsm;
41858
 
  friend class ::WinDeclSpecs;
41859
 
  friend class ::WinMemberExplSpec;
41860
 
  friend class ::WinTypeKeywords;
 
50532
  friend class ::ExtGnu;
41861
50533
  friend class ::PragmaOnceUnitState;
41862
50534
  friend class ::PragmaOnce;
41863
 
  friend class ::CCExprResolve;
41864
 
  friend class ::CExprResolve;
 
50535
  friend class ::CMatchSyntax;
41865
50536
 
41866
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50537
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41867
50538
 
41868
50539
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
41869
50540
 
41870
50541
public:
41871
50542
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
41872
50543
                 CTree *is, CTree *e, CTree *es) {
41873
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
41874
 
    sons[5] = e; sons[6] = es; 
 
50544
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
50545
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
50546
    AddSon (sons[6], es); 
41875
50547
  }
 
50548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41876
50549
  static const char *NodeId ();
 
50550
  /** Get the name of the node. Can be compared with NodeId(). */
41877
50551
  const char *NodeName () const { return NodeId (); }
 
50552
  /** Get the number of sons. */
41878
50553
  int Sons () const { return 7; }
 
50554
  /** Get the n-th son.
 
50555
   *  \param n The index of the son.
 
50556
   *  \return The n-th son or NULL. */
41879
50557
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
41880
50558
  CTree *Condition () const { return sons[2]; }
41881
50559
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
41882
50560
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
50561
  /** Replace a son.
 
50562
   *  \param old_son The son to replace.
 
50563
   *  \param new_son The new son. */
41883
50564
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41884
50565
    CTree::ReplaceSon (sons, 7, old_son, new_son);
41885
50566
  }
 
50567
  CSemScope *SemScope () const { return (CSemScope*)this; }
41886
50568
};
41887
50569
 
41888
50570
 
41889
 
#line 41890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50571
#line 50572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41890
50572
} // closed Puma
 
50573
class CCExprResolve;
 
50574
class CExprResolve;
41891
50575
class WinIfExists;
41892
50576
class WinImportHandler;
41893
50577
class WinMacros;
41894
 
class CMatchSyntax;
41895
 
class ExtGnu;
 
50578
class WinAsm;
 
50579
class WinDeclSpecs;
 
50580
class WinMemberExplSpec;
 
50581
class WinTypeKeywords;
 
50582
class WinFriend;
41896
50583
class ExtAC;
41897
50584
class ExtACBuilderCoupling;
41898
50585
class ExtACSyntaxCoupling;
41899
50586
class ExtACTree;
41900
50587
class ExtACKeywords;
41901
 
class WinAsm;
41902
 
class WinDeclSpecs;
41903
 
class WinMemberExplSpec;
41904
 
class WinTypeKeywords;
 
50588
class ExtGnu;
41905
50589
class PragmaOnceUnitState;
41906
50590
class PragmaOnce;
41907
 
class CCExprResolve;
41908
 
class CExprResolve;
 
50591
class CMatchSyntax;
41909
50592
namespace Puma {
41910
50593
 
41911
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50594
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41912
50595
class CT_BreakStmt : public CT_Statement {
41913
 
#line 41914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50596
#line 50597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50597
  friend class ::CCExprResolve;
 
50598
  friend class ::CExprResolve;
41914
50599
  friend class ::WinIfExists;
41915
50600
  friend class ::WinImportHandler;
41916
50601
  friend class ::WinMacros;
41917
 
  friend class ::CMatchSyntax;
41918
 
  friend class ::ExtGnu;
 
50602
  friend class ::WinAsm;
 
50603
  friend class ::WinDeclSpecs;
 
50604
  friend class ::WinMemberExplSpec;
 
50605
  friend class ::WinTypeKeywords;
 
50606
  friend class ::WinFriend;
41919
50607
  friend class ::ExtAC;
41920
50608
  friend class ::ExtACBuilderCoupling;
41921
50609
  friend class ::ExtACSyntaxCoupling;
41922
50610
  friend class ::ExtACTree;
41923
50611
  friend class ::ExtACKeywords;
41924
 
  friend class ::WinAsm;
41925
 
  friend class ::WinDeclSpecs;
41926
 
  friend class ::WinMemberExplSpec;
41927
 
  friend class ::WinTypeKeywords;
 
50612
  friend class ::ExtGnu;
41928
50613
  friend class ::PragmaOnceUnitState;
41929
50614
  friend class ::PragmaOnce;
41930
 
  friend class ::CCExprResolve;
41931
 
  friend class ::CExprResolve;
 
50615
  friend class ::CMatchSyntax;
41932
50616
 
41933
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50617
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41934
50618
 
41935
50619
  CTree *sons[2]; // key, semi_colon
41936
50620
 
41937
50621
public:
41938
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
50622
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
50623
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41939
50624
  static const char *NodeId ();
 
50625
  /** Get the name of the node. Can be compared with NodeId(). */
41940
50626
  const char *NodeName () const { return NodeId (); }
 
50627
  /** Get the number of sons. */
41941
50628
  int Sons () const { return 2; }
 
50629
  /** Get the n-th son.
 
50630
   *  \param n The index of the son.
 
50631
   *  \return The n-th son or NULL. */
41942
50632
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50633
  /** Replace a son.
 
50634
   *  \param old_son The son to replace.
 
50635
   *  \param new_son The new son. */
41943
50636
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41944
50637
    CTree::ReplaceSon (sons, 2, old_son, new_son);
41945
50638
  }
41946
50639
};
41947
50640
 
41948
50641
 
41949
 
#line 41950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50642
#line 50643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
41950
50643
} // closed Puma
 
50644
class CCExprResolve;
 
50645
class CExprResolve;
41951
50646
class WinIfExists;
41952
50647
class WinImportHandler;
41953
50648
class WinMacros;
41954
 
class CMatchSyntax;
41955
 
class ExtGnu;
 
50649
class WinAsm;
 
50650
class WinDeclSpecs;
 
50651
class WinMemberExplSpec;
 
50652
class WinTypeKeywords;
 
50653
class WinFriend;
41956
50654
class ExtAC;
41957
50655
class ExtACBuilderCoupling;
41958
50656
class ExtACSyntaxCoupling;
41959
50657
class ExtACTree;
41960
50658
class ExtACKeywords;
41961
 
class WinAsm;
41962
 
class WinDeclSpecs;
41963
 
class WinMemberExplSpec;
41964
 
class WinTypeKeywords;
 
50659
class ExtGnu;
41965
50660
class PragmaOnceUnitState;
41966
50661
class PragmaOnce;
41967
 
class CCExprResolve;
41968
 
class CExprResolve;
 
50662
class CMatchSyntax;
41969
50663
namespace Puma {
41970
50664
 
41971
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50665
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41972
50666
class CT_ContinueStmt : public CT_Statement {
41973
 
#line 41974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50667
#line 50668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50668
  friend class ::CCExprResolve;
 
50669
  friend class ::CExprResolve;
41974
50670
  friend class ::WinIfExists;
41975
50671
  friend class ::WinImportHandler;
41976
50672
  friend class ::WinMacros;
41977
 
  friend class ::CMatchSyntax;
41978
 
  friend class ::ExtGnu;
 
50673
  friend class ::WinAsm;
 
50674
  friend class ::WinDeclSpecs;
 
50675
  friend class ::WinMemberExplSpec;
 
50676
  friend class ::WinTypeKeywords;
 
50677
  friend class ::WinFriend;
41979
50678
  friend class ::ExtAC;
41980
50679
  friend class ::ExtACBuilderCoupling;
41981
50680
  friend class ::ExtACSyntaxCoupling;
41982
50681
  friend class ::ExtACTree;
41983
50682
  friend class ::ExtACKeywords;
41984
 
  friend class ::WinAsm;
41985
 
  friend class ::WinDeclSpecs;
41986
 
  friend class ::WinMemberExplSpec;
41987
 
  friend class ::WinTypeKeywords;
 
50683
  friend class ::ExtGnu;
41988
50684
  friend class ::PragmaOnceUnitState;
41989
50685
  friend class ::PragmaOnce;
41990
 
  friend class ::CCExprResolve;
41991
 
  friend class ::CExprResolve;
 
50686
  friend class ::CMatchSyntax;
41992
50687
 
41993
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50688
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41994
50689
 
41995
50690
  CTree *sons[2]; // key, semi_colon
41996
50691
 
41997
50692
public:
41998
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
50693
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
50694
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41999
50695
  static const char *NodeId ();
 
50696
  /** Get the name of the node. Can be compared with NodeId(). */
42000
50697
  const char *NodeName () const { return NodeId (); }
 
50698
  /** Get the number of sons. */
42001
50699
  int Sons () const { return 2; }
 
50700
  /** Get the n-th son.
 
50701
   *  \param n The index of the son.
 
50702
   *  \return The n-th son or NULL. */
42002
50703
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50704
  /** Replace a son.
 
50705
   *  \param old_son The son to replace.
 
50706
   *  \param new_son The new son. */
42003
50707
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42004
50708
    CTree::ReplaceSon (sons, 2, old_son, new_son);
42005
50709
  }
42006
50710
};
42007
50711
 
42008
50712
 
42009
 
#line 42010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50713
#line 50714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42010
50714
} // closed Puma
 
50715
class CCExprResolve;
 
50716
class CExprResolve;
42011
50717
class WinIfExists;
42012
50718
class WinImportHandler;
42013
50719
class WinMacros;
42014
 
class CMatchSyntax;
42015
 
class ExtGnu;
 
50720
class WinAsm;
 
50721
class WinDeclSpecs;
 
50722
class WinMemberExplSpec;
 
50723
class WinTypeKeywords;
 
50724
class WinFriend;
42016
50725
class ExtAC;
42017
50726
class ExtACBuilderCoupling;
42018
50727
class ExtACSyntaxCoupling;
42019
50728
class ExtACTree;
42020
50729
class ExtACKeywords;
42021
 
class WinAsm;
42022
 
class WinDeclSpecs;
42023
 
class WinMemberExplSpec;
42024
 
class WinTypeKeywords;
 
50730
class ExtGnu;
42025
50731
class PragmaOnceUnitState;
42026
50732
class PragmaOnce;
42027
 
class CCExprResolve;
42028
 
class CExprResolve;
 
50733
class CMatchSyntax;
42029
50734
namespace Puma {
42030
50735
 
42031
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50736
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42032
50737
class CT_GotoStmt : public CT_Statement {
42033
 
#line 42034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50738
#line 50739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50739
  friend class ::CCExprResolve;
 
50740
  friend class ::CExprResolve;
42034
50741
  friend class ::WinIfExists;
42035
50742
  friend class ::WinImportHandler;
42036
50743
  friend class ::WinMacros;
42037
 
  friend class ::CMatchSyntax;
42038
 
  friend class ::ExtGnu;
 
50744
  friend class ::WinAsm;
 
50745
  friend class ::WinDeclSpecs;
 
50746
  friend class ::WinMemberExplSpec;
 
50747
  friend class ::WinTypeKeywords;
 
50748
  friend class ::WinFriend;
42039
50749
  friend class ::ExtAC;
42040
50750
  friend class ::ExtACBuilderCoupling;
42041
50751
  friend class ::ExtACSyntaxCoupling;
42042
50752
  friend class ::ExtACTree;
42043
50753
  friend class ::ExtACKeywords;
42044
 
  friend class ::WinAsm;
42045
 
  friend class ::WinDeclSpecs;
42046
 
  friend class ::WinMemberExplSpec;
42047
 
  friend class ::WinTypeKeywords;
 
50754
  friend class ::ExtGnu;
42048
50755
  friend class ::PragmaOnceUnitState;
42049
50756
  friend class ::PragmaOnce;
42050
 
  friend class ::CCExprResolve;
42051
 
  friend class ::CExprResolve;
 
50757
  friend class ::CMatchSyntax;
42052
50758
 
42053
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50759
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42054
50760
 
42055
50761
  CTree *sons[3]; // key, label, semi_colon
42056
50762
 
42057
50763
public:
42058
50764
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
42059
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
50765
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
42060
50766
  }
 
50767
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42061
50768
  static const char *NodeId ();
 
50769
  /** Get the name of the node. Can be compared with NodeId(). */
42062
50770
  const char *NodeName () const { return NodeId (); }
 
50771
  /** Get the number of sons. */
42063
50772
  int Sons () const { return 3; }
 
50773
  /** Get the n-th son.
 
50774
   *  \param n The index of the son.
 
50775
   *  \return The n-th son or NULL. */
42064
50776
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42065
50777
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
50778
  /** Replace a son.
 
50779
   *  \param old_son The son to replace.
 
50780
   *  \param new_son The new son. */
42066
50781
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42067
50782
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42068
50783
  }
42069
50784
};
42070
50785
 
42071
50786
 
42072
 
#line 42073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50787
#line 50788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42073
50788
} // closed Puma
 
50789
class CCExprResolve;
 
50790
class CExprResolve;
42074
50791
class WinIfExists;
42075
50792
class WinImportHandler;
42076
50793
class WinMacros;
42077
 
class CMatchSyntax;
42078
 
class ExtGnu;
 
50794
class WinAsm;
 
50795
class WinDeclSpecs;
 
50796
class WinMemberExplSpec;
 
50797
class WinTypeKeywords;
 
50798
class WinFriend;
42079
50799
class ExtAC;
42080
50800
class ExtACBuilderCoupling;
42081
50801
class ExtACSyntaxCoupling;
42082
50802
class ExtACTree;
42083
50803
class ExtACKeywords;
42084
 
class WinAsm;
42085
 
class WinDeclSpecs;
42086
 
class WinMemberExplSpec;
42087
 
class WinTypeKeywords;
 
50804
class ExtGnu;
42088
50805
class PragmaOnceUnitState;
42089
50806
class PragmaOnce;
42090
 
class CCExprResolve;
42091
 
class CExprResolve;
 
50807
class CMatchSyntax;
42092
50808
namespace Puma {
42093
50809
 
42094
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50810
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42095
50811
class CT_ReturnStmt : public CT_Statement {
42096
 
#line 42097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50812
#line 50813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50813
  friend class ::CCExprResolve;
 
50814
  friend class ::CExprResolve;
42097
50815
  friend class ::WinIfExists;
42098
50816
  friend class ::WinImportHandler;
42099
50817
  friend class ::WinMacros;
42100
 
  friend class ::CMatchSyntax;
42101
 
  friend class ::ExtGnu;
 
50818
  friend class ::WinAsm;
 
50819
  friend class ::WinDeclSpecs;
 
50820
  friend class ::WinMemberExplSpec;
 
50821
  friend class ::WinTypeKeywords;
 
50822
  friend class ::WinFriend;
42102
50823
  friend class ::ExtAC;
42103
50824
  friend class ::ExtACBuilderCoupling;
42104
50825
  friend class ::ExtACSyntaxCoupling;
42105
50826
  friend class ::ExtACTree;
42106
50827
  friend class ::ExtACKeywords;
42107
 
  friend class ::WinAsm;
42108
 
  friend class ::WinDeclSpecs;
42109
 
  friend class ::WinMemberExplSpec;
42110
 
  friend class ::WinTypeKeywords;
 
50828
  friend class ::ExtGnu;
42111
50829
  friend class ::PragmaOnceUnitState;
42112
50830
  friend class ::PragmaOnce;
42113
 
  friend class ::CCExprResolve;
42114
 
  friend class ::CExprResolve;
 
50831
  friend class ::CMatchSyntax;
42115
50832
 
42116
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50833
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42117
50834
 
42118
50835
  CTree *sons[3]; // key, expr, semi_colon
42119
50836
 
42120
50837
public:
42121
50838
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
42122
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
50839
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
42123
50840
  }
 
50841
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42124
50842
  static const char *NodeId ();
 
50843
  /** Get the name of the node. Can be compared with NodeId(). */
42125
50844
  const char *NodeName () const { return NodeId (); }
 
50845
  /** Get the number of sons. */
42126
50846
  int Sons () const { return CTree::Sons (sons, 3); }
 
50847
  /** Get the n-th son.
 
50848
   *  \param n The index of the son.
 
50849
   *  \return The n-th son or NULL. */
42127
50850
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42128
50851
  CTree *Expr () const { return sons[1]; }
 
50852
  /** Replace a son.
 
50853
   *  \param old_son The son to replace.
 
50854
   *  \param new_son The new son. */
42129
50855
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42130
50856
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42131
50857
  }
42132
50858
};
42133
50859
 
42134
50860
 
42135
 
#line 42136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50861
#line 50862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42136
50862
} // closed Puma
 
50863
class CCExprResolve;
 
50864
class CExprResolve;
42137
50865
class WinIfExists;
42138
50866
class WinImportHandler;
42139
50867
class WinMacros;
42140
 
class CMatchSyntax;
42141
 
class ExtGnu;
 
50868
class WinAsm;
 
50869
class WinDeclSpecs;
 
50870
class WinMemberExplSpec;
 
50871
class WinTypeKeywords;
 
50872
class WinFriend;
42142
50873
class ExtAC;
42143
50874
class ExtACBuilderCoupling;
42144
50875
class ExtACSyntaxCoupling;
42145
50876
class ExtACTree;
42146
50877
class ExtACKeywords;
42147
 
class WinAsm;
42148
 
class WinDeclSpecs;
42149
 
class WinMemberExplSpec;
42150
 
class WinTypeKeywords;
 
50878
class ExtGnu;
42151
50879
class PragmaOnceUnitState;
42152
50880
class PragmaOnce;
42153
 
class CCExprResolve;
42154
 
class CExprResolve;
 
50881
class CMatchSyntax;
42155
50882
namespace Puma {
42156
50883
 
42157
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50884
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42158
50885
class CT_WhileStmt : public CT_Statement, public CSemScope {
42159
 
#line 42160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50886
#line 50887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50887
  friend class ::CCExprResolve;
 
50888
  friend class ::CExprResolve;
42160
50889
  friend class ::WinIfExists;
42161
50890
  friend class ::WinImportHandler;
42162
50891
  friend class ::WinMacros;
42163
 
  friend class ::CMatchSyntax;
42164
 
  friend class ::ExtGnu;
 
50892
  friend class ::WinAsm;
 
50893
  friend class ::WinDeclSpecs;
 
50894
  friend class ::WinMemberExplSpec;
 
50895
  friend class ::WinTypeKeywords;
 
50896
  friend class ::WinFriend;
42165
50897
  friend class ::ExtAC;
42166
50898
  friend class ::ExtACBuilderCoupling;
42167
50899
  friend class ::ExtACSyntaxCoupling;
42168
50900
  friend class ::ExtACTree;
42169
50901
  friend class ::ExtACKeywords;
42170
 
  friend class ::WinAsm;
42171
 
  friend class ::WinDeclSpecs;
42172
 
  friend class ::WinMemberExplSpec;
42173
 
  friend class ::WinTypeKeywords;
 
50902
  friend class ::ExtGnu;
42174
50903
  friend class ::PragmaOnceUnitState;
42175
50904
  friend class ::PragmaOnce;
42176
 
  friend class ::CCExprResolve;
42177
 
  friend class ::CExprResolve;
 
50905
  friend class ::CMatchSyntax;
42178
50906
 
42179
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50907
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42180
50908
 
42181
50909
  CTree *sons[5]; // key, open, cond, close, stmt
42182
50910
 
42183
50911
public:
42184
50912
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
42185
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
50913
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
50914
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
42186
50915
  }
 
50916
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42187
50917
  static const char *NodeId ();
 
50918
  /** Get the name of the node. Can be compared with NodeId(). */
42188
50919
  const char *NodeName () const { return NodeId (); }
 
50920
  /** Get the number of sons. */
42189
50921
  int Sons () const { return 5; }
 
50922
  /** Get the n-th son.
 
50923
   *  \param n The index of the son.
 
50924
   *  \return The n-th son or NULL. */
42190
50925
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
42191
50926
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
42192
50927
  CTree *Condition () const { return sons[2]; }
 
50928
  /** Replace a son.
 
50929
   *  \param old_son The son to replace.
 
50930
   *  \param new_son The new son. */
42193
50931
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42194
50932
    CTree::ReplaceSon (sons, 5, old_son, new_son);
42195
50933
  }
 
50934
  CSemScope *SemScope () const { return (CSemScope*)this; }
42196
50935
};
42197
50936
 
42198
50937
 
42199
 
#line 42200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50938
#line 50939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42200
50939
} // closed Puma
 
50940
class CCExprResolve;
 
50941
class CExprResolve;
42201
50942
class WinIfExists;
42202
50943
class WinImportHandler;
42203
50944
class WinMacros;
42204
 
class CMatchSyntax;
42205
 
class ExtGnu;
 
50945
class WinAsm;
 
50946
class WinDeclSpecs;
 
50947
class WinMemberExplSpec;
 
50948
class WinTypeKeywords;
 
50949
class WinFriend;
42206
50950
class ExtAC;
42207
50951
class ExtACBuilderCoupling;
42208
50952
class ExtACSyntaxCoupling;
42209
50953
class ExtACTree;
42210
50954
class ExtACKeywords;
42211
 
class WinAsm;
42212
 
class WinDeclSpecs;
42213
 
class WinMemberExplSpec;
42214
 
class WinTypeKeywords;
 
50955
class ExtGnu;
42215
50956
class PragmaOnceUnitState;
42216
50957
class PragmaOnce;
42217
 
class CCExprResolve;
42218
 
class CExprResolve;
 
50958
class CMatchSyntax;
42219
50959
namespace Puma {
42220
50960
 
42221
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50961
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42222
50962
class CT_DoStmt : public CT_Statement {
42223
 
#line 42224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
50963
#line 50964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
50964
  friend class ::CCExprResolve;
 
50965
  friend class ::CExprResolve;
42224
50966
  friend class ::WinIfExists;
42225
50967
  friend class ::WinImportHandler;
42226
50968
  friend class ::WinMacros;
42227
 
  friend class ::CMatchSyntax;
42228
 
  friend class ::ExtGnu;
 
50969
  friend class ::WinAsm;
 
50970
  friend class ::WinDeclSpecs;
 
50971
  friend class ::WinMemberExplSpec;
 
50972
  friend class ::WinTypeKeywords;
 
50973
  friend class ::WinFriend;
42229
50974
  friend class ::ExtAC;
42230
50975
  friend class ::ExtACBuilderCoupling;
42231
50976
  friend class ::ExtACSyntaxCoupling;
42232
50977
  friend class ::ExtACTree;
42233
50978
  friend class ::ExtACKeywords;
42234
 
  friend class ::WinAsm;
42235
 
  friend class ::WinDeclSpecs;
42236
 
  friend class ::WinMemberExplSpec;
42237
 
  friend class ::WinTypeKeywords;
 
50979
  friend class ::ExtGnu;
42238
50980
  friend class ::PragmaOnceUnitState;
42239
50981
  friend class ::PragmaOnce;
42240
 
  friend class ::CCExprResolve;
42241
 
  friend class ::CExprResolve;
 
50982
  friend class ::CMatchSyntax;
42242
50983
 
42243
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50984
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42244
50985
 
42245
50986
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
42246
50987
 
42247
50988
public:
42248
50989
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
42249
50990
             CTree *c, CTree *sc) {
42250
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
42251
 
    sons[5] = c; sons[6] = sc; 
 
50991
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
50992
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
50993
    AddSon (sons[6], sc); 
42252
50994
  }
 
50995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42253
50996
  static const char *NodeId ();
 
50997
  /** Get the name of the node. Can be compared with NodeId(). */
42254
50998
  const char *NodeName () const { return NodeId (); }
 
50999
  /** Get the number of sons. */
42255
51000
  int Sons () const { return 7; }
 
51001
  /** Get the n-th son.
 
51002
   *  \param n The index of the son.
 
51003
   *  \return The n-th son or NULL. */
42256
51004
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
42257
51005
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
42258
51006
  CTree *Expr () const { return sons[4]; }
 
51007
  /** Replace a son.
 
51008
   *  \param old_son The son to replace.
 
51009
   *  \param new_son The new son. */
42259
51010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42260
51011
    CTree::ReplaceSon (sons, 7, old_son, new_son);
42261
51012
  }
42262
51013
};
42263
51014
 
42264
51015
 
42265
 
#line 42266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51016
#line 51017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42266
51017
} // closed Puma
 
51018
class CCExprResolve;
 
51019
class CExprResolve;
42267
51020
class WinIfExists;
42268
51021
class WinImportHandler;
42269
51022
class WinMacros;
42270
 
class CMatchSyntax;
42271
 
class ExtGnu;
 
51023
class WinAsm;
 
51024
class WinDeclSpecs;
 
51025
class WinMemberExplSpec;
 
51026
class WinTypeKeywords;
 
51027
class WinFriend;
42272
51028
class ExtAC;
42273
51029
class ExtACBuilderCoupling;
42274
51030
class ExtACSyntaxCoupling;
42275
51031
class ExtACTree;
42276
51032
class ExtACKeywords;
42277
 
class WinAsm;
42278
 
class WinDeclSpecs;
42279
 
class WinMemberExplSpec;
42280
 
class WinTypeKeywords;
 
51033
class ExtGnu;
42281
51034
class PragmaOnceUnitState;
42282
51035
class PragmaOnce;
42283
 
class CCExprResolve;
42284
 
class CExprResolve;
 
51036
class CMatchSyntax;
42285
51037
namespace Puma {
42286
51038
 
42287
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51039
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42288
51040
class CT_ForStmt : public CT_Statement, public CSemScope {
42289
 
#line 42290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51041
#line 51042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51042
  friend class ::CCExprResolve;
 
51043
  friend class ::CExprResolve;
42290
51044
  friend class ::WinIfExists;
42291
51045
  friend class ::WinImportHandler;
42292
51046
  friend class ::WinMacros;
42293
 
  friend class ::CMatchSyntax;
42294
 
  friend class ::ExtGnu;
 
51047
  friend class ::WinAsm;
 
51048
  friend class ::WinDeclSpecs;
 
51049
  friend class ::WinMemberExplSpec;
 
51050
  friend class ::WinTypeKeywords;
 
51051
  friend class ::WinFriend;
42295
51052
  friend class ::ExtAC;
42296
51053
  friend class ::ExtACBuilderCoupling;
42297
51054
  friend class ::ExtACSyntaxCoupling;
42298
51055
  friend class ::ExtACTree;
42299
51056
  friend class ::ExtACKeywords;
42300
 
  friend class ::WinAsm;
42301
 
  friend class ::WinDeclSpecs;
42302
 
  friend class ::WinMemberExplSpec;
42303
 
  friend class ::WinTypeKeywords;
 
51057
  friend class ::ExtGnu;
42304
51058
  friend class ::PragmaOnceUnitState;
42305
51059
  friend class ::PragmaOnce;
42306
 
  friend class ::CCExprResolve;
42307
 
  friend class ::CExprResolve;
 
51060
  friend class ::CMatchSyntax;
42308
51061
 
42309
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51062
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42310
51063
 
42311
51064
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
42312
51065
 
42313
51066
public:
42314
51067
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
42315
51068
              CTree *e, CTree *c, CTree *stmt) {
42316
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
42317
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
51069
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
51070
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
51071
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
42318
51072
  }
 
51073
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42319
51074
  static const char *NodeId ();
 
51075
  /** Get the name of the node. Can be compared with NodeId(). */
42320
51076
  const char *NodeName () const { return NodeId (); }
 
51077
  /** Get the number of sons. */
42321
51078
  int Sons () const { return CTree::Sons (sons, 8); }
 
51079
  /** Get the n-th son.
 
51080
   *  \param n The index of the son.
 
51081
   *  \return The n-th son or NULL. */
42322
51082
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
42323
51083
  CTree *InitStmt () const { return sons[2]; }
42324
51084
  CTree *Condition () const { return sons[3]; }
42325
51085
  CTree *Expr () const { return sons[5]; }
42326
51086
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
51087
  /** Replace a son.
 
51088
   *  \param old_son The son to replace.
 
51089
   *  \param new_son The new son. */
42327
51090
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42328
51091
    CTree::ReplaceSon (sons, 8, old_son, new_son);
42329
51092
  }
 
51093
  CSemScope *SemScope () const { return (CSemScope*)this; }
42330
51094
};
42331
51095
 
42332
51096
 
42333
 
#line 42334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51097
#line 51098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42334
51098
} // closed Puma
 
51099
class CCExprResolve;
 
51100
class CExprResolve;
42335
51101
class WinIfExists;
42336
51102
class WinImportHandler;
42337
51103
class WinMacros;
42338
 
class CMatchSyntax;
42339
 
class ExtGnu;
 
51104
class WinAsm;
 
51105
class WinDeclSpecs;
 
51106
class WinMemberExplSpec;
 
51107
class WinTypeKeywords;
 
51108
class WinFriend;
42340
51109
class ExtAC;
42341
51110
class ExtACBuilderCoupling;
42342
51111
class ExtACSyntaxCoupling;
42343
51112
class ExtACTree;
42344
51113
class ExtACKeywords;
42345
 
class WinAsm;
42346
 
class WinDeclSpecs;
42347
 
class WinMemberExplSpec;
42348
 
class WinTypeKeywords;
 
51114
class ExtGnu;
42349
51115
class PragmaOnceUnitState;
42350
51116
class PragmaOnce;
42351
 
class CCExprResolve;
42352
 
class CExprResolve;
 
51117
class CMatchSyntax;
42353
51118
namespace Puma {
42354
51119
 
42355
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51120
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42356
51121
class CT_Condition : public CT_Decl, public CSemObject {
42357
 
#line 42358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51122
#line 51123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51123
  friend class ::CCExprResolve;
 
51124
  friend class ::CExprResolve;
42358
51125
  friend class ::WinIfExists;
42359
51126
  friend class ::WinImportHandler;
42360
51127
  friend class ::WinMacros;
42361
 
  friend class ::CMatchSyntax;
42362
 
  friend class ::ExtGnu;
 
51128
  friend class ::WinAsm;
 
51129
  friend class ::WinDeclSpecs;
 
51130
  friend class ::WinMemberExplSpec;
 
51131
  friend class ::WinTypeKeywords;
 
51132
  friend class ::WinFriend;
42363
51133
  friend class ::ExtAC;
42364
51134
  friend class ::ExtACBuilderCoupling;
42365
51135
  friend class ::ExtACSyntaxCoupling;
42366
51136
  friend class ::ExtACTree;
42367
51137
  friend class ::ExtACKeywords;
42368
 
  friend class ::WinAsm;
42369
 
  friend class ::WinDeclSpecs;
42370
 
  friend class ::WinMemberExplSpec;
42371
 
  friend class ::WinTypeKeywords;
 
51138
  friend class ::ExtGnu;
42372
51139
  friend class ::PragmaOnceUnitState;
42373
51140
  friend class ::PragmaOnce;
42374
 
  friend class ::CCExprResolve;
42375
 
  friend class ::CExprResolve;
 
51141
  friend class ::CMatchSyntax;
42376
51142
 
42377
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51143
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42378
51144
 
42379
51145
  CTree *sons[3]; // declspecs, declarator, init
42380
51146
 
42381
51147
public:
42382
51148
  CT_Condition (CTree *dsl, CTree *d) {
42383
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
51149
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
42384
51150
  }
 
51151
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42385
51152
  static const char *NodeId ();
 
51153
  /** Get the name of the node. Can be compared with NodeId(). */
42386
51154
  const char *NodeName () const { return NodeId (); }
 
51155
  /** Get the number of sons. */
42387
51156
  int Sons () const { return CTree::Sons (sons, 3); }
 
51157
  /** Get the n-th son.
 
51158
   *  \param n The index of the son.
 
51159
   *  \return The n-th son or NULL. */
42388
51160
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
42389
51161
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
42390
51162
  CTree *Declarator () const { return sons[1]; }
42391
51163
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
42392
51164
  CSemObject *SemObject () const { return (CSemObject*)this; }
42393
 
  void Initializer (CTree *i) { sons[2] = i; }
 
51165
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
51166
  /** Replace a son.
 
51167
   *  \param old_son The son to replace.
 
51168
   *  \param new_son The new son. */
42394
51169
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42395
51170
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42396
51171
  }
42403
51178
/*****************************************************************************/
42404
51179
 
42405
51180
 
42406
 
#line 42407 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51181
#line 51182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42407
51182
} // closed Puma
 
51183
class CCExprResolve;
 
51184
class CExprResolve;
42408
51185
class WinIfExists;
42409
51186
class WinImportHandler;
42410
51187
class WinMacros;
42411
 
class CMatchSyntax;
42412
 
class ExtGnu;
 
51188
class WinAsm;
 
51189
class WinDeclSpecs;
 
51190
class WinMemberExplSpec;
 
51191
class WinTypeKeywords;
 
51192
class WinFriend;
42413
51193
class ExtAC;
42414
51194
class ExtACBuilderCoupling;
42415
51195
class ExtACSyntaxCoupling;
42416
51196
class ExtACTree;
42417
51197
class ExtACKeywords;
42418
 
class WinAsm;
42419
 
class WinDeclSpecs;
42420
 
class WinMemberExplSpec;
42421
 
class WinTypeKeywords;
 
51198
class ExtGnu;
42422
51199
class PragmaOnceUnitState;
42423
51200
class PragmaOnce;
42424
 
class CCExprResolve;
42425
 
class CExprResolve;
42426
 
namespace Puma {
42427
 
 
42428
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51201
class CMatchSyntax;
 
51202
namespace Puma {
 
51203
 
 
51204
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51205
 
 
51206
#line 51207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51207
} // closed Puma
 
51208
 
 
51209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
51210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
51211
#include "ExtACTree.ah"
 
51212
#endif
 
51213
namespace Puma {
 
51214
 
 
51215
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42429
51216
class CT_ClassDef : public CT_Decl, public CSemObject {
42430
 
#line 42431 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51217
#line 51218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51218
  friend class ::CCExprResolve;
 
51219
  friend class ::CExprResolve;
42431
51220
  friend class ::WinIfExists;
42432
51221
  friend class ::WinImportHandler;
42433
51222
  friend class ::WinMacros;
42434
 
  friend class ::CMatchSyntax;
42435
 
  friend class ::ExtGnu;
 
51223
  friend class ::WinAsm;
 
51224
  friend class ::WinDeclSpecs;
 
51225
  friend class ::WinMemberExplSpec;
 
51226
  friend class ::WinTypeKeywords;
 
51227
  friend class ::WinFriend;
42436
51228
  friend class ::ExtAC;
42437
51229
  friend class ::ExtACBuilderCoupling;
42438
51230
  friend class ::ExtACSyntaxCoupling;
42439
51231
  friend class ::ExtACTree;
42440
51232
  friend class ::ExtACKeywords;
42441
 
  friend class ::WinAsm;
42442
 
  friend class ::WinDeclSpecs;
42443
 
  friend class ::WinMemberExplSpec;
42444
 
  friend class ::WinTypeKeywords;
 
51233
  friend class ::ExtGnu;
42445
51234
  friend class ::PragmaOnceUnitState;
42446
51235
  friend class ::PragmaOnce;
42447
 
  friend class ::CCExprResolve;
42448
 
  friend class ::CExprResolve;
 
51236
  friend class ::CMatchSyntax;
42449
51237
 
42450
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51238
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42451
51239
 
42452
51240
   
42453
 
#line 42454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51241
#line 51242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42454
51242
 
42455
51243
  struct __ac_wrapper_sons {
42456
51244
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
42465
51253
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
42466
51254
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
42467
51255
  } sons
42468
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51256
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42469
51257
 
42470
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51258
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42471
51259
; // key, name, bases, members
42472
51260
  CTree *obj_decl;
42473
51261
 
42474
51262
public:
42475
51263
  
42476
 
#line 42477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
42477
 
 
42478
 
 
42479
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
42480
 
  typedef void Result;
42481
 
  typedef ::Puma::CT_ClassDef That;
42482
 
  typedef ::Puma::CT_ClassDef Target;
42483
 
  static const int JPID = 4;
 
51264
#line 51265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51265
 
 
51266
 
 
51267
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
51268
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
51269
  typedef TResult Result;
 
51270
  typedef TThat   That;
 
51271
  typedef TTarget Target;
 
51272
  enum { ARGS = TArgs::ARGS };
 
51273
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
51274
  static const int JPID = 55;
42484
51275
  static const AC::JPType JPTYPE = (AC::JPType)16;
42485
51276
  struct Res {
42486
51277
    typedef void Type;
42487
51278
    typedef void ReferredType;
42488
51279
  };
42489
 
  enum { ARGS = 3 };
42490
 
  template <int I, int DUMMY = 0> struct Arg {
42491
 
    typedef void Type;
42492
 
    typedef void ReferredType;
42493
 
  };
42494
 
  template <int DUMMY> struct Arg<0, DUMMY> {
42495
 
    typedef ::Puma::CTree * Type;
42496
 
    typedef ::Puma::CTree * ReferredType;
42497
 
  };
42498
 
  template <int DUMMY> struct Arg<1, DUMMY> {
42499
 
    typedef ::Puma::CTree * Type;
42500
 
    typedef ::Puma::CTree * ReferredType;
42501
 
  };
42502
 
  template <int DUMMY> struct Arg<2, DUMMY> {
42503
 
    typedef ::Puma::CTree * Type;
42504
 
    typedef ::Puma::CTree * ReferredType;
42505
 
  };
42506
51280
 
42507
51281
  That *_that;
42508
51282
 
42511
51285
};
42512
51286
 
42513
51287
 
42514
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51288
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42515
51289
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
42516
 
#line 42517 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51290
#line 51291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42517
51291
{
42518
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
42519
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
42520
 
this->__exec_old_C1(arg0, arg1, arg2);
42521
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
42522
 
 
 
51292
  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;
 
51293
    __TJP tjp;
 
51294
  tjp._that =  (__TJP::That*)this;
 
51295
    this->__exec_old_C1(arg0, arg1, arg2);
 
51296
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
51297
  
42523
51298
}
42524
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
42525
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51299
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
51300
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42526
51301
{
42527
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
51302
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
51303
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
42528
51304
  }
 
51305
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42529
51306
  static const char *NodeId ();
 
51307
  /** Get the name of the node. Can be compared with NodeId(). */
42530
51308
  const char *NodeName () const { return NodeId (); }
 
51309
  /** Get the number of sons. */
42531
51310
  int Sons () const { return CTree::Sons (sons, 4); }
 
51311
  /** Get the n-th son.
 
51312
   *  \param n The index of the son.
 
51313
   *  \return The n-th son or NULL. */
42532
51314
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
42533
51315
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
42534
51316
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
42535
51317
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
42536
51318
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
42537
51319
  CSemObject *SemObject () const { return (CSemObject*)this; }
42538
 
  void Members (CTree *m) { sons[3] = m; }
42539
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
42540
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
51320
  void Members (CTree *m) { AddSon (sons[3], m); }
 
51321
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
51322
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
51323
  /** Replace a son.
 
51324
   *  \param old_son The son to replace.
 
51325
   *  \param new_son The new son. */
42541
51326
  void ReplaceSon (CTree *old_son, CTree *new_son) {
42542
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
42543
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
51327
    CTree::ReplaceSon (sons, 4, old_son, new_son);
42544
51328
  }
42545
51329
   private:
42546
51330
 
42547
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
42548
 
 CTree * _intro_members ;
 
51331
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
51332
 Puma :: CTree * _intro_members ;
 
51333
Puma :: CTree * _base_intros ;
42549
51334
public :
42550
 
CTree * IntroMembers ( ) const { return _intro_members ; }
42551
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
42552
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42553
 
 
42554
 
#line 42555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
42555
 
 
42556
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
42557
 
  typedef void Result;
42558
 
  typedef ::Puma::CT_ClassDef That;
42559
 
  typedef ::Puma::CT_ClassDef Target;
42560
 
  static const int JPID = 4;
 
51335
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
51336
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
51337
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
51338
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
51339
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51340
 
 
51341
#line 51342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51342
 
 
51343
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
51344
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
51345
  typedef TResult Result;
 
51346
  typedef TThat   That;
 
51347
  typedef TTarget Target;
 
51348
  enum { ARGS = TArgs::ARGS };
 
51349
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
51350
  static const int JPID = 7249;
42561
51351
  static const AC::JPType JPTYPE = (AC::JPType)16;
42562
51352
  struct Res {
42563
51353
    typedef void Type;
42564
51354
    typedef void ReferredType;
42565
51355
  };
42566
 
  enum { ARGS = 1 };
42567
 
  template <int I, int DUMMY = 0> struct Arg {
42568
 
    typedef void Type;
42569
 
    typedef void ReferredType;
42570
 
  };
42571
 
  template <int DUMMY> struct Arg<0, DUMMY> {
42572
 
    typedef const ::Puma::CT_ClassDef & Type;
42573
 
    typedef const ::Puma::CT_ClassDef ReferredType;
42574
 
  };
42575
51356
 
42576
51357
  That *_that;
42577
51358
 
42580
51361
};
42581
51362
 
42582
51363
 
42583
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51364
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42584
51365
 
42585
 
#line 42586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51366
#line 51367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42586
51367
 
42587
51368
public:
42588
 
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) {
42589
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
42590
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
42591
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
51369
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) {
 
51370
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
51371
  __TJP tjp;
 
51372
  tjp._that =  (__TJP::That*)this;
 
51373
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
42592
51374
 
42593
51375
}
42594
51376
 
42595
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42596
 
 
42597
 
#line 42598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
42598
 
 
42599
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
42600
 
  typedef void Result;
42601
 
  typedef ::Puma::CT_ClassDef That;
42602
 
  typedef ::Puma::CT_ClassDef Target;
42603
 
  static const int JPID = 4;
 
51377
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51378
 
 
51379
#line 51380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51380
 
 
51381
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
51382
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
51383
  typedef TResult Result;
 
51384
  typedef TThat   That;
 
51385
  typedef TTarget Target;
 
51386
  enum { ARGS = TArgs::ARGS };
 
51387
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
51388
  static const int JPID = 7247;
42604
51389
  static const AC::JPType JPTYPE = (AC::JPType)32;
42605
51390
  struct Res {
42606
51391
    typedef void Type;
42607
51392
    typedef void ReferredType;
42608
51393
  };
42609
 
  enum { ARGS = 0 };
42610
 
  template <int I, int DUMMY = 0> struct Arg {
42611
 
    typedef void Type;
42612
 
    typedef void ReferredType;
42613
 
  };
42614
51394
 
42615
51395
  That *_that;
42616
51396
 
42619
51399
};
42620
51400
 
42621
51401
 
42622
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51402
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42623
51403
 
42624
 
#line 42625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51404
#line 51405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42625
51405
 
42626
51406
public:
42627
51407
inline ~CT_ClassDef () {
42628
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
42629
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
42630
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
51408
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
51409
  __TJP tjp;
 
51410
  tjp._that =  (__TJP::That*)this;
 
51411
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
42631
51412
 
42632
51413
}
42633
51414
 
42634
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51415
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42635
51416
};
42636
51417
      
42637
51418
 
42638
 
#line 42639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51419
#line 51420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42639
51420
} // closed Puma
 
51421
class CCExprResolve;
 
51422
class CExprResolve;
42640
51423
class WinIfExists;
42641
51424
class WinImportHandler;
42642
51425
class WinMacros;
42643
 
class CMatchSyntax;
42644
 
class ExtGnu;
 
51426
class WinAsm;
 
51427
class WinDeclSpecs;
 
51428
class WinMemberExplSpec;
 
51429
class WinTypeKeywords;
 
51430
class WinFriend;
42645
51431
class ExtAC;
42646
51432
class ExtACBuilderCoupling;
42647
51433
class ExtACSyntaxCoupling;
42648
51434
class ExtACTree;
42649
51435
class ExtACKeywords;
42650
 
class WinAsm;
42651
 
class WinDeclSpecs;
42652
 
class WinMemberExplSpec;
42653
 
class WinTypeKeywords;
 
51436
class ExtGnu;
42654
51437
class PragmaOnceUnitState;
42655
51438
class PragmaOnce;
42656
 
class CCExprResolve;
42657
 
class CExprResolve;
 
51439
class CMatchSyntax;
42658
51440
namespace Puma {
42659
51441
 
42660
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51442
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42661
51443
class CT_UnionDef : public CT_ClassDef {
42662
 
#line 42663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51444
#line 51445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51445
  friend class ::CCExprResolve;
 
51446
  friend class ::CExprResolve;
42663
51447
  friend class ::WinIfExists;
42664
51448
  friend class ::WinImportHandler;
42665
51449
  friend class ::WinMacros;
42666
 
  friend class ::CMatchSyntax;
42667
 
  friend class ::ExtGnu;
 
51450
  friend class ::WinAsm;
 
51451
  friend class ::WinDeclSpecs;
 
51452
  friend class ::WinMemberExplSpec;
 
51453
  friend class ::WinTypeKeywords;
 
51454
  friend class ::WinFriend;
42668
51455
  friend class ::ExtAC;
42669
51456
  friend class ::ExtACBuilderCoupling;
42670
51457
  friend class ::ExtACSyntaxCoupling;
42671
51458
  friend class ::ExtACTree;
42672
51459
  friend class ::ExtACKeywords;
42673
 
  friend class ::WinAsm;
42674
 
  friend class ::WinDeclSpecs;
42675
 
  friend class ::WinMemberExplSpec;
42676
 
  friend class ::WinTypeKeywords;
 
51460
  friend class ::ExtGnu;
42677
51461
  friend class ::PragmaOnceUnitState;
42678
51462
  friend class ::PragmaOnce;
42679
 
  friend class ::CCExprResolve;
42680
 
  friend class ::CExprResolve;
 
51463
  friend class ::CMatchSyntax;
42681
51464
 
42682
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51465
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42683
51466
 
42684
51467
public:
42685
51468
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
42686
51469
  static const char *NodeId ();
 
51470
  /** Get the name of the node. Can be compared with NodeId(). */
42687
51471
  const char *NodeName () const { return NodeId (); }
42688
51472
};
42689
51473
      
42690
51474
 
42691
 
#line 42692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51475
#line 51476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42692
51476
} // closed Puma
 
51477
class CCExprResolve;
 
51478
class CExprResolve;
42693
51479
class WinIfExists;
42694
51480
class WinImportHandler;
42695
51481
class WinMacros;
42696
 
class CMatchSyntax;
42697
 
class ExtGnu;
 
51482
class WinAsm;
 
51483
class WinDeclSpecs;
 
51484
class WinMemberExplSpec;
 
51485
class WinTypeKeywords;
 
51486
class WinFriend;
42698
51487
class ExtAC;
42699
51488
class ExtACBuilderCoupling;
42700
51489
class ExtACSyntaxCoupling;
42701
51490
class ExtACTree;
42702
51491
class ExtACKeywords;
42703
 
class WinAsm;
42704
 
class WinDeclSpecs;
42705
 
class WinMemberExplSpec;
42706
 
class WinTypeKeywords;
 
51492
class ExtGnu;
42707
51493
class PragmaOnceUnitState;
42708
51494
class PragmaOnce;
42709
 
class CCExprResolve;
42710
 
class CExprResolve;
 
51495
class CMatchSyntax;
42711
51496
namespace Puma {
42712
51497
 
42713
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51498
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42714
51499
class CT_MembList : public CT_DeclList, public CSemScope {
42715
 
#line 42716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51500
#line 51501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51501
  friend class ::CCExprResolve;
 
51502
  friend class ::CExprResolve;
42716
51503
  friend class ::WinIfExists;
42717
51504
  friend class ::WinImportHandler;
42718
51505
  friend class ::WinMacros;
42719
 
  friend class ::CMatchSyntax;
42720
 
  friend class ::ExtGnu;
 
51506
  friend class ::WinAsm;
 
51507
  friend class ::WinDeclSpecs;
 
51508
  friend class ::WinMemberExplSpec;
 
51509
  friend class ::WinTypeKeywords;
 
51510
  friend class ::WinFriend;
42721
51511
  friend class ::ExtAC;
42722
51512
  friend class ::ExtACBuilderCoupling;
42723
51513
  friend class ::ExtACSyntaxCoupling;
42724
51514
  friend class ::ExtACTree;
42725
51515
  friend class ::ExtACKeywords;
42726
 
  friend class ::WinAsm;
42727
 
  friend class ::WinDeclSpecs;
42728
 
  friend class ::WinMemberExplSpec;
42729
 
  friend class ::WinTypeKeywords;
 
51516
  friend class ::ExtGnu;
42730
51517
  friend class ::PragmaOnceUnitState;
42731
51518
  friend class ::PragmaOnce;
42732
 
  friend class ::CCExprResolve;
42733
 
  friend class ::CExprResolve;
 
51519
  friend class ::CMatchSyntax;
42734
51520
 
42735
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51521
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42736
51522
 
42737
51523
public:
42738
51524
  CT_MembList (int size = 10, int incr = 10) : 
42739
51525
    CT_DeclList (size, incr) {}
 
51526
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42740
51527
  static const char *NodeId ();
 
51528
  /** Get the name of the node. Can be compared with NodeId(). */
42741
51529
  const char *NodeName () const { return NodeId (); }
 
51530
  CSemScope *SemScope () const { return (CSemScope*)this; }
42742
51531
};
42743
51532
 
42744
51533
 
42745
 
#line 42746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51534
#line 51535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42746
51535
} // closed Puma
 
51536
class CCExprResolve;
 
51537
class CExprResolve;
42747
51538
class WinIfExists;
42748
51539
class WinImportHandler;
42749
51540
class WinMacros;
42750
 
class CMatchSyntax;
42751
 
class ExtGnu;
 
51541
class WinAsm;
 
51542
class WinDeclSpecs;
 
51543
class WinMemberExplSpec;
 
51544
class WinTypeKeywords;
 
51545
class WinFriend;
42752
51546
class ExtAC;
42753
51547
class ExtACBuilderCoupling;
42754
51548
class ExtACSyntaxCoupling;
42755
51549
class ExtACTree;
42756
51550
class ExtACKeywords;
42757
 
class WinAsm;
42758
 
class WinDeclSpecs;
42759
 
class WinMemberExplSpec;
42760
 
class WinTypeKeywords;
 
51551
class ExtGnu;
42761
51552
class PragmaOnceUnitState;
42762
51553
class PragmaOnce;
42763
 
class CCExprResolve;
42764
 
class CExprResolve;
 
51554
class CMatchSyntax;
42765
51555
namespace Puma {
42766
51556
 
42767
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51557
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42768
51558
class CT_MembInitList : public CT_List, public CSemScope {
42769
 
#line 42770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51559
#line 51560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51560
  friend class ::CCExprResolve;
 
51561
  friend class ::CExprResolve;
42770
51562
  friend class ::WinIfExists;
42771
51563
  friend class ::WinImportHandler;
42772
51564
  friend class ::WinMacros;
42773
 
  friend class ::CMatchSyntax;
42774
 
  friend class ::ExtGnu;
 
51565
  friend class ::WinAsm;
 
51566
  friend class ::WinDeclSpecs;
 
51567
  friend class ::WinMemberExplSpec;
 
51568
  friend class ::WinTypeKeywords;
 
51569
  friend class ::WinFriend;
42775
51570
  friend class ::ExtAC;
42776
51571
  friend class ::ExtACBuilderCoupling;
42777
51572
  friend class ::ExtACSyntaxCoupling;
42778
51573
  friend class ::ExtACTree;
42779
51574
  friend class ::ExtACKeywords;
42780
 
  friend class ::WinAsm;
42781
 
  friend class ::WinDeclSpecs;
42782
 
  friend class ::WinMemberExplSpec;
42783
 
  friend class ::WinTypeKeywords;
 
51575
  friend class ::ExtGnu;
42784
51576
  friend class ::PragmaOnceUnitState;
42785
51577
  friend class ::PragmaOnce;
42786
 
  friend class ::CCExprResolve;
42787
 
  friend class ::CExprResolve;
 
51578
  friend class ::CMatchSyntax;
42788
51579
 
42789
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51580
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42790
51581
 
42791
51582
public:
42792
51583
  CT_MembInitList (int size = 2) : 
42793
51584
    CT_List (size, 2, CT_List::OPEN) {}
42794
51585
  static const char *NodeId ();
 
51586
  /** Get the name of the node. Can be compared with NodeId(). */
42795
51587
  const char *NodeName () const { return NodeId (); }
 
51588
  CSemScope *SemScope () const { return (CSemScope*)this; }
42796
51589
};
42797
51590
 
42798
51591
 
42799
 
#line 42800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51592
#line 51593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42800
51593
} // closed Puma
 
51594
class CCExprResolve;
 
51595
class CExprResolve;
42801
51596
class WinIfExists;
42802
51597
class WinImportHandler;
42803
51598
class WinMacros;
42804
 
class CMatchSyntax;
42805
 
class ExtGnu;
 
51599
class WinAsm;
 
51600
class WinDeclSpecs;
 
51601
class WinMemberExplSpec;
 
51602
class WinTypeKeywords;
 
51603
class WinFriend;
42806
51604
class ExtAC;
42807
51605
class ExtACBuilderCoupling;
42808
51606
class ExtACSyntaxCoupling;
42809
51607
class ExtACTree;
42810
51608
class ExtACKeywords;
42811
 
class WinAsm;
42812
 
class WinDeclSpecs;
42813
 
class WinMemberExplSpec;
42814
 
class WinTypeKeywords;
 
51609
class ExtGnu;
42815
51610
class PragmaOnceUnitState;
42816
51611
class PragmaOnce;
42817
 
class CCExprResolve;
42818
 
class CExprResolve;
42819
 
namespace Puma {
42820
 
 
42821
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51612
class CMatchSyntax;
 
51613
namespace Puma {
 
51614
 
 
51615
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51616
 
 
51617
#line 51618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51618
} // closed Puma
 
51619
 
 
51620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51622
#include "CCExprResolveH.ah"
 
51623
#endif
 
51624
namespace Puma {
 
51625
 
 
51626
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51627
 
 
51628
#line 51629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51629
} // closed Puma
 
51630
 
 
51631
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51632
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51633
#include "CExprResolveH.ah"
 
51634
#endif
 
51635
namespace Puma {
 
51636
 
 
51637
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42822
51638
class CT_MembInit : public CT_Expression, public CSemObject {
42823
 
#line 42824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51639
#line 51640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51640
  friend class ::CCExprResolve;
 
51641
  friend class ::CExprResolve;
42824
51642
  friend class ::WinIfExists;
42825
51643
  friend class ::WinImportHandler;
42826
51644
  friend class ::WinMacros;
42827
 
  friend class ::CMatchSyntax;
42828
 
  friend class ::ExtGnu;
 
51645
  friend class ::WinAsm;
 
51646
  friend class ::WinDeclSpecs;
 
51647
  friend class ::WinMemberExplSpec;
 
51648
  friend class ::WinTypeKeywords;
 
51649
  friend class ::WinFriend;
42829
51650
  friend class ::ExtAC;
42830
51651
  friend class ::ExtACBuilderCoupling;
42831
51652
  friend class ::ExtACSyntaxCoupling;
42832
51653
  friend class ::ExtACTree;
42833
51654
  friend class ::ExtACKeywords;
42834
 
  friend class ::WinAsm;
42835
 
  friend class ::WinDeclSpecs;
42836
 
  friend class ::WinMemberExplSpec;
42837
 
  friend class ::WinTypeKeywords;
 
51655
  friend class ::ExtGnu;
42838
51656
  friend class ::PragmaOnceUnitState;
42839
51657
  friend class ::PragmaOnce;
42840
 
  friend class ::CCExprResolve;
42841
 
  friend class ::CExprResolve;
 
51658
  friend class ::CMatchSyntax;
42842
51659
 
42843
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51660
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42844
51661
 
42845
51662
  CTree *sons[2]; // name, init
42846
51663
 
42847
51664
public:
42848
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
51665
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
51666
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42849
51667
  static const char *NodeId ();
 
51668
  /** Get the name of the node. Can be compared with NodeId(). */
42850
51669
  const char *NodeName () const { return NodeId (); }
 
51670
  /** Get the number of sons. */
42851
51671
  int Sons () const { return 2; }
 
51672
  /** Get the n-th son.
 
51673
   *  \param n The index of the son.
 
51674
   *  \return The n-th son or NULL. */
42852
51675
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
51676
  /** Replace a son.
 
51677
   *  \param old_son The son to replace.
 
51678
   *  \param new_son The new son. */
42853
51679
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42854
51680
    CTree::ReplaceSon (sons, 2, old_son, new_son);
42855
51681
  }
42859
51685
   private:
42860
51686
  typedef CT_MembInit CCExprResolveExpr;
42861
51687
 
42862
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51688
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42863
51689
 public :
42864
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51690
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42865
51691
  typedef CT_MembInit CExprResolveExpr;
42866
51692
 
42867
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51693
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42868
51694
 public :
42869
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42870
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51695
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51696
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42871
51697
};
42872
51698
 
42873
51699
 
42874
 
#line 42875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51700
#line 51701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42875
51701
} // closed Puma
 
51702
class CCExprResolve;
 
51703
class CExprResolve;
42876
51704
class WinIfExists;
42877
51705
class WinImportHandler;
42878
51706
class WinMacros;
42879
 
class CMatchSyntax;
42880
 
class ExtGnu;
 
51707
class WinAsm;
 
51708
class WinDeclSpecs;
 
51709
class WinMemberExplSpec;
 
51710
class WinTypeKeywords;
 
51711
class WinFriend;
42881
51712
class ExtAC;
42882
51713
class ExtACBuilderCoupling;
42883
51714
class ExtACSyntaxCoupling;
42884
51715
class ExtACTree;
42885
51716
class ExtACKeywords;
42886
 
class WinAsm;
42887
 
class WinDeclSpecs;
42888
 
class WinMemberExplSpec;
42889
 
class WinTypeKeywords;
 
51717
class ExtGnu;
42890
51718
class PragmaOnceUnitState;
42891
51719
class PragmaOnce;
42892
 
class CCExprResolve;
42893
 
class CExprResolve;
 
51720
class CMatchSyntax;
42894
51721
namespace Puma {
42895
51722
 
42896
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51723
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42897
51724
class CT_BaseSpecList : public CT_List {
42898
 
#line 42899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51725
#line 51726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51726
  friend class ::CCExprResolve;
 
51727
  friend class ::CExprResolve;
42899
51728
  friend class ::WinIfExists;
42900
51729
  friend class ::WinImportHandler;
42901
51730
  friend class ::WinMacros;
42902
 
  friend class ::CMatchSyntax;
42903
 
  friend class ::ExtGnu;
 
51731
  friend class ::WinAsm;
 
51732
  friend class ::WinDeclSpecs;
 
51733
  friend class ::WinMemberExplSpec;
 
51734
  friend class ::WinTypeKeywords;
 
51735
  friend class ::WinFriend;
42904
51736
  friend class ::ExtAC;
42905
51737
  friend class ::ExtACBuilderCoupling;
42906
51738
  friend class ::ExtACSyntaxCoupling;
42907
51739
  friend class ::ExtACTree;
42908
51740
  friend class ::ExtACKeywords;
42909
 
  friend class ::WinAsm;
42910
 
  friend class ::WinDeclSpecs;
42911
 
  friend class ::WinMemberExplSpec;
42912
 
  friend class ::WinTypeKeywords;
 
51741
  friend class ::ExtGnu;
42913
51742
  friend class ::PragmaOnceUnitState;
42914
51743
  friend class ::PragmaOnce;
42915
 
  friend class ::CCExprResolve;
42916
 
  friend class ::CExprResolve;
 
51744
  friend class ::CMatchSyntax;
42917
51745
 
42918
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51746
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42919
51747
 
42920
51748
public:
42921
51749
  CT_BaseSpecList (int size = 2) : 
42922
51750
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
51751
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42923
51752
  static const char *NodeId ();
 
51753
  /** Get the name of the node. Can be compared with NodeId(). */
42924
51754
  const char *NodeName () const { return NodeId (); }
42925
51755
};
42926
51756
 
42927
51757
 
42928
 
#line 42929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51758
#line 51759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42929
51759
} // closed Puma
 
51760
class CCExprResolve;
 
51761
class CExprResolve;
42930
51762
class WinIfExists;
42931
51763
class WinImportHandler;
42932
51764
class WinMacros;
42933
 
class CMatchSyntax;
42934
 
class ExtGnu;
 
51765
class WinAsm;
 
51766
class WinDeclSpecs;
 
51767
class WinMemberExplSpec;
 
51768
class WinTypeKeywords;
 
51769
class WinFriend;
42935
51770
class ExtAC;
42936
51771
class ExtACBuilderCoupling;
42937
51772
class ExtACSyntaxCoupling;
42938
51773
class ExtACTree;
42939
51774
class ExtACKeywords;
42940
 
class WinAsm;
42941
 
class WinDeclSpecs;
42942
 
class WinMemberExplSpec;
42943
 
class WinTypeKeywords;
 
51775
class ExtGnu;
42944
51776
class PragmaOnceUnitState;
42945
51777
class PragmaOnce;
42946
 
class CCExprResolve;
42947
 
class CExprResolve;
 
51778
class CMatchSyntax;
42948
51779
namespace Puma {
42949
51780
 
42950
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51781
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42951
51782
class CT_AccessSpec : public CTree {
42952
 
#line 42953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51783
#line 51784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51784
  friend class ::CCExprResolve;
 
51785
  friend class ::CExprResolve;
42953
51786
  friend class ::WinIfExists;
42954
51787
  friend class ::WinImportHandler;
42955
51788
  friend class ::WinMacros;
42956
 
  friend class ::CMatchSyntax;
42957
 
  friend class ::ExtGnu;
 
51789
  friend class ::WinAsm;
 
51790
  friend class ::WinDeclSpecs;
 
51791
  friend class ::WinMemberExplSpec;
 
51792
  friend class ::WinTypeKeywords;
 
51793
  friend class ::WinFriend;
42958
51794
  friend class ::ExtAC;
42959
51795
  friend class ::ExtACBuilderCoupling;
42960
51796
  friend class ::ExtACSyntaxCoupling;
42961
51797
  friend class ::ExtACTree;
42962
51798
  friend class ::ExtACKeywords;
42963
 
  friend class ::WinAsm;
42964
 
  friend class ::WinDeclSpecs;
42965
 
  friend class ::WinMemberExplSpec;
42966
 
  friend class ::WinTypeKeywords;
 
51799
  friend class ::ExtGnu;
42967
51800
  friend class ::PragmaOnceUnitState;
42968
51801
  friend class ::PragmaOnce;
42969
 
  friend class ::CCExprResolve;
42970
 
  friend class ::CExprResolve;
 
51802
  friend class ::CMatchSyntax;
42971
51803
 
42972
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51804
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42973
51805
 
42974
51806
  CTree *sons[2]; // access, colon
42975
51807
 
42976
51808
public:
42977
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
51809
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
51810
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42978
51811
  static const char *NodeId ();
 
51812
  /** Get the name of the node. Can be compared with NodeId(). */
42979
51813
  const char *NodeName () const { return NodeId (); }
 
51814
  /** Get the number of sons. */
42980
51815
  int Sons () const { return 2; }
 
51816
  /** Get the n-th son.
 
51817
   *  \param n The index of the son.
 
51818
   *  \return The n-th son or NULL. */
42981
51819
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
42982
51820
  int Access () const { return sons[0]->token ()->type (); }
 
51821
  /** Replace a son.
 
51822
   *  \param old_son The son to replace.
 
51823
   *  \param new_son The new son. */
42983
51824
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42984
51825
    CTree::ReplaceSon (sons, 2, old_son, new_son);
42985
51826
  }
42986
51827
};
42987
51828
 
42988
51829
 
42989
 
#line 42990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51830
#line 51831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
42990
51831
} // closed Puma
 
51832
class CCExprResolve;
 
51833
class CExprResolve;
42991
51834
class WinIfExists;
42992
51835
class WinImportHandler;
42993
51836
class WinMacros;
42994
 
class CMatchSyntax;
42995
 
class ExtGnu;
 
51837
class WinAsm;
 
51838
class WinDeclSpecs;
 
51839
class WinMemberExplSpec;
 
51840
class WinTypeKeywords;
 
51841
class WinFriend;
42996
51842
class ExtAC;
42997
51843
class ExtACBuilderCoupling;
42998
51844
class ExtACSyntaxCoupling;
42999
51845
class ExtACTree;
43000
51846
class ExtACKeywords;
43001
 
class WinAsm;
43002
 
class WinDeclSpecs;
43003
 
class WinMemberExplSpec;
43004
 
class WinTypeKeywords;
 
51847
class ExtGnu;
43005
51848
class PragmaOnceUnitState;
43006
51849
class PragmaOnce;
43007
 
class CCExprResolve;
43008
 
class CExprResolve;
 
51850
class CMatchSyntax;
43009
51851
namespace Puma {
43010
51852
 
43011
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51853
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43012
51854
class CT_BaseSpec : public CTree {
43013
 
#line 43014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51855
#line 51856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51856
  friend class ::CCExprResolve;
 
51857
  friend class ::CExprResolve;
43014
51858
  friend class ::WinIfExists;
43015
51859
  friend class ::WinImportHandler;
43016
51860
  friend class ::WinMacros;
43017
 
  friend class ::CMatchSyntax;
43018
 
  friend class ::ExtGnu;
 
51861
  friend class ::WinAsm;
 
51862
  friend class ::WinDeclSpecs;
 
51863
  friend class ::WinMemberExplSpec;
 
51864
  friend class ::WinTypeKeywords;
 
51865
  friend class ::WinFriend;
43019
51866
  friend class ::ExtAC;
43020
51867
  friend class ::ExtACBuilderCoupling;
43021
51868
  friend class ::ExtACSyntaxCoupling;
43022
51869
  friend class ::ExtACTree;
43023
51870
  friend class ::ExtACKeywords;
43024
 
  friend class ::WinAsm;
43025
 
  friend class ::WinDeclSpecs;
43026
 
  friend class ::WinMemberExplSpec;
43027
 
  friend class ::WinTypeKeywords;
 
51871
  friend class ::ExtGnu;
43028
51872
  friend class ::PragmaOnceUnitState;
43029
51873
  friend class ::PragmaOnce;
43030
 
  friend class ::CCExprResolve;
43031
 
  friend class ::CExprResolve;
 
51874
  friend class ::CMatchSyntax;
43032
51875
 
43033
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51876
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43034
51877
 
43035
51878
  CTree *sons[3]; // virtual, access, name
43036
51879
 
43037
51880
public:
43038
51881
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
43039
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
51882
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
43040
51883
  }
 
51884
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43041
51885
  static const char *NodeId ();
 
51886
  /** Get the name of the node. Can be compared with NodeId(). */
43042
51887
  const char *NodeName () const { return NodeId (); }
 
51888
  /** Get the number of sons. */
43043
51889
  int Sons () const { return CTree::Sons (sons, 3); }
 
51890
  /** Get the n-th son.
 
51891
   *  \param n The index of the son.
 
51892
   *  \return The n-th son or NULL. */
43044
51893
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
43045
51894
  int Access () const { return sons[1]->token ()->type (); }
43046
51895
  CTree *AccessSpec () const { return sons[1]; }
43047
51896
  CTree *Virtual () const { return sons[0]; }
43048
51897
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
51898
  /** Replace a son.
 
51899
   *  \param old_son The son to replace.
 
51900
   *  \param new_son The new son. */
43049
51901
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43050
51902
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43051
51903
  }
43052
51904
};
43053
51905
 
43054
51906
 
43055
 
#line 43056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51907
#line 51908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43056
51908
} // closed Puma
 
51909
class CCExprResolve;
 
51910
class CExprResolve;
43057
51911
class WinIfExists;
43058
51912
class WinImportHandler;
43059
51913
class WinMacros;
43060
 
class CMatchSyntax;
43061
 
class ExtGnu;
 
51914
class WinAsm;
 
51915
class WinDeclSpecs;
 
51916
class WinMemberExplSpec;
 
51917
class WinTypeKeywords;
 
51918
class WinFriend;
43062
51919
class ExtAC;
43063
51920
class ExtACBuilderCoupling;
43064
51921
class ExtACSyntaxCoupling;
43065
51922
class ExtACTree;
43066
51923
class ExtACKeywords;
43067
 
class WinAsm;
43068
 
class WinDeclSpecs;
43069
 
class WinMemberExplSpec;
43070
 
class WinTypeKeywords;
 
51924
class ExtGnu;
43071
51925
class PragmaOnceUnitState;
43072
51926
class PragmaOnce;
43073
 
class CCExprResolve;
43074
 
class CExprResolve;
 
51927
class CMatchSyntax;
43075
51928
namespace Puma {
43076
51929
 
43077
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51930
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43078
51931
class CT_AccessDecl : public CT_Decl {
43079
 
#line 43080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51932
#line 51933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
51933
  friend class ::CCExprResolve;
 
51934
  friend class ::CExprResolve;
43080
51935
  friend class ::WinIfExists;
43081
51936
  friend class ::WinImportHandler;
43082
51937
  friend class ::WinMacros;
43083
 
  friend class ::CMatchSyntax;
43084
 
  friend class ::ExtGnu;
 
51938
  friend class ::WinAsm;
 
51939
  friend class ::WinDeclSpecs;
 
51940
  friend class ::WinMemberExplSpec;
 
51941
  friend class ::WinTypeKeywords;
 
51942
  friend class ::WinFriend;
43085
51943
  friend class ::ExtAC;
43086
51944
  friend class ::ExtACBuilderCoupling;
43087
51945
  friend class ::ExtACSyntaxCoupling;
43088
51946
  friend class ::ExtACTree;
43089
51947
  friend class ::ExtACKeywords;
43090
 
  friend class ::WinAsm;
43091
 
  friend class ::WinDeclSpecs;
43092
 
  friend class ::WinMemberExplSpec;
43093
 
  friend class ::WinTypeKeywords;
 
51948
  friend class ::ExtGnu;
43094
51949
  friend class ::PragmaOnceUnitState;
43095
51950
  friend class ::PragmaOnce;
43096
 
  friend class ::CCExprResolve;
43097
 
  friend class ::CExprResolve;
 
51951
  friend class ::CMatchSyntax;
43098
51952
 
43099
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51953
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43100
51954
 
43101
51955
  CTree *sons[2]; // name, semi_colon
43102
51956
 
43103
51957
public:
43104
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
51958
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
51959
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43105
51960
  static const char *NodeId ();
 
51961
  /** Get the name of the node. Can be compared with NodeId(). */
43106
51962
  const char *NodeName () const { return NodeId (); }
 
51963
  /** Get the number of sons. */
43107
51964
  int Sons () const { return 2; }
 
51965
  /** Get the n-th son.
 
51966
   *  \param n The index of the son.
 
51967
   *  \return The n-th son or NULL. */
43108
51968
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
43109
51969
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
51970
  /** Replace a son.
 
51971
   *  \param old_son The son to replace.
 
51972
   *  \param new_son The new son. */
43110
51973
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43111
51974
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43112
51975
  }
43113
51976
};
43114
51977
 
43115
51978
 
43116
 
#line 43117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
51979
#line 51980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43117
51980
} // closed Puma
 
51981
class CCExprResolve;
 
51982
class CExprResolve;
43118
51983
class WinIfExists;
43119
51984
class WinImportHandler;
43120
51985
class WinMacros;
43121
 
class CMatchSyntax;
43122
 
class ExtGnu;
 
51986
class WinAsm;
 
51987
class WinDeclSpecs;
 
51988
class WinMemberExplSpec;
 
51989
class WinTypeKeywords;
 
51990
class WinFriend;
43123
51991
class ExtAC;
43124
51992
class ExtACBuilderCoupling;
43125
51993
class ExtACSyntaxCoupling;
43126
51994
class ExtACTree;
43127
51995
class ExtACKeywords;
43128
 
class WinAsm;
43129
 
class WinDeclSpecs;
43130
 
class WinMemberExplSpec;
43131
 
class WinTypeKeywords;
 
51996
class ExtGnu;
43132
51997
class PragmaOnceUnitState;
43133
51998
class PragmaOnce;
43134
 
class CCExprResolve;
43135
 
class CExprResolve;
 
51999
class CMatchSyntax;
43136
52000
namespace Puma {
43137
52001
 
43138
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52002
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43139
52003
class CT_UsingDecl : public CT_AccessDecl {
43140
 
#line 43141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52004
#line 52005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52005
  friend class ::CCExprResolve;
 
52006
  friend class ::CExprResolve;
43141
52007
  friend class ::WinIfExists;
43142
52008
  friend class ::WinImportHandler;
43143
52009
  friend class ::WinMacros;
43144
 
  friend class ::CMatchSyntax;
43145
 
  friend class ::ExtGnu;
 
52010
  friend class ::WinAsm;
 
52011
  friend class ::WinDeclSpecs;
 
52012
  friend class ::WinMemberExplSpec;
 
52013
  friend class ::WinTypeKeywords;
 
52014
  friend class ::WinFriend;
43146
52015
  friend class ::ExtAC;
43147
52016
  friend class ::ExtACBuilderCoupling;
43148
52017
  friend class ::ExtACSyntaxCoupling;
43149
52018
  friend class ::ExtACTree;
43150
52019
  friend class ::ExtACKeywords;
43151
 
  friend class ::WinAsm;
43152
 
  friend class ::WinDeclSpecs;
43153
 
  friend class ::WinMemberExplSpec;
43154
 
  friend class ::WinTypeKeywords;
 
52020
  friend class ::ExtGnu;
43155
52021
  friend class ::PragmaOnceUnitState;
43156
52022
  friend class ::PragmaOnce;
43157
 
  friend class ::CCExprResolve;
43158
 
  friend class ::CExprResolve;
 
52023
  friend class ::CMatchSyntax;
43159
52024
 
43160
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52025
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43161
52026
 
43162
52027
  CTree *sons[2]; // using, typename
43163
52028
 
43164
52029
public:
43165
52030
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
43166
 
    sons[0] = u; sons[1] = 0; 
 
52031
    AddSon (sons[0], u); AddSon (sons[1], 0); 
43167
52032
  }
43168
52033
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
43169
 
    sons[0] = u; sons[1] = t; 
 
52034
    AddSon (sons[0], u); AddSon (sons[1], t); 
43170
52035
  }
 
52036
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43171
52037
  static const char *NodeId ();
 
52038
  /** Get the name of the node. Can be compared with NodeId(). */
43172
52039
  const char *NodeName () const { return NodeId (); }
 
52040
  /** Get the number of sons. */
43173
52041
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
52042
  /** Get the n-th son.
 
52043
   *  \param n The index of the son.
 
52044
   *  \return The n-th son or NULL. */
43174
52045
  CTree *Son (int n) const {
43175
52046
    int num = CTree::Sons (sons, 2);
43176
52047
    CTree *result = CTree::Son (sons, 2, n);
43177
52048
    return result ? result : CT_AccessDecl::Son (n-num);
43178
52049
  }
43179
52050
  CTree *Typename () const { return sons[1]; }
 
52051
  /** Replace a son.
 
52052
   *  \param old_son The son to replace.
 
52053
   *  \param new_son The new son. */
43180
52054
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43181
52055
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43182
52056
    CT_AccessDecl::ReplaceSon (old_son, new_son);
43190
52064
/*****************************************************************************/
43191
52065
 
43192
52066
 
43193
 
#line 43194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52067
#line 52068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43194
52068
} // closed Puma
 
52069
class CCExprResolve;
 
52070
class CExprResolve;
43195
52071
class WinIfExists;
43196
52072
class WinImportHandler;
43197
52073
class WinMacros;
43198
 
class CMatchSyntax;
43199
 
class ExtGnu;
 
52074
class WinAsm;
 
52075
class WinDeclSpecs;
 
52076
class WinMemberExplSpec;
 
52077
class WinTypeKeywords;
 
52078
class WinFriend;
43200
52079
class ExtAC;
43201
52080
class ExtACBuilderCoupling;
43202
52081
class ExtACSyntaxCoupling;
43203
52082
class ExtACTree;
43204
52083
class ExtACKeywords;
43205
 
class WinAsm;
43206
 
class WinDeclSpecs;
43207
 
class WinMemberExplSpec;
43208
 
class WinTypeKeywords;
 
52084
class ExtGnu;
43209
52085
class PragmaOnceUnitState;
43210
52086
class PragmaOnce;
43211
 
class CCExprResolve;
43212
 
class CExprResolve;
 
52087
class CMatchSyntax;
43213
52088
namespace Puma {
43214
52089
 
43215
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52090
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43216
52091
class CT_Any : public CTree {
43217
 
#line 43218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52092
#line 52093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52093
  friend class ::CCExprResolve;
 
52094
  friend class ::CExprResolve;
43218
52095
  friend class ::WinIfExists;
43219
52096
  friend class ::WinImportHandler;
43220
52097
  friend class ::WinMacros;
43221
 
  friend class ::CMatchSyntax;
43222
 
  friend class ::ExtGnu;
 
52098
  friend class ::WinAsm;
 
52099
  friend class ::WinDeclSpecs;
 
52100
  friend class ::WinMemberExplSpec;
 
52101
  friend class ::WinTypeKeywords;
 
52102
  friend class ::WinFriend;
43223
52103
  friend class ::ExtAC;
43224
52104
  friend class ::ExtACBuilderCoupling;
43225
52105
  friend class ::ExtACSyntaxCoupling;
43226
52106
  friend class ::ExtACTree;
43227
52107
  friend class ::ExtACKeywords;
43228
 
  friend class ::WinAsm;
43229
 
  friend class ::WinDeclSpecs;
43230
 
  friend class ::WinMemberExplSpec;
43231
 
  friend class ::WinTypeKeywords;
 
52108
  friend class ::ExtGnu;
43232
52109
  friend class ::PragmaOnceUnitState;
43233
52110
  friend class ::PragmaOnce;
43234
 
  friend class ::CCExprResolve;
43235
 
  friend class ::CExprResolve;
 
52111
  friend class ::CMatchSyntax;
43236
52112
 
43237
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52113
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43238
52114
 
43239
52115
  CTree *sons[2]; // keyword, extension
43240
52116
 
43241
52117
public:
43242
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
52118
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
52119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43243
52120
  static const char *NodeId ();
 
52121
  /** Get the name of the node. Can be compared with NodeId(). */
43244
52122
  const char *NodeName () const { return NodeId (); }
 
52123
  /** Get the number of sons. */
43245
52124
  int Sons () const { return CTree::Sons (sons, 2); }
 
52125
  /** Get the n-th son.
 
52126
   *  \param n The index of the son.
 
52127
   *  \return The n-th son or NULL. */
43246
52128
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52129
  /** Replace a son.
 
52130
   *  \param old_son The son to replace.
 
52131
   *  \param new_son The new son. */
43247
52132
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43248
52133
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43249
52134
  }
43252
52137
};
43253
52138
 
43254
52139
 
43255
 
#line 43256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52140
#line 52141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43256
52141
} // closed Puma
 
52142
class CCExprResolve;
 
52143
class CExprResolve;
43257
52144
class WinIfExists;
43258
52145
class WinImportHandler;
43259
52146
class WinMacros;
43260
 
class CMatchSyntax;
43261
 
class ExtGnu;
 
52147
class WinAsm;
 
52148
class WinDeclSpecs;
 
52149
class WinMemberExplSpec;
 
52150
class WinTypeKeywords;
 
52151
class WinFriend;
43262
52152
class ExtAC;
43263
52153
class ExtACBuilderCoupling;
43264
52154
class ExtACSyntaxCoupling;
43265
52155
class ExtACTree;
43266
52156
class ExtACKeywords;
43267
 
class WinAsm;
43268
 
class WinDeclSpecs;
43269
 
class WinMemberExplSpec;
43270
 
class WinTypeKeywords;
 
52157
class ExtGnu;
43271
52158
class PragmaOnceUnitState;
43272
52159
class PragmaOnce;
43273
 
class CCExprResolve;
43274
 
class CExprResolve;
 
52160
class CMatchSyntax;
43275
52161
namespace Puma {
43276
52162
 
43277
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52163
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43278
52164
class CT_AnyList : public CT_Any {
43279
 
#line 43280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52165
#line 52166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52166
  friend class ::CCExprResolve;
 
52167
  friend class ::CExprResolve;
43280
52168
  friend class ::WinIfExists;
43281
52169
  friend class ::WinImportHandler;
43282
52170
  friend class ::WinMacros;
43283
 
  friend class ::CMatchSyntax;
43284
 
  friend class ::ExtGnu;
 
52171
  friend class ::WinAsm;
 
52172
  friend class ::WinDeclSpecs;
 
52173
  friend class ::WinMemberExplSpec;
 
52174
  friend class ::WinTypeKeywords;
 
52175
  friend class ::WinFriend;
43285
52176
  friend class ::ExtAC;
43286
52177
  friend class ::ExtACBuilderCoupling;
43287
52178
  friend class ::ExtACSyntaxCoupling;
43288
52179
  friend class ::ExtACTree;
43289
52180
  friend class ::ExtACKeywords;
43290
 
  friend class ::WinAsm;
43291
 
  friend class ::WinDeclSpecs;
43292
 
  friend class ::WinMemberExplSpec;
43293
 
  friend class ::WinTypeKeywords;
 
52181
  friend class ::ExtGnu;
43294
52182
  friend class ::PragmaOnceUnitState;
43295
52183
  friend class ::PragmaOnce;
43296
 
  friend class ::CCExprResolve;
43297
 
  friend class ::CExprResolve;
 
52184
  friend class ::CMatchSyntax;
43298
52185
 
43299
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52186
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43300
52187
 
43301
52188
public:
43302
52189
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
52190
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43303
52191
  static const char *NodeId ();
 
52192
  /** Get the name of the node. Can be compared with NodeId(). */
43304
52193
  const char *NodeName () const { return NodeId (); }
43305
52194
};
43306
52195
 
43307
52196
 
43308
 
#line 43309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52197
#line 52198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43309
52198
} // closed Puma
 
52199
class CCExprResolve;
 
52200
class CExprResolve;
43310
52201
class WinIfExists;
43311
52202
class WinImportHandler;
43312
52203
class WinMacros;
43313
 
class CMatchSyntax;
43314
 
class ExtGnu;
 
52204
class WinAsm;
 
52205
class WinDeclSpecs;
 
52206
class WinMemberExplSpec;
 
52207
class WinTypeKeywords;
 
52208
class WinFriend;
43315
52209
class ExtAC;
43316
52210
class ExtACBuilderCoupling;
43317
52211
class ExtACSyntaxCoupling;
43318
52212
class ExtACTree;
43319
52213
class ExtACKeywords;
43320
 
class WinAsm;
43321
 
class WinDeclSpecs;
43322
 
class WinMemberExplSpec;
43323
 
class WinTypeKeywords;
 
52214
class ExtGnu;
43324
52215
class PragmaOnceUnitState;
43325
52216
class PragmaOnce;
43326
 
class CCExprResolve;
43327
 
class CExprResolve;
 
52217
class CMatchSyntax;
43328
52218
namespace Puma {
43329
52219
 
43330
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52220
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43331
52221
class CT_AnyExtension : public CTree, public CSemValue {
43332
 
#line 43333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52222
#line 52223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52223
  friend class ::CCExprResolve;
 
52224
  friend class ::CExprResolve;
43333
52225
  friend class ::WinIfExists;
43334
52226
  friend class ::WinImportHandler;
43335
52227
  friend class ::WinMacros;
43336
 
  friend class ::CMatchSyntax;
43337
 
  friend class ::ExtGnu;
 
52228
  friend class ::WinAsm;
 
52229
  friend class ::WinDeclSpecs;
 
52230
  friend class ::WinMemberExplSpec;
 
52231
  friend class ::WinTypeKeywords;
 
52232
  friend class ::WinFriend;
43338
52233
  friend class ::ExtAC;
43339
52234
  friend class ::ExtACBuilderCoupling;
43340
52235
  friend class ::ExtACSyntaxCoupling;
43341
52236
  friend class ::ExtACTree;
43342
52237
  friend class ::ExtACKeywords;
43343
 
  friend class ::WinAsm;
43344
 
  friend class ::WinDeclSpecs;
43345
 
  friend class ::WinMemberExplSpec;
43346
 
  friend class ::WinTypeKeywords;
 
52238
  friend class ::ExtGnu;
43347
52239
  friend class ::PragmaOnceUnitState;
43348
52240
  friend class ::PragmaOnce;
43349
 
  friend class ::CCExprResolve;
43350
 
  friend class ::CExprResolve;
 
52241
  friend class ::CMatchSyntax;
43351
52242
 
43352
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52243
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43353
52244
 
43354
52245
  CTree *sons[5]; // open, string, comma, cond, close
43355
52246
 
43356
52247
public:
43357
52248
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
43358
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
52249
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
52250
    AddSon (sons[3], c); AddSon (sons[4], cr); 
43359
52251
  }
 
52252
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43360
52253
  static const char *NodeId ();
 
52254
  /** Get the name of the node. Can be compared with NodeId(). */
43361
52255
  const char *NodeName () const { return NodeId (); }
 
52256
  /** Get the number of sons. */
43362
52257
  int Sons () const { return CTree::Sons (sons, 5); }
 
52258
  /** Get the n-th son.
 
52259
   *  \param n The index of the son.
 
52260
   *  \return The n-th son or NULL. */
43363
52261
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
52262
  /** Replace a son.
 
52263
   *  \param old_son The son to replace.
 
52264
   *  \param new_son The new son. */
43364
52265
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43365
52266
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43366
52267
  }
43374
52275
};
43375
52276
 
43376
52277
 
43377
 
#line 43378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52278
#line 52279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43378
52279
} // closed Puma
 
52280
class CCExprResolve;
 
52281
class CExprResolve;
43379
52282
class WinIfExists;
43380
52283
class WinImportHandler;
43381
52284
class WinMacros;
43382
 
class CMatchSyntax;
43383
 
class ExtGnu;
 
52285
class WinAsm;
 
52286
class WinDeclSpecs;
 
52287
class WinMemberExplSpec;
 
52288
class WinTypeKeywords;
 
52289
class WinFriend;
43384
52290
class ExtAC;
43385
52291
class ExtACBuilderCoupling;
43386
52292
class ExtACSyntaxCoupling;
43387
52293
class ExtACTree;
43388
52294
class ExtACKeywords;
43389
 
class WinAsm;
43390
 
class WinDeclSpecs;
43391
 
class WinMemberExplSpec;
43392
 
class WinTypeKeywords;
 
52295
class ExtGnu;
43393
52296
class PragmaOnceUnitState;
43394
52297
class PragmaOnce;
43395
 
class CCExprResolve;
43396
 
class CExprResolve;
 
52298
class CMatchSyntax;
43397
52299
namespace Puma {
43398
52300
 
43399
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52301
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43400
52302
class CT_AnyCondition : public CTree {
43401
 
#line 43402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52303
#line 52304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52304
  friend class ::CCExprResolve;
 
52305
  friend class ::CExprResolve;
43402
52306
  friend class ::WinIfExists;
43403
52307
  friend class ::WinImportHandler;
43404
52308
  friend class ::WinMacros;
43405
 
  friend class ::CMatchSyntax;
43406
 
  friend class ::ExtGnu;
 
52309
  friend class ::WinAsm;
 
52310
  friend class ::WinDeclSpecs;
 
52311
  friend class ::WinMemberExplSpec;
 
52312
  friend class ::WinTypeKeywords;
 
52313
  friend class ::WinFriend;
43407
52314
  friend class ::ExtAC;
43408
52315
  friend class ::ExtACBuilderCoupling;
43409
52316
  friend class ::ExtACSyntaxCoupling;
43410
52317
  friend class ::ExtACTree;
43411
52318
  friend class ::ExtACKeywords;
43412
 
  friend class ::WinAsm;
43413
 
  friend class ::WinDeclSpecs;
43414
 
  friend class ::WinMemberExplSpec;
43415
 
  friend class ::WinTypeKeywords;
 
52319
  friend class ::ExtGnu;
43416
52320
  friend class ::PragmaOnceUnitState;
43417
52321
  friend class ::PragmaOnce;
43418
 
  friend class ::CCExprResolve;
43419
 
  friend class ::CExprResolve;
 
52322
  friend class ::CMatchSyntax;
43420
52323
 
43421
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52324
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43422
52325
 
43423
52326
  CTree *sons[3]; // arg1, arg2, arg3
43424
52327
 
43425
52328
public:
43426
52329
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
43427
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
52330
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
43428
52331
  }
 
52332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43429
52333
  static const char *NodeId ();
 
52334
  /** Get the name of the node. Can be compared with NodeId(). */
43430
52335
  const char *NodeName () const { return NodeId (); }
 
52336
  /** Get the number of sons. */
43431
52337
  int Sons () const { return CTree::Sons (sons, 3); }
 
52338
  /** Get the n-th son.
 
52339
   *  \param n The index of the son.
 
52340
   *  \return The n-th son or NULL. */
43432
52341
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52342
  /** Replace a son.
 
52343
   *  \param old_son The son to replace.
 
52344
   *  \param new_son The new son. */
43433
52345
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43434
52346
    CTree::ReplaceSon (sons, 3, old_son, new_son);
43435
52347
  }
43440
52352
 
43441
52353
#endif /* __CTree_h__ */
43442
52354
 
43443
 
#line 43444 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
43444
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
43445
 
 
43446
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43447
 
 
43448
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
 
52355
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
43449
52356
namespace Puma {
43450
52357
 
43451
52358
 
43452
52359
 
43453
 
#line 43454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52360
#line 52361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43454
52361
} // closed Puma
 
52362
class CCExprResolve;
 
52363
class CExprResolve;
43455
52364
class WinIfExists;
43456
52365
class WinImportHandler;
43457
52366
class WinMacros;
43458
 
class CMatchSyntax;
43459
 
class ExtGnu;
 
52367
class WinAsm;
 
52368
class WinDeclSpecs;
 
52369
class WinMemberExplSpec;
 
52370
class WinTypeKeywords;
 
52371
class WinFriend;
43460
52372
class ExtAC;
43461
52373
class ExtACBuilderCoupling;
43462
52374
class ExtACSyntaxCoupling;
43463
52375
class ExtACTree;
43464
52376
class ExtACKeywords;
43465
 
class WinAsm;
43466
 
class WinDeclSpecs;
43467
 
class WinMemberExplSpec;
43468
 
class WinTypeKeywords;
 
52377
class ExtGnu;
43469
52378
class PragmaOnceUnitState;
43470
52379
class PragmaOnce;
43471
 
class CCExprResolve;
43472
 
class CExprResolve;
 
52380
class CMatchSyntax;
43473
52381
namespace Puma {
43474
52382
 
43475
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
 
52383
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
43476
52384
class CSubMatch {
43477
 
#line 43478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52385
#line 52386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52386
  friend class ::CCExprResolve;
 
52387
  friend class ::CExprResolve;
43478
52388
  friend class ::WinIfExists;
43479
52389
  friend class ::WinImportHandler;
43480
52390
  friend class ::WinMacros;
43481
 
  friend class ::CMatchSyntax;
43482
 
  friend class ::ExtGnu;
 
52391
  friend class ::WinAsm;
 
52392
  friend class ::WinDeclSpecs;
 
52393
  friend class ::WinMemberExplSpec;
 
52394
  friend class ::WinTypeKeywords;
 
52395
  friend class ::WinFriend;
43483
52396
  friend class ::ExtAC;
43484
52397
  friend class ::ExtACBuilderCoupling;
43485
52398
  friend class ::ExtACSyntaxCoupling;
43486
52399
  friend class ::ExtACTree;
43487
52400
  friend class ::ExtACKeywords;
43488
 
  friend class ::WinAsm;
43489
 
  friend class ::WinDeclSpecs;
43490
 
  friend class ::WinMemberExplSpec;
43491
 
  friend class ::WinTypeKeywords;
 
52401
  friend class ::ExtGnu;
43492
52402
  friend class ::PragmaOnceUnitState;
43493
52403
  friend class ::PragmaOnce;
43494
 
  friend class ::CCExprResolve;
43495
 
  friend class ::CExprResolve;
 
52404
  friend class ::CMatchSyntax;
43496
52405
 
43497
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
 
52406
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSubMatch.h"
43498
52407
 
43499
52408
  Array<CTree *> _trees; // matched sub-trees
43500
52409
  const char *_name;         // associated name for the sub-match
43517
52426
 
43518
52427
#endif /* __CSubMatch__ */
43519
52428
 
43520
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CMatch.h"
 
52429
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CMatch.h"
43521
52430
namespace Puma {
43522
52431
 
43523
52432
 
43524
52433
 
43525
 
#line 43526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52434
#line 52435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43526
52435
} // closed Puma
 
52436
class CCExprResolve;
 
52437
class CExprResolve;
43527
52438
class WinIfExists;
43528
52439
class WinImportHandler;
43529
52440
class WinMacros;
43530
 
class CMatchSyntax;
43531
 
class ExtGnu;
 
52441
class WinAsm;
 
52442
class WinDeclSpecs;
 
52443
class WinMemberExplSpec;
 
52444
class WinTypeKeywords;
 
52445
class WinFriend;
43532
52446
class ExtAC;
43533
52447
class ExtACBuilderCoupling;
43534
52448
class ExtACSyntaxCoupling;
43535
52449
class ExtACTree;
43536
52450
class ExtACKeywords;
43537
 
class WinAsm;
43538
 
class WinDeclSpecs;
43539
 
class WinMemberExplSpec;
43540
 
class WinTypeKeywords;
 
52451
class ExtGnu;
43541
52452
class PragmaOnceUnitState;
43542
52453
class PragmaOnce;
43543
 
class CCExprResolve;
43544
 
class CExprResolve;
 
52454
class CMatchSyntax;
43545
52455
namespace Puma {
43546
52456
 
43547
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CMatch.h"
 
52457
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CMatch.h"
43548
52458
class CMatch {
43549
 
#line 43550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52459
#line 52460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52460
  friend class ::CCExprResolve;
 
52461
  friend class ::CExprResolve;
43550
52462
  friend class ::WinIfExists;
43551
52463
  friend class ::WinImportHandler;
43552
52464
  friend class ::WinMacros;
43553
 
  friend class ::CMatchSyntax;
43554
 
  friend class ::ExtGnu;
 
52465
  friend class ::WinAsm;
 
52466
  friend class ::WinDeclSpecs;
 
52467
  friend class ::WinMemberExplSpec;
 
52468
  friend class ::WinTypeKeywords;
 
52469
  friend class ::WinFriend;
43555
52470
  friend class ::ExtAC;
43556
52471
  friend class ::ExtACBuilderCoupling;
43557
52472
  friend class ::ExtACSyntaxCoupling;
43558
52473
  friend class ::ExtACTree;
43559
52474
  friend class ::ExtACKeywords;
43560
 
  friend class ::WinAsm;
43561
 
  friend class ::WinDeclSpecs;
43562
 
  friend class ::WinMemberExplSpec;
43563
 
  friend class ::WinTypeKeywords;
 
52475
  friend class ::ExtGnu;
43564
52476
  friend class ::PragmaOnceUnitState;
43565
52477
  friend class ::PragmaOnce;
43566
 
  friend class ::CCExprResolve;
43567
 
  friend class ::CExprResolve;
 
52478
  friend class ::CMatchSyntax;
43568
52479
 
43569
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CMatch.h"
 
52480
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CMatch.h"
43570
52481
 
43571
52482
  bool _root;
43572
52483
        
43605
52516
 
43606
52517
#endif /* __CMatch__ */
43607
52518
 
43608
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
 
52519
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
43609
52520
namespace Puma {
43610
52521
 
43611
52522
 
43613
52524
class CT_AnyExtension;
43614
52525
 
43615
52526
 
43616
 
#line 43617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52527
#line 52528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43617
52528
} // closed Puma
 
52529
class CCExprResolve;
 
52530
class CExprResolve;
43618
52531
class WinIfExists;
43619
52532
class WinImportHandler;
43620
52533
class WinMacros;
43621
 
class CMatchSyntax;
43622
 
class ExtGnu;
 
52534
class WinAsm;
 
52535
class WinDeclSpecs;
 
52536
class WinMemberExplSpec;
 
52537
class WinTypeKeywords;
 
52538
class WinFriend;
43623
52539
class ExtAC;
43624
52540
class ExtACBuilderCoupling;
43625
52541
class ExtACSyntaxCoupling;
43626
52542
class ExtACTree;
43627
52543
class ExtACKeywords;
43628
 
class WinAsm;
43629
 
class WinDeclSpecs;
43630
 
class WinMemberExplSpec;
43631
 
class WinTypeKeywords;
 
52544
class ExtGnu;
43632
52545
class PragmaOnceUnitState;
43633
52546
class PragmaOnce;
43634
 
class CCExprResolve;
43635
 
class CExprResolve;
 
52547
class CMatchSyntax;
43636
52548
namespace Puma {
43637
52549
 
43638
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
 
52550
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
43639
52551
class CTreeMatcher : public CVisitor {
43640
 
#line 43641 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52552
#line 52553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52553
  friend class ::CCExprResolve;
 
52554
  friend class ::CExprResolve;
43641
52555
  friend class ::WinIfExists;
43642
52556
  friend class ::WinImportHandler;
43643
52557
  friend class ::WinMacros;
43644
 
  friend class ::CMatchSyntax;
43645
 
  friend class ::ExtGnu;
 
52558
  friend class ::WinAsm;
 
52559
  friend class ::WinDeclSpecs;
 
52560
  friend class ::WinMemberExplSpec;
 
52561
  friend class ::WinTypeKeywords;
 
52562
  friend class ::WinFriend;
43646
52563
  friend class ::ExtAC;
43647
52564
  friend class ::ExtACBuilderCoupling;
43648
52565
  friend class ::ExtACSyntaxCoupling;
43649
52566
  friend class ::ExtACTree;
43650
52567
  friend class ::ExtACKeywords;
43651
 
  friend class ::WinAsm;
43652
 
  friend class ::WinDeclSpecs;
43653
 
  friend class ::WinMemberExplSpec;
43654
 
  friend class ::WinTypeKeywords;
 
52568
  friend class ::ExtGnu;
43655
52569
  friend class ::PragmaOnceUnitState;
43656
52570
  friend class ::PragmaOnce;
43657
 
  friend class ::CCExprResolve;
43658
 
  friend class ::CExprResolve;
 
52571
  friend class ::CMatchSyntax;
43659
52572
 
43660
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
 
52573
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
43661
52574
 
43662
52575
  CTree *_matchTree;  
43663
52576
  int _num_mobjs;
43677
52590
 
43678
52591
  // Match-condition parser state.
43679
52592
  struct match_state {
43680
 
#line 43681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52593
#line 52594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
52594
  friend class ::CCExprResolve;
 
52595
  friend class ::CExprResolve;
43681
52596
  friend class ::WinIfExists;
43682
52597
  friend class ::WinImportHandler;
43683
52598
  friend class ::WinMacros;
43684
 
  friend class ::CMatchSyntax;
43685
 
  friend class ::ExtGnu;
 
52599
  friend class ::WinAsm;
 
52600
  friend class ::WinDeclSpecs;
 
52601
  friend class ::WinMemberExplSpec;
 
52602
  friend class ::WinTypeKeywords;
 
52603
  friend class ::WinFriend;
43686
52604
  friend class ::ExtAC;
43687
52605
  friend class ::ExtACBuilderCoupling;
43688
52606
  friend class ::ExtACSyntaxCoupling;
43689
52607
  friend class ::ExtACTree;
43690
52608
  friend class ::ExtACKeywords;
43691
 
  friend class ::WinAsm;
43692
 
  friend class ::WinDeclSpecs;
43693
 
  friend class ::WinMemberExplSpec;
43694
 
  friend class ::WinTypeKeywords;
 
52609
  friend class ::ExtGnu;
43695
52610
  friend class ::PragmaOnceUnitState;
43696
52611
  friend class ::PragmaOnce;
43697
 
  friend class ::CCExprResolve;
43698
 
  friend class ::CExprResolve;
 
52612
  friend class ::CMatchSyntax;
43699
52613
 
43700
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
 
52614
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTreeMatcher.h"
43701
52615
 
43702
52616
    int           value;        // Value of the condition (-1 on errors).
43703
52617
    CTree        *tree;                // The tree to match with.
43758
52672
 
43759
52673
#endif /* __CTreeMatcher__ */
43760
52674
 
43761
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CMatchParser.h"
 
52675
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CMatchParser.h"
43762
52676
#define MATCHTREE                       1
43763
52677
#define M_AND                           2
43764
52678
#define M_CLOSE_ROUND                   3
43781
52695
#define M_UNARY                        20
43782
52696
#define M_XOR                          21
43783
52697
 
43784
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
 
52698
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
43785
52699
// This file is part of PUMA.
43786
52700
// Copyright (C) 1999-2003  The PUMA developer team.
43787
52701
//                                                                
43876
52790
 
43877
52791
#endif /* __WILDCARD_TOKENS__ */
43878
52792
 
43879
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52793
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43880
52794
 
43881
 
#line 43882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52795
#line 52796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
43882
52796
 
43883
52797
#ifndef __ac_fwd_ExtACTree__
43884
52798
#define __ac_fwd_ExtACTree__
43885
52799
class ExtACTree;
43886
52800
namespace AC {
43887
52801
  template <class JoinPoint>
43888
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
52802
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
43889
52803
  template <class JoinPoint>
43890
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
52804
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
43891
52805
}
43892
52806
#endif
43893
52807
 
43894
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
43895
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52808
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
52809
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
43896
52810
#endif
43897
52811
 
43898
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43899
 
 
43900
 
#line 43901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
43901
 
 
43902
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43903
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
43904
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
43905
 
 
43906
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52812
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43907
52813
// This file is part of PUMA.
43908
52814
// Copyright (C) 1999-2003  The PUMA developer team.
43909
52815
//                                                                
43948
52854
class     CT_DefaultStmt;
43949
52855
class     CT_TryStmt;
43950
52856
class   CT_Expression;
 
52857
class     CT_Call;
 
52858
class       CT_CallExpr;
 
52859
class       CT_ImplicitCall;
43951
52860
class     CT_ThrowExpr;
43952
52861
class     CT_NewExpr;
43953
52862
class     CT_DeleteExpr;
43968
52877
class     CT_IfThenExpr;
43969
52878
class     CT_CmpdLiteral;
43970
52879
class     CT_IndexExpr;
43971
 
class     CT_CallExpr;
43972
52880
class     CT_CastExpr;
43973
52881
class     CT_StaticCast;
43974
52882
class       CT_ConstCast;
44015
52923
class     CT_NamespaceDef;
44016
52924
class     CT_NamespaceAliasDef;
44017
52925
class     CT_UsingDirective;
 
52926
class     CT_Condition;
44018
52927
class   CT_List;
44019
52928
class     CT_CmpdStmt;
44020
52929
class     CT_DeclSpecSeq;
44045
52954
class     CT_TemplateArgList;
44046
52955
class   CT_Token;
44047
52956
class   CT_Error;
44048
 
class   CT_Condition;
44049
52957
class   CT_BaseSpec;
44050
52958
class   CT_AccessSpec;
44051
52959
class   CT_ArrayDelimiter;
44085
52993
/*                                                                           */
44086
52994
/*****************************************************************************/
44087
52995
 
44088
 
 
44089
 
#line 44090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
52996
/** \file
 
52997
 *  C/C++ syntax tree classes.
 
52998
 *  \see Puma::CTree */
 
52999
 
 
53000
/** \class CTree CTree.h Puma/CTree.h
 
53001
 *  Base class for all C/C++ syntax tree classes. */
 
53002
 
 
53003
#line 53004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44090
53004
} // closed Puma
 
53005
class CCExprResolve;
 
53006
class CExprResolve;
44091
53007
class WinIfExists;
44092
53008
class WinImportHandler;
44093
53009
class WinMacros;
44094
 
class CMatchSyntax;
44095
 
class ExtGnu;
 
53010
class WinAsm;
 
53011
class WinDeclSpecs;
 
53012
class WinMemberExplSpec;
 
53013
class WinTypeKeywords;
 
53014
class WinFriend;
44096
53015
class ExtAC;
44097
53016
class ExtACBuilderCoupling;
44098
53017
class ExtACSyntaxCoupling;
44099
53018
class ExtACTree;
44100
53019
class ExtACKeywords;
44101
 
class WinAsm;
44102
 
class WinDeclSpecs;
44103
 
class WinMemberExplSpec;
44104
 
class WinTypeKeywords;
 
53020
class ExtGnu;
44105
53021
class PragmaOnceUnitState;
44106
53022
class PragmaOnce;
44107
 
class CCExprResolve;
44108
 
class CExprResolve;
44109
 
namespace Puma {
44110
 
 
44111
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53023
class CMatchSyntax;
 
53024
namespace Puma {
 
53025
 
 
53026
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53027
 
 
53028
#line 53029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53029
} // closed Puma
 
53030
 
 
53031
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
53032
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
53033
#include "CCExprResolveH.ah"
 
53034
#endif
 
53035
namespace Puma {
 
53036
 
 
53037
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53038
 
 
53039
#line 53040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53040
} // closed Puma
 
53041
 
 
53042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
53043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
53044
#include "CExprResolveH.ah"
 
53045
#endif
 
53046
namespace Puma {
 
53047
 
 
53048
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44112
53049
class CTree {
44113
 
#line 44114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53050
#line 53051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53051
  friend class ::CCExprResolve;
 
53052
  friend class ::CExprResolve;
44114
53053
  friend class ::WinIfExists;
44115
53054
  friend class ::WinImportHandler;
44116
53055
  friend class ::WinMacros;
44117
 
  friend class ::CMatchSyntax;
44118
 
  friend class ::ExtGnu;
 
53056
  friend class ::WinAsm;
 
53057
  friend class ::WinDeclSpecs;
 
53058
  friend class ::WinMemberExplSpec;
 
53059
  friend class ::WinTypeKeywords;
 
53060
  friend class ::WinFriend;
44119
53061
  friend class ::ExtAC;
44120
53062
  friend class ::ExtACBuilderCoupling;
44121
53063
  friend class ::ExtACSyntaxCoupling;
44122
53064
  friend class ::ExtACTree;
44123
53065
  friend class ::ExtACKeywords;
44124
 
  friend class ::WinAsm;
44125
 
  friend class ::WinDeclSpecs;
44126
 
  friend class ::WinMemberExplSpec;
44127
 
  friend class ::WinTypeKeywords;
 
53066
  friend class ::ExtGnu;
44128
53067
  friend class ::PragmaOnceUnitState;
44129
53068
  friend class ::PragmaOnce;
44130
 
  friend class ::CCExprResolve;
44131
 
  friend class ::CExprResolve;
44132
 
 
44133
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53069
  friend class ::CMatchSyntax;
 
53070
 
 
53071
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53072
 
 
53073
  CTree * _parent;
44134
53074
 
44135
53075
public:
44136
53076
  /*DEBUG*/static int alloc;
44137
53077
  /*DEBUG*/static int release;
44138
53078
 
44139
53079
protected:
44140
 
  CTree *Son (CTree * const *, int, int) const;
44141
 
  int Sons (CTree * const *, int) const;
44142
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
53080
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
53081
   *  \param sons The sons array.
 
53082
   *  \param len Length of the sons array.
 
53083
   *  \param n Index of the son.
 
53084
   *  \return The n-th son or NULL. */
 
53085
  CTree *Son (CTree * const *sons, int len, int n) const;
 
53086
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
53087
   *  \param sons The sons array.
 
53088
   *  \param len Length of the sons array. */
 
53089
  int Sons (CTree * const *sons, int len) const;
 
53090
  /** Replace a son.
 
53091
   *  \param sons The sons array.
 
53092
   *  \param len Length of the sons array.
 
53093
   *  \param old_son The son to replace.
 
53094
   *  \param new_son The new son. */
 
53095
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
53096
  /** Replace a son if it equals the given son.
 
53097
   *  \param son The actual son.
 
53098
   *  \param old_son The son to replace, must match the actual son.
 
53099
   *  \param new_son The new son, overwrites the actual son. */
 
53100
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
53101
  /** Add a new son.
 
53102
   *  \param son The actual son.
 
53103
   *  \param new_son The new son, overwrites the actual son. */
 
53104
  void AddSon (CTree *&son, CTree *new_son);
 
53105
  /** Set the parent tree node.
 
53106
   *  \param parent The new parent tree node. */
 
53107
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
53108
  /** Set the parent tree node of the given tree node.
 
53109
   *  \param node The tree node.
 
53110
   *  \param parent The new parent. */
 
53111
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
44143
53112
  
44144
53113
protected:
44145
 
  CTree () { /*DEBUG*/alloc++; }
 
53114
  /** Default constructor. */
 
53115
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
44146
53116
 
44147
53117
public:
 
53118
  /** Destructor. */
44148
53119
  virtual ~CTree () { /*DEBUG*/release++; }
 
53120
  /** Get the number of sons. */
44149
53121
  virtual int Sons () const = 0;
 
53122
  /** Get the n-th son.
 
53123
   *  \param n The index of the son.
 
53124
   *  \return The n-th son or NULL. */
44150
53125
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
53126
  /** Get the node name (node identifier). */
44151
53127
  virtual const char *NodeName () const = 0;
 
53128
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
53129
   *  \return The token or NULL. */
44152
53130
  virtual Token *token () const;
 
53131
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
53132
   *  \return The token or NULL. */
44153
53133
  virtual Token *end_token () const;
 
53134
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
53135
   *  \return The token node or NULL. */
44154
53136
  virtual CT_Token *token_node () const;
 
53137
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
53138
   *  \return The token node or NULL. */
44155
53139
  virtual CT_Token *end_token_node () const;
44156
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
53140
  /** Replace a son.
 
53141
   *  \param old_son The son to replace.
 
53142
   *  \param new_son The son with which to replace. */
 
53143
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
53144
  /** Get the parent node.
 
53145
   *  \return The parent node or NULL. */
 
53146
  virtual CTree *Parent () const { return (CTree*)_parent; }
44157
53147
 
44158
53148
public: // semantic information
 
53149
  /** Get the semantic type of the node.
 
53150
   *  \return The type object or NULL. */
44159
53151
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
53152
  /** Get the calculated value of the expression.
 
53153
   *  \return The value object or NULL. */
44160
53154
  virtual CExprValue *Value () const { return (CExprValue*)0; }
44161
53155
  
 
53156
  /** Get the semantic scope of the node.
 
53157
   *  \return The scope object or NULL. */
 
53158
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
53159
  /** Get the semantic value of the node.
 
53160
   *  \return The value object or NULL. */
44162
53161
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
53162
  /** Get the semantic object of the node.
 
53163
   *  \return The semantic object or NULL. */
44163
53164
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
44164
53165
  
44165
53166
public: // node classification function
 
53167
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
53168
   *  \return The CT_SimpleName node or NULL. */
44166
53169
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
53170
  /** Get a pointer to CT_String if the current node represents a string.
 
53171
   *  \return The CT_String node or NULL. */
 
53172
  virtual CT_String *IsString () { return 0; }
 
53173
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
53174
   *  \return The CT_Declarator pointer or NULL. */
44167
53175
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
53176
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
53177
   *  \return The CT_Statement pointer or NULL. */
 
53178
  virtual CT_Statement *IsStatement () { return 0; }
 
53179
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
53180
   *  \return The CT_Expression pointer or NULL. */
 
53181
  virtual CT_Expression *IsExpression () { return 0; }
 
53182
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
53183
   *  \return The CT_Decl pointer or NULL. */
 
53184
  virtual CT_Decl *IsDeclaration () { return 0; }
 
53185
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
53186
   *  \return The CT_Call pointer or NULL. */
 
53187
  virtual CT_Call *IsCall () { return 0; }
44168
53188
   private:
44169
53189
  typedef CTree CCExprResolveCTree;
44170
53190
 
44171
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
53191
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44172
53192
 public :
44173
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
53193
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44174
53194
  typedef CTree CExprResolveCTree;
44175
53195
 
44176
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
53196
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44177
53197
 public :
44178
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44179
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53198
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
53199
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44180
53200
};
44181
53201
 
 
53202
/** \class CT_Error CTree.h Puma/CTree.h
 
53203
 *  Error tree node that is inserted into the tree for syntactic constructs
 
53204
 *  that could not be parsed. */
44182
53205
 
44183
 
#line 44184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53206
#line 53207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44184
53207
} // closed Puma
 
53208
class CCExprResolve;
 
53209
class CExprResolve;
44185
53210
class WinIfExists;
44186
53211
class WinImportHandler;
44187
53212
class WinMacros;
44188
 
class CMatchSyntax;
44189
 
class ExtGnu;
 
53213
class WinAsm;
 
53214
class WinDeclSpecs;
 
53215
class WinMemberExplSpec;
 
53216
class WinTypeKeywords;
 
53217
class WinFriend;
44190
53218
class ExtAC;
44191
53219
class ExtACBuilderCoupling;
44192
53220
class ExtACSyntaxCoupling;
44193
53221
class ExtACTree;
44194
53222
class ExtACKeywords;
44195
 
class WinAsm;
44196
 
class WinDeclSpecs;
44197
 
class WinMemberExplSpec;
44198
 
class WinTypeKeywords;
 
53223
class ExtGnu;
44199
53224
class PragmaOnceUnitState;
44200
53225
class PragmaOnce;
44201
 
class CCExprResolve;
44202
 
class CExprResolve;
 
53226
class CMatchSyntax;
44203
53227
namespace Puma {
44204
53228
 
44205
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53229
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44206
53230
class CT_Error : public CTree {
44207
 
#line 44208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53231
#line 53232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53232
  friend class ::CCExprResolve;
 
53233
  friend class ::CExprResolve;
44208
53234
  friend class ::WinIfExists;
44209
53235
  friend class ::WinImportHandler;
44210
53236
  friend class ::WinMacros;
44211
 
  friend class ::CMatchSyntax;
44212
 
  friend class ::ExtGnu;
 
53237
  friend class ::WinAsm;
 
53238
  friend class ::WinDeclSpecs;
 
53239
  friend class ::WinMemberExplSpec;
 
53240
  friend class ::WinTypeKeywords;
 
53241
  friend class ::WinFriend;
44213
53242
  friend class ::ExtAC;
44214
53243
  friend class ::ExtACBuilderCoupling;
44215
53244
  friend class ::ExtACSyntaxCoupling;
44216
53245
  friend class ::ExtACTree;
44217
53246
  friend class ::ExtACKeywords;
44218
 
  friend class ::WinAsm;
44219
 
  friend class ::WinDeclSpecs;
44220
 
  friend class ::WinMemberExplSpec;
44221
 
  friend class ::WinTypeKeywords;
 
53247
  friend class ::ExtGnu;
44222
53248
  friend class ::PragmaOnceUnitState;
44223
53249
  friend class ::PragmaOnce;
44224
 
  friend class ::CCExprResolve;
44225
 
  friend class ::CExprResolve;
 
53250
  friend class ::CMatchSyntax;
44226
53251
 
44227
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53252
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44228
53253
 
44229
53254
public:
 
53255
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44230
53256
  static const char *NodeId ();
 
53257
  /** Get the name of the node. Can be compared with NodeId(). */
44231
53258
  const char *NodeName () const { return NodeId (); }
 
53259
  /** Get the number of sons. */
44232
53260
  int Sons () const { return 0; }
44233
53261
};
44234
53262
 
 
53263
/** \class CT_Token CTree.h Puma/CTree.h
 
53264
 *  Tree node representing a single token in the source code. */
44235
53265
 
44236
 
#line 44237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53266
#line 53267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44237
53267
} // closed Puma
 
53268
class CCExprResolve;
 
53269
class CExprResolve;
44238
53270
class WinIfExists;
44239
53271
class WinImportHandler;
44240
53272
class WinMacros;
44241
 
class CMatchSyntax;
44242
 
class ExtGnu;
 
53273
class WinAsm;
 
53274
class WinDeclSpecs;
 
53275
class WinMemberExplSpec;
 
53276
class WinTypeKeywords;
 
53277
class WinFriend;
44243
53278
class ExtAC;
44244
53279
class ExtACBuilderCoupling;
44245
53280
class ExtACSyntaxCoupling;
44246
53281
class ExtACTree;
44247
53282
class ExtACKeywords;
44248
 
class WinAsm;
44249
 
class WinDeclSpecs;
44250
 
class WinMemberExplSpec;
44251
 
class WinTypeKeywords;
 
53283
class ExtGnu;
44252
53284
class PragmaOnceUnitState;
44253
53285
class PragmaOnce;
44254
 
class CCExprResolve;
44255
 
class CExprResolve;
 
53286
class CMatchSyntax;
44256
53287
namespace Puma {
44257
53288
 
44258
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53289
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44259
53290
class CT_Token : public CTree {
44260
 
#line 44261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53291
#line 53292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53292
  friend class ::CCExprResolve;
 
53293
  friend class ::CExprResolve;
44261
53294
  friend class ::WinIfExists;
44262
53295
  friend class ::WinImportHandler;
44263
53296
  friend class ::WinMacros;
44264
 
  friend class ::CMatchSyntax;
44265
 
  friend class ::ExtGnu;
 
53297
  friend class ::WinAsm;
 
53298
  friend class ::WinDeclSpecs;
 
53299
  friend class ::WinMemberExplSpec;
 
53300
  friend class ::WinTypeKeywords;
 
53301
  friend class ::WinFriend;
44266
53302
  friend class ::ExtAC;
44267
53303
  friend class ::ExtACBuilderCoupling;
44268
53304
  friend class ::ExtACSyntaxCoupling;
44269
53305
  friend class ::ExtACTree;
44270
53306
  friend class ::ExtACKeywords;
44271
 
  friend class ::WinAsm;
44272
 
  friend class ::WinDeclSpecs;
44273
 
  friend class ::WinMemberExplSpec;
44274
 
  friend class ::WinTypeKeywords;
 
53307
  friend class ::ExtGnu;
44275
53308
  friend class ::PragmaOnceUnitState;
44276
53309
  friend class ::PragmaOnce;
44277
 
  friend class ::CCExprResolve;
44278
 
  friend class ::CExprResolve;
 
53310
  friend class ::CMatchSyntax;
44279
53311
 
44280
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53312
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44281
53313
 
44282
53314
  Token *_token;
44283
53315
  unsigned long int _number;
44284
53316
  
44285
53317
public:
44286
 
  CT_Token (Token *t, unsigned long int n = 0) : 
44287
 
    _token (t), _number (n) {}
 
53318
  /** Constructor. 
 
53319
   *  \param token The represented token.
 
53320
   *  \param number The token number (a consecutive number). */
 
53321
  CT_Token (Token *token, unsigned long int number = 0) : 
 
53322
    _token (token), _number (number) {}
 
53323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44288
53324
  static const char *NodeId ();
 
53325
  /** Get the name of the node. Can be compared with NodeId(). */
44289
53326
  const char *NodeName () const { return NodeId (); }
 
53327
  /** Get the number of sons. */
44290
53328
  int Sons () const { return 0; }
 
53329
  /** Get the represented token. */
44291
53330
  Token *token () const { return _token; }
 
53331
  /** Get the represented token. */
44292
53332
  Token *end_token () const { return _token; }
 
53333
  /** Get this. */
44293
53334
  CT_Token *token_node () const { return (CT_Token*)this; }
 
53335
  /** Get this. */
44294
53336
  CT_Token *end_token_node () const { return (CT_Token*)this; }
44295
 
  void Number (unsigned long int n) { _number = n; }
 
53337
  /** Set the token number. 
 
53338
   *  \param number The token number. */ 
 
53339
  void Number (unsigned long int number) { _number = number; }
 
53340
  /** Get the token number. Can be used to indentify this token. */
44296
53341
  unsigned long int Number () const { return _number; }
44297
 
  // special new / delete with reusing memory
 
53342
  
 
53343
public:
 
53344
  /** Own new operator reusing memory. */
44298
53345
  void *operator new (size_t);
44299
 
  void  operator delete (void *);
 
53346
  /** Own delete operator. */
 
53347
  void operator delete (void *);
44300
53348
};
44301
53349
 
44302
53350
/*****************************************************************************/
44305
53353
/*                                                                           */
44306
53354
/*****************************************************************************/
44307
53355
 
 
53356
/** \class CT_List CTree.h Puma/CTree.h
 
53357
 *  Base class for tree nodes representing lists. */
44308
53358
 
44309
 
#line 44310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53359
#line 53360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44310
53360
} // closed Puma
 
53361
class CCExprResolve;
 
53362
class CExprResolve;
44311
53363
class WinIfExists;
44312
53364
class WinImportHandler;
44313
53365
class WinMacros;
44314
 
class CMatchSyntax;
44315
 
class ExtGnu;
 
53366
class WinAsm;
 
53367
class WinDeclSpecs;
 
53368
class WinMemberExplSpec;
 
53369
class WinTypeKeywords;
 
53370
class WinFriend;
44316
53371
class ExtAC;
44317
53372
class ExtACBuilderCoupling;
44318
53373
class ExtACSyntaxCoupling;
44319
53374
class ExtACTree;
44320
53375
class ExtACKeywords;
44321
 
class WinAsm;
44322
 
class WinDeclSpecs;
44323
 
class WinMemberExplSpec;
44324
 
class WinTypeKeywords;
 
53376
class ExtGnu;
44325
53377
class PragmaOnceUnitState;
44326
53378
class PragmaOnce;
44327
 
class CCExprResolve;
44328
 
class CExprResolve;
 
53379
class CMatchSyntax;
44329
53380
namespace Puma {
44330
53381
 
44331
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53382
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44332
53383
class CT_List : public CTree {
44333
 
#line 44334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53384
#line 53385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53385
  friend class ::CCExprResolve;
 
53386
  friend class ::CExprResolve;
44334
53387
  friend class ::WinIfExists;
44335
53388
  friend class ::WinImportHandler;
44336
53389
  friend class ::WinMacros;
44337
 
  friend class ::CMatchSyntax;
44338
 
  friend class ::ExtGnu;
 
53390
  friend class ::WinAsm;
 
53391
  friend class ::WinDeclSpecs;
 
53392
  friend class ::WinMemberExplSpec;
 
53393
  friend class ::WinTypeKeywords;
 
53394
  friend class ::WinFriend;
44339
53395
  friend class ::ExtAC;
44340
53396
  friend class ::ExtACBuilderCoupling;
44341
53397
  friend class ::ExtACSyntaxCoupling;
44342
53398
  friend class ::ExtACTree;
44343
53399
  friend class ::ExtACKeywords;
44344
 
  friend class ::WinAsm;
44345
 
  friend class ::WinDeclSpecs;
44346
 
  friend class ::WinMemberExplSpec;
44347
 
  friend class ::WinTypeKeywords;
 
53400
  friend class ::ExtGnu;
44348
53401
  friend class ::PragmaOnceUnitState;
44349
53402
  friend class ::PragmaOnce;
44350
 
  friend class ::CCExprResolve;
44351
 
  friend class ::CExprResolve;
 
53403
  friend class ::CMatchSyntax;
44352
53404
 
44353
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53405
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44354
53406
 
44355
53407
  Array<CTree*> _sons;
44356
53408
  int _properties;
44357
53409
 
44358
53410
protected:
 
53411
  /** Constructor.
 
53412
   *  \param size The initial list size.
 
53413
   *  \param incr The initial increment count. 
 
53414
   *  \param props The list properties (bit array). */
44359
53415
  CT_List(int size = 5, int incr = 5, int props = 0) : 
44360
53416
    _sons (size, incr), _properties (props) {}
44361
53417
 
44362
53418
public:
 
53419
  /** List properties. */
44363
53420
  enum {
44364
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
44365
 
    CLOSE = 2,
44366
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
44367
 
    SEPARATORS = 4,   // the list has separators like ','
44368
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
44369
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
44370
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
44371
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
53421
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
53422
    CLOSE = 2,        /** List has an end token */
 
53423
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
53424
    SEPARATORS = 4,   /** List has separators, like ',' */
 
53425
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
53426
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
53427
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
53428
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
44372
53429
  };
44373
53430
 
 
53431
  /** Get the number of list entries. */
44374
53432
  int Entries () const;
44375
 
  CTree *Entry (int no) const;
 
53433
  /** Get the n-th list entry.
 
53434
   *  \param n The index of the entry. 
 
53435
   *  \return The list entry or NULL. */
 
53436
  CTree *Entry (int n) const;
 
53437
  /** Get the number of sons. */
44376
53438
  int Sons () const { return _sons.length (); }
 
53439
  /** Get the n-th son.
 
53440
   *  \param n The index of the son. 
 
53441
   *  \return The n-th son or NULL. */
44377
53442
  CTree *Son (int n) const { return _sons.lookup (n); }
 
53443
  /** Get the list properties. */
44378
53444
  int GetProperties () const { return _properties; }
 
53445
  /** Add a list property.
 
53446
   *  \param p The property to add. */
44379
53447
  void AddProperties (int p) { _properties |= p; }
44380
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
44381
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
44382
 
  void InsertSon (CTree *, CTree *);  // before given son
44383
 
  void ReplaceSon (CTree *, CTree *);
44384
 
  void RemoveSon (CTree *);
 
53448
  /** Add a son.
 
53449
   *  \param s The son to add. */
 
53450
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
53451
  /** Prepend a son.
 
53452
   *  \param s The son to prepend. */
 
53453
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
53454
  /** Insert a son before another son.
 
53455
   *  \param before The son to insert the new son before.
 
53456
   *  \param son The son to insert. */
 
53457
  void InsertSon (CTree *before, CTree *son); 
 
53458
  /** Replace a son.
 
53459
   *  \param old_son The son to replace.
 
53460
   *  \param new_son The new son. */
 
53461
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
53462
  /** Remove a son.
 
53463
   *  \param son The son to remove. */
 
53464
  void RemoveSon (CTree *son);
 
53465
  /** Insert a son at the given index. 
 
53466
   *  \param idx The index at which to insert.
 
53467
   *  \param s The son to insert. */
44385
53468
  void InsertSon (int idx, CTree *s)
44386
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
53469
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
53470
  /** Replace the son at the given index.
 
53471
   *  \param idx The index of the son to replace.
 
53472
   *  \param s The new son. */
44387
53473
  void ReplaceSon (int idx, CTree *s) 
44388
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
53474
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
53475
  /** Remove the son at the given index. 
 
53476
   *  \param idx The index of the son to remove. */
44389
53477
  void RemoveSon (int idx) 
44390
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
53478
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
44391
53479
};
44392
53480
 
 
53481
/** \class CT_ExprList CTree.h Puma/CTree.h
 
53482
 *  Tree node representing an expression list. */
44393
53483
 
44394
 
#line 44395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53484
#line 53485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44395
53485
} // closed Puma
 
53486
class CCExprResolve;
 
53487
class CExprResolve;
44396
53488
class WinIfExists;
44397
53489
class WinImportHandler;
44398
53490
class WinMacros;
44399
 
class CMatchSyntax;
44400
 
class ExtGnu;
 
53491
class WinAsm;
 
53492
class WinDeclSpecs;
 
53493
class WinMemberExplSpec;
 
53494
class WinTypeKeywords;
 
53495
class WinFriend;
44401
53496
class ExtAC;
44402
53497
class ExtACBuilderCoupling;
44403
53498
class ExtACSyntaxCoupling;
44404
53499
class ExtACTree;
44405
53500
class ExtACKeywords;
44406
 
class WinAsm;
44407
 
class WinDeclSpecs;
44408
 
class WinMemberExplSpec;
44409
 
class WinTypeKeywords;
 
53501
class ExtGnu;
44410
53502
class PragmaOnceUnitState;
44411
53503
class PragmaOnce;
44412
 
class CCExprResolve;
44413
 
class CExprResolve;
 
53504
class CMatchSyntax;
44414
53505
namespace Puma {
44415
53506
 
44416
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53507
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44417
53508
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
44418
 
#line 44419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53509
#line 53510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53510
  friend class ::CCExprResolve;
 
53511
  friend class ::CExprResolve;
44419
53512
  friend class ::WinIfExists;
44420
53513
  friend class ::WinImportHandler;
44421
53514
  friend class ::WinMacros;
44422
 
  friend class ::CMatchSyntax;
44423
 
  friend class ::ExtGnu;
 
53515
  friend class ::WinAsm;
 
53516
  friend class ::WinDeclSpecs;
 
53517
  friend class ::WinMemberExplSpec;
 
53518
  friend class ::WinTypeKeywords;
 
53519
  friend class ::WinFriend;
44424
53520
  friend class ::ExtAC;
44425
53521
  friend class ::ExtACBuilderCoupling;
44426
53522
  friend class ::ExtACSyntaxCoupling;
44427
53523
  friend class ::ExtACTree;
44428
53524
  friend class ::ExtACKeywords;
44429
 
  friend class ::WinAsm;
44430
 
  friend class ::WinDeclSpecs;
44431
 
  friend class ::WinMemberExplSpec;
44432
 
  friend class ::WinTypeKeywords;
 
53525
  friend class ::ExtGnu;
44433
53526
  friend class ::PragmaOnceUnitState;
44434
53527
  friend class ::PragmaOnce;
44435
 
  friend class ::CCExprResolve;
44436
 
  friend class ::CExprResolve;
 
53528
  friend class ::CMatchSyntax;
44437
53529
 
44438
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53530
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44439
53531
 
44440
53532
public:
 
53533
  /** Constructor. */
44441
53534
  CT_ExprList () { AddProperties (SEPARATORS); }
 
53535
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44442
53536
  static const char *NodeId ();
 
53537
  /** Get the name of the node. Can be compared with NodeId(). */
44443
53538
  const char *NodeName () const { return NodeId (); }
44444
53539
 
 
53540
  /** Get the type of the last expression in the expression list.
 
53541
   *  \return The type or NULL. */
44445
53542
  CTypeInfo *Type () const { return type; }
 
53543
  /** Get the value of the last expression in the expression list.
 
53544
   *  \return The value of NULL. */
44446
53545
  CExprValue *Value () const { return value; }
 
53546
  /** Get the semantic value of the node. */
44447
53547
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
53548
  /** Get the semantic object of the node. */
44448
53549
  CSemObject *SemObject () const { return (CSemObject*)this; }
44449
53550
};
44450
53551
 
 
53552
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
53553
 *  Tree node representing a list of declarators. */
44451
53554
 
44452
 
#line 44453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53555
#line 53556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44453
53556
} // closed Puma
 
53557
class CCExprResolve;
 
53558
class CExprResolve;
44454
53559
class WinIfExists;
44455
53560
class WinImportHandler;
44456
53561
class WinMacros;
44457
 
class CMatchSyntax;
44458
 
class ExtGnu;
 
53562
class WinAsm;
 
53563
class WinDeclSpecs;
 
53564
class WinMemberExplSpec;
 
53565
class WinTypeKeywords;
 
53566
class WinFriend;
44459
53567
class ExtAC;
44460
53568
class ExtACBuilderCoupling;
44461
53569
class ExtACSyntaxCoupling;
44462
53570
class ExtACTree;
44463
53571
class ExtACKeywords;
44464
 
class WinAsm;
44465
 
class WinDeclSpecs;
44466
 
class WinMemberExplSpec;
44467
 
class WinTypeKeywords;
 
53572
class ExtGnu;
44468
53573
class PragmaOnceUnitState;
44469
53574
class PragmaOnce;
44470
 
class CCExprResolve;
44471
 
class CExprResolve;
 
53575
class CMatchSyntax;
44472
53576
namespace Puma {
44473
53577
 
44474
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53578
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44475
53579
class CT_DeclaratorList : public CT_List {
44476
 
#line 44477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53580
#line 53581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53581
  friend class ::CCExprResolve;
 
53582
  friend class ::CExprResolve;
44477
53583
  friend class ::WinIfExists;
44478
53584
  friend class ::WinImportHandler;
44479
53585
  friend class ::WinMacros;
44480
 
  friend class ::CMatchSyntax;
44481
 
  friend class ::ExtGnu;
 
53586
  friend class ::WinAsm;
 
53587
  friend class ::WinDeclSpecs;
 
53588
  friend class ::WinMemberExplSpec;
 
53589
  friend class ::WinTypeKeywords;
 
53590
  friend class ::WinFriend;
44482
53591
  friend class ::ExtAC;
44483
53592
  friend class ::ExtACBuilderCoupling;
44484
53593
  friend class ::ExtACSyntaxCoupling;
44485
53594
  friend class ::ExtACTree;
44486
53595
  friend class ::ExtACKeywords;
44487
 
  friend class ::WinAsm;
44488
 
  friend class ::WinDeclSpecs;
44489
 
  friend class ::WinMemberExplSpec;
44490
 
  friend class ::WinTypeKeywords;
 
53596
  friend class ::ExtGnu;
44491
53597
  friend class ::PragmaOnceUnitState;
44492
53598
  friend class ::PragmaOnce;
44493
 
  friend class ::CCExprResolve;
44494
 
  friend class ::CExprResolve;
 
53599
  friend class ::CMatchSyntax;
44495
53600
 
44496
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53601
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44497
53602
 
44498
53603
public:
 
53604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44499
53605
  static const char *NodeId ();
 
53606
  /** Get the name of the node. Can be compared with NodeId(). */
44500
53607
  const char *NodeName () const { return NodeId (); }
44501
53608
};
44502
53609
 
 
53610
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
53611
 *  Tree node representing a list of enumerator constants. */
44503
53612
 
44504
 
#line 44505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53613
#line 53614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44505
53614
} // closed Puma
 
53615
class CCExprResolve;
 
53616
class CExprResolve;
44506
53617
class WinIfExists;
44507
53618
class WinImportHandler;
44508
53619
class WinMacros;
44509
 
class CMatchSyntax;
44510
 
class ExtGnu;
 
53620
class WinAsm;
 
53621
class WinDeclSpecs;
 
53622
class WinMemberExplSpec;
 
53623
class WinTypeKeywords;
 
53624
class WinFriend;
44511
53625
class ExtAC;
44512
53626
class ExtACBuilderCoupling;
44513
53627
class ExtACSyntaxCoupling;
44514
53628
class ExtACTree;
44515
53629
class ExtACKeywords;
44516
 
class WinAsm;
44517
 
class WinDeclSpecs;
44518
 
class WinMemberExplSpec;
44519
 
class WinTypeKeywords;
 
53630
class ExtGnu;
44520
53631
class PragmaOnceUnitState;
44521
53632
class PragmaOnce;
44522
 
class CCExprResolve;
44523
 
class CExprResolve;
 
53633
class CMatchSyntax;
44524
53634
namespace Puma {
44525
53635
 
44526
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53636
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44527
53637
class CT_EnumeratorList : public CT_List {
44528
 
#line 44529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53638
#line 53639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53639
  friend class ::CCExprResolve;
 
53640
  friend class ::CExprResolve;
44529
53641
  friend class ::WinIfExists;
44530
53642
  friend class ::WinImportHandler;
44531
53643
  friend class ::WinMacros;
44532
 
  friend class ::CMatchSyntax;
44533
 
  friend class ::ExtGnu;
 
53644
  friend class ::WinAsm;
 
53645
  friend class ::WinDeclSpecs;
 
53646
  friend class ::WinMemberExplSpec;
 
53647
  friend class ::WinTypeKeywords;
 
53648
  friend class ::WinFriend;
44534
53649
  friend class ::ExtAC;
44535
53650
  friend class ::ExtACBuilderCoupling;
44536
53651
  friend class ::ExtACSyntaxCoupling;
44537
53652
  friend class ::ExtACTree;
44538
53653
  friend class ::ExtACKeywords;
44539
 
  friend class ::WinAsm;
44540
 
  friend class ::WinDeclSpecs;
44541
 
  friend class ::WinMemberExplSpec;
44542
 
  friend class ::WinTypeKeywords;
 
53654
  friend class ::ExtGnu;
44543
53655
  friend class ::PragmaOnceUnitState;
44544
53656
  friend class ::PragmaOnce;
44545
 
  friend class ::CCExprResolve;
44546
 
  friend class ::CExprResolve;
 
53657
  friend class ::CMatchSyntax;
44547
53658
 
44548
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53659
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44549
53660
 
44550
53661
public:
 
53662
  /** Constructor. */
44551
53663
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
53664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44552
53665
  static const char *NodeId ();
 
53666
  /** Get the name of the node. Can be compared with NodeId(). */
44553
53667
  const char *NodeName () const { return NodeId (); }
44554
53668
};
44555
53669
   
 
53670
/** \class CT_DeclList CTree.h Puma/CTree.h
 
53671
 *  Tree node representing a list of declarations. */
44556
53672
 
44557
 
#line 44558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53673
#line 53674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44558
53674
} // closed Puma
 
53675
class CCExprResolve;
 
53676
class CExprResolve;
44559
53677
class WinIfExists;
44560
53678
class WinImportHandler;
44561
53679
class WinMacros;
44562
 
class CMatchSyntax;
44563
 
class ExtGnu;
 
53680
class WinAsm;
 
53681
class WinDeclSpecs;
 
53682
class WinMemberExplSpec;
 
53683
class WinTypeKeywords;
 
53684
class WinFriend;
44564
53685
class ExtAC;
44565
53686
class ExtACBuilderCoupling;
44566
53687
class ExtACSyntaxCoupling;
44567
53688
class ExtACTree;
44568
53689
class ExtACKeywords;
44569
 
class WinAsm;
44570
 
class WinDeclSpecs;
44571
 
class WinMemberExplSpec;
44572
 
class WinTypeKeywords;
 
53690
class ExtGnu;
44573
53691
class PragmaOnceUnitState;
44574
53692
class PragmaOnce;
44575
 
class CCExprResolve;
44576
 
class CExprResolve;
 
53693
class CMatchSyntax;
44577
53694
namespace Puma {
44578
53695
 
44579
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53696
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44580
53697
class CT_DeclList : public CT_List {
44581
 
#line 44582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53698
#line 53699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53699
  friend class ::CCExprResolve;
 
53700
  friend class ::CExprResolve;
44582
53701
  friend class ::WinIfExists;
44583
53702
  friend class ::WinImportHandler;
44584
53703
  friend class ::WinMacros;
44585
 
  friend class ::CMatchSyntax;
44586
 
  friend class ::ExtGnu;
 
53704
  friend class ::WinAsm;
 
53705
  friend class ::WinDeclSpecs;
 
53706
  friend class ::WinMemberExplSpec;
 
53707
  friend class ::WinTypeKeywords;
 
53708
  friend class ::WinFriend;
44587
53709
  friend class ::ExtAC;
44588
53710
  friend class ::ExtACBuilderCoupling;
44589
53711
  friend class ::ExtACSyntaxCoupling;
44590
53712
  friend class ::ExtACTree;
44591
53713
  friend class ::ExtACKeywords;
44592
 
  friend class ::WinAsm;
44593
 
  friend class ::WinDeclSpecs;
44594
 
  friend class ::WinMemberExplSpec;
44595
 
  friend class ::WinTypeKeywords;
 
53714
  friend class ::ExtGnu;
44596
53715
  friend class ::PragmaOnceUnitState;
44597
53716
  friend class ::PragmaOnce;
44598
 
  friend class ::CCExprResolve;
44599
 
  friend class ::CExprResolve;
 
53717
  friend class ::CMatchSyntax;
44600
53718
 
44601
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53719
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44602
53720
 
44603
53721
public:
 
53722
  /** Constructor. 
 
53723
   *  \param size The initial size of the list.
 
53724
   *  \param incr The initial increment count of the list. */
44604
53725
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
53726
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44605
53727
  static const char *NodeId ();
 
53728
  /** Get the name of the node. Can be compared with NodeId(). */
44606
53729
  const char *NodeName () const { return NodeId (); }
 
53730
  /** Set the linkage specifiers to each declaration in the list.
 
53731
   *  \param l The linkage specifiers node. */
44607
53732
  void Linkage (CT_LinkageSpec *l);
44608
53733
};
44609
53734
 
 
53735
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
53736
 *  Tree node representing a sequence of declaration specifiers. */
44610
53737
 
44611
 
#line 44612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53738
#line 53739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44612
53739
} // closed Puma
 
53740
class CCExprResolve;
 
53741
class CExprResolve;
44613
53742
class WinIfExists;
44614
53743
class WinImportHandler;
44615
53744
class WinMacros;
44616
 
class CMatchSyntax;
44617
 
class ExtGnu;
 
53745
class WinAsm;
 
53746
class WinDeclSpecs;
 
53747
class WinMemberExplSpec;
 
53748
class WinTypeKeywords;
 
53749
class WinFriend;
44618
53750
class ExtAC;
44619
53751
class ExtACBuilderCoupling;
44620
53752
class ExtACSyntaxCoupling;
44621
53753
class ExtACTree;
44622
53754
class ExtACKeywords;
44623
 
class WinAsm;
44624
 
class WinDeclSpecs;
44625
 
class WinMemberExplSpec;
44626
 
class WinTypeKeywords;
 
53755
class ExtGnu;
44627
53756
class PragmaOnceUnitState;
44628
53757
class PragmaOnce;
44629
 
class CCExprResolve;
44630
 
class CExprResolve;
 
53758
class CMatchSyntax;
44631
53759
namespace Puma {
44632
53760
 
44633
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53761
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44634
53762
class CT_DeclSpecSeq : public CT_List {
44635
 
#line 44636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53763
#line 53764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53764
  friend class ::CCExprResolve;
 
53765
  friend class ::CExprResolve;
44636
53766
  friend class ::WinIfExists;
44637
53767
  friend class ::WinImportHandler;
44638
53768
  friend class ::WinMacros;
44639
 
  friend class ::CMatchSyntax;
44640
 
  friend class ::ExtGnu;
 
53769
  friend class ::WinAsm;
 
53770
  friend class ::WinDeclSpecs;
 
53771
  friend class ::WinMemberExplSpec;
 
53772
  friend class ::WinTypeKeywords;
 
53773
  friend class ::WinFriend;
44641
53774
  friend class ::ExtAC;
44642
53775
  friend class ::ExtACBuilderCoupling;
44643
53776
  friend class ::ExtACSyntaxCoupling;
44644
53777
  friend class ::ExtACTree;
44645
53778
  friend class ::ExtACKeywords;
44646
 
  friend class ::WinAsm;
44647
 
  friend class ::WinDeclSpecs;
44648
 
  friend class ::WinMemberExplSpec;
44649
 
  friend class ::WinTypeKeywords;
 
53779
  friend class ::ExtGnu;
44650
53780
  friend class ::PragmaOnceUnitState;
44651
53781
  friend class ::PragmaOnce;
44652
 
  friend class ::CCExprResolve;
44653
 
  friend class ::CExprResolve;
 
53782
  friend class ::CMatchSyntax;
44654
53783
 
44655
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53784
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44656
53785
 
44657
53786
public:
 
53787
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44658
53788
  static const char *NodeId ();
 
53789
  /** Get the name of the node. Can be compared with NodeId(). */
44659
53790
  const char *NodeName () const { return NodeId (); }
44660
53791
};
44661
53792
 
 
53793
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
53794
 *  Tree node representing a compound statement. */
44662
53795
 
44663
 
#line 44664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53796
#line 53797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44664
53797
} // closed Puma
 
53798
class CCExprResolve;
 
53799
class CExprResolve;
44665
53800
class WinIfExists;
44666
53801
class WinImportHandler;
44667
53802
class WinMacros;
44668
 
class CMatchSyntax;
44669
 
class ExtGnu;
 
53803
class WinAsm;
 
53804
class WinDeclSpecs;
 
53805
class WinMemberExplSpec;
 
53806
class WinTypeKeywords;
 
53807
class WinFriend;
44670
53808
class ExtAC;
44671
53809
class ExtACBuilderCoupling;
44672
53810
class ExtACSyntaxCoupling;
44673
53811
class ExtACTree;
44674
53812
class ExtACKeywords;
44675
 
class WinAsm;
44676
 
class WinDeclSpecs;
44677
 
class WinMemberExplSpec;
44678
 
class WinTypeKeywords;
 
53813
class ExtGnu;
44679
53814
class PragmaOnceUnitState;
44680
53815
class PragmaOnce;
44681
 
class CCExprResolve;
44682
 
class CExprResolve;
 
53816
class CMatchSyntax;
44683
53817
namespace Puma {
44684
53818
 
44685
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53819
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44686
53820
class CT_CmpdStmt : public CT_List, public CSemScope {
44687
 
#line 44688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53821
#line 53822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53822
  friend class ::CCExprResolve;
 
53823
  friend class ::CExprResolve;
44688
53824
  friend class ::WinIfExists;
44689
53825
  friend class ::WinImportHandler;
44690
53826
  friend class ::WinMacros;
44691
 
  friend class ::CMatchSyntax;
44692
 
  friend class ::ExtGnu;
 
53827
  friend class ::WinAsm;
 
53828
  friend class ::WinDeclSpecs;
 
53829
  friend class ::WinMemberExplSpec;
 
53830
  friend class ::WinTypeKeywords;
 
53831
  friend class ::WinFriend;
44693
53832
  friend class ::ExtAC;
44694
53833
  friend class ::ExtACBuilderCoupling;
44695
53834
  friend class ::ExtACSyntaxCoupling;
44696
53835
  friend class ::ExtACTree;
44697
53836
  friend class ::ExtACKeywords;
44698
 
  friend class ::WinAsm;
44699
 
  friend class ::WinDeclSpecs;
44700
 
  friend class ::WinMemberExplSpec;
44701
 
  friend class ::WinTypeKeywords;
 
53837
  friend class ::ExtGnu;
44702
53838
  friend class ::PragmaOnceUnitState;
44703
53839
  friend class ::PragmaOnce;
44704
 
  friend class ::CCExprResolve;
44705
 
  friend class ::CExprResolve;
 
53840
  friend class ::CMatchSyntax;
44706
53841
 
44707
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53842
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44708
53843
 
44709
53844
public:
 
53845
  /* Constructor. */
44710
53846
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
53847
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44711
53848
  static const char *NodeId ();
 
53849
  /** Get the name of the node. Can be compared with NodeId(). */
44712
53850
  const char *NodeName () const { return NodeId (); }
 
53851
  /** Get the local scope of the compound statement. */
 
53852
  CSemScope *SemScope () const { return (CSemScope*)this; }
44713
53853
};
44714
53854
 
 
53855
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
53856
 *  Tree node representing an exception handler sequence. */
44715
53857
 
44716
 
#line 44717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53858
#line 53859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44717
53859
} // closed Puma
 
53860
class CCExprResolve;
 
53861
class CExprResolve;
44718
53862
class WinIfExists;
44719
53863
class WinImportHandler;
44720
53864
class WinMacros;
44721
 
class CMatchSyntax;
44722
 
class ExtGnu;
 
53865
class WinAsm;
 
53866
class WinDeclSpecs;
 
53867
class WinMemberExplSpec;
 
53868
class WinTypeKeywords;
 
53869
class WinFriend;
44723
53870
class ExtAC;
44724
53871
class ExtACBuilderCoupling;
44725
53872
class ExtACSyntaxCoupling;
44726
53873
class ExtACTree;
44727
53874
class ExtACKeywords;
44728
 
class WinAsm;
44729
 
class WinDeclSpecs;
44730
 
class WinMemberExplSpec;
44731
 
class WinTypeKeywords;
 
53875
class ExtGnu;
44732
53876
class PragmaOnceUnitState;
44733
53877
class PragmaOnce;
44734
 
class CCExprResolve;
44735
 
class CExprResolve;
 
53878
class CMatchSyntax;
44736
53879
namespace Puma {
44737
53880
 
44738
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53881
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44739
53882
class CT_HandlerSeq : public CT_List {
44740
 
#line 44741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53883
#line 53884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53884
  friend class ::CCExprResolve;
 
53885
  friend class ::CExprResolve;
44741
53886
  friend class ::WinIfExists;
44742
53887
  friend class ::WinImportHandler;
44743
53888
  friend class ::WinMacros;
44744
 
  friend class ::CMatchSyntax;
44745
 
  friend class ::ExtGnu;
 
53889
  friend class ::WinAsm;
 
53890
  friend class ::WinDeclSpecs;
 
53891
  friend class ::WinMemberExplSpec;
 
53892
  friend class ::WinTypeKeywords;
 
53893
  friend class ::WinFriend;
44746
53894
  friend class ::ExtAC;
44747
53895
  friend class ::ExtACBuilderCoupling;
44748
53896
  friend class ::ExtACSyntaxCoupling;
44749
53897
  friend class ::ExtACTree;
44750
53898
  friend class ::ExtACKeywords;
44751
 
  friend class ::WinAsm;
44752
 
  friend class ::WinDeclSpecs;
44753
 
  friend class ::WinMemberExplSpec;
44754
 
  friend class ::WinTypeKeywords;
 
53899
  friend class ::ExtGnu;
44755
53900
  friend class ::PragmaOnceUnitState;
44756
53901
  friend class ::PragmaOnce;
44757
 
  friend class ::CCExprResolve;
44758
 
  friend class ::CExprResolve;
 
53902
  friend class ::CMatchSyntax;
44759
53903
 
44760
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53904
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44761
53905
 
44762
53906
public:
 
53907
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44763
53908
  static const char *NodeId ();
 
53909
  /** Get the name of the node. Can be compared with NodeId(). */
44764
53910
  const char *NodeName () const { return NodeId (); }
44765
53911
};
44766
53912
 
 
53913
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
53914
 *  Tree node representing a template parameter list. */
44767
53915
 
44768
 
#line 44769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53916
#line 53917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44769
53917
} // closed Puma
 
53918
class CCExprResolve;
 
53919
class CExprResolve;
44770
53920
class WinIfExists;
44771
53921
class WinImportHandler;
44772
53922
class WinMacros;
44773
 
class CMatchSyntax;
44774
 
class ExtGnu;
 
53923
class WinAsm;
 
53924
class WinDeclSpecs;
 
53925
class WinMemberExplSpec;
 
53926
class WinTypeKeywords;
 
53927
class WinFriend;
44775
53928
class ExtAC;
44776
53929
class ExtACBuilderCoupling;
44777
53930
class ExtACSyntaxCoupling;
44778
53931
class ExtACTree;
44779
53932
class ExtACKeywords;
44780
 
class WinAsm;
44781
 
class WinDeclSpecs;
44782
 
class WinMemberExplSpec;
44783
 
class WinTypeKeywords;
 
53933
class ExtGnu;
44784
53934
class PragmaOnceUnitState;
44785
53935
class PragmaOnce;
44786
 
class CCExprResolve;
44787
 
class CExprResolve;
 
53936
class CMatchSyntax;
44788
53937
namespace Puma {
44789
53938
 
44790
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53939
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44791
53940
class CT_TemplateParamList : public CT_List, public CSemScope {
44792
 
#line 44793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53941
#line 53942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
53942
  friend class ::CCExprResolve;
 
53943
  friend class ::CExprResolve;
44793
53944
  friend class ::WinIfExists;
44794
53945
  friend class ::WinImportHandler;
44795
53946
  friend class ::WinMacros;
44796
 
  friend class ::CMatchSyntax;
44797
 
  friend class ::ExtGnu;
 
53947
  friend class ::WinAsm;
 
53948
  friend class ::WinDeclSpecs;
 
53949
  friend class ::WinMemberExplSpec;
 
53950
  friend class ::WinTypeKeywords;
 
53951
  friend class ::WinFriend;
44798
53952
  friend class ::ExtAC;
44799
53953
  friend class ::ExtACBuilderCoupling;
44800
53954
  friend class ::ExtACSyntaxCoupling;
44801
53955
  friend class ::ExtACTree;
44802
53956
  friend class ::ExtACKeywords;
44803
 
  friend class ::WinAsm;
44804
 
  friend class ::WinDeclSpecs;
44805
 
  friend class ::WinMemberExplSpec;
44806
 
  friend class ::WinTypeKeywords;
 
53957
  friend class ::ExtGnu;
44807
53958
  friend class ::PragmaOnceUnitState;
44808
53959
  friend class ::PragmaOnce;
44809
 
  friend class ::CCExprResolve;
44810
 
  friend class ::CExprResolve;
 
53960
  friend class ::CMatchSyntax;
44811
53961
 
44812
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53962
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44813
53963
 
44814
53964
public:
44815
53965
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
53966
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44816
53967
  static const char *NodeId ();
 
53968
  /** Get the name of the node. Can be compared with NodeId(). */
44817
53969
  const char *NodeName () const { return NodeId (); }
 
53970
  /** Get the scope of the template parameter list. */
 
53971
  CSemScope *SemScope () const { return (CSemScope*)this; }
44818
53972
};
44819
53973
 
 
53974
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
53975
 *  Tree node representing a template argument list. */
44820
53976
 
44821
 
#line 44822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
53977
#line 53978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44822
53978
} // closed Puma
 
53979
class CCExprResolve;
 
53980
class CExprResolve;
44823
53981
class WinIfExists;
44824
53982
class WinImportHandler;
44825
53983
class WinMacros;
44826
 
class CMatchSyntax;
44827
 
class ExtGnu;
 
53984
class WinAsm;
 
53985
class WinDeclSpecs;
 
53986
class WinMemberExplSpec;
 
53987
class WinTypeKeywords;
 
53988
class WinFriend;
44828
53989
class ExtAC;
44829
53990
class ExtACBuilderCoupling;
44830
53991
class ExtACSyntaxCoupling;
44831
53992
class ExtACTree;
44832
53993
class ExtACKeywords;
44833
 
class WinAsm;
44834
 
class WinDeclSpecs;
44835
 
class WinMemberExplSpec;
44836
 
class WinTypeKeywords;
 
53994
class ExtGnu;
44837
53995
class PragmaOnceUnitState;
44838
53996
class PragmaOnce;
44839
 
class CCExprResolve;
44840
 
class CExprResolve;
 
53997
class CMatchSyntax;
44841
53998
namespace Puma {
44842
53999
 
44843
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54000
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44844
54001
class CT_TemplateArgList : public CT_List {
44845
 
#line 44846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54002
#line 54003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54003
  friend class ::CCExprResolve;
 
54004
  friend class ::CExprResolve;
44846
54005
  friend class ::WinIfExists;
44847
54006
  friend class ::WinImportHandler;
44848
54007
  friend class ::WinMacros;
44849
 
  friend class ::CMatchSyntax;
44850
 
  friend class ::ExtGnu;
 
54008
  friend class ::WinAsm;
 
54009
  friend class ::WinDeclSpecs;
 
54010
  friend class ::WinMemberExplSpec;
 
54011
  friend class ::WinTypeKeywords;
 
54012
  friend class ::WinFriend;
44851
54013
  friend class ::ExtAC;
44852
54014
  friend class ::ExtACBuilderCoupling;
44853
54015
  friend class ::ExtACSyntaxCoupling;
44854
54016
  friend class ::ExtACTree;
44855
54017
  friend class ::ExtACKeywords;
44856
 
  friend class ::WinAsm;
44857
 
  friend class ::WinDeclSpecs;
44858
 
  friend class ::WinMemberExplSpec;
44859
 
  friend class ::WinTypeKeywords;
 
54018
  friend class ::ExtGnu;
44860
54019
  friend class ::PragmaOnceUnitState;
44861
54020
  friend class ::PragmaOnce;
44862
 
  friend class ::CCExprResolve;
44863
 
  friend class ::CExprResolve;
 
54021
  friend class ::CMatchSyntax;
44864
54022
 
44865
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54023
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44866
54024
 
44867
54025
public:
 
54026
  /** Constructor. */
44868
54027
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
54028
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44869
54029
  static const char *NodeId ();
 
54030
  /** Get the name of the node. Can be compared with NodeId(). */
44870
54031
  const char *NodeName () const { return NodeId (); }
44871
54032
};
44872
54033
 
44876
54037
/*                                                                           */
44877
54038
/*****************************************************************************/
44878
54039
 
 
54040
/** \class CT_Expression CTree.h Puma/CTree.h
 
54041
 *  Base class for all expression tree nodes. */
44879
54042
 
44880
 
#line 44881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54043
#line 54044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
44881
54044
} // closed Puma
 
54045
class CCExprResolve;
 
54046
class CExprResolve;
44882
54047
class WinIfExists;
44883
54048
class WinImportHandler;
44884
54049
class WinMacros;
44885
 
class CMatchSyntax;
44886
 
class ExtGnu;
 
54050
class WinAsm;
 
54051
class WinDeclSpecs;
 
54052
class WinMemberExplSpec;
 
54053
class WinTypeKeywords;
 
54054
class WinFriend;
44887
54055
class ExtAC;
44888
54056
class ExtACBuilderCoupling;
44889
54057
class ExtACSyntaxCoupling;
44890
54058
class ExtACTree;
44891
54059
class ExtACKeywords;
44892
 
class WinAsm;
44893
 
class WinDeclSpecs;
44894
 
class WinMemberExplSpec;
44895
 
class WinTypeKeywords;
 
54060
class ExtGnu;
44896
54061
class PragmaOnceUnitState;
44897
54062
class PragmaOnce;
44898
 
class CCExprResolve;
44899
 
class CExprResolve;
44900
 
namespace Puma {
44901
 
 
44902
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54063
class CMatchSyntax;
 
54064
namespace Puma {
 
54065
 
 
54066
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54067
 
 
54068
#line 54069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54069
} // closed Puma
 
54070
 
 
54071
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54072
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54073
#include "CCExprResolveH.ah"
 
54074
#endif
 
54075
namespace Puma {
 
54076
 
 
54077
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54078
 
 
54079
#line 54080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54080
} // closed Puma
 
54081
 
 
54082
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54083
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54084
#include "CExprResolveH.ah"
 
54085
#endif
 
54086
namespace Puma {
 
54087
 
 
54088
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44903
54089
class CT_Expression : public CTree, public CSemValue {
44904
 
#line 44905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54090
#line 54091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54091
  friend class ::CCExprResolve;
 
54092
  friend class ::CExprResolve;
44905
54093
  friend class ::WinIfExists;
44906
54094
  friend class ::WinImportHandler;
44907
54095
  friend class ::WinMacros;
44908
 
  friend class ::CMatchSyntax;
44909
 
  friend class ::ExtGnu;
 
54096
  friend class ::WinAsm;
 
54097
  friend class ::WinDeclSpecs;
 
54098
  friend class ::WinMemberExplSpec;
 
54099
  friend class ::WinTypeKeywords;
 
54100
  friend class ::WinFriend;
44910
54101
  friend class ::ExtAC;
44911
54102
  friend class ::ExtACBuilderCoupling;
44912
54103
  friend class ::ExtACSyntaxCoupling;
44913
54104
  friend class ::ExtACTree;
44914
54105
  friend class ::ExtACKeywords;
44915
 
  friend class ::WinAsm;
44916
 
  friend class ::WinDeclSpecs;
44917
 
  friend class ::WinMemberExplSpec;
44918
 
  friend class ::WinTypeKeywords;
 
54106
  friend class ::ExtGnu;
44919
54107
  friend class ::PragmaOnceUnitState;
44920
54108
  friend class ::PragmaOnce;
44921
 
  friend class ::CCExprResolve;
44922
 
  friend class ::CExprResolve;
 
54109
  friend class ::CMatchSyntax;
44923
54110
 
44924
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54111
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44925
54112
 
44926
54113
protected:
 
54114
  /** Constructor. */
44927
54115
  CT_Expression () {}
44928
54116
 
44929
54117
public:
 
54118
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44930
54119
  static const char *NodeId ();
 
54120
  /** Get the name of the node. Can be compared with NodeId(). */
44931
54121
  const char *NodeName () const { return NodeId (); }
 
54122
  /** Get the type of the expression.
 
54123
   *  \return The type information object or NULL. */
44932
54124
  CTypeInfo *Type () const { return type; }
 
54125
  /** Get the value of the expression.
 
54126
   *  \return The value object or NULL. */
44933
54127
  CExprValue *Value () const { return value; }
 
54128
  /** Get the semantic value information of the expression.
 
54129
   *  \return The value object or NULL. */
44934
54130
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
54131
  /** Get this. */
 
54132
  virtual CT_Expression *IsExpression () { return this; }
44935
54133
   private:
44936
54134
  typedef CT_Expression CCExprResolveExpr;
44937
54135
 
44938
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54136
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44939
54137
 public :
44940
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54138
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44941
54139
  typedef CT_Expression CExprResolveExpr;
44942
54140
 
44943
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44944
 
 public :
44945
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44946
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
44947
 
};
44948
 
 
44949
 
 
44950
 
#line 44951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
44951
 
} // closed Puma
44952
 
class WinIfExists;
44953
 
class WinImportHandler;
44954
 
class WinMacros;
44955
 
class CMatchSyntax;
44956
 
class ExtGnu;
44957
 
class ExtAC;
44958
 
class ExtACBuilderCoupling;
44959
 
class ExtACSyntaxCoupling;
44960
 
class ExtACTree;
44961
 
class ExtACKeywords;
44962
 
class WinAsm;
44963
 
class WinDeclSpecs;
44964
 
class WinMemberExplSpec;
44965
 
class WinTypeKeywords;
44966
 
class PragmaOnceUnitState;
44967
 
class PragmaOnce;
44968
 
class CCExprResolve;
44969
 
class CExprResolve;
44970
 
namespace Puma {
44971
 
 
44972
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54141
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54142
 public :
 
54143
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54144
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54145
};
 
54146
 
 
54147
/** \class CT_Call CTree.h Puma/CTree.h
 
54148
 *  Tree node representing explicit or implicit function calls 
 
54149
 *  including built-in or user-defined functions and overloaded
 
54150
 *  operators. */
 
54151
 
 
54152
#line 54153 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54153
} // closed Puma
 
54154
class CCExprResolve;
 
54155
class CExprResolve;
 
54156
class WinIfExists;
 
54157
class WinImportHandler;
 
54158
class WinMacros;
 
54159
class WinAsm;
 
54160
class WinDeclSpecs;
 
54161
class WinMemberExplSpec;
 
54162
class WinTypeKeywords;
 
54163
class WinFriend;
 
54164
class ExtAC;
 
54165
class ExtACBuilderCoupling;
 
54166
class ExtACSyntaxCoupling;
 
54167
class ExtACTree;
 
54168
class ExtACKeywords;
 
54169
class ExtGnu;
 
54170
class PragmaOnceUnitState;
 
54171
class PragmaOnce;
 
54172
class CMatchSyntax;
 
54173
namespace Puma {
 
54174
 
 
54175
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54176
 
 
54177
#line 54178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54178
} // closed Puma
 
54179
 
 
54180
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54181
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54182
#include "CCExprResolveH.ah"
 
54183
#endif
 
54184
namespace Puma {
 
54185
 
 
54186
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54187
 
 
54188
#line 54189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54189
} // closed Puma
 
54190
 
 
54191
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54192
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54193
#include "CExprResolveH.ah"
 
54194
#endif
 
54195
namespace Puma {
 
54196
 
 
54197
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54198
class CT_Call : public CT_Expression, public CSemObject {
 
54199
#line 54200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54200
  friend class ::CCExprResolve;
 
54201
  friend class ::CExprResolve;
 
54202
  friend class ::WinIfExists;
 
54203
  friend class ::WinImportHandler;
 
54204
  friend class ::WinMacros;
 
54205
  friend class ::WinAsm;
 
54206
  friend class ::WinDeclSpecs;
 
54207
  friend class ::WinMemberExplSpec;
 
54208
  friend class ::WinTypeKeywords;
 
54209
  friend class ::WinFriend;
 
54210
  friend class ::ExtAC;
 
54211
  friend class ::ExtACBuilderCoupling;
 
54212
  friend class ::ExtACSyntaxCoupling;
 
54213
  friend class ::ExtACTree;
 
54214
  friend class ::ExtACKeywords;
 
54215
  friend class ::ExtGnu;
 
54216
  friend class ::PragmaOnceUnitState;
 
54217
  friend class ::PragmaOnce;
 
54218
  friend class ::CMatchSyntax;
 
54219
 
 
54220
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54221
 
 
54222
protected:
 
54223
  /** Constructor. */
 
54224
  CT_Call () {}
 
54225
  
 
54226
public:
 
54227
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54228
  static const char *NodeId ();
 
54229
  /** Get the name of the node. Can be compared with NodeId(). */
 
54230
  const char *NodeName () const { return NodeId (); }
 
54231
  /** Get the semantic information of the call.
 
54232
   *  \return The semantic information or NULL. */
 
54233
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54234
  /** Get this. */
 
54235
  CT_Call *IsCall () { return this; }
 
54236
   private:
 
54237
  typedef CT_Call CCExprResolveExpr;
 
54238
 
 
54239
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54240
 public :
 
54241
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
54242
  typedef CT_Call CExprResolveExpr;
 
54243
 
 
54244
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54245
 public :
 
54246
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54247
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54248
};
 
54249
 
 
54250
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
54251
 *  Tree node representing implicit function calls detected by
 
54252
 *  the semantic analysis. */
 
54253
 
 
54254
#line 54255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54255
} // closed Puma
 
54256
class CCExprResolve;
 
54257
class CExprResolve;
 
54258
class WinIfExists;
 
54259
class WinImportHandler;
 
54260
class WinMacros;
 
54261
class WinAsm;
 
54262
class WinDeclSpecs;
 
54263
class WinMemberExplSpec;
 
54264
class WinTypeKeywords;
 
54265
class WinFriend;
 
54266
class ExtAC;
 
54267
class ExtACBuilderCoupling;
 
54268
class ExtACSyntaxCoupling;
 
54269
class ExtACTree;
 
54270
class ExtACKeywords;
 
54271
class ExtGnu;
 
54272
class PragmaOnceUnitState;
 
54273
class PragmaOnce;
 
54274
class CMatchSyntax;
 
54275
namespace Puma {
 
54276
 
 
54277
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54278
 
 
54279
#line 54280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54280
} // closed Puma
 
54281
 
 
54282
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54283
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54284
#include "CCExprResolveH.ah"
 
54285
#endif
 
54286
namespace Puma {
 
54287
 
 
54288
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54289
 
 
54290
#line 54291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54291
} // closed Puma
 
54292
 
 
54293
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54294
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54295
#include "CExprResolveH.ah"
 
54296
#endif
 
54297
namespace Puma {
 
54298
 
 
54299
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54300
class CT_ImplicitCall : public CT_Call {
 
54301
#line 54302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54302
  friend class ::CCExprResolve;
 
54303
  friend class ::CExprResolve;
 
54304
  friend class ::WinIfExists;
 
54305
  friend class ::WinImportHandler;
 
54306
  friend class ::WinMacros;
 
54307
  friend class ::WinAsm;
 
54308
  friend class ::WinDeclSpecs;
 
54309
  friend class ::WinMemberExplSpec;
 
54310
  friend class ::WinTypeKeywords;
 
54311
  friend class ::WinFriend;
 
54312
  friend class ::ExtAC;
 
54313
  friend class ::ExtACBuilderCoupling;
 
54314
  friend class ::ExtACSyntaxCoupling;
 
54315
  friend class ::ExtACTree;
 
54316
  friend class ::ExtACKeywords;
 
54317
  friend class ::ExtGnu;
 
54318
  friend class ::PragmaOnceUnitState;
 
54319
  friend class ::PragmaOnce;
 
54320
  friend class ::CMatchSyntax;
 
54321
 
 
54322
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54323
 
 
54324
  CTree *_arg;
 
54325
 
 
54326
public:
 
54327
  /** Constructor.
 
54328
   *  \param arg The call argument. */
 
54329
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
54330
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
54331
  static const char *NodeId ();
 
54332
  /** Get the name of the node. Can be compared with NodeId(). */
 
54333
  const char *NodeName () const { return NodeId (); }
 
54334
  /** Get the number of sons. */
 
54335
  int Sons () const { return 1; }
 
54336
  /** Get the n-th son.
 
54337
   *  \param n The index of the son.
 
54338
   *  \return The n-th son or NULL. */
 
54339
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
54340
  /** Replace a son.
 
54341
   *  \param old_son The son to replace.
 
54342
   *  \param new_son The new son. */
 
54343
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
54344
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
54345
   private:
 
54346
  typedef CT_ImplicitCall CCExprResolveExpr;
 
54347
 
 
54348
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54349
 public :
 
54350
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
54351
  typedef CT_ImplicitCall CExprResolveExpr;
 
54352
 
 
54353
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54354
 public :
 
54355
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54356
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54357
};
 
54358
 
 
54359
/** \class CT_String CTree.h Puma/CTree.h
 
54360
 *  Tree node representing a string literal. */
 
54361
 
 
54362
#line 54363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54363
} // closed Puma
 
54364
class CCExprResolve;
 
54365
class CExprResolve;
 
54366
class WinIfExists;
 
54367
class WinImportHandler;
 
54368
class WinMacros;
 
54369
class WinAsm;
 
54370
class WinDeclSpecs;
 
54371
class WinMemberExplSpec;
 
54372
class WinTypeKeywords;
 
54373
class WinFriend;
 
54374
class ExtAC;
 
54375
class ExtACBuilderCoupling;
 
54376
class ExtACSyntaxCoupling;
 
54377
class ExtACTree;
 
54378
class ExtACKeywords;
 
54379
class ExtGnu;
 
54380
class PragmaOnceUnitState;
 
54381
class PragmaOnce;
 
54382
class CMatchSyntax;
 
54383
namespace Puma {
 
54384
 
 
54385
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54386
 
 
54387
#line 54388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54388
} // closed Puma
 
54389
 
 
54390
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54391
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54392
#include "CCExprResolveH.ah"
 
54393
#endif
 
54394
namespace Puma {
 
54395
 
 
54396
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54397
 
 
54398
#line 54399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54399
} // closed Puma
 
54400
 
 
54401
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54402
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54403
#include "CExprResolveH.ah"
 
54404
#endif
 
54405
namespace Puma {
 
54406
 
 
54407
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44973
54408
class CT_String : public CT_List, public CSemValue {
44974
 
#line 44975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54409
#line 54410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54410
  friend class ::CCExprResolve;
 
54411
  friend class ::CExprResolve;
44975
54412
  friend class ::WinIfExists;
44976
54413
  friend class ::WinImportHandler;
44977
54414
  friend class ::WinMacros;
44978
 
  friend class ::CMatchSyntax;
44979
 
  friend class ::ExtGnu;
 
54415
  friend class ::WinAsm;
 
54416
  friend class ::WinDeclSpecs;
 
54417
  friend class ::WinMemberExplSpec;
 
54418
  friend class ::WinTypeKeywords;
 
54419
  friend class ::WinFriend;
44980
54420
  friend class ::ExtAC;
44981
54421
  friend class ::ExtACBuilderCoupling;
44982
54422
  friend class ::ExtACSyntaxCoupling;
44983
54423
  friend class ::ExtACTree;
44984
54424
  friend class ::ExtACKeywords;
44985
 
  friend class ::WinAsm;
44986
 
  friend class ::WinDeclSpecs;
44987
 
  friend class ::WinMemberExplSpec;
44988
 
  friend class ::WinTypeKeywords;
 
54425
  friend class ::ExtGnu;
44989
54426
  friend class ::PragmaOnceUnitState;
44990
54427
  friend class ::PragmaOnce;
44991
 
  friend class ::CCExprResolve;
44992
 
  friend class ::CExprResolve;
 
54428
  friend class ::CMatchSyntax;
44993
54429
 
44994
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54430
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44995
54431
 
44996
54432
public:
 
54433
  /** Constructor. 
 
54434
   *  \param size The number of sub-strings. */
44997
54435
  CT_String (int size) : CT_List (size, 1) {}
 
54436
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44998
54437
  static const char *NodeId ();
 
54438
  /** Get the name of the node. Can be compared with NodeId(). */
44999
54439
  const char *NodeName () const { return NodeId (); }
45000
54440
 
 
54441
  /** Get the type of the string. 
 
54442
   *  \return The type or NULL. */
45001
54443
  CTypeInfo *Type () const { return type; }
 
54444
  /** Get the string value.
 
54445
   *  \return The value or NULL. */
45002
54446
  CExprValue *Value () const { return value; }
 
54447
  /** Get the semantic value info object.
 
54448
   *  \return The semantic value object or NULL. */
45003
54449
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
54450
  /** Get this. */
 
54451
  virtual CT_String *IsString () { return this; }
45004
54452
   private:
45005
54453
  typedef CT_String CCExprResolveExpr;
45006
54454
 
45007
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54455
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45008
54456
 public :
45009
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54457
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45010
54458
  typedef CT_String CExprResolveExpr;
45011
54459
 
45012
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54460
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45013
54461
 public :
45014
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45015
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54462
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54463
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45016
54464
};
45017
54465
 
 
54466
/** \class CT_WideString CTree.h Puma/CTree.h
 
54467
 *  Tree node representing a wide string literal. */
45018
54468
 
45019
 
#line 45020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54469
#line 54470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45020
54470
} // closed Puma
 
54471
class CCExprResolve;
 
54472
class CExprResolve;
45021
54473
class WinIfExists;
45022
54474
class WinImportHandler;
45023
54475
class WinMacros;
45024
 
class CMatchSyntax;
45025
 
class ExtGnu;
 
54476
class WinAsm;
 
54477
class WinDeclSpecs;
 
54478
class WinMemberExplSpec;
 
54479
class WinTypeKeywords;
 
54480
class WinFriend;
45026
54481
class ExtAC;
45027
54482
class ExtACBuilderCoupling;
45028
54483
class ExtACSyntaxCoupling;
45029
54484
class ExtACTree;
45030
54485
class ExtACKeywords;
45031
 
class WinAsm;
45032
 
class WinDeclSpecs;
45033
 
class WinMemberExplSpec;
45034
 
class WinTypeKeywords;
 
54486
class ExtGnu;
45035
54487
class PragmaOnceUnitState;
45036
54488
class PragmaOnce;
45037
 
class CCExprResolve;
45038
 
class CExprResolve;
45039
 
namespace Puma {
45040
 
 
45041
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54489
class CMatchSyntax;
 
54490
namespace Puma {
 
54491
 
 
54492
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54493
 
 
54494
#line 54495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54495
} // closed Puma
 
54496
 
 
54497
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54498
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54499
#include "CCExprResolveH.ah"
 
54500
#endif
 
54501
namespace Puma {
 
54502
 
 
54503
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54504
 
 
54505
#line 54506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54506
} // closed Puma
 
54507
 
 
54508
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54509
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54510
#include "CExprResolveH.ah"
 
54511
#endif
 
54512
namespace Puma {
 
54513
 
 
54514
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45042
54515
class CT_WideString : public CT_String {
45043
 
#line 45044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54516
#line 54517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54517
  friend class ::CCExprResolve;
 
54518
  friend class ::CExprResolve;
45044
54519
  friend class ::WinIfExists;
45045
54520
  friend class ::WinImportHandler;
45046
54521
  friend class ::WinMacros;
45047
 
  friend class ::CMatchSyntax;
45048
 
  friend class ::ExtGnu;
 
54522
  friend class ::WinAsm;
 
54523
  friend class ::WinDeclSpecs;
 
54524
  friend class ::WinMemberExplSpec;
 
54525
  friend class ::WinTypeKeywords;
 
54526
  friend class ::WinFriend;
45049
54527
  friend class ::ExtAC;
45050
54528
  friend class ::ExtACBuilderCoupling;
45051
54529
  friend class ::ExtACSyntaxCoupling;
45052
54530
  friend class ::ExtACTree;
45053
54531
  friend class ::ExtACKeywords;
45054
 
  friend class ::WinAsm;
45055
 
  friend class ::WinDeclSpecs;
45056
 
  friend class ::WinMemberExplSpec;
45057
 
  friend class ::WinTypeKeywords;
 
54532
  friend class ::ExtGnu;
45058
54533
  friend class ::PragmaOnceUnitState;
45059
54534
  friend class ::PragmaOnce;
45060
 
  friend class ::CCExprResolve;
45061
 
  friend class ::CExprResolve;
 
54535
  friend class ::CMatchSyntax;
45062
54536
 
45063
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54537
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45064
54538
 
45065
54539
public:
 
54540
  /** Constructor.
 
54541
   *  \param size The number of sub-strings. */
45066
54542
  CT_WideString (int size) : CT_String (size) {}
 
54543
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45067
54544
  static const char *NodeId ();
 
54545
  /** Get the name of the node. Can be compared with NodeId(). */
45068
54546
  const char *NodeName () const { return NodeId (); }
45069
54547
   private:
45070
54548
  typedef CT_WideString CCExprResolveExpr;
45071
54549
 
45072
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54550
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45073
54551
 public :
45074
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54552
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45075
54553
  typedef CT_WideString CExprResolveExpr;
45076
54554
 
45077
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54555
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45078
54556
 public :
45079
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45080
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54557
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54558
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45081
54559
};
45082
54560
 
 
54561
/** \class CT_Integer CTree.h Puma/CTree.h
 
54562
 *  Tree node representing an integer constant. */
45083
54563
 
45084
 
#line 45085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54564
#line 54565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45085
54565
} // closed Puma
 
54566
class CCExprResolve;
 
54567
class CExprResolve;
45086
54568
class WinIfExists;
45087
54569
class WinImportHandler;
45088
54570
class WinMacros;
45089
 
class CMatchSyntax;
45090
 
class ExtGnu;
 
54571
class WinAsm;
 
54572
class WinDeclSpecs;
 
54573
class WinMemberExplSpec;
 
54574
class WinTypeKeywords;
 
54575
class WinFriend;
45091
54576
class ExtAC;
45092
54577
class ExtACBuilderCoupling;
45093
54578
class ExtACSyntaxCoupling;
45094
54579
class ExtACTree;
45095
54580
class ExtACKeywords;
45096
 
class WinAsm;
45097
 
class WinDeclSpecs;
45098
 
class WinMemberExplSpec;
45099
 
class WinTypeKeywords;
 
54581
class ExtGnu;
45100
54582
class PragmaOnceUnitState;
45101
54583
class PragmaOnce;
45102
 
class CCExprResolve;
45103
 
class CExprResolve;
45104
 
namespace Puma {
45105
 
 
45106
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54584
class CMatchSyntax;
 
54585
namespace Puma {
 
54586
 
 
54587
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54588
 
 
54589
#line 54590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54590
} // closed Puma
 
54591
 
 
54592
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54593
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54594
#include "CCExprResolveH.ah"
 
54595
#endif
 
54596
namespace Puma {
 
54597
 
 
54598
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54599
 
 
54600
#line 54601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54601
} // closed Puma
 
54602
 
 
54603
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54604
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54605
#include "CExprResolveH.ah"
 
54606
#endif
 
54607
namespace Puma {
 
54608
 
 
54609
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45107
54610
class CT_Integer : public CT_Expression {
45108
 
#line 45109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54611
#line 54612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54612
  friend class ::CCExprResolve;
 
54613
  friend class ::CExprResolve;
45109
54614
  friend class ::WinIfExists;
45110
54615
  friend class ::WinImportHandler;
45111
54616
  friend class ::WinMacros;
45112
 
  friend class ::CMatchSyntax;
45113
 
  friend class ::ExtGnu;
 
54617
  friend class ::WinAsm;
 
54618
  friend class ::WinDeclSpecs;
 
54619
  friend class ::WinMemberExplSpec;
 
54620
  friend class ::WinTypeKeywords;
 
54621
  friend class ::WinFriend;
45114
54622
  friend class ::ExtAC;
45115
54623
  friend class ::ExtACBuilderCoupling;
45116
54624
  friend class ::ExtACSyntaxCoupling;
45117
54625
  friend class ::ExtACTree;
45118
54626
  friend class ::ExtACKeywords;
45119
 
  friend class ::WinAsm;
45120
 
  friend class ::WinDeclSpecs;
45121
 
  friend class ::WinMemberExplSpec;
45122
 
  friend class ::WinTypeKeywords;
 
54627
  friend class ::ExtGnu;
45123
54628
  friend class ::PragmaOnceUnitState;
45124
54629
  friend class ::PragmaOnce;
45125
 
  friend class ::CCExprResolve;
45126
 
  friend class ::CExprResolve;
 
54630
  friend class ::CMatchSyntax;
45127
54631
 
45128
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54632
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45129
54633
 
45130
54634
  CTree *_value;  // CT_Token
45131
54635
 
45132
54636
public:
45133
 
  CT_Integer (CTree *t) : _value (t) {}
 
54637
  /** Constructor.
 
54638
   *  \param token The token containing the integer value. */
 
54639
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
54640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45134
54641
  static const char *NodeId ();
 
54642
  /** Get the name of the node. Can be compared with NodeId(). */
45135
54643
  const char *NodeName () const { return NodeId (); }
 
54644
  /** Get the number of sons. */
45136
54645
  int Sons () const { return _value ? 1 : 0; }
 
54646
  /** Get the n-th son.
 
54647
   *  \param n The index of the son.
 
54648
   *  \return The n-th son or NULL. */
45137
54649
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
54650
  /** Replace a son.
 
54651
   *  \param old_son The son to replace.
 
54652
   *  \param new_son The new son. */
45138
54653
  void ReplaceSon (CTree *old_son, CTree *new_son) 
45139
 
   { if (old_son == _value) _value = new_son; }
 
54654
   { CTree::ReplaceSon (_value, old_son, new_son); }
45140
54655
   private:
45141
54656
  typedef CT_Integer CCExprResolveExpr;
45142
54657
 
45143
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54658
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45144
54659
 public :
45145
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54660
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45146
54661
  typedef CT_Integer CExprResolveExpr;
45147
54662
 
45148
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54663
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45149
54664
 public :
45150
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45151
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54665
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54666
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45152
54667
};
45153
54668
 
 
54669
/** \class CT_Character CTree.h Puma/CTree.h
 
54670
 *  Tree node representing a single character constant. */
45154
54671
 
45155
 
#line 45156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54672
#line 54673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45156
54673
} // closed Puma
 
54674
class CCExprResolve;
 
54675
class CExprResolve;
45157
54676
class WinIfExists;
45158
54677
class WinImportHandler;
45159
54678
class WinMacros;
45160
 
class CMatchSyntax;
45161
 
class ExtGnu;
 
54679
class WinAsm;
 
54680
class WinDeclSpecs;
 
54681
class WinMemberExplSpec;
 
54682
class WinTypeKeywords;
 
54683
class WinFriend;
45162
54684
class ExtAC;
45163
54685
class ExtACBuilderCoupling;
45164
54686
class ExtACSyntaxCoupling;
45165
54687
class ExtACTree;
45166
54688
class ExtACKeywords;
45167
 
class WinAsm;
45168
 
class WinDeclSpecs;
45169
 
class WinMemberExplSpec;
45170
 
class WinTypeKeywords;
 
54689
class ExtGnu;
45171
54690
class PragmaOnceUnitState;
45172
54691
class PragmaOnce;
45173
 
class CCExprResolve;
45174
 
class CExprResolve;
45175
 
namespace Puma {
45176
 
 
45177
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54692
class CMatchSyntax;
 
54693
namespace Puma {
 
54694
 
 
54695
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54696
 
 
54697
#line 54698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54698
} // closed Puma
 
54699
 
 
54700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54702
#include "CCExprResolveH.ah"
 
54703
#endif
 
54704
namespace Puma {
 
54705
 
 
54706
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54707
 
 
54708
#line 54709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54709
} // closed Puma
 
54710
 
 
54711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54713
#include "CExprResolveH.ah"
 
54714
#endif
 
54715
namespace Puma {
 
54716
 
 
54717
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45178
54718
class CT_Character : public CT_Expression {
45179
 
#line 45180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54719
#line 54720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54720
  friend class ::CCExprResolve;
 
54721
  friend class ::CExprResolve;
45180
54722
  friend class ::WinIfExists;
45181
54723
  friend class ::WinImportHandler;
45182
54724
  friend class ::WinMacros;
45183
 
  friend class ::CMatchSyntax;
45184
 
  friend class ::ExtGnu;
 
54725
  friend class ::WinAsm;
 
54726
  friend class ::WinDeclSpecs;
 
54727
  friend class ::WinMemberExplSpec;
 
54728
  friend class ::WinTypeKeywords;
 
54729
  friend class ::WinFriend;
45185
54730
  friend class ::ExtAC;
45186
54731
  friend class ::ExtACBuilderCoupling;
45187
54732
  friend class ::ExtACSyntaxCoupling;
45188
54733
  friend class ::ExtACTree;
45189
54734
  friend class ::ExtACKeywords;
45190
 
  friend class ::WinAsm;
45191
 
  friend class ::WinDeclSpecs;
45192
 
  friend class ::WinMemberExplSpec;
45193
 
  friend class ::WinTypeKeywords;
 
54735
  friend class ::ExtGnu;
45194
54736
  friend class ::PragmaOnceUnitState;
45195
54737
  friend class ::PragmaOnce;
45196
 
  friend class ::CCExprResolve;
45197
 
  friend class ::CExprResolve;
 
54738
  friend class ::CMatchSyntax;
45198
54739
 
45199
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54740
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45200
54741
 
45201
54742
  CTree *_value;  // CT_Token
45202
54743
 
45203
54744
public:
45204
 
  CT_Character (CTree *t) : _value (t) {}
 
54745
  /** Constructor.
 
54746
   *  \param token The token containing the character value. */
 
54747
  CT_Character (CTree *token) { AddSon (_value, token); }
 
54748
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45205
54749
  static const char *NodeId ();
 
54750
  /** Get the name of the node. Can be compared with NodeId(). */
45206
54751
  const char *NodeName () const { return NodeId (); }
 
54752
  /** Get the number of sons. */
45207
54753
  int Sons () const { return 1; }
 
54754
  /** Get the n-th son.
 
54755
   *  \param n The index of the son.
 
54756
   *  \return The n-th son or NULL. */
45208
54757
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
54758
  /** Replace a son.
 
54759
   *  \param old_son The son to replace.
 
54760
   *  \param new_son The new son. */
45209
54761
  void ReplaceSon (CTree *old_son, CTree *new_son) 
45210
 
   { if (old_son == _value) _value = new_son; }
 
54762
   { CTree::ReplaceSon (_value, old_son, new_son); }
45211
54763
   private:
45212
54764
  typedef CT_Character CCExprResolveExpr;
45213
54765
 
45214
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54766
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45215
54767
 public :
45216
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54768
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45217
54769
  typedef CT_Character CExprResolveExpr;
45218
54770
 
45219
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54771
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45220
54772
 public :
45221
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45222
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54773
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54774
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45223
54775
};
45224
54776
 
 
54777
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
54778
 *  Tree node representing a wide character constant. */
45225
54779
 
45226
 
#line 45227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54780
#line 54781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45227
54781
} // closed Puma
 
54782
class CCExprResolve;
 
54783
class CExprResolve;
45228
54784
class WinIfExists;
45229
54785
class WinImportHandler;
45230
54786
class WinMacros;
45231
 
class CMatchSyntax;
45232
 
class ExtGnu;
 
54787
class WinAsm;
 
54788
class WinDeclSpecs;
 
54789
class WinMemberExplSpec;
 
54790
class WinTypeKeywords;
 
54791
class WinFriend;
45233
54792
class ExtAC;
45234
54793
class ExtACBuilderCoupling;
45235
54794
class ExtACSyntaxCoupling;
45236
54795
class ExtACTree;
45237
54796
class ExtACKeywords;
45238
 
class WinAsm;
45239
 
class WinDeclSpecs;
45240
 
class WinMemberExplSpec;
45241
 
class WinTypeKeywords;
 
54797
class ExtGnu;
45242
54798
class PragmaOnceUnitState;
45243
54799
class PragmaOnce;
45244
 
class CCExprResolve;
45245
 
class CExprResolve;
45246
 
namespace Puma {
45247
 
 
45248
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54800
class CMatchSyntax;
 
54801
namespace Puma {
 
54802
 
 
54803
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54804
 
 
54805
#line 54806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54806
} // closed Puma
 
54807
 
 
54808
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54809
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54810
#include "CCExprResolveH.ah"
 
54811
#endif
 
54812
namespace Puma {
 
54813
 
 
54814
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54815
 
 
54816
#line 54817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54817
} // closed Puma
 
54818
 
 
54819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54821
#include "CExprResolveH.ah"
 
54822
#endif
 
54823
namespace Puma {
 
54824
 
 
54825
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45249
54826
class CT_WideCharacter : public CT_Character {
45250
 
#line 45251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54827
#line 54828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54828
  friend class ::CCExprResolve;
 
54829
  friend class ::CExprResolve;
45251
54830
  friend class ::WinIfExists;
45252
54831
  friend class ::WinImportHandler;
45253
54832
  friend class ::WinMacros;
45254
 
  friend class ::CMatchSyntax;
45255
 
  friend class ::ExtGnu;
 
54833
  friend class ::WinAsm;
 
54834
  friend class ::WinDeclSpecs;
 
54835
  friend class ::WinMemberExplSpec;
 
54836
  friend class ::WinTypeKeywords;
 
54837
  friend class ::WinFriend;
45256
54838
  friend class ::ExtAC;
45257
54839
  friend class ::ExtACBuilderCoupling;
45258
54840
  friend class ::ExtACSyntaxCoupling;
45259
54841
  friend class ::ExtACTree;
45260
54842
  friend class ::ExtACKeywords;
45261
 
  friend class ::WinAsm;
45262
 
  friend class ::WinDeclSpecs;
45263
 
  friend class ::WinMemberExplSpec;
45264
 
  friend class ::WinTypeKeywords;
 
54843
  friend class ::ExtGnu;
45265
54844
  friend class ::PragmaOnceUnitState;
45266
54845
  friend class ::PragmaOnce;
45267
 
  friend class ::CCExprResolve;
45268
 
  friend class ::CExprResolve;
45269
 
 
45270
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
45271
 
 
45272
 
  CTree *_value;  // CT_Token
 
54846
  friend class ::CMatchSyntax;
 
54847
 
 
54848
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45273
54849
 
45274
54850
public:
45275
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
54851
  /** Constructor.
 
54852
   *  \param token The token containing the wide character value. */
 
54853
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
54854
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45276
54855
  static const char *NodeId ();
 
54856
  /** Get the name of the node. Can be compared with NodeId(). */
45277
54857
  const char *NodeName () const { return NodeId (); }
45278
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
45279
 
   { if (old_son == _value) _value = new_son; }
45280
54858
   private:
45281
54859
  typedef CT_WideCharacter CCExprResolveExpr;
45282
54860
 
45283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54861
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45284
54862
 public :
45285
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54863
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45286
54864
  typedef CT_WideCharacter CExprResolveExpr;
45287
54865
 
45288
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54866
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45289
54867
 public :
45290
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45291
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54868
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54869
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45292
54870
};
45293
54871
 
 
54872
/** \class CT_Float CTree.h Puma/CTree.h
 
54873
 *  Tree node representing a floating point constant. */
45294
54874
 
45295
 
#line 45296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54875
#line 54876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45296
54876
} // closed Puma
 
54877
class CCExprResolve;
 
54878
class CExprResolve;
45297
54879
class WinIfExists;
45298
54880
class WinImportHandler;
45299
54881
class WinMacros;
45300
 
class CMatchSyntax;
45301
 
class ExtGnu;
 
54882
class WinAsm;
 
54883
class WinDeclSpecs;
 
54884
class WinMemberExplSpec;
 
54885
class WinTypeKeywords;
 
54886
class WinFriend;
45302
54887
class ExtAC;
45303
54888
class ExtACBuilderCoupling;
45304
54889
class ExtACSyntaxCoupling;
45305
54890
class ExtACTree;
45306
54891
class ExtACKeywords;
45307
 
class WinAsm;
45308
 
class WinDeclSpecs;
45309
 
class WinMemberExplSpec;
45310
 
class WinTypeKeywords;
 
54892
class ExtGnu;
45311
54893
class PragmaOnceUnitState;
45312
54894
class PragmaOnce;
45313
 
class CCExprResolve;
45314
 
class CExprResolve;
45315
 
namespace Puma {
45316
 
 
45317
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54895
class CMatchSyntax;
 
54896
namespace Puma {
 
54897
 
 
54898
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54899
 
 
54900
#line 54901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54901
} // closed Puma
 
54902
 
 
54903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
54905
#include "CCExprResolveH.ah"
 
54906
#endif
 
54907
namespace Puma {
 
54908
 
 
54909
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54910
 
 
54911
#line 54912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54912
} // closed Puma
 
54913
 
 
54914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
54916
#include "CExprResolveH.ah"
 
54917
#endif
 
54918
namespace Puma {
 
54919
 
 
54920
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45318
54921
class CT_Float : public CT_Expression {
45319
 
#line 45320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54922
#line 54923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
54923
  friend class ::CCExprResolve;
 
54924
  friend class ::CExprResolve;
45320
54925
  friend class ::WinIfExists;
45321
54926
  friend class ::WinImportHandler;
45322
54927
  friend class ::WinMacros;
45323
 
  friend class ::CMatchSyntax;
45324
 
  friend class ::ExtGnu;
 
54928
  friend class ::WinAsm;
 
54929
  friend class ::WinDeclSpecs;
 
54930
  friend class ::WinMemberExplSpec;
 
54931
  friend class ::WinTypeKeywords;
 
54932
  friend class ::WinFriend;
45325
54933
  friend class ::ExtAC;
45326
54934
  friend class ::ExtACBuilderCoupling;
45327
54935
  friend class ::ExtACSyntaxCoupling;
45328
54936
  friend class ::ExtACTree;
45329
54937
  friend class ::ExtACKeywords;
45330
 
  friend class ::WinAsm;
45331
 
  friend class ::WinDeclSpecs;
45332
 
  friend class ::WinMemberExplSpec;
45333
 
  friend class ::WinTypeKeywords;
 
54938
  friend class ::ExtGnu;
45334
54939
  friend class ::PragmaOnceUnitState;
45335
54940
  friend class ::PragmaOnce;
45336
 
  friend class ::CCExprResolve;
45337
 
  friend class ::CExprResolve;
 
54941
  friend class ::CMatchSyntax;
45338
54942
 
45339
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54943
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45340
54944
 
45341
54945
  CTree *_value;  // CT_Token
45342
54946
 
45343
54947
public:
45344
 
  CT_Float (CTree *t) : _value (t) {}
 
54948
  /** Constructor.
 
54949
   *  \param token The token containing the floating point value. */
 
54950
  CT_Float (CTree *token) { AddSon (_value, token); }
 
54951
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45345
54952
  static const char *NodeId ();
 
54953
  /** Get the name of the node. Can be compared with NodeId(). */
45346
54954
  const char *NodeName () const { return NodeId (); }
 
54955
  /** Get the number of sons. */
45347
54956
  int Sons () const { return 1; }
 
54957
  /** Get the n-th son.
 
54958
   *  \param n The index of the son.
 
54959
   *  \return The n-th son or NULL. */
45348
54960
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
54961
  /** Replace a son.
 
54962
   *  \param old_son The son to replace.
 
54963
   *  \param new_son The new son. */
45349
54964
  void ReplaceSon (CTree *old_son, CTree *new_son) 
45350
 
   { if (old_son == _value) _value = new_son; }
 
54965
   { CTree::ReplaceSon (_value, old_son, new_son); }
45351
54966
   private:
45352
54967
  typedef CT_Float CCExprResolveExpr;
45353
54968
 
45354
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
54969
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45355
54970
 public :
45356
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
54971
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45357
54972
  typedef CT_Float CExprResolveExpr;
45358
54973
 
45359
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
54974
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45360
54975
 public :
45361
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45362
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54976
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
54977
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45363
54978
};
45364
54979
 
 
54980
/** \class CT_Bool CTree.h Puma/CTree.h
 
54981
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
45365
54982
 
45366
 
#line 45367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
54983
#line 54984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45367
54984
} // closed Puma
 
54985
class CCExprResolve;
 
54986
class CExprResolve;
45368
54987
class WinIfExists;
45369
54988
class WinImportHandler;
45370
54989
class WinMacros;
45371
 
class CMatchSyntax;
45372
 
class ExtGnu;
 
54990
class WinAsm;
 
54991
class WinDeclSpecs;
 
54992
class WinMemberExplSpec;
 
54993
class WinTypeKeywords;
 
54994
class WinFriend;
45373
54995
class ExtAC;
45374
54996
class ExtACBuilderCoupling;
45375
54997
class ExtACSyntaxCoupling;
45376
54998
class ExtACTree;
45377
54999
class ExtACKeywords;
45378
 
class WinAsm;
45379
 
class WinDeclSpecs;
45380
 
class WinMemberExplSpec;
45381
 
class WinTypeKeywords;
 
55000
class ExtGnu;
45382
55001
class PragmaOnceUnitState;
45383
55002
class PragmaOnce;
45384
 
class CCExprResolve;
45385
 
class CExprResolve;
45386
 
namespace Puma {
45387
 
 
45388
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55003
class CMatchSyntax;
 
55004
namespace Puma {
 
55005
 
 
55006
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55007
 
 
55008
#line 55009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55009
} // closed Puma
 
55010
 
 
55011
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55012
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55013
#include "CCExprResolveH.ah"
 
55014
#endif
 
55015
namespace Puma {
 
55016
 
 
55017
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55018
 
 
55019
#line 55020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55020
} // closed Puma
 
55021
 
 
55022
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55023
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55024
#include "CExprResolveH.ah"
 
55025
#endif
 
55026
namespace Puma {
 
55027
 
 
55028
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45389
55029
class CT_Bool : public CT_Expression {
45390
 
#line 45391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55030
#line 55031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55031
  friend class ::CCExprResolve;
 
55032
  friend class ::CExprResolve;
45391
55033
  friend class ::WinIfExists;
45392
55034
  friend class ::WinImportHandler;
45393
55035
  friend class ::WinMacros;
45394
 
  friend class ::CMatchSyntax;
45395
 
  friend class ::ExtGnu;
 
55036
  friend class ::WinAsm;
 
55037
  friend class ::WinDeclSpecs;
 
55038
  friend class ::WinMemberExplSpec;
 
55039
  friend class ::WinTypeKeywords;
 
55040
  friend class ::WinFriend;
45396
55041
  friend class ::ExtAC;
45397
55042
  friend class ::ExtACBuilderCoupling;
45398
55043
  friend class ::ExtACSyntaxCoupling;
45399
55044
  friend class ::ExtACTree;
45400
55045
  friend class ::ExtACKeywords;
45401
 
  friend class ::WinAsm;
45402
 
  friend class ::WinDeclSpecs;
45403
 
  friend class ::WinMemberExplSpec;
45404
 
  friend class ::WinTypeKeywords;
 
55046
  friend class ::ExtGnu;
45405
55047
  friend class ::PragmaOnceUnitState;
45406
55048
  friend class ::PragmaOnce;
45407
 
  friend class ::CCExprResolve;
45408
 
  friend class ::CExprResolve;
 
55049
  friend class ::CMatchSyntax;
45409
55050
 
45410
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55051
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45411
55052
 
45412
55053
  CTree *_value;  // CT_Token
45413
55054
 
45414
55055
public:
45415
 
  CT_Bool (CTree *t) : _value (t) {}
 
55056
  /** Constructor.
 
55057
   *  \param token The token containing the boolean value. */
 
55058
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
55059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45416
55060
  static const char *NodeId ();
 
55061
  /** Get the name of the node. Can be compared with NodeId(). */
45417
55062
  const char *NodeName () const { return NodeId (); }
 
55063
  /** Get the number of sons. */
45418
55064
  int Sons () const { return 1; }
 
55065
  /** Get the n-th son.
 
55066
   *  \param n The index of the son.
 
55067
   *  \return The n-th son or NULL. */
45419
55068
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
55069
  /** Replace a son.
 
55070
   *  \param old_son The son to replace.
 
55071
   *  \param new_son The new son. */
45420
55072
  void ReplaceSon (CTree *old_son, CTree *new_son) 
45421
 
   { if (old_son == _value) _value = new_son; }
 
55073
   { CTree::ReplaceSon (_value, old_son, new_son); }
45422
55074
   private:
45423
55075
  typedef CT_Bool CCExprResolveExpr;
45424
55076
 
45425
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55077
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45426
55078
 public :
45427
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55079
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45428
55080
  typedef CT_Bool CExprResolveExpr;
45429
55081
 
45430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55082
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45431
55083
 public :
45432
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45433
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55084
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55085
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45434
55086
};
45435
55087
 
 
55088
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
55089
 *  Tree node representing a braced expression, e.g. (a+b). */
45436
55090
 
45437
 
#line 45438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55091
#line 55092 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45438
55092
} // closed Puma
 
55093
class CCExprResolve;
 
55094
class CExprResolve;
45439
55095
class WinIfExists;
45440
55096
class WinImportHandler;
45441
55097
class WinMacros;
45442
 
class CMatchSyntax;
45443
 
class ExtGnu;
 
55098
class WinAsm;
 
55099
class WinDeclSpecs;
 
55100
class WinMemberExplSpec;
 
55101
class WinTypeKeywords;
 
55102
class WinFriend;
45444
55103
class ExtAC;
45445
55104
class ExtACBuilderCoupling;
45446
55105
class ExtACSyntaxCoupling;
45447
55106
class ExtACTree;
45448
55107
class ExtACKeywords;
45449
 
class WinAsm;
45450
 
class WinDeclSpecs;
45451
 
class WinMemberExplSpec;
45452
 
class WinTypeKeywords;
 
55108
class ExtGnu;
45453
55109
class PragmaOnceUnitState;
45454
55110
class PragmaOnce;
45455
 
class CCExprResolve;
45456
 
class CExprResolve;
45457
 
namespace Puma {
45458
 
 
45459
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55111
class CMatchSyntax;
 
55112
namespace Puma {
 
55113
 
 
55114
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55115
 
 
55116
#line 55117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55117
} // closed Puma
 
55118
 
 
55119
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55120
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55121
#include "CCExprResolveH.ah"
 
55122
#endif
 
55123
namespace Puma {
 
55124
 
 
55125
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55126
 
 
55127
#line 55128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55128
} // closed Puma
 
55129
 
 
55130
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55131
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55132
#include "CExprResolveH.ah"
 
55133
#endif
 
55134
namespace Puma {
 
55135
 
 
55136
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45460
55137
class CT_BracedExpr : public CT_Expression {
45461
 
#line 45462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55138
#line 55139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55139
  friend class ::CCExprResolve;
 
55140
  friend class ::CExprResolve;
45462
55141
  friend class ::WinIfExists;
45463
55142
  friend class ::WinImportHandler;
45464
55143
  friend class ::WinMacros;
45465
 
  friend class ::CMatchSyntax;
45466
 
  friend class ::ExtGnu;
 
55144
  friend class ::WinAsm;
 
55145
  friend class ::WinDeclSpecs;
 
55146
  friend class ::WinMemberExplSpec;
 
55147
  friend class ::WinTypeKeywords;
 
55148
  friend class ::WinFriend;
45467
55149
  friend class ::ExtAC;
45468
55150
  friend class ::ExtACBuilderCoupling;
45469
55151
  friend class ::ExtACSyntaxCoupling;
45470
55152
  friend class ::ExtACTree;
45471
55153
  friend class ::ExtACKeywords;
45472
 
  friend class ::WinAsm;
45473
 
  friend class ::WinDeclSpecs;
45474
 
  friend class ::WinMemberExplSpec;
45475
 
  friend class ::WinTypeKeywords;
 
55154
  friend class ::ExtGnu;
45476
55155
  friend class ::PragmaOnceUnitState;
45477
55156
  friend class ::PragmaOnce;
45478
 
  friend class ::CCExprResolve;
45479
 
  friend class ::CExprResolve;
 
55157
  friend class ::CMatchSyntax;
45480
55158
 
45481
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55159
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45482
55160
 
45483
55161
  CTree *sons[3]; // open, expr, close
45484
55162
 
45485
55163
public:
 
55164
  /** Constructor.
 
55165
   *  \param o The opening brace.
 
55166
   *  \param e The enclosed expression.
 
55167
   *  \param c The closing brace. */
45486
55168
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
45487
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
55169
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
45488
55170
  }
 
55171
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45489
55172
  static const char *NodeId ();
 
55173
  /** Get the name of the node. Can be compared with NodeId(). */
45490
55174
  const char *NodeName () const { return NodeId (); }
 
55175
  /** Get the number of sons. */
45491
55176
  int Sons () const { return 3; }
 
55177
  /** Get the n-th son.
 
55178
   *  \param n The index of the son.
 
55179
   *  \return The n-th son or NULL. */
45492
55180
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
55181
  /** Get the enclosed expression. */
45493
55182
  CTree *Expr () const { return sons[1]; }
 
55183
  /** Get the type of the enclosed expression. */
45494
55184
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
55185
  /** Get the value of the enclosed expression. */
45495
55186
  CExprValue *Value () const { return Expr ()->Value (); }
 
55187
  /** Get the semantic value object. */
45496
55188
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55189
  /** Replace a son.
 
55190
   *  \param old_son The son to replace.
 
55191
   *  \param new_son The new son. */
45497
55192
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45498
55193
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45499
55194
  }
45500
55195
   private:
45501
55196
  typedef CT_BracedExpr CCExprResolveExpr;
45502
55197
 
45503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55198
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45504
55199
 public :
45505
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55200
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45506
55201
  typedef CT_BracedExpr CExprResolveExpr;
45507
55202
 
45508
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55203
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45509
55204
 public :
45510
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45511
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55205
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55206
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45512
55207
};
45513
55208
 
 
55209
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
55210
 *  Base class for all tree nodes representing a name. */
45514
55211
 
45515
 
#line 45516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55212
#line 55213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45516
55213
} // closed Puma
 
55214
class CCExprResolve;
 
55215
class CExprResolve;
45517
55216
class WinIfExists;
45518
55217
class WinImportHandler;
45519
55218
class WinMacros;
45520
 
class CMatchSyntax;
45521
 
class ExtGnu;
 
55219
class WinAsm;
 
55220
class WinDeclSpecs;
 
55221
class WinMemberExplSpec;
 
55222
class WinTypeKeywords;
 
55223
class WinFriend;
45522
55224
class ExtAC;
45523
55225
class ExtACBuilderCoupling;
45524
55226
class ExtACSyntaxCoupling;
45525
55227
class ExtACTree;
45526
55228
class ExtACKeywords;
45527
 
class WinAsm;
45528
 
class WinDeclSpecs;
45529
 
class WinMemberExplSpec;
45530
 
class WinTypeKeywords;
 
55229
class ExtGnu;
45531
55230
class PragmaOnceUnitState;
45532
55231
class PragmaOnce;
45533
 
class CCExprResolve;
45534
 
class CExprResolve;
45535
 
namespace Puma {
45536
 
 
45537
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55232
class CMatchSyntax;
 
55233
namespace Puma {
 
55234
 
 
55235
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55236
 
 
55237
#line 55238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55238
} // closed Puma
 
55239
 
 
55240
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55241
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55242
#include "CCExprResolveH.ah"
 
55243
#endif
 
55244
namespace Puma {
 
55245
 
 
55246
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55247
 
 
55248
#line 55249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55249
} // closed Puma
 
55250
 
 
55251
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55252
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55253
#include "CExprResolveH.ah"
 
55254
#endif
 
55255
namespace Puma {
 
55256
 
 
55257
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45538
55258
class CT_SimpleName : public CT_List, public Printable, 
45539
55259
                      public CSemValue, public CSemObject {
45540
 
#line 45541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55260
#line 55261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55261
  friend class ::CCExprResolve;
 
55262
  friend class ::CExprResolve;
45541
55263
  friend class ::WinIfExists;
45542
55264
  friend class ::WinImportHandler;
45543
55265
  friend class ::WinMacros;
45544
 
  friend class ::CMatchSyntax;
45545
 
  friend class ::ExtGnu;
 
55266
  friend class ::WinAsm;
 
55267
  friend class ::WinDeclSpecs;
 
55268
  friend class ::WinMemberExplSpec;
 
55269
  friend class ::WinTypeKeywords;
 
55270
  friend class ::WinFriend;
45546
55271
  friend class ::ExtAC;
45547
55272
  friend class ::ExtACBuilderCoupling;
45548
55273
  friend class ::ExtACSyntaxCoupling;
45549
55274
  friend class ::ExtACTree;
45550
55275
  friend class ::ExtACKeywords;
45551
 
  friend class ::WinAsm;
45552
 
  friend class ::WinDeclSpecs;
45553
 
  friend class ::WinMemberExplSpec;
45554
 
  friend class ::WinTypeKeywords;
 
55276
  friend class ::ExtGnu;
45555
55277
  friend class ::PragmaOnceUnitState;
45556
55278
  friend class ::PragmaOnce;
45557
 
  friend class ::CCExprResolve;
45558
 
  friend class ::CExprResolve;
 
55279
  friend class ::CMatchSyntax;
45559
55280
 
45560
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55281
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45561
55282
 
45562
55283
protected:
 
55284
  /** Constructor.
 
55285
   *  \param size The number of sub-names (for qualified names). */
45563
55286
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
55287
  /** Constructor.
 
55288
   *  \param size The number of sub-names (for qualified names). 
 
55289
   *  \param properties Additional name list properties (for root qualified names). */
45564
55290
  CT_SimpleName (int size, int properties) : 
45565
55291
    CT_List (size, 2, properties) {}
45566
55292
  
45567
55293
public:
 
55294
  /** Constructor.
 
55295
   *  \param n The sub-tree containing the name. */
45568
55296
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
55297
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45569
55298
  static const char *NodeId ();
 
55299
  /** Get the name of the node. Can be compared with NodeId(). */
45570
55300
  const char *NodeName () const { return NodeId (); }
 
55301
  /** Get the string containing the name. */
45571
55302
  virtual const char *Text () const 
45572
55303
   { return Son (Sons ()-1)->token ()->text (); }
 
55304
  /** Print the name on the given stream. 
 
55305
   *  \param os The output stream. */
45573
55306
  virtual void print (ostream &os) const { os << Text (); }
 
55307
  /** Get this. */
45574
55308
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
55309
  /** Get the type of the entity represented by the name. */
45575
55310
  CTypeInfo *Type () const { return type; }
 
55311
  /** Get the value of the entity represented by the name. */ 
45576
55312
  CExprValue *Value () const { return value; }
 
55313
  /** Get the sematic value information object. */
45577
55314
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
55315
  /** Get the sematic information object. */
45578
55316
  CSemObject *SemObject () const { return (CSemObject*)this; }
45579
 
  // special new / delete with reusing memory
45580
 
  void *operator new (size_t);
45581
 
  void  operator delete (void *);
45582
 
  // classification function
 
55317
  /** Get this. */
45583
55318
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
55319
 
 
55320
public:
 
55321
  /** Own new operator reusing memory. */
 
55322
  void *operator new (size_t);
 
55323
  /** Own delete operator. */
 
55324
  void operator delete (void *);
45584
55325
   private:
45585
55326
  typedef CT_SimpleName CCExprResolveExpr;
45586
55327
 
45587
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45588
55329
 public :
45589
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45590
55331
  typedef CT_SimpleName CExprResolveExpr;
45591
55332
 
45592
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45593
55334
 public :
45594
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45595
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55336
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45596
55337
};
45597
55338
 
 
55339
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
55340
 *  Base class for tree nodes representing a special name, like destructor names. */
45598
55341
 
45599
 
#line 45600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55342
#line 55343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45600
55343
} // closed Puma
 
55344
class CCExprResolve;
 
55345
class CExprResolve;
45601
55346
class WinIfExists;
45602
55347
class WinImportHandler;
45603
55348
class WinMacros;
45604
 
class CMatchSyntax;
45605
 
class ExtGnu;
 
55349
class WinAsm;
 
55350
class WinDeclSpecs;
 
55351
class WinMemberExplSpec;
 
55352
class WinTypeKeywords;
 
55353
class WinFriend;
45606
55354
class ExtAC;
45607
55355
class ExtACBuilderCoupling;
45608
55356
class ExtACSyntaxCoupling;
45609
55357
class ExtACTree;
45610
55358
class ExtACKeywords;
45611
 
class WinAsm;
45612
 
class WinDeclSpecs;
45613
 
class WinMemberExplSpec;
45614
 
class WinTypeKeywords;
 
55359
class ExtGnu;
45615
55360
class PragmaOnceUnitState;
45616
55361
class PragmaOnce;
45617
 
class CCExprResolve;
45618
 
class CExprResolve;
45619
 
namespace Puma {
45620
 
 
45621
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55362
class CMatchSyntax;
 
55363
namespace Puma {
 
55364
 
 
55365
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55366
 
 
55367
#line 55368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55368
} // closed Puma
 
55369
 
 
55370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55372
#include "CCExprResolveH.ah"
 
55373
#endif
 
55374
namespace Puma {
 
55375
 
 
55376
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55377
 
 
55378
#line 55379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55379
} // closed Puma
 
55380
 
 
55381
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55382
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55383
#include "CExprResolveH.ah"
 
55384
#endif
 
55385
namespace Puma {
 
55386
 
 
55387
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45622
55388
class CT_SpecialName : public CT_SimpleName {
45623
 
#line 45624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55389
#line 55390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55390
  friend class ::CCExprResolve;
 
55391
  friend class ::CExprResolve;
45624
55392
  friend class ::WinIfExists;
45625
55393
  friend class ::WinImportHandler;
45626
55394
  friend class ::WinMacros;
45627
 
  friend class ::CMatchSyntax;
45628
 
  friend class ::ExtGnu;
 
55395
  friend class ::WinAsm;
 
55396
  friend class ::WinDeclSpecs;
 
55397
  friend class ::WinMemberExplSpec;
 
55398
  friend class ::WinTypeKeywords;
 
55399
  friend class ::WinFriend;
45629
55400
  friend class ::ExtAC;
45630
55401
  friend class ::ExtACBuilderCoupling;
45631
55402
  friend class ::ExtACSyntaxCoupling;
45632
55403
  friend class ::ExtACTree;
45633
55404
  friend class ::ExtACKeywords;
45634
 
  friend class ::WinAsm;
45635
 
  friend class ::WinDeclSpecs;
45636
 
  friend class ::WinMemberExplSpec;
45637
 
  friend class ::WinTypeKeywords;
 
55405
  friend class ::ExtGnu;
45638
55406
  friend class ::PragmaOnceUnitState;
45639
55407
  friend class ::PragmaOnce;
45640
 
  friend class ::CCExprResolve;
45641
 
  friend class ::CExprResolve;
 
55408
  friend class ::CMatchSyntax;
45642
55409
 
45643
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55410
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45644
55411
 
45645
55412
  char *_name;
45646
55413
  
45647
55414
protected:
 
55415
  /** Constructor.
 
55416
   *  \param size The number of sub-names (for qualified names). */
45648
55417
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
45649
55418
  
45650
55419
public:
 
55420
  /** Destructor. Deletes the name string. */
45651
55421
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
55422
  /** Get the string containing the name. */
45652
55423
  const char *Text () const { return _name; }
 
55424
  /** Set the name. The name is copied.
 
55425
   *  \param n The name. */
45653
55426
  void Name (const char *n) { 
45654
55427
    if (n) { 
45655
55428
      _name = new char[strlen(n) + 1];
45656
55429
      strcpy (_name,n);
45657
55430
    }
45658
55431
  }
45659
 
  // special new / delete with reusing memory
 
55432
 
 
55433
public:
 
55434
  /** Own new operator reusing memory. */
45660
55435
  void *operator new (size_t);
45661
 
  void  operator delete (void *);
 
55436
  /** Own delete operator. */
 
55437
  void operator delete (void *);
45662
55438
   private:
45663
55439
  typedef CT_SpecialName CCExprResolveExpr;
45664
55440
 
45665
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55441
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45666
55442
 public :
45667
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55443
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45668
55444
  typedef CT_SpecialName CExprResolveExpr;
45669
55445
 
45670
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55446
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45671
55447
 public :
45672
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45673
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55448
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55449
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45674
55450
};
45675
55451
 
 
55452
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
55453
 *  Tree node representing a private name. Private names 
 
55454
 *  are generated names for abstract declarators etc. */
45676
55455
 
45677
 
#line 45678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55456
#line 55457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45678
55457
} // closed Puma
 
55458
class CCExprResolve;
 
55459
class CExprResolve;
45679
55460
class WinIfExists;
45680
55461
class WinImportHandler;
45681
55462
class WinMacros;
45682
 
class CMatchSyntax;
45683
 
class ExtGnu;
 
55463
class WinAsm;
 
55464
class WinDeclSpecs;
 
55465
class WinMemberExplSpec;
 
55466
class WinTypeKeywords;
 
55467
class WinFriend;
45684
55468
class ExtAC;
45685
55469
class ExtACBuilderCoupling;
45686
55470
class ExtACSyntaxCoupling;
45687
55471
class ExtACTree;
45688
55472
class ExtACKeywords;
45689
 
class WinAsm;
45690
 
class WinDeclSpecs;
45691
 
class WinMemberExplSpec;
45692
 
class WinTypeKeywords;
 
55473
class ExtGnu;
45693
55474
class PragmaOnceUnitState;
45694
55475
class PragmaOnce;
45695
 
class CCExprResolve;
45696
 
class CExprResolve;
45697
 
namespace Puma {
45698
 
 
45699
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55476
class CMatchSyntax;
 
55477
namespace Puma {
 
55478
 
 
55479
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55480
 
 
55481
#line 55482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55482
} // closed Puma
 
55483
 
 
55484
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55485
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55486
#include "CCExprResolveH.ah"
 
55487
#endif
 
55488
namespace Puma {
 
55489
 
 
55490
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55491
 
 
55492
#line 55493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55493
} // closed Puma
 
55494
 
 
55495
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55496
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55497
#include "CExprResolveH.ah"
 
55498
#endif
 
55499
namespace Puma {
 
55500
 
 
55501
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45700
55502
class CT_PrivateName : public CT_SpecialName {
45701
 
#line 45702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55503
#line 55504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55504
  friend class ::CCExprResolve;
 
55505
  friend class ::CExprResolve;
45702
55506
  friend class ::WinIfExists;
45703
55507
  friend class ::WinImportHandler;
45704
55508
  friend class ::WinMacros;
45705
 
  friend class ::CMatchSyntax;
45706
 
  friend class ::ExtGnu;
 
55509
  friend class ::WinAsm;
 
55510
  friend class ::WinDeclSpecs;
 
55511
  friend class ::WinMemberExplSpec;
 
55512
  friend class ::WinTypeKeywords;
 
55513
  friend class ::WinFriend;
45707
55514
  friend class ::ExtAC;
45708
55515
  friend class ::ExtACBuilderCoupling;
45709
55516
  friend class ::ExtACSyntaxCoupling;
45710
55517
  friend class ::ExtACTree;
45711
55518
  friend class ::ExtACKeywords;
45712
 
  friend class ::WinAsm;
45713
 
  friend class ::WinDeclSpecs;
45714
 
  friend class ::WinMemberExplSpec;
45715
 
  friend class ::WinTypeKeywords;
 
55519
  friend class ::ExtGnu;
45716
55520
  friend class ::PragmaOnceUnitState;
45717
55521
  friend class ::PragmaOnce;
45718
 
  friend class ::CCExprResolve;
45719
 
  friend class ::CExprResolve;
 
55522
  friend class ::CMatchSyntax;
45720
55523
 
45721
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55524
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45722
55525
 
45723
55526
public:
 
55527
  /** Constructor.
 
55528
   *  \param n The private (generated) name. */
45724
55529
  CT_PrivateName (const char *n) { Name (n); }
 
55530
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45725
55531
  static const char *NodeId ();
 
55532
  /** Get the name of the node. Can be compared with NodeId(). */
45726
55533
  const char *NodeName () const { return NodeId (); }
 
55534
  /** Get the number of sons. */
45727
55535
  int Sons () const { return 0; }
 
55536
  /** Get the n-th son.
 
55537
   *  \param n The index of the son.
 
55538
   *  \return The n-th son or NULL. */
45728
55539
  CTree *Son (int n) const { return (CTree*)0; }
45729
 
  // special new / delete with reusing memory
 
55540
 
 
55541
public:
 
55542
  /** Own new operator reusing memory. */
45730
55543
  void *operator new (size_t);
45731
 
  void  operator delete (void *);
 
55544
  /** Own delete operator. */
 
55545
  void operator delete (void *);
45732
55546
   private:
45733
55547
  typedef CT_PrivateName CCExprResolveExpr;
45734
55548
 
45735
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45736
55550
 public :
45737
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55551
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45738
55552
  typedef CT_PrivateName CExprResolveExpr;
45739
55553
 
45740
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55554
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45741
55555
 public :
45742
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45743
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55556
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55557
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45744
55558
};
45745
55559
 
 
55560
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
55561
 *  Tree node representing a destructor name. */
45746
55562
 
45747
 
#line 45748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55563
#line 55564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45748
55564
} // closed Puma
 
55565
class CCExprResolve;
 
55566
class CExprResolve;
45749
55567
class WinIfExists;
45750
55568
class WinImportHandler;
45751
55569
class WinMacros;
45752
 
class CMatchSyntax;
45753
 
class ExtGnu;
 
55570
class WinAsm;
 
55571
class WinDeclSpecs;
 
55572
class WinMemberExplSpec;
 
55573
class WinTypeKeywords;
 
55574
class WinFriend;
45754
55575
class ExtAC;
45755
55576
class ExtACBuilderCoupling;
45756
55577
class ExtACSyntaxCoupling;
45757
55578
class ExtACTree;
45758
55579
class ExtACKeywords;
45759
 
class WinAsm;
45760
 
class WinDeclSpecs;
45761
 
class WinMemberExplSpec;
45762
 
class WinTypeKeywords;
 
55580
class ExtGnu;
45763
55581
class PragmaOnceUnitState;
45764
55582
class PragmaOnce;
45765
 
class CCExprResolve;
45766
 
class CExprResolve;
45767
 
namespace Puma {
45768
 
 
45769
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55583
class CMatchSyntax;
 
55584
namespace Puma {
 
55585
 
 
55586
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55587
 
 
55588
#line 55589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55589
} // closed Puma
 
55590
 
 
55591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55593
#include "CCExprResolveH.ah"
 
55594
#endif
 
55595
namespace Puma {
 
55596
 
 
55597
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55598
 
 
55599
#line 55600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55600
} // closed Puma
 
55601
 
 
55602
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55603
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55604
#include "CExprResolveH.ah"
 
55605
#endif
 
55606
namespace Puma {
 
55607
 
 
55608
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45770
55609
class CT_DestructorName : public CT_SpecialName {
45771
 
#line 45772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55610
#line 55611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55611
  friend class ::CCExprResolve;
 
55612
  friend class ::CExprResolve;
45772
55613
  friend class ::WinIfExists;
45773
55614
  friend class ::WinImportHandler;
45774
55615
  friend class ::WinMacros;
45775
 
  friend class ::CMatchSyntax;
45776
 
  friend class ::ExtGnu;
 
55616
  friend class ::WinAsm;
 
55617
  friend class ::WinDeclSpecs;
 
55618
  friend class ::WinMemberExplSpec;
 
55619
  friend class ::WinTypeKeywords;
 
55620
  friend class ::WinFriend;
45777
55621
  friend class ::ExtAC;
45778
55622
  friend class ::ExtACBuilderCoupling;
45779
55623
  friend class ::ExtACSyntaxCoupling;
45780
55624
  friend class ::ExtACTree;
45781
55625
  friend class ::ExtACKeywords;
45782
 
  friend class ::WinAsm;
45783
 
  friend class ::WinDeclSpecs;
45784
 
  friend class ::WinMemberExplSpec;
45785
 
  friend class ::WinTypeKeywords;
 
55626
  friend class ::ExtGnu;
45786
55627
  friend class ::PragmaOnceUnitState;
45787
55628
  friend class ::PragmaOnce;
45788
 
  friend class ::CCExprResolve;
45789
 
  friend class ::CExprResolve;
 
55629
  friend class ::CMatchSyntax;
45790
55630
 
45791
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55631
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45792
55632
 
45793
55633
public:
45794
 
  CT_DestructorName (CTree *, CTree *);
 
55634
  /** Constructor.
 
55635
   *  \param t The tilde operator.
 
55636
   *  \param n The class name. */
 
55637
  CT_DestructorName (CTree *t, CTree *n);
 
55638
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45795
55639
  static const char *NodeId ();
 
55640
  /** Get the name of the node. Can be compared with NodeId(). */
45796
55641
  const char *NodeName () const { return NodeId (); }
45797
 
  // special new / delete with reusing memory
 
55642
 
 
55643
public:
 
55644
  /** Own new operator reusing memory. */
45798
55645
  void *operator new (size_t);
45799
 
  void  operator delete (void *);
 
55646
  /** Own delete operator. */
 
55647
  void operator delete (void *);
45800
55648
   private:
45801
55649
  typedef CT_DestructorName CCExprResolveExpr;
45802
55650
 
45803
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55651
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45804
55652
 public :
45805
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55653
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45806
55654
  typedef CT_DestructorName CExprResolveExpr;
45807
55655
 
45808
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55656
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45809
55657
 public :
45810
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45811
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55658
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55659
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45812
55660
};
45813
55661
 
 
55662
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
55663
 *  Tree node representing a template name. */
45814
55664
 
45815
 
#line 45816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55665
#line 55666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45816
55666
} // closed Puma
 
55667
class CCExprResolve;
 
55668
class CExprResolve;
45817
55669
class WinIfExists;
45818
55670
class WinImportHandler;
45819
55671
class WinMacros;
45820
 
class CMatchSyntax;
45821
 
class ExtGnu;
 
55672
class WinAsm;
 
55673
class WinDeclSpecs;
 
55674
class WinMemberExplSpec;
 
55675
class WinTypeKeywords;
 
55676
class WinFriend;
45822
55677
class ExtAC;
45823
55678
class ExtACBuilderCoupling;
45824
55679
class ExtACSyntaxCoupling;
45825
55680
class ExtACTree;
45826
55681
class ExtACKeywords;
45827
 
class WinAsm;
45828
 
class WinDeclSpecs;
45829
 
class WinMemberExplSpec;
45830
 
class WinTypeKeywords;
 
55682
class ExtGnu;
45831
55683
class PragmaOnceUnitState;
45832
55684
class PragmaOnce;
45833
 
class CCExprResolve;
45834
 
class CExprResolve;
45835
 
namespace Puma {
45836
 
 
45837
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55685
class CMatchSyntax;
 
55686
namespace Puma {
 
55687
 
 
55688
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55689
 
 
55690
#line 55691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55691
} // closed Puma
 
55692
 
 
55693
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55694
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55695
#include "CCExprResolveH.ah"
 
55696
#endif
 
55697
namespace Puma {
 
55698
 
 
55699
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55700
 
 
55701
#line 55702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55702
} // closed Puma
 
55703
 
 
55704
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55705
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55706
#include "CExprResolveH.ah"
 
55707
#endif
 
55708
namespace Puma {
 
55709
 
 
55710
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45838
55711
class CT_TemplateName : public CT_SpecialName {
45839
 
#line 45840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55712
#line 55713 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55713
  friend class ::CCExprResolve;
 
55714
  friend class ::CExprResolve;
45840
55715
  friend class ::WinIfExists;
45841
55716
  friend class ::WinImportHandler;
45842
55717
  friend class ::WinMacros;
45843
 
  friend class ::CMatchSyntax;
45844
 
  friend class ::ExtGnu;
 
55718
  friend class ::WinAsm;
 
55719
  friend class ::WinDeclSpecs;
 
55720
  friend class ::WinMemberExplSpec;
 
55721
  friend class ::WinTypeKeywords;
 
55722
  friend class ::WinFriend;
45845
55723
  friend class ::ExtAC;
45846
55724
  friend class ::ExtACBuilderCoupling;
45847
55725
  friend class ::ExtACSyntaxCoupling;
45848
55726
  friend class ::ExtACTree;
45849
55727
  friend class ::ExtACKeywords;
45850
 
  friend class ::WinAsm;
45851
 
  friend class ::WinDeclSpecs;
45852
 
  friend class ::WinMemberExplSpec;
45853
 
  friend class ::WinTypeKeywords;
 
55728
  friend class ::ExtGnu;
45854
55729
  friend class ::PragmaOnceUnitState;
45855
55730
  friend class ::PragmaOnce;
45856
 
  friend class ::CCExprResolve;
45857
 
  friend class ::CExprResolve;
 
55731
  friend class ::CMatchSyntax;
45858
55732
 
45859
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55733
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45860
55734
 
45861
55735
public:
 
55736
  /** Constructor.
 
55737
   *  \param n The template class or function name.
 
55738
   *  \param a The template argument list. */
45862
55739
  CT_TemplateName (CTree *n, CTree *a) 
45863
55740
   { AddSon (n); AddSon (a); }
 
55741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45864
55742
  static const char *NodeId ();
 
55743
  /** Get the name of the node. Can be compared with NodeId(). */
45865
55744
  const char *NodeName () const { return NodeId (); }
 
55745
  /** Get the template argument list. */
45866
55746
  CT_TemplateArgList *Arguments () const 
45867
55747
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
55748
  /** Get the template class or function name. */
45868
55749
  CT_SimpleName *TemplateName () const 
45869
55750
   { return (CT_SimpleName*)Son (Sons ()-2); }
45870
55751
  // may change in the future
45871
55752
  const char *Text () const { return TemplateName ()->Text (); }
45872
 
  // special new / delete with reusing memory
 
55753
 
 
55754
public:
 
55755
  /** Own new operator reusing memory. */
45873
55756
  void *operator new (size_t);
45874
 
  void  operator delete (void *);
 
55757
  /** Own delete operator. */
 
55758
  void operator delete (void *);
45875
55759
   private:
45876
55760
  typedef CT_TemplateName CCExprResolveExpr;
45877
55761
 
45878
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55762
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45879
55763
 public :
45880
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55764
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45881
55765
  typedef CT_TemplateName CExprResolveExpr;
45882
55766
 
45883
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55767
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45884
55768
 public :
45885
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45886
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55769
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55770
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45887
55771
};
45888
55772
 
 
55773
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
55774
 *  Tree node representing the name of an overloaded operator. */
45889
55775
 
45890
 
#line 45891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55776
#line 55777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45891
55777
} // closed Puma
 
55778
class CCExprResolve;
 
55779
class CExprResolve;
45892
55780
class WinIfExists;
45893
55781
class WinImportHandler;
45894
55782
class WinMacros;
45895
 
class CMatchSyntax;
45896
 
class ExtGnu;
 
55783
class WinAsm;
 
55784
class WinDeclSpecs;
 
55785
class WinMemberExplSpec;
 
55786
class WinTypeKeywords;
 
55787
class WinFriend;
45897
55788
class ExtAC;
45898
55789
class ExtACBuilderCoupling;
45899
55790
class ExtACSyntaxCoupling;
45900
55791
class ExtACTree;
45901
55792
class ExtACKeywords;
45902
 
class WinAsm;
45903
 
class WinDeclSpecs;
45904
 
class WinMemberExplSpec;
45905
 
class WinTypeKeywords;
 
55793
class ExtGnu;
45906
55794
class PragmaOnceUnitState;
45907
55795
class PragmaOnce;
45908
 
class CCExprResolve;
45909
 
class CExprResolve;
45910
 
namespace Puma {
45911
 
 
45912
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55796
class CMatchSyntax;
 
55797
namespace Puma {
 
55798
 
 
55799
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55800
 
 
55801
#line 55802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55802
} // closed Puma
 
55803
 
 
55804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55806
#include "CCExprResolveH.ah"
 
55807
#endif
 
55808
namespace Puma {
 
55809
 
 
55810
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55811
 
 
55812
#line 55813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55813
} // closed Puma
 
55814
 
 
55815
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55816
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55817
#include "CExprResolveH.ah"
 
55818
#endif
 
55819
namespace Puma {
 
55820
 
 
55821
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45913
55822
class CT_OperatorName : public CT_SpecialName {
45914
 
#line 45915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55823
#line 55824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55824
  friend class ::CCExprResolve;
 
55825
  friend class ::CExprResolve;
45915
55826
  friend class ::WinIfExists;
45916
55827
  friend class ::WinImportHandler;
45917
55828
  friend class ::WinMacros;
45918
 
  friend class ::CMatchSyntax;
45919
 
  friend class ::ExtGnu;
 
55829
  friend class ::WinAsm;
 
55830
  friend class ::WinDeclSpecs;
 
55831
  friend class ::WinMemberExplSpec;
 
55832
  friend class ::WinTypeKeywords;
 
55833
  friend class ::WinFriend;
45920
55834
  friend class ::ExtAC;
45921
55835
  friend class ::ExtACBuilderCoupling;
45922
55836
  friend class ::ExtACSyntaxCoupling;
45923
55837
  friend class ::ExtACTree;
45924
55838
  friend class ::ExtACKeywords;
45925
 
  friend class ::WinAsm;
45926
 
  friend class ::WinDeclSpecs;
45927
 
  friend class ::WinMemberExplSpec;
45928
 
  friend class ::WinTypeKeywords;
 
55839
  friend class ::ExtGnu;
45929
55840
  friend class ::PragmaOnceUnitState;
45930
55841
  friend class ::PragmaOnce;
45931
 
  friend class ::CCExprResolve;
45932
 
  friend class ::CExprResolve;
 
55842
  friend class ::CMatchSyntax;
45933
55843
 
45934
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55844
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45935
55845
 
45936
55846
  int _oper;
45937
55847
 
45938
55848
public:
45939
 
  enum { // complex operators
45940
 
    FCT_CALL = -100,
45941
 
    SUBSCRIPT,
45942
 
    NEW_ARRAY,
45943
 
    DEL_ARRAY
 
55849
  /** Complex operator types. */
 
55850
  enum { 
 
55851
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
55852
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
55853
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
55854
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
45944
55855
  };
45945
55856
 
45946
55857
public:
45947
 
  CT_OperatorName (CTree *);
45948
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
55858
  /** Constructor.
 
55859
   *  \param op The token containing the operator. */
 
55860
  CT_OperatorName (CTree *op);
 
55861
  /** Constructor.
 
55862
   *  \param f The operator function keyword 'operator'.
 
55863
   *  \param op The token containing the operator. 
 
55864
   *  \param o The token of '[' or '('.
 
55865
   *  \param c The token of ']' or ')'. */
 
55866
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
55867
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45949
55868
  static const char *NodeId ();
 
55869
  /** Get the name of the node. Can be compared with NodeId(). */
45950
55870
  const char *NodeName () const { return NodeId (); }
 
55871
  /** Get the operator type (either the token type or one of 
 
55872
   *  the complex operator types). */
45951
55873
  int Operator () const { return _oper; }
45952
 
  // special new / delete with reusing memory
 
55874
 
 
55875
public:
 
55876
  /** Own new operator reusing memory. */
45953
55877
  void *operator new (size_t);
45954
 
  void  operator delete (void *);
 
55878
  /** Own delete operator. */
 
55879
  void operator delete (void *);
45955
55880
   private:
45956
55881
  typedef CT_OperatorName CCExprResolveExpr;
45957
55882
 
45958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55883
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
45959
55884
 public :
45960
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55885
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
45961
55886
  typedef CT_OperatorName CExprResolveExpr;
45962
55887
 
45963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55888
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
45964
55889
 public :
45965
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
45966
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55890
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55891
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45967
55892
};
45968
55893
 
 
55894
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
55895
 *  Tree node representing the name of a conversion function. */
45969
55896
 
45970
 
#line 45971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55897
#line 55898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
45971
55898
} // closed Puma
 
55899
class CCExprResolve;
 
55900
class CExprResolve;
45972
55901
class WinIfExists;
45973
55902
class WinImportHandler;
45974
55903
class WinMacros;
45975
 
class CMatchSyntax;
45976
 
class ExtGnu;
 
55904
class WinAsm;
 
55905
class WinDeclSpecs;
 
55906
class WinMemberExplSpec;
 
55907
class WinTypeKeywords;
 
55908
class WinFriend;
45977
55909
class ExtAC;
45978
55910
class ExtACBuilderCoupling;
45979
55911
class ExtACSyntaxCoupling;
45980
55912
class ExtACTree;
45981
55913
class ExtACKeywords;
45982
 
class WinAsm;
45983
 
class WinDeclSpecs;
45984
 
class WinMemberExplSpec;
45985
 
class WinTypeKeywords;
 
55914
class ExtGnu;
45986
55915
class PragmaOnceUnitState;
45987
55916
class PragmaOnce;
45988
 
class CCExprResolve;
45989
 
class CExprResolve;
45990
 
namespace Puma {
45991
 
 
45992
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55917
class CMatchSyntax;
 
55918
namespace Puma {
 
55919
 
 
55920
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55921
 
 
55922
#line 55923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55923
} // closed Puma
 
55924
 
 
55925
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55926
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
55927
#include "CCExprResolveH.ah"
 
55928
#endif
 
55929
namespace Puma {
 
55930
 
 
55931
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55932
 
 
55933
#line 55934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55934
} // closed Puma
 
55935
 
 
55936
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55937
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
55938
#include "CExprResolveH.ah"
 
55939
#endif
 
55940
namespace Puma {
 
55941
 
 
55942
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45993
55943
class CT_ConversionName : public CT_SpecialName {
45994
 
#line 45995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
55944
#line 55945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
55945
  friend class ::CCExprResolve;
 
55946
  friend class ::CExprResolve;
45995
55947
  friend class ::WinIfExists;
45996
55948
  friend class ::WinImportHandler;
45997
55949
  friend class ::WinMacros;
45998
 
  friend class ::CMatchSyntax;
45999
 
  friend class ::ExtGnu;
 
55950
  friend class ::WinAsm;
 
55951
  friend class ::WinDeclSpecs;
 
55952
  friend class ::WinMemberExplSpec;
 
55953
  friend class ::WinTypeKeywords;
 
55954
  friend class ::WinFriend;
46000
55955
  friend class ::ExtAC;
46001
55956
  friend class ::ExtACBuilderCoupling;
46002
55957
  friend class ::ExtACSyntaxCoupling;
46003
55958
  friend class ::ExtACTree;
46004
55959
  friend class ::ExtACKeywords;
46005
 
  friend class ::WinAsm;
46006
 
  friend class ::WinDeclSpecs;
46007
 
  friend class ::WinMemberExplSpec;
46008
 
  friend class ::WinTypeKeywords;
 
55960
  friend class ::ExtGnu;
46009
55961
  friend class ::PragmaOnceUnitState;
46010
55962
  friend class ::PragmaOnce;
46011
 
  friend class ::CCExprResolve;
46012
 
  friend class ::CExprResolve;
 
55963
  friend class ::CMatchSyntax;
46013
55964
 
46014
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55965
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46015
55966
 
46016
55967
public:
46017
 
  CT_ConversionName (CTree *, CTree *);
 
55968
  /** Constructor.
 
55969
   *  \param f The operator function keyword 'operator'.
 
55970
   *  \param t The sub-tree containing the conversion type. */
 
55971
  CT_ConversionName (CTree *f, CTree *t);
 
55972
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46018
55973
  static const char *NodeId ();
 
55974
  /** Get the name of the node. Can be compared with NodeId(). */
46019
55975
  const char *NodeName () const { return NodeId (); }
 
55976
  /** Get the conversion type. */
46020
55977
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
46021
 
  // special new / delete with reusing memory
 
55978
 
 
55979
public:
 
55980
  /** Own new operator reusing memory. */
46022
55981
  void *operator new (size_t);
46023
 
  void  operator delete (void *);
 
55982
  /** Own delete operator. */
 
55983
  void operator delete (void *);
46024
55984
   private:
46025
55985
  typedef CT_ConversionName CCExprResolveExpr;
46026
55986
 
46027
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
55987
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46028
55988
 public :
46029
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
55989
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46030
55990
  typedef CT_ConversionName CExprResolveExpr;
46031
55991
 
46032
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
55992
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46033
55993
 public :
46034
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46035
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55994
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
55995
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46036
55996
};
46037
55997
 
 
55998
/** \class CT_QualName CTree.h Puma/CTree.h
 
55999
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
46038
56000
 
46039
 
#line 46040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56001
#line 56002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46040
56002
} // closed Puma
 
56003
class CCExprResolve;
 
56004
class CExprResolve;
46041
56005
class WinIfExists;
46042
56006
class WinImportHandler;
46043
56007
class WinMacros;
46044
 
class CMatchSyntax;
46045
 
class ExtGnu;
 
56008
class WinAsm;
 
56009
class WinDeclSpecs;
 
56010
class WinMemberExplSpec;
 
56011
class WinTypeKeywords;
 
56012
class WinFriend;
46046
56013
class ExtAC;
46047
56014
class ExtACBuilderCoupling;
46048
56015
class ExtACSyntaxCoupling;
46049
56016
class ExtACTree;
46050
56017
class ExtACKeywords;
46051
 
class WinAsm;
46052
 
class WinDeclSpecs;
46053
 
class WinMemberExplSpec;
46054
 
class WinTypeKeywords;
 
56018
class ExtGnu;
46055
56019
class PragmaOnceUnitState;
46056
56020
class PragmaOnce;
46057
 
class CCExprResolve;
46058
 
class CExprResolve;
46059
 
namespace Puma {
46060
 
 
46061
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56021
class CMatchSyntax;
 
56022
namespace Puma {
 
56023
 
 
56024
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56025
 
 
56026
#line 56027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56027
} // closed Puma
 
56028
 
 
56029
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56030
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56031
#include "CCExprResolveH.ah"
 
56032
#endif
 
56033
namespace Puma {
 
56034
 
 
56035
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56036
 
 
56037
#line 56038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56038
} // closed Puma
 
56039
 
 
56040
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56041
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56042
#include "CExprResolveH.ah"
 
56043
#endif
 
56044
namespace Puma {
 
56045
 
 
56046
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46062
56047
class CT_QualName : public CT_SimpleName {
46063
 
#line 46064 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56048
#line 56049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56049
  friend class ::CCExprResolve;
 
56050
  friend class ::CExprResolve;
46064
56051
  friend class ::WinIfExists;
46065
56052
  friend class ::WinImportHandler;
46066
56053
  friend class ::WinMacros;
46067
 
  friend class ::CMatchSyntax;
46068
 
  friend class ::ExtGnu;
 
56054
  friend class ::WinAsm;
 
56055
  friend class ::WinDeclSpecs;
 
56056
  friend class ::WinMemberExplSpec;
 
56057
  friend class ::WinTypeKeywords;
 
56058
  friend class ::WinFriend;
46069
56059
  friend class ::ExtAC;
46070
56060
  friend class ::ExtACBuilderCoupling;
46071
56061
  friend class ::ExtACSyntaxCoupling;
46072
56062
  friend class ::ExtACTree;
46073
56063
  friend class ::ExtACKeywords;
46074
 
  friend class ::WinAsm;
46075
 
  friend class ::WinDeclSpecs;
46076
 
  friend class ::WinMemberExplSpec;
46077
 
  friend class ::WinTypeKeywords;
 
56064
  friend class ::ExtGnu;
46078
56065
  friend class ::PragmaOnceUnitState;
46079
56066
  friend class ::PragmaOnce;
46080
 
  friend class ::CCExprResolve;
46081
 
  friend class ::CExprResolve;
 
56067
  friend class ::CMatchSyntax;
46082
56068
 
46083
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56069
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46084
56070
 
46085
56071
public:
 
56072
  /** Constructor.
 
56073
   *  \param size The initial number sub-names plus separators. */
46086
56074
  CT_QualName (int size = 3) : 
46087
56075
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
56076
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46088
56077
  static const char *NodeId ();
 
56078
  /** Get the name of the node. Can be compared with NodeId(). */
46089
56079
  const char *NodeName () const { return NodeId (); }
46090
 
  void print (ostream &) const;
 
56080
  /** Print the qualified name on the given stream. 
 
56081
   *  \param os The output stream. */
 
56082
  void print (ostream &os) const;
 
56083
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
46091
56084
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
56085
  /** Get the string containing the last name of the qualified name. */
46092
56086
  const char *Text () const { return Name ()->Text (); }
 
56087
  /** Get the type of the last name. */
46093
56088
  CTypeInfo *Type () const { return Name ()->Type (); }
 
56089
  /** Get the value of the last name. */
46094
56090
  CExprValue *Value () const { return Name ()->Value (); }
 
56091
  /** Get the semantic value object of the last name. */
46095
56092
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
56093
  /** Get the semantic information object of the last name. */
46096
56094
  CSemObject *SemObject () const { return Name ()->SemObject (); }
46097
 
  // special new / delete with reusing memory
 
56095
 
 
56096
public:
 
56097
  /** Own new operator reusing memory. */
46098
56098
  void *operator new (size_t);
46099
 
  void  operator delete (void *);
 
56099
  /** Own delete operator. */
 
56100
  void operator delete (void *);
46100
56101
   private:
46101
56102
  typedef CT_QualName CCExprResolveExpr;
46102
56103
 
46103
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56104
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46104
56105
 public :
46105
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56106
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46106
56107
  typedef CT_QualName CExprResolveExpr;
46107
56108
 
46108
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56109
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46109
56110
 public :
46110
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46111
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56111
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56112
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46112
56113
};
46113
56114
 
 
56115
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
56116
 *  Tree node representing a qualified name with introducing name separator,
 
56117
 *  e.g. ::X::Y::Z. */
46114
56118
 
46115
 
#line 46116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56119
#line 56120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46116
56120
} // closed Puma
 
56121
class CCExprResolve;
 
56122
class CExprResolve;
46117
56123
class WinIfExists;
46118
56124
class WinImportHandler;
46119
56125
class WinMacros;
46120
 
class CMatchSyntax;
46121
 
class ExtGnu;
 
56126
class WinAsm;
 
56127
class WinDeclSpecs;
 
56128
class WinMemberExplSpec;
 
56129
class WinTypeKeywords;
 
56130
class WinFriend;
46122
56131
class ExtAC;
46123
56132
class ExtACBuilderCoupling;
46124
56133
class ExtACSyntaxCoupling;
46125
56134
class ExtACTree;
46126
56135
class ExtACKeywords;
46127
 
class WinAsm;
46128
 
class WinDeclSpecs;
46129
 
class WinMemberExplSpec;
46130
 
class WinTypeKeywords;
 
56136
class ExtGnu;
46131
56137
class PragmaOnceUnitState;
46132
56138
class PragmaOnce;
46133
 
class CCExprResolve;
46134
 
class CExprResolve;
46135
 
namespace Puma {
46136
 
 
46137
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56139
class CMatchSyntax;
 
56140
namespace Puma {
 
56141
 
 
56142
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56143
 
 
56144
#line 56145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56145
} // closed Puma
 
56146
 
 
56147
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56148
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56149
#include "CCExprResolveH.ah"
 
56150
#endif
 
56151
namespace Puma {
 
56152
 
 
56153
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56154
 
 
56155
#line 56156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56156
} // closed Puma
 
56157
 
 
56158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56160
#include "CExprResolveH.ah"
 
56161
#endif
 
56162
namespace Puma {
 
56163
 
 
56164
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46138
56165
class CT_RootQualName : public CT_QualName {
46139
 
#line 46140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56166
#line 56167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56167
  friend class ::CCExprResolve;
 
56168
  friend class ::CExprResolve;
46140
56169
  friend class ::WinIfExists;
46141
56170
  friend class ::WinImportHandler;
46142
56171
  friend class ::WinMacros;
46143
 
  friend class ::CMatchSyntax;
46144
 
  friend class ::ExtGnu;
 
56172
  friend class ::WinAsm;
 
56173
  friend class ::WinDeclSpecs;
 
56174
  friend class ::WinMemberExplSpec;
 
56175
  friend class ::WinTypeKeywords;
 
56176
  friend class ::WinFriend;
46145
56177
  friend class ::ExtAC;
46146
56178
  friend class ::ExtACBuilderCoupling;
46147
56179
  friend class ::ExtACSyntaxCoupling;
46148
56180
  friend class ::ExtACTree;
46149
56181
  friend class ::ExtACKeywords;
46150
 
  friend class ::WinAsm;
46151
 
  friend class ::WinDeclSpecs;
46152
 
  friend class ::WinMemberExplSpec;
46153
 
  friend class ::WinTypeKeywords;
 
56182
  friend class ::ExtGnu;
46154
56183
  friend class ::PragmaOnceUnitState;
46155
56184
  friend class ::PragmaOnce;
46156
 
  friend class ::CCExprResolve;
46157
 
  friend class ::CExprResolve;
 
56185
  friend class ::CMatchSyntax;
46158
56186
 
46159
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56187
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46160
56188
 
46161
56189
public:
 
56190
  /** Constructor.
 
56191
   *  \param size Initial number of sub-name plus separator. */
46162
56192
  CT_RootQualName (int size = 2) : 
46163
56193
    CT_QualName (size) { AddProperties (INTRO); }
 
56194
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46164
56195
  static const char *NodeId ();
 
56196
  /** Get the name of the node. Can be compared with NodeId(). */
46165
56197
  const char *NodeName () const { return NodeId (); }
46166
 
  // special new / delete with reusing memory
 
56198
 
 
56199
public:
 
56200
  /** Own new operator reusing memory. */
46167
56201
  void *operator new (size_t);
46168
 
  void  operator delete (void *);
 
56202
  /** Own delete operator. */
 
56203
  void operator delete (void *);
46169
56204
   private:
46170
56205
  typedef CT_RootQualName CCExprResolveExpr;
46171
56206
 
46172
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56207
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46173
56208
 public :
46174
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56209
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46175
56210
  typedef CT_RootQualName CExprResolveExpr;
46176
56211
 
46177
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56212
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46178
56213
 public :
46179
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46180
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56214
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56215
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46181
56216
};
46182
56217
 
 
56218
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
56219
 *  Tree node representing a binary expression, e.g. a+b. */
46183
56220
 
46184
 
#line 46185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56221
#line 56222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46185
56222
} // closed Puma
 
56223
class CCExprResolve;
 
56224
class CExprResolve;
46186
56225
class WinIfExists;
46187
56226
class WinImportHandler;
46188
56227
class WinMacros;
46189
 
class CMatchSyntax;
46190
 
class ExtGnu;
 
56228
class WinAsm;
 
56229
class WinDeclSpecs;
 
56230
class WinMemberExplSpec;
 
56231
class WinTypeKeywords;
 
56232
class WinFriend;
46191
56233
class ExtAC;
46192
56234
class ExtACBuilderCoupling;
46193
56235
class ExtACSyntaxCoupling;
46194
56236
class ExtACTree;
46195
56237
class ExtACKeywords;
46196
 
class WinAsm;
46197
 
class WinDeclSpecs;
46198
 
class WinMemberExplSpec;
46199
 
class WinTypeKeywords;
 
56238
class ExtGnu;
46200
56239
class PragmaOnceUnitState;
46201
56240
class PragmaOnce;
46202
 
class CCExprResolve;
46203
 
class CExprResolve;
46204
 
namespace Puma {
46205
 
 
46206
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46207
 
class CT_BinaryExpr : public CT_Expression {
46208
 
#line 46209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56241
class CMatchSyntax;
 
56242
namespace Puma {
 
56243
 
 
56244
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56245
 
 
56246
#line 56247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56247
} // closed Puma
 
56248
 
 
56249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56251
#include "CCExprResolveH.ah"
 
56252
#endif
 
56253
namespace Puma {
 
56254
 
 
56255
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56256
 
 
56257
#line 56258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56258
} // closed Puma
 
56259
 
 
56260
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56261
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56262
#include "CExprResolveH.ah"
 
56263
#endif
 
56264
namespace Puma {
 
56265
 
 
56266
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56267
class CT_BinaryExpr : public CT_Call {
 
56268
#line 56269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56269
  friend class ::CCExprResolve;
 
56270
  friend class ::CExprResolve;
46209
56271
  friend class ::WinIfExists;
46210
56272
  friend class ::WinImportHandler;
46211
56273
  friend class ::WinMacros;
46212
 
  friend class ::CMatchSyntax;
46213
 
  friend class ::ExtGnu;
 
56274
  friend class ::WinAsm;
 
56275
  friend class ::WinDeclSpecs;
 
56276
  friend class ::WinMemberExplSpec;
 
56277
  friend class ::WinTypeKeywords;
 
56278
  friend class ::WinFriend;
46214
56279
  friend class ::ExtAC;
46215
56280
  friend class ::ExtACBuilderCoupling;
46216
56281
  friend class ::ExtACSyntaxCoupling;
46217
56282
  friend class ::ExtACTree;
46218
56283
  friend class ::ExtACKeywords;
46219
 
  friend class ::WinAsm;
46220
 
  friend class ::WinDeclSpecs;
46221
 
  friend class ::WinMemberExplSpec;
46222
 
  friend class ::WinTypeKeywords;
 
56284
  friend class ::ExtGnu;
46223
56285
  friend class ::PragmaOnceUnitState;
46224
56286
  friend class ::PragmaOnce;
46225
 
  friend class ::CCExprResolve;
46226
 
  friend class ::CExprResolve;
 
56287
  friend class ::CMatchSyntax;
46227
56288
 
46228
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56289
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46229
56290
 
46230
56291
  CTree *sons[3]; // expr, oper, expr
46231
56292
 
46232
56293
public:
 
56294
  /** Constructor. 
 
56295
   *  \param l Left hand side of the expression. 
 
56296
   *  \param o The operator token. 
 
56297
   *  \param r Right hand side of the expression. */
46233
56298
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
46234
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
56299
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
46235
56300
  }
 
56301
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46236
56302
  static const char *NodeId ();
 
56303
  /** Get the name of the node. Can be compared with NodeId(). */
46237
56304
  const char *NodeName () const { return NodeId (); }
 
56305
  /** Get the number of sons. */
46238
56306
  int Sons () const { return 3; }
 
56307
  /** Get the n-th son.
 
56308
   *  \param n The index of the son.
 
56309
   *  \return The n-th son or NULL. */
46239
56310
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
56311
  /** Replace a son.
 
56312
   *  \param old_son The son to replace.
 
56313
   *  \param new_son The new son. */
46240
56314
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46241
56315
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46242
56316
  }
46243
56317
   private:
46244
56318
  typedef CT_BinaryExpr CCExprResolveExpr;
46245
56319
 
46246
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56320
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46247
56321
 public :
46248
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56322
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46249
56323
  typedef CT_BinaryExpr CExprResolveExpr;
46250
56324
 
46251
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56325
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46252
56326
 public :
46253
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46254
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56327
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56328
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46255
56329
};
46256
56330
 
 
56331
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
56332
 *  Tree node representing a member pointer expression, e.g. a->b. */
46257
56333
 
46258
 
#line 46259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56334
#line 56335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46259
56335
} // closed Puma
 
56336
class CCExprResolve;
 
56337
class CExprResolve;
46260
56338
class WinIfExists;
46261
56339
class WinImportHandler;
46262
56340
class WinMacros;
46263
 
class CMatchSyntax;
46264
 
class ExtGnu;
 
56341
class WinAsm;
 
56342
class WinDeclSpecs;
 
56343
class WinMemberExplSpec;
 
56344
class WinTypeKeywords;
 
56345
class WinFriend;
46265
56346
class ExtAC;
46266
56347
class ExtACBuilderCoupling;
46267
56348
class ExtACSyntaxCoupling;
46268
56349
class ExtACTree;
46269
56350
class ExtACKeywords;
46270
 
class WinAsm;
46271
 
class WinDeclSpecs;
46272
 
class WinMemberExplSpec;
46273
 
class WinTypeKeywords;
 
56351
class ExtGnu;
46274
56352
class PragmaOnceUnitState;
46275
56353
class PragmaOnce;
46276
 
class CCExprResolve;
46277
 
class CExprResolve;
46278
 
namespace Puma {
46279
 
 
46280
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46281
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
46282
 
#line 46283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56354
class CMatchSyntax;
 
56355
namespace Puma {
 
56356
 
 
56357
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56358
 
 
56359
#line 56360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56360
} // closed Puma
 
56361
 
 
56362
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56363
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56364
#include "CCExprResolveH.ah"
 
56365
#endif
 
56366
namespace Puma {
 
56367
 
 
56368
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56369
 
 
56370
#line 56371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56371
} // closed Puma
 
56372
 
 
56373
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56374
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56375
#include "CExprResolveH.ah"
 
56376
#endif
 
56377
namespace Puma {
 
56378
 
 
56379
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56380
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
56381
#line 56382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56382
  friend class ::CCExprResolve;
 
56383
  friend class ::CExprResolve;
46283
56384
  friend class ::WinIfExists;
46284
56385
  friend class ::WinImportHandler;
46285
56386
  friend class ::WinMacros;
46286
 
  friend class ::CMatchSyntax;
46287
 
  friend class ::ExtGnu;
 
56387
  friend class ::WinAsm;
 
56388
  friend class ::WinDeclSpecs;
 
56389
  friend class ::WinMemberExplSpec;
 
56390
  friend class ::WinTypeKeywords;
 
56391
  friend class ::WinFriend;
46288
56392
  friend class ::ExtAC;
46289
56393
  friend class ::ExtACBuilderCoupling;
46290
56394
  friend class ::ExtACSyntaxCoupling;
46291
56395
  friend class ::ExtACTree;
46292
56396
  friend class ::ExtACKeywords;
46293
 
  friend class ::WinAsm;
46294
 
  friend class ::WinDeclSpecs;
46295
 
  friend class ::WinMemberExplSpec;
46296
 
  friend class ::WinTypeKeywords;
 
56397
  friend class ::ExtGnu;
46297
56398
  friend class ::PragmaOnceUnitState;
46298
56399
  friend class ::PragmaOnce;
46299
 
  friend class ::CCExprResolve;
46300
 
  friend class ::CExprResolve;
46301
 
 
46302
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46303
 
 
 
56400
  friend class ::CMatchSyntax;
 
56401
 
 
56402
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56403
 
 
56404
  CTree *sons[3]; // expr, oper, expr
 
56405
  
46304
56406
public:
46305
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
46306
 
    CT_BinaryExpr (e, o, i) {}
 
56407
  /** Constructor.
 
56408
   *  \param e Expression on which to call the member.
 
56409
   *  \param o The arrow operator token.
 
56410
   *  \param i The member name. */
 
56411
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
56412
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
56413
  }
 
56414
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46307
56415
  static const char *NodeId ();
 
56416
  /** Get the name of the node. Can be compared with NodeId(). */
46308
56417
  const char *NodeName () const { return NodeId (); }
46309
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
56418
  /** Get the number of sons. */
 
56419
  int Sons () const { return 3; }
 
56420
  /** Get the n-th son.
 
56421
   *  \param n The index of the son.
 
56422
   *  \return The n-th son or NULL. */
 
56423
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
56424
  /** Replace a son.
 
56425
   *  \param old_son The son to replace.
 
56426
   *  \param new_son The new son. */
 
56427
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
56428
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
56429
  }
46310
56430
   private:
46311
56431
  typedef CT_MembPtrExpr CCExprResolveExpr;
46312
56432
 
46313
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56433
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46314
56434
 public :
46315
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56435
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46316
56436
  typedef CT_MembPtrExpr CExprResolveExpr;
46317
56437
 
46318
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56438
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46319
56439
 public :
46320
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46321
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56440
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56441
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46322
56442
};
46323
56443
 
 
56444
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
56445
 *  Tree node representing a member reference expression, e.g. a.b. */
46324
56446
 
46325
 
#line 46326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56447
#line 56448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46326
56448
} // closed Puma
 
56449
class CCExprResolve;
 
56450
class CExprResolve;
46327
56451
class WinIfExists;
46328
56452
class WinImportHandler;
46329
56453
class WinMacros;
46330
 
class CMatchSyntax;
46331
 
class ExtGnu;
 
56454
class WinAsm;
 
56455
class WinDeclSpecs;
 
56456
class WinMemberExplSpec;
 
56457
class WinTypeKeywords;
 
56458
class WinFriend;
46332
56459
class ExtAC;
46333
56460
class ExtACBuilderCoupling;
46334
56461
class ExtACSyntaxCoupling;
46335
56462
class ExtACTree;
46336
56463
class ExtACKeywords;
46337
 
class WinAsm;
46338
 
class WinDeclSpecs;
46339
 
class WinMemberExplSpec;
46340
 
class WinTypeKeywords;
 
56464
class ExtGnu;
46341
56465
class PragmaOnceUnitState;
46342
56466
class PragmaOnce;
46343
 
class CCExprResolve;
46344
 
class CExprResolve;
46345
 
namespace Puma {
46346
 
 
46347
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56467
class CMatchSyntax;
 
56468
namespace Puma {
 
56469
 
 
56470
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56471
 
 
56472
#line 56473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56473
} // closed Puma
 
56474
 
 
56475
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56476
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56477
#include "CCExprResolveH.ah"
 
56478
#endif
 
56479
namespace Puma {
 
56480
 
 
56481
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56482
 
 
56483
#line 56484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56484
} // closed Puma
 
56485
 
 
56486
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56487
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56488
#include "CExprResolveH.ah"
 
56489
#endif
 
56490
namespace Puma {
 
56491
 
 
56492
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46348
56493
class CT_MembRefExpr : public CT_MembPtrExpr {
46349
 
#line 46350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56494
#line 56495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56495
  friend class ::CCExprResolve;
 
56496
  friend class ::CExprResolve;
46350
56497
  friend class ::WinIfExists;
46351
56498
  friend class ::WinImportHandler;
46352
56499
  friend class ::WinMacros;
46353
 
  friend class ::CMatchSyntax;
46354
 
  friend class ::ExtGnu;
 
56500
  friend class ::WinAsm;
 
56501
  friend class ::WinDeclSpecs;
 
56502
  friend class ::WinMemberExplSpec;
 
56503
  friend class ::WinTypeKeywords;
 
56504
  friend class ::WinFriend;
46355
56505
  friend class ::ExtAC;
46356
56506
  friend class ::ExtACBuilderCoupling;
46357
56507
  friend class ::ExtACSyntaxCoupling;
46358
56508
  friend class ::ExtACTree;
46359
56509
  friend class ::ExtACKeywords;
46360
 
  friend class ::WinAsm;
46361
 
  friend class ::WinDeclSpecs;
46362
 
  friend class ::WinMemberExplSpec;
46363
 
  friend class ::WinTypeKeywords;
 
56510
  friend class ::ExtGnu;
46364
56511
  friend class ::PragmaOnceUnitState;
46365
56512
  friend class ::PragmaOnce;
46366
 
  friend class ::CCExprResolve;
46367
 
  friend class ::CExprResolve;
 
56513
  friend class ::CMatchSyntax;
46368
56514
 
46369
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56515
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46370
56516
 
46371
56517
public:
 
56518
  /** Constructor.
 
56519
   *  \param e Expression on which to call the member.
 
56520
   *  \param o The dot operator.
 
56521
   *  \param i The member name. */
46372
56522
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
46373
56523
    CT_MembPtrExpr (e, o, i) {}
 
56524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46374
56525
  static const char *NodeId ();
 
56526
  /** Get the name of the node. Can be compared with NodeId(). */
46375
56527
  const char *NodeName () const { return NodeId (); }
46376
56528
   private:
46377
56529
  typedef CT_MembRefExpr CCExprResolveExpr;
46378
56530
 
46379
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56531
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46380
56532
 public :
46381
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56533
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46382
56534
  typedef CT_MembRefExpr CExprResolveExpr;
46383
56535
 
46384
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56536
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46385
56537
 public :
46386
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46387
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56538
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56539
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46388
56540
};
46389
56541
 
 
56542
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
56543
 *  Base class for tree nodes representing unary expressions. */
46390
56544
 
46391
 
#line 46392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56545
#line 56546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46392
56546
} // closed Puma
 
56547
class CCExprResolve;
 
56548
class CExprResolve;
46393
56549
class WinIfExists;
46394
56550
class WinImportHandler;
46395
56551
class WinMacros;
46396
 
class CMatchSyntax;
46397
 
class ExtGnu;
 
56552
class WinAsm;
 
56553
class WinDeclSpecs;
 
56554
class WinMemberExplSpec;
 
56555
class WinTypeKeywords;
 
56556
class WinFriend;
46398
56557
class ExtAC;
46399
56558
class ExtACBuilderCoupling;
46400
56559
class ExtACSyntaxCoupling;
46401
56560
class ExtACTree;
46402
56561
class ExtACKeywords;
46403
 
class WinAsm;
46404
 
class WinDeclSpecs;
46405
 
class WinMemberExplSpec;
46406
 
class WinTypeKeywords;
 
56562
class ExtGnu;
46407
56563
class PragmaOnceUnitState;
46408
56564
class PragmaOnce;
46409
 
class CCExprResolve;
46410
 
class CExprResolve;
46411
 
namespace Puma {
46412
 
 
46413
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46414
 
class CT_UnaryExpr : public CT_Expression {
46415
 
#line 46416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56565
class CMatchSyntax;
 
56566
namespace Puma {
 
56567
 
 
56568
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56569
 
 
56570
#line 56571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56571
} // closed Puma
 
56572
 
 
56573
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56574
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56575
#include "CCExprResolveH.ah"
 
56576
#endif
 
56577
namespace Puma {
 
56578
 
 
56579
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56580
 
 
56581
#line 56582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56582
} // closed Puma
 
56583
 
 
56584
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56585
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56586
#include "CExprResolveH.ah"
 
56587
#endif
 
56588
namespace Puma {
 
56589
 
 
56590
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56591
class CT_UnaryExpr : public CT_Call {
 
56592
#line 56593 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56593
  friend class ::CCExprResolve;
 
56594
  friend class ::CExprResolve;
46416
56595
  friend class ::WinIfExists;
46417
56596
  friend class ::WinImportHandler;
46418
56597
  friend class ::WinMacros;
46419
 
  friend class ::CMatchSyntax;
46420
 
  friend class ::ExtGnu;
 
56598
  friend class ::WinAsm;
 
56599
  friend class ::WinDeclSpecs;
 
56600
  friend class ::WinMemberExplSpec;
 
56601
  friend class ::WinTypeKeywords;
 
56602
  friend class ::WinFriend;
46421
56603
  friend class ::ExtAC;
46422
56604
  friend class ::ExtACBuilderCoupling;
46423
56605
  friend class ::ExtACSyntaxCoupling;
46424
56606
  friend class ::ExtACTree;
46425
56607
  friend class ::ExtACKeywords;
46426
 
  friend class ::WinAsm;
46427
 
  friend class ::WinDeclSpecs;
46428
 
  friend class ::WinMemberExplSpec;
46429
 
  friend class ::WinTypeKeywords;
 
56608
  friend class ::ExtGnu;
46430
56609
  friend class ::PragmaOnceUnitState;
46431
56610
  friend class ::PragmaOnce;
46432
 
  friend class ::CCExprResolve;
46433
 
  friend class ::CExprResolve;
 
56611
  friend class ::CMatchSyntax;
46434
56612
 
46435
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56613
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46436
56614
 
46437
56615
  CTree *sons[2]; // oper, expr
46438
56616
 
46439
56617
public:
46440
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
56618
  /** Constructor.
 
56619
   *  \param o The unary operator.
 
56620
   *  \param e The expression on which the operator is invoked. */
 
56621
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
56622
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46441
56623
  static const char *NodeId ();
 
56624
  /** Get the name of the node. Can be compared with NodeId(). */
46442
56625
  const char *NodeName () const { return NodeId (); }
 
56626
  /** Get the number of sons. */
46443
56627
  int Sons () const { return 2; }
 
56628
  /** Get the n-th son.
 
56629
   *  \param n The index of the son.
 
56630
   *  \return The n-th son or NULL. */
46444
56631
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
56632
  /** Replace a son.
 
56633
   *  \param old_son The son to replace.
 
56634
   *  \param new_son The new son. */
46445
56635
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46446
56636
    CTree::ReplaceSon (sons, 2, old_son, new_son);
46447
56637
  }
 
56638
  /** Get the expression node. */
46448
56639
  CTree *Expr () const { return sons[1]; }
46449
56640
   private:
46450
56641
  typedef CT_UnaryExpr CCExprResolveExpr;
46451
56642
 
46452
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56643
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46453
56644
 public :
46454
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56645
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46455
56646
  typedef CT_UnaryExpr CExprResolveExpr;
46456
56647
 
46457
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56648
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46458
56649
 public :
46459
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46460
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56650
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56651
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46461
56652
};
46462
56653
 
 
56654
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
56655
 *  Tree node representing a postfix expression, e.g. a++. */
46463
56656
 
46464
 
#line 46465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56657
#line 56658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46465
56658
} // closed Puma
 
56659
class CCExprResolve;
 
56660
class CExprResolve;
46466
56661
class WinIfExists;
46467
56662
class WinImportHandler;
46468
56663
class WinMacros;
46469
 
class CMatchSyntax;
46470
 
class ExtGnu;
 
56664
class WinAsm;
 
56665
class WinDeclSpecs;
 
56666
class WinMemberExplSpec;
 
56667
class WinTypeKeywords;
 
56668
class WinFriend;
46471
56669
class ExtAC;
46472
56670
class ExtACBuilderCoupling;
46473
56671
class ExtACSyntaxCoupling;
46474
56672
class ExtACTree;
46475
56673
class ExtACKeywords;
46476
 
class WinAsm;
46477
 
class WinDeclSpecs;
46478
 
class WinMemberExplSpec;
46479
 
class WinTypeKeywords;
 
56674
class ExtGnu;
46480
56675
class PragmaOnceUnitState;
46481
56676
class PragmaOnce;
46482
 
class CCExprResolve;
46483
 
class CExprResolve;
46484
 
namespace Puma {
46485
 
 
46486
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56677
class CMatchSyntax;
 
56678
namespace Puma {
 
56679
 
 
56680
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56681
 
 
56682
#line 56683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56683
} // closed Puma
 
56684
 
 
56685
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56686
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56687
#include "CCExprResolveH.ah"
 
56688
#endif
 
56689
namespace Puma {
 
56690
 
 
56691
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56692
 
 
56693
#line 56694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56694
} // closed Puma
 
56695
 
 
56696
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56697
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56698
#include "CExprResolveH.ah"
 
56699
#endif
 
56700
namespace Puma {
 
56701
 
 
56702
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46487
56703
class CT_PostfixExpr : public CT_UnaryExpr {
46488
 
#line 46489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56704
#line 56705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56705
  friend class ::CCExprResolve;
 
56706
  friend class ::CExprResolve;
46489
56707
  friend class ::WinIfExists;
46490
56708
  friend class ::WinImportHandler;
46491
56709
  friend class ::WinMacros;
46492
 
  friend class ::CMatchSyntax;
46493
 
  friend class ::ExtGnu;
 
56710
  friend class ::WinAsm;
 
56711
  friend class ::WinDeclSpecs;
 
56712
  friend class ::WinMemberExplSpec;
 
56713
  friend class ::WinTypeKeywords;
 
56714
  friend class ::WinFriend;
46494
56715
  friend class ::ExtAC;
46495
56716
  friend class ::ExtACBuilderCoupling;
46496
56717
  friend class ::ExtACSyntaxCoupling;
46497
56718
  friend class ::ExtACTree;
46498
56719
  friend class ::ExtACKeywords;
46499
 
  friend class ::WinAsm;
46500
 
  friend class ::WinDeclSpecs;
46501
 
  friend class ::WinMemberExplSpec;
46502
 
  friend class ::WinTypeKeywords;
 
56720
  friend class ::ExtGnu;
46503
56721
  friend class ::PragmaOnceUnitState;
46504
56722
  friend class ::PragmaOnce;
46505
 
  friend class ::CCExprResolve;
46506
 
  friend class ::CExprResolve;
 
56723
  friend class ::CMatchSyntax;
46507
56724
 
46508
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56725
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46509
56726
 
46510
56727
public:
 
56728
  /** Constructor.
 
56729
   *  \param e The expression on which to invoke the operator. 
 
56730
   *  \param o The postfix operator. */
46511
56731
  CT_PostfixExpr (CTree *e, CTree *o) :
46512
56732
    CT_UnaryExpr (e, o) {}
 
56733
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46513
56734
  static const char *NodeId ();
 
56735
  /** Get the name of the node. Can be compared with NodeId(). */
46514
56736
  const char *NodeName () const { return NodeId (); }
46515
56737
   private:
46516
56738
  typedef CT_PostfixExpr CCExprResolveExpr;
46517
56739
 
46518
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56740
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46519
56741
 public :
46520
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56742
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46521
56743
  typedef CT_PostfixExpr CExprResolveExpr;
46522
56744
 
46523
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56745
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46524
56746
 public :
46525
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46526
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56747
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56748
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46527
56749
};
46528
56750
 
 
56751
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
56752
 *  Tree node representing an address expression, e.g. &a. */
46529
56753
 
46530
 
#line 46531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56754
#line 56755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46531
56755
} // closed Puma
 
56756
class CCExprResolve;
 
56757
class CExprResolve;
46532
56758
class WinIfExists;
46533
56759
class WinImportHandler;
46534
56760
class WinMacros;
46535
 
class CMatchSyntax;
46536
 
class ExtGnu;
 
56761
class WinAsm;
 
56762
class WinDeclSpecs;
 
56763
class WinMemberExplSpec;
 
56764
class WinTypeKeywords;
 
56765
class WinFriend;
46537
56766
class ExtAC;
46538
56767
class ExtACBuilderCoupling;
46539
56768
class ExtACSyntaxCoupling;
46540
56769
class ExtACTree;
46541
56770
class ExtACKeywords;
46542
 
class WinAsm;
46543
 
class WinDeclSpecs;
46544
 
class WinMemberExplSpec;
46545
 
class WinTypeKeywords;
 
56771
class ExtGnu;
46546
56772
class PragmaOnceUnitState;
46547
56773
class PragmaOnce;
46548
 
class CCExprResolve;
46549
 
class CExprResolve;
46550
 
namespace Puma {
46551
 
 
46552
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56774
class CMatchSyntax;
 
56775
namespace Puma {
 
56776
 
 
56777
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56778
 
 
56779
#line 56780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56780
} // closed Puma
 
56781
 
 
56782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56784
#include "CCExprResolveH.ah"
 
56785
#endif
 
56786
namespace Puma {
 
56787
 
 
56788
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56789
 
 
56790
#line 56791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56791
} // closed Puma
 
56792
 
 
56793
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56794
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56795
#include "CExprResolveH.ah"
 
56796
#endif
 
56797
namespace Puma {
 
56798
 
 
56799
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46553
56800
class CT_AddrExpr : public CT_UnaryExpr {
46554
 
#line 46555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56801
#line 56802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56802
  friend class ::CCExprResolve;
 
56803
  friend class ::CExprResolve;
46555
56804
  friend class ::WinIfExists;
46556
56805
  friend class ::WinImportHandler;
46557
56806
  friend class ::WinMacros;
46558
 
  friend class ::CMatchSyntax;
46559
 
  friend class ::ExtGnu;
 
56807
  friend class ::WinAsm;
 
56808
  friend class ::WinDeclSpecs;
 
56809
  friend class ::WinMemberExplSpec;
 
56810
  friend class ::WinTypeKeywords;
 
56811
  friend class ::WinFriend;
46560
56812
  friend class ::ExtAC;
46561
56813
  friend class ::ExtACBuilderCoupling;
46562
56814
  friend class ::ExtACSyntaxCoupling;
46563
56815
  friend class ::ExtACTree;
46564
56816
  friend class ::ExtACKeywords;
46565
 
  friend class ::WinAsm;
46566
 
  friend class ::WinDeclSpecs;
46567
 
  friend class ::WinMemberExplSpec;
46568
 
  friend class ::WinTypeKeywords;
 
56817
  friend class ::ExtGnu;
46569
56818
  friend class ::PragmaOnceUnitState;
46570
56819
  friend class ::PragmaOnce;
46571
 
  friend class ::CCExprResolve;
46572
 
  friend class ::CExprResolve;
 
56820
  friend class ::CMatchSyntax;
46573
56821
 
46574
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56822
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46575
56823
 
46576
56824
public:
 
56825
  /** Constructor.
 
56826
   *  \param o The address operator, i.e. '&'.
 
56827
   *  \param e The expression from which to take the address. */
46577
56828
  CT_AddrExpr (CTree *o, CTree *e) :
46578
56829
    CT_UnaryExpr (o, e) {}
 
56830
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46579
56831
  static const char *NodeId ();
 
56832
  /** Get the name of the node. Can be compared with NodeId(). */
46580
56833
  const char *NodeName () const { return NodeId (); }
46581
56834
   private:
46582
56835
  typedef CT_AddrExpr CCExprResolveExpr;
46583
56836
 
46584
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56837
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46585
56838
 public :
46586
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56839
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46587
56840
  typedef CT_AddrExpr CExprResolveExpr;
46588
56841
 
46589
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56842
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46590
56843
 public :
46591
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46592
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56844
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56845
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46593
56846
};
46594
56847
 
 
56848
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
56849
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
46595
56850
 
46596
 
#line 46597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56851
#line 56852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46597
56852
} // closed Puma
 
56853
class CCExprResolve;
 
56854
class CExprResolve;
46598
56855
class WinIfExists;
46599
56856
class WinImportHandler;
46600
56857
class WinMacros;
46601
 
class CMatchSyntax;
46602
 
class ExtGnu;
 
56858
class WinAsm;
 
56859
class WinDeclSpecs;
 
56860
class WinMemberExplSpec;
 
56861
class WinTypeKeywords;
 
56862
class WinFriend;
46603
56863
class ExtAC;
46604
56864
class ExtACBuilderCoupling;
46605
56865
class ExtACSyntaxCoupling;
46606
56866
class ExtACTree;
46607
56867
class ExtACKeywords;
46608
 
class WinAsm;
46609
 
class WinDeclSpecs;
46610
 
class WinMemberExplSpec;
46611
 
class WinTypeKeywords;
 
56868
class ExtGnu;
46612
56869
class PragmaOnceUnitState;
46613
56870
class PragmaOnce;
46614
 
class CCExprResolve;
46615
 
class CExprResolve;
46616
 
namespace Puma {
46617
 
 
46618
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56871
class CMatchSyntax;
 
56872
namespace Puma {
 
56873
 
 
56874
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56875
 
 
56876
#line 56877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56877
} // closed Puma
 
56878
 
 
56879
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56880
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56881
#include "CCExprResolveH.ah"
 
56882
#endif
 
56883
namespace Puma {
 
56884
 
 
56885
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56886
 
 
56887
#line 56888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56888
} // closed Puma
 
56889
 
 
56890
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56891
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56892
#include "CExprResolveH.ah"
 
56893
#endif
 
56894
namespace Puma {
 
56895
 
 
56896
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46619
56897
class CT_DerefExpr : public CT_UnaryExpr {
46620
 
#line 46621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56898
#line 56899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56899
  friend class ::CCExprResolve;
 
56900
  friend class ::CExprResolve;
46621
56901
  friend class ::WinIfExists;
46622
56902
  friend class ::WinImportHandler;
46623
56903
  friend class ::WinMacros;
46624
 
  friend class ::CMatchSyntax;
46625
 
  friend class ::ExtGnu;
 
56904
  friend class ::WinAsm;
 
56905
  friend class ::WinDeclSpecs;
 
56906
  friend class ::WinMemberExplSpec;
 
56907
  friend class ::WinTypeKeywords;
 
56908
  friend class ::WinFriend;
46626
56909
  friend class ::ExtAC;
46627
56910
  friend class ::ExtACBuilderCoupling;
46628
56911
  friend class ::ExtACSyntaxCoupling;
46629
56912
  friend class ::ExtACTree;
46630
56913
  friend class ::ExtACKeywords;
46631
 
  friend class ::WinAsm;
46632
 
  friend class ::WinDeclSpecs;
46633
 
  friend class ::WinMemberExplSpec;
46634
 
  friend class ::WinTypeKeywords;
 
56914
  friend class ::ExtGnu;
46635
56915
  friend class ::PragmaOnceUnitState;
46636
56916
  friend class ::PragmaOnce;
46637
 
  friend class ::CCExprResolve;
46638
 
  friend class ::CExprResolve;
 
56917
  friend class ::CMatchSyntax;
46639
56918
 
46640
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56919
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46641
56920
 
46642
56921
public:
 
56922
  /** Constructor.
 
56923
   *  \param o The dereferencing operator, i.e. '*'.
 
56924
   *  \param e The expression to dereference. */
46643
56925
  CT_DerefExpr (CTree *o, CTree *e) :
46644
56926
    CT_UnaryExpr (o, e) {}
 
56927
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46645
56928
  static const char *NodeId ();
 
56929
  /** Get the name of the node. Can be compared with NodeId(). */
46646
56930
  const char *NodeName () const { return NodeId (); }
46647
56931
   private:
46648
56932
  typedef CT_DerefExpr CCExprResolveExpr;
46649
56933
 
46650
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56934
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46651
56935
 public :
46652
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56936
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46653
56937
  typedef CT_DerefExpr CExprResolveExpr;
46654
56938
 
46655
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56939
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46656
56940
 public :
46657
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46658
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56941
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56942
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46659
56943
};
46660
56944
 
 
56945
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
56946
 *  Tree node representing a delete expression, e.g. delete a. */
46661
56947
 
46662
 
#line 46663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56948
#line 56949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46663
56949
} // closed Puma
 
56950
class CCExprResolve;
 
56951
class CExprResolve;
46664
56952
class WinIfExists;
46665
56953
class WinImportHandler;
46666
56954
class WinMacros;
46667
 
class CMatchSyntax;
46668
 
class ExtGnu;
 
56955
class WinAsm;
 
56956
class WinDeclSpecs;
 
56957
class WinMemberExplSpec;
 
56958
class WinTypeKeywords;
 
56959
class WinFriend;
46669
56960
class ExtAC;
46670
56961
class ExtACBuilderCoupling;
46671
56962
class ExtACSyntaxCoupling;
46672
56963
class ExtACTree;
46673
56964
class ExtACKeywords;
46674
 
class WinAsm;
46675
 
class WinDeclSpecs;
46676
 
class WinMemberExplSpec;
46677
 
class WinTypeKeywords;
 
56965
class ExtGnu;
46678
56966
class PragmaOnceUnitState;
46679
56967
class PragmaOnce;
46680
 
class CCExprResolve;
46681
 
class CExprResolve;
46682
 
namespace Puma {
46683
 
 
46684
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56968
class CMatchSyntax;
 
56969
namespace Puma {
 
56970
 
 
56971
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56972
 
 
56973
#line 56974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56974
} // closed Puma
 
56975
 
 
56976
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56977
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56978
#include "CCExprResolveH.ah"
 
56979
#endif
 
56980
namespace Puma {
 
56981
 
 
56982
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56983
 
 
56984
#line 56985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56985
} // closed Puma
 
56986
 
 
56987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56989
#include "CExprResolveH.ah"
 
56990
#endif
 
56991
namespace Puma {
 
56992
 
 
56993
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46685
56994
class CT_DeleteExpr : public CT_Expression, public CSemObject {
46686
 
#line 46687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
56995
#line 56996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
56996
  friend class ::CCExprResolve;
 
56997
  friend class ::CExprResolve;
46687
56998
  friend class ::WinIfExists;
46688
56999
  friend class ::WinImportHandler;
46689
57000
  friend class ::WinMacros;
46690
 
  friend class ::CMatchSyntax;
46691
 
  friend class ::ExtGnu;
 
57001
  friend class ::WinAsm;
 
57002
  friend class ::WinDeclSpecs;
 
57003
  friend class ::WinMemberExplSpec;
 
57004
  friend class ::WinTypeKeywords;
 
57005
  friend class ::WinFriend;
46692
57006
  friend class ::ExtAC;
46693
57007
  friend class ::ExtACBuilderCoupling;
46694
57008
  friend class ::ExtACSyntaxCoupling;
46695
57009
  friend class ::ExtACTree;
46696
57010
  friend class ::ExtACKeywords;
46697
 
  friend class ::WinAsm;
46698
 
  friend class ::WinDeclSpecs;
46699
 
  friend class ::WinMemberExplSpec;
46700
 
  friend class ::WinTypeKeywords;
 
57011
  friend class ::ExtGnu;
46701
57012
  friend class ::PragmaOnceUnitState;
46702
57013
  friend class ::PragmaOnce;
46703
 
  friend class ::CCExprResolve;
46704
 
  friend class ::CExprResolve;
 
57014
  friend class ::CMatchSyntax;
46705
57015
 
46706
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57016
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46707
57017
 
46708
57018
  CTree *sons[2]; // oper, expr
46709
57019
 
46710
57020
public:
46711
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
57021
  /** Constructor.
 
57022
   *  \param op The delete operator.
 
57023
   *  \param e The expression representing the object to delete. */
 
57024
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
57025
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46712
57026
  static const char *NodeId ();
 
57027
  /** Get the name of the node. Can be compared with NodeId(). */
46713
57028
  const char *NodeName () const { return NodeId (); }
 
57029
  /** Get the number of sons. */
46714
57030
  int Sons () const { return 2; }
 
57031
  /** Get the n-th son.
 
57032
   *  \param n The index of the son.
 
57033
   *  \return The n-th son or NULL. */
46715
57034
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57035
  /** Replace a son.
 
57036
   *  \param old_son The son to replace.
 
57037
   *  \param new_son The new son. */
46716
57038
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46717
57039
    CTree::ReplaceSon (sons, 2, old_son, new_son);
46718
57040
  }
 
57041
  /** Get the expression. */
46719
57042
  CTree *Expr () const { return sons[1]; }
 
57043
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
46720
57044
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
57045
  /** Get the semantic information object. */
46721
57046
  CSemObject *SemObject () const { return (CSemObject*)this; }
46722
57047
   private:
46723
57048
  typedef CT_DeleteExpr CCExprResolveExpr;
46724
57049
 
46725
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57050
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46726
57051
 public :
46727
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57052
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46728
57053
  typedef CT_DeleteExpr CExprResolveExpr;
46729
57054
 
46730
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57055
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46731
57056
 public :
46732
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46733
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57057
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57058
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46734
57059
};
46735
57060
 
 
57061
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
57062
 *  Tree node representing a new expression, e.g. new A(). */
46736
57063
 
46737
 
#line 46738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57064
#line 57065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46738
57065
} // closed Puma
 
57066
class CCExprResolve;
 
57067
class CExprResolve;
46739
57068
class WinIfExists;
46740
57069
class WinImportHandler;
46741
57070
class WinMacros;
46742
 
class CMatchSyntax;
46743
 
class ExtGnu;
 
57071
class WinAsm;
 
57072
class WinDeclSpecs;
 
57073
class WinMemberExplSpec;
 
57074
class WinTypeKeywords;
 
57075
class WinFriend;
46744
57076
class ExtAC;
46745
57077
class ExtACBuilderCoupling;
46746
57078
class ExtACSyntaxCoupling;
46747
57079
class ExtACTree;
46748
57080
class ExtACKeywords;
46749
 
class WinAsm;
46750
 
class WinDeclSpecs;
46751
 
class WinMemberExplSpec;
46752
 
class WinTypeKeywords;
 
57081
class ExtGnu;
46753
57082
class PragmaOnceUnitState;
46754
57083
class PragmaOnce;
46755
 
class CCExprResolve;
46756
 
class CExprResolve;
46757
 
namespace Puma {
46758
 
 
46759
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57084
class CMatchSyntax;
 
57085
namespace Puma {
 
57086
 
 
57087
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57088
 
 
57089
#line 57090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57090
} // closed Puma
 
57091
 
 
57092
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57093
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57094
#include "CCExprResolveH.ah"
 
57095
#endif
 
57096
namespace Puma {
 
57097
 
 
57098
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57099
 
 
57100
#line 57101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57101
} // closed Puma
 
57102
 
 
57103
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57104
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57105
#include "CExprResolveH.ah"
 
57106
#endif
 
57107
namespace Puma {
 
57108
 
 
57109
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46760
57110
class CT_NewExpr : public CT_Expression, public CSemObject {
46761
 
#line 46762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57111
#line 57112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57112
  friend class ::CCExprResolve;
 
57113
  friend class ::CExprResolve;
46762
57114
  friend class ::WinIfExists;
46763
57115
  friend class ::WinImportHandler;
46764
57116
  friend class ::WinMacros;
46765
 
  friend class ::CMatchSyntax;
46766
 
  friend class ::ExtGnu;
 
57117
  friend class ::WinAsm;
 
57118
  friend class ::WinDeclSpecs;
 
57119
  friend class ::WinMemberExplSpec;
 
57120
  friend class ::WinTypeKeywords;
 
57121
  friend class ::WinFriend;
46767
57122
  friend class ::ExtAC;
46768
57123
  friend class ::ExtACBuilderCoupling;
46769
57124
  friend class ::ExtACSyntaxCoupling;
46770
57125
  friend class ::ExtACTree;
46771
57126
  friend class ::ExtACKeywords;
46772
 
  friend class ::WinAsm;
46773
 
  friend class ::WinDeclSpecs;
46774
 
  friend class ::WinMemberExplSpec;
46775
 
  friend class ::WinTypeKeywords;
 
57127
  friend class ::ExtGnu;
46776
57128
  friend class ::PragmaOnceUnitState;
46777
57129
  friend class ::PragmaOnce;
46778
 
  friend class ::CCExprResolve;
46779
 
  friend class ::CExprResolve;
 
57130
  friend class ::CMatchSyntax;
46780
57131
 
46781
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57132
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46782
57133
 
46783
57134
  CTree *sons[6]; // oper, placement, open, type, close, init
46784
57135
 
46785
57136
public:
 
57137
  /** Constructor.
 
57138
   *  \param op The new operator.
 
57139
   *  \param p The optional placement expression.
 
57140
   *  \param o The optional left parenthesis around the type identifier.
 
57141
   *  \param t The type identifier specifying the type of the object to create.
 
57142
   *  \param c The optional right parenthesis around the type identifier.
 
57143
   *  \param i The optional initializer. */
46786
57144
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
46787
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
57145
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
57146
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
46788
57147
  }
 
57148
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46789
57149
  static const char *NodeId ();
 
57150
  /** Get the name of the node. Can be compared with NodeId(). */
46790
57151
  const char *NodeName () const { return NodeId (); }
 
57152
  /** Get the number of sons. */
46791
57153
  int Sons () const { return CTree::Sons (sons, 6); }
 
57154
  /** Get the n-th son.
 
57155
   *  \param n The index of the son.
 
57156
   *  \return The n-th son or NULL. */
46792
57157
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
57158
  /** Replace a son.
 
57159
   *  \param old_son The son to replace.
 
57160
   *  \param new_son The new son. */
46793
57161
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46794
57162
    CTree::ReplaceSon (sons, 6, old_son, new_son);
46795
57163
  }
 
57164
  /** Get the operator name. */
46796
57165
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
57166
  /** Get the placement expression. */
46797
57167
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
57168
  /** Get the initializer. */
46798
57169
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
57170
  /** Get the type of the object to create. */
46799
57171
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
57172
  /** Get the semantic information object. */
46800
57173
  CSemObject *SemObject () const { return (CSemObject*)this; }
46801
57174
   private:
46802
57175
  typedef CT_NewExpr CCExprResolveExpr;
46803
57176
 
46804
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46805
57178
 public :
46806
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57179
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46807
57180
  typedef CT_NewExpr CExprResolveExpr;
46808
57181
 
46809
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57182
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46810
57183
 public :
46811
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46812
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57184
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57185
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46813
57186
};
46814
57187
 
 
57188
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
57189
 *  Tree node representing an if-then expression, 
 
57190
 *  e.g. a>0?a:b or a?:b. */
46815
57191
 
46816
 
#line 46817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57192
#line 57193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46817
57193
} // closed Puma
 
57194
class CCExprResolve;
 
57195
class CExprResolve;
46818
57196
class WinIfExists;
46819
57197
class WinImportHandler;
46820
57198
class WinMacros;
46821
 
class CMatchSyntax;
46822
 
class ExtGnu;
 
57199
class WinAsm;
 
57200
class WinDeclSpecs;
 
57201
class WinMemberExplSpec;
 
57202
class WinTypeKeywords;
 
57203
class WinFriend;
46823
57204
class ExtAC;
46824
57205
class ExtACBuilderCoupling;
46825
57206
class ExtACSyntaxCoupling;
46826
57207
class ExtACTree;
46827
57208
class ExtACKeywords;
46828
 
class WinAsm;
46829
 
class WinDeclSpecs;
46830
 
class WinMemberExplSpec;
46831
 
class WinTypeKeywords;
 
57209
class ExtGnu;
46832
57210
class PragmaOnceUnitState;
46833
57211
class PragmaOnce;
46834
 
class CCExprResolve;
46835
 
class CExprResolve;
46836
 
namespace Puma {
46837
 
 
46838
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57212
class CMatchSyntax;
 
57213
namespace Puma {
 
57214
 
 
57215
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57216
 
 
57217
#line 57218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57218
} // closed Puma
 
57219
 
 
57220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57222
#include "CCExprResolveH.ah"
 
57223
#endif
 
57224
namespace Puma {
 
57225
 
 
57226
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57227
 
 
57228
#line 57229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57229
} // closed Puma
 
57230
 
 
57231
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57232
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57233
#include "CExprResolveH.ah"
 
57234
#endif
 
57235
namespace Puma {
 
57236
 
 
57237
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46839
57238
class CT_IfThenExpr : public CT_Expression {
46840
 
#line 46841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57239
#line 57240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57240
  friend class ::CCExprResolve;
 
57241
  friend class ::CExprResolve;
46841
57242
  friend class ::WinIfExists;
46842
57243
  friend class ::WinImportHandler;
46843
57244
  friend class ::WinMacros;
46844
 
  friend class ::CMatchSyntax;
46845
 
  friend class ::ExtGnu;
 
57245
  friend class ::WinAsm;
 
57246
  friend class ::WinDeclSpecs;
 
57247
  friend class ::WinMemberExplSpec;
 
57248
  friend class ::WinTypeKeywords;
 
57249
  friend class ::WinFriend;
46846
57250
  friend class ::ExtAC;
46847
57251
  friend class ::ExtACBuilderCoupling;
46848
57252
  friend class ::ExtACSyntaxCoupling;
46849
57253
  friend class ::ExtACTree;
46850
57254
  friend class ::ExtACKeywords;
46851
 
  friend class ::WinAsm;
46852
 
  friend class ::WinDeclSpecs;
46853
 
  friend class ::WinMemberExplSpec;
46854
 
  friend class ::WinTypeKeywords;
 
57255
  friend class ::ExtGnu;
46855
57256
  friend class ::PragmaOnceUnitState;
46856
57257
  friend class ::PragmaOnce;
46857
 
  friend class ::CCExprResolve;
46858
 
  friend class ::CExprResolve;
 
57258
  friend class ::CMatchSyntax;
46859
57259
 
46860
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57260
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46861
57261
 
46862
57262
  CTree *sons[5]; // cond, oper, left, colon, right
46863
57263
 
46864
57264
public:
 
57265
  /** Constructor.
 
57266
   *  \param c1 The condition expression.
 
57267
   *  \param o The question mark operator. 
 
57268
   *  \param l The expression to the left of the colon.
 
57269
   *  \param c2 The colon operator.
 
57270
   *  \param r The expression to the right of the colon. */ 
46865
57271
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
46866
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
57272
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
57273
    AddSon (sons[3], c2); AddSon (sons[4], r);
46867
57274
  }
 
57275
  /** Constructor.
 
57276
   *  \param c1 The condition expression.
 
57277
   *  \param o The question mark operator. 
 
57278
   *  \param c2 The colon operator.
 
57279
   *  \param r The expression to the right of the colon. */ 
46868
57280
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
46869
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
57281
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
57282
    AddSon (sons[3], c2); AddSon (sons[4], r);
46870
57283
  }
 
57284
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46871
57285
  static const char *NodeId ();
 
57286
  /** Get the name of the node. Can be compared with NodeId(). */
46872
57287
  const char *NodeName () const { return NodeId (); }
 
57288
  /** Get the number of sons. */
46873
57289
  int Sons () const { return CTree::Sons (sons, 5); }
 
57290
  /** Get the n-th son.
 
57291
   *  \param n The index of the son.
 
57292
   *  \return The n-th son or NULL. */
46874
57293
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
57294
  /** Get the condition expression. */
46875
57295
  CTree *Condition () const { return sons[0]; }
 
57296
  /** Get the left expression (condition=true). */
46876
57297
  CTree *LeftOperand () const { return sons[2]; }
 
57298
  /** Get the right expression (condition=false). */
46877
57299
  CTree *RightOperand () const { return sons[4]; }
 
57300
  /** Replace a son.
 
57301
   *  \param old_son The son to replace.
 
57302
   *  \param new_son The new son. */
46878
57303
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46879
57304
    CTree::ReplaceSon (sons, 5, old_son, new_son);
46880
57305
  }
46881
57306
   private:
46882
57307
  typedef CT_IfThenExpr CCExprResolveExpr;
46883
57308
 
46884
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57309
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46885
57310
 public :
46886
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57311
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46887
57312
  typedef CT_IfThenExpr CExprResolveExpr;
46888
57313
 
46889
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46890
57315
 public :
46891
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46892
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57316
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57317
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46893
57318
};
46894
57319
 
 
57320
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
57321
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
46895
57322
 
46896
 
#line 46897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57323
#line 57324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46897
57324
} // closed Puma
 
57325
class CCExprResolve;
 
57326
class CExprResolve;
46898
57327
class WinIfExists;
46899
57328
class WinImportHandler;
46900
57329
class WinMacros;
46901
 
class CMatchSyntax;
46902
 
class ExtGnu;
 
57330
class WinAsm;
 
57331
class WinDeclSpecs;
 
57332
class WinMemberExplSpec;
 
57333
class WinTypeKeywords;
 
57334
class WinFriend;
46903
57335
class ExtAC;
46904
57336
class ExtACBuilderCoupling;
46905
57337
class ExtACSyntaxCoupling;
46906
57338
class ExtACTree;
46907
57339
class ExtACKeywords;
46908
 
class WinAsm;
46909
 
class WinDeclSpecs;
46910
 
class WinMemberExplSpec;
46911
 
class WinTypeKeywords;
 
57340
class ExtGnu;
46912
57341
class PragmaOnceUnitState;
46913
57342
class PragmaOnce;
46914
 
class CCExprResolve;
46915
 
class CExprResolve;
46916
 
namespace Puma {
46917
 
 
46918
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57343
class CMatchSyntax;
 
57344
namespace Puma {
 
57345
 
 
57346
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57347
 
 
57348
#line 57349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57349
} // closed Puma
 
57350
 
 
57351
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57352
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57353
#include "CCExprResolveH.ah"
 
57354
#endif
 
57355
namespace Puma {
 
57356
 
 
57357
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57358
 
 
57359
#line 57360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57360
} // closed Puma
 
57361
 
 
57362
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57363
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57364
#include "CExprResolveH.ah"
 
57365
#endif
 
57366
namespace Puma {
 
57367
 
 
57368
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46919
57369
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
46920
 
#line 46921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57370
#line 57371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57371
  friend class ::CCExprResolve;
 
57372
  friend class ::CExprResolve;
46921
57373
  friend class ::WinIfExists;
46922
57374
  friend class ::WinImportHandler;
46923
57375
  friend class ::WinMacros;
46924
 
  friend class ::CMatchSyntax;
46925
 
  friend class ::ExtGnu;
 
57376
  friend class ::WinAsm;
 
57377
  friend class ::WinDeclSpecs;
 
57378
  friend class ::WinMemberExplSpec;
 
57379
  friend class ::WinTypeKeywords;
 
57380
  friend class ::WinFriend;
46926
57381
  friend class ::ExtAC;
46927
57382
  friend class ::ExtACBuilderCoupling;
46928
57383
  friend class ::ExtACSyntaxCoupling;
46929
57384
  friend class ::ExtACTree;
46930
57385
  friend class ::ExtACKeywords;
46931
 
  friend class ::WinAsm;
46932
 
  friend class ::WinDeclSpecs;
46933
 
  friend class ::WinMemberExplSpec;
46934
 
  friend class ::WinTypeKeywords;
 
57386
  friend class ::ExtGnu;
46935
57387
  friend class ::PragmaOnceUnitState;
46936
57388
  friend class ::PragmaOnce;
46937
 
  friend class ::CCExprResolve;
46938
 
  friend class ::CExprResolve;
 
57389
  friend class ::CMatchSyntax;
46939
57390
 
46940
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57391
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46941
57392
 
46942
57393
  CTree *sons[4]; // open, type, close, init
46943
57394
 
46944
57395
public:
 
57396
  /** Constructor.
 
57397
   *  \param r Left parenthesis of the type name.
 
57398
   *  \param t The type name.
 
57399
   *  \param cr Right parenthesis of the type name.
 
57400
   *  \param i The initializer list. */
46945
57401
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
46946
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
57402
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
57403
    AddSon (sons[2], cr); AddSon (sons[3], i);
46947
57404
  }
 
57405
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46948
57406
  static const char *NodeId ();
 
57407
  /** Get the name of the node. Can be compared with NodeId(). */
46949
57408
  const char *NodeName () const { return NodeId (); }
 
57409
  /** Get the number of sons. */
46950
57410
  int Sons () const { return 4; }
 
57411
  /** Get the n-th son.
 
57412
   *  \param n The index of the son.
 
57413
   *  \return The n-th son or NULL. */
46951
57414
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
57415
  /** Replace a son.
 
57416
   *  \param old_son The son to replace.
 
57417
   *  \param new_son The new son. */
46952
57418
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46953
57419
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46954
57420
  }
 
57421
  /** Get the type name. */
46955
57422
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
57423
  /** Get the initializer list. */
46956
57424
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
57425
  /** Get the semantic information object. */
46957
57426
  CSemObject *SemObject () const { return (CSemObject*)this; }
46958
57427
   private:
46959
57428
  typedef CT_CmpdLiteral CCExprResolveExpr;
46960
57429
 
46961
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57430
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
46962
57431
 public :
46963
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57432
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
46964
57433
  typedef CT_CmpdLiteral CExprResolveExpr;
46965
57434
 
46966
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57435
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
46967
57436
 public :
46968
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
46969
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57437
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57438
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46970
57439
};
46971
57440
 
 
57441
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
57442
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
46972
57443
 
46973
 
#line 46974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57444
#line 57445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
46974
57445
} // closed Puma
 
57446
class CCExprResolve;
 
57447
class CExprResolve;
46975
57448
class WinIfExists;
46976
57449
class WinImportHandler;
46977
57450
class WinMacros;
46978
 
class CMatchSyntax;
46979
 
class ExtGnu;
 
57451
class WinAsm;
 
57452
class WinDeclSpecs;
 
57453
class WinMemberExplSpec;
 
57454
class WinTypeKeywords;
 
57455
class WinFriend;
46980
57456
class ExtAC;
46981
57457
class ExtACBuilderCoupling;
46982
57458
class ExtACSyntaxCoupling;
46983
57459
class ExtACTree;
46984
57460
class ExtACKeywords;
46985
 
class WinAsm;
46986
 
class WinDeclSpecs;
46987
 
class WinMemberExplSpec;
46988
 
class WinTypeKeywords;
 
57461
class ExtGnu;
46989
57462
class PragmaOnceUnitState;
46990
57463
class PragmaOnce;
46991
 
class CCExprResolve;
46992
 
class CExprResolve;
46993
 
namespace Puma {
46994
 
 
46995
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57464
class CMatchSyntax;
 
57465
namespace Puma {
 
57466
 
 
57467
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57468
 
 
57469
#line 57470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57470
} // closed Puma
 
57471
 
 
57472
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57473
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57474
#include "CCExprResolveH.ah"
 
57475
#endif
 
57476
namespace Puma {
 
57477
 
 
57478
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57479
 
 
57480
#line 57481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57481
} // closed Puma
 
57482
 
 
57483
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57484
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57485
#include "CExprResolveH.ah"
 
57486
#endif
 
57487
namespace Puma {
 
57488
 
 
57489
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46996
57490
class CT_ConstructExpr : public CT_Expression, public CSemObject {
46997
 
#line 46998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57491
#line 57492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57492
  friend class ::CCExprResolve;
 
57493
  friend class ::CExprResolve;
46998
57494
  friend class ::WinIfExists;
46999
57495
  friend class ::WinImportHandler;
47000
57496
  friend class ::WinMacros;
47001
 
  friend class ::CMatchSyntax;
47002
 
  friend class ::ExtGnu;
 
57497
  friend class ::WinAsm;
 
57498
  friend class ::WinDeclSpecs;
 
57499
  friend class ::WinMemberExplSpec;
 
57500
  friend class ::WinTypeKeywords;
 
57501
  friend class ::WinFriend;
47003
57502
  friend class ::ExtAC;
47004
57503
  friend class ::ExtACBuilderCoupling;
47005
57504
  friend class ::ExtACSyntaxCoupling;
47006
57505
  friend class ::ExtACTree;
47007
57506
  friend class ::ExtACKeywords;
47008
 
  friend class ::WinAsm;
47009
 
  friend class ::WinDeclSpecs;
47010
 
  friend class ::WinMemberExplSpec;
47011
 
  friend class ::WinTypeKeywords;
 
57507
  friend class ::ExtGnu;
47012
57508
  friend class ::PragmaOnceUnitState;
47013
57509
  friend class ::PragmaOnce;
47014
 
  friend class ::CCExprResolve;
47015
 
  friend class ::CExprResolve;
 
57510
  friend class ::CMatchSyntax;
47016
57511
 
47017
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57512
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47018
57513
 
47019
57514
  CTree *sons[2]; // type, init
47020
57515
 
47021
57516
public:
47022
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
57517
  /** Constructor.
 
57518
   *  \param t The type name.
 
57519
   *  \param i The initializer list. */
 
57520
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
57521
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47023
57522
  static const char *NodeId ();
 
57523
  /** Get the name of the node. Can be compared with NodeId(). */
47024
57524
  const char *NodeName () const { return NodeId (); }
 
57525
  /** Get the number of sons. */
47025
57526
  int Sons () const { return 2; }
 
57527
  /** Get the n-th son.
 
57528
   *  \param n The index of the son.
 
57529
   *  \return The n-th son or NULL. */
47026
57530
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57531
  /** Replace a son.
 
57532
   *  \param old_son The son to replace.
 
57533
   *  \param new_son The new son. */
47027
57534
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47028
57535
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47029
57536
  }
 
57537
  /** Get the type name. */
47030
57538
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
57539
  /** Get the initializer. */
47031
57540
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
57541
  /** Get the semantic information object. */
47032
57542
  CSemObject *SemObject () const { return (CSemObject*)this; }
47033
57543
   private:
47034
57544
  typedef CT_ConstructExpr CCExprResolveExpr;
47035
57545
 
47036
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47037
57547
 public :
47038
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57548
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47039
57549
  typedef CT_ConstructExpr CExprResolveExpr;
47040
57550
 
47041
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47042
57552
 public :
47043
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47044
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57553
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57554
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47045
57555
};
47046
57556
 
 
57557
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
57558
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
47047
57559
 
47048
 
#line 47049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57560
#line 57561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47049
57561
} // closed Puma
 
57562
class CCExprResolve;
 
57563
class CExprResolve;
47050
57564
class WinIfExists;
47051
57565
class WinImportHandler;
47052
57566
class WinMacros;
47053
 
class CMatchSyntax;
47054
 
class ExtGnu;
 
57567
class WinAsm;
 
57568
class WinDeclSpecs;
 
57569
class WinMemberExplSpec;
 
57570
class WinTypeKeywords;
 
57571
class WinFriend;
47055
57572
class ExtAC;
47056
57573
class ExtACBuilderCoupling;
47057
57574
class ExtACSyntaxCoupling;
47058
57575
class ExtACTree;
47059
57576
class ExtACKeywords;
47060
 
class WinAsm;
47061
 
class WinDeclSpecs;
47062
 
class WinMemberExplSpec;
47063
 
class WinTypeKeywords;
 
57577
class ExtGnu;
47064
57578
class PragmaOnceUnitState;
47065
57579
class PragmaOnce;
47066
 
class CCExprResolve;
47067
 
class CExprResolve;
47068
 
namespace Puma {
47069
 
 
47070
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57580
class CMatchSyntax;
 
57581
namespace Puma {
 
57582
 
 
57583
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57584
 
 
57585
#line 57586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57586
} // closed Puma
 
57587
 
 
57588
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57589
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57590
#include "CCExprResolveH.ah"
 
57591
#endif
 
57592
namespace Puma {
 
57593
 
 
57594
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57595
 
 
57596
#line 57597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57597
} // closed Puma
 
57598
 
 
57599
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57600
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57601
#include "CExprResolveH.ah"
 
57602
#endif
 
57603
namespace Puma {
 
57604
 
 
57605
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47071
57606
class CT_ThrowExpr : public CT_Expression {
47072
 
#line 47073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57607
#line 57608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57608
  friend class ::CCExprResolve;
 
57609
  friend class ::CExprResolve;
47073
57610
  friend class ::WinIfExists;
47074
57611
  friend class ::WinImportHandler;
47075
57612
  friend class ::WinMacros;
47076
 
  friend class ::CMatchSyntax;
47077
 
  friend class ::ExtGnu;
 
57613
  friend class ::WinAsm;
 
57614
  friend class ::WinDeclSpecs;
 
57615
  friend class ::WinMemberExplSpec;
 
57616
  friend class ::WinTypeKeywords;
 
57617
  friend class ::WinFriend;
47078
57618
  friend class ::ExtAC;
47079
57619
  friend class ::ExtACBuilderCoupling;
47080
57620
  friend class ::ExtACSyntaxCoupling;
47081
57621
  friend class ::ExtACTree;
47082
57622
  friend class ::ExtACKeywords;
47083
 
  friend class ::WinAsm;
47084
 
  friend class ::WinDeclSpecs;
47085
 
  friend class ::WinMemberExplSpec;
47086
 
  friend class ::WinTypeKeywords;
 
57623
  friend class ::ExtGnu;
47087
57624
  friend class ::PragmaOnceUnitState;
47088
57625
  friend class ::PragmaOnce;
47089
 
  friend class ::CCExprResolve;
47090
 
  friend class ::CExprResolve;
 
57626
  friend class ::CMatchSyntax;
47091
57627
 
47092
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57628
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47093
57629
 
47094
57630
  CTree *sons[2]; // throw, expr
47095
57631
 
47096
57632
public:
47097
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
57633
  /** Constructor.
 
57634
   *  \param t The 'throw' keyword.
 
57635
   *  \param e The expression. */
 
57636
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
57637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47098
57638
  static const char *NodeId ();
 
57639
  /** Get the name of the node. Can be compared with NodeId(). */
47099
57640
  const char *NodeName () const { return NodeId (); }
 
57641
  /** Get the number of sons. */
47100
57642
  int Sons () const { return CTree::Sons (sons, 2); }
 
57643
  /** Get the n-th son.
 
57644
   *  \param n The index of the son.
 
57645
   *  \return The n-th son or NULL. */
47101
57646
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
57647
  /** Replace a son.
 
57648
   *  \param old_son The son to replace.
 
57649
   *  \param new_son The new son. */
47102
57650
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47103
57651
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47104
57652
  }
 
57653
  /** Get the expression. */
47105
57654
  CTree *Expr () const { return sons[1]; }
47106
57655
   private:
47107
57656
  typedef CT_ThrowExpr CCExprResolveExpr;
47108
57657
 
47109
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57658
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47110
57659
 public :
47111
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57660
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47112
57661
  typedef CT_ThrowExpr CExprResolveExpr;
47113
57662
 
47114
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57663
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47115
57664
 public :
47116
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47117
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57665
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57666
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47118
57667
};
47119
57668
 
 
57669
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
57670
 *  Tree node representing an index expression. */
47120
57671
 
47121
 
#line 47122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57672
#line 57673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47122
57673
} // closed Puma
 
57674
class CCExprResolve;
 
57675
class CExprResolve;
47123
57676
class WinIfExists;
47124
57677
class WinImportHandler;
47125
57678
class WinMacros;
47126
 
class CMatchSyntax;
47127
 
class ExtGnu;
 
57679
class WinAsm;
 
57680
class WinDeclSpecs;
 
57681
class WinMemberExplSpec;
 
57682
class WinTypeKeywords;
 
57683
class WinFriend;
47128
57684
class ExtAC;
47129
57685
class ExtACBuilderCoupling;
47130
57686
class ExtACSyntaxCoupling;
47131
57687
class ExtACTree;
47132
57688
class ExtACKeywords;
47133
 
class WinAsm;
47134
 
class WinDeclSpecs;
47135
 
class WinMemberExplSpec;
47136
 
class WinTypeKeywords;
 
57689
class ExtGnu;
47137
57690
class PragmaOnceUnitState;
47138
57691
class PragmaOnce;
47139
 
class CCExprResolve;
47140
 
class CExprResolve;
47141
 
namespace Puma {
47142
 
 
47143
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47144
 
class CT_IndexExpr : public CT_Expression {
47145
 
#line 47146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57692
class CMatchSyntax;
 
57693
namespace Puma {
 
57694
 
 
57695
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57696
 
 
57697
#line 57698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57698
} // closed Puma
 
57699
 
 
57700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57702
#include "CCExprResolveH.ah"
 
57703
#endif
 
57704
namespace Puma {
 
57705
 
 
57706
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57707
 
 
57708
#line 57709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57709
} // closed Puma
 
57710
 
 
57711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57713
#include "CExprResolveH.ah"
 
57714
#endif
 
57715
namespace Puma {
 
57716
 
 
57717
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57718
class CT_IndexExpr : public CT_Call {
 
57719
#line 57720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57720
  friend class ::CCExprResolve;
 
57721
  friend class ::CExprResolve;
47146
57722
  friend class ::WinIfExists;
47147
57723
  friend class ::WinImportHandler;
47148
57724
  friend class ::WinMacros;
47149
 
  friend class ::CMatchSyntax;
47150
 
  friend class ::ExtGnu;
 
57725
  friend class ::WinAsm;
 
57726
  friend class ::WinDeclSpecs;
 
57727
  friend class ::WinMemberExplSpec;
 
57728
  friend class ::WinTypeKeywords;
 
57729
  friend class ::WinFriend;
47151
57730
  friend class ::ExtAC;
47152
57731
  friend class ::ExtACBuilderCoupling;
47153
57732
  friend class ::ExtACSyntaxCoupling;
47154
57733
  friend class ::ExtACTree;
47155
57734
  friend class ::ExtACKeywords;
47156
 
  friend class ::WinAsm;
47157
 
  friend class ::WinDeclSpecs;
47158
 
  friend class ::WinMemberExplSpec;
47159
 
  friend class ::WinTypeKeywords;
 
57735
  friend class ::ExtGnu;
47160
57736
  friend class ::PragmaOnceUnitState;
47161
57737
  friend class ::PragmaOnce;
47162
 
  friend class ::CCExprResolve;
47163
 
  friend class ::CExprResolve;
 
57738
  friend class ::CMatchSyntax;
47164
57739
 
47165
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57740
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47166
57741
 
47167
57742
  CTree *sons[4]; // expr, open, index, close
47168
57743
 
47169
57744
public:
 
57745
  /** Constructor.
 
57746
   *  \param e The expression on which to invoke the index operator.
 
57747
   *  \param o Left parenthesis of the index expression.
 
57748
   *  \param i The index expression. 
 
57749
   *  \param c Right parenthesis of the index expression. */
47170
57750
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
47171
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
57751
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
57752
    AddSon (sons[2], i); AddSon (sons[3], c);
47172
57753
  }
 
57754
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47173
57755
  static const char *NodeId ();
 
57756
  /** Get the name of the node. Can be compared with NodeId(). */
47174
57757
  const char *NodeName () const { return NodeId (); }
 
57758
  /** Get the number of sons. */
47175
57759
  int Sons () const { return 4; }
 
57760
  /** Get the n-th son.
 
57761
   *  \param n The index of the son.
 
57762
   *  \return The n-th son or NULL. */
47176
57763
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
57764
  /** Replace a son.
 
57765
   *  \param old_son The son to replace.
 
57766
   *  \param new_son The new son. */
47177
57767
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47178
57768
    CTree::ReplaceSon (sons, 4, old_son, new_son);
47179
57769
  }
47180
57770
   private:
47181
57771
  typedef CT_IndexExpr CCExprResolveExpr;
47182
57772
 
47183
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57773
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47184
57774
 public :
47185
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57775
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47186
57776
  typedef CT_IndexExpr CExprResolveExpr;
47187
57777
 
47188
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57778
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47189
57779
 public :
47190
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47191
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57780
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57781
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47192
57782
};
47193
57783
 
 
57784
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
57785
 *  Tree node representing a function call expression, e.g. f(i). */
47194
57786
 
47195
 
#line 47196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57787
#line 57788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47196
57788
} // closed Puma
 
57789
class CCExprResolve;
 
57790
class CExprResolve;
47197
57791
class WinIfExists;
47198
57792
class WinImportHandler;
47199
57793
class WinMacros;
47200
 
class CMatchSyntax;
47201
 
class ExtGnu;
 
57794
class WinAsm;
 
57795
class WinDeclSpecs;
 
57796
class WinMemberExplSpec;
 
57797
class WinTypeKeywords;
 
57798
class WinFriend;
47202
57799
class ExtAC;
47203
57800
class ExtACBuilderCoupling;
47204
57801
class ExtACSyntaxCoupling;
47205
57802
class ExtACTree;
47206
57803
class ExtACKeywords;
47207
 
class WinAsm;
47208
 
class WinDeclSpecs;
47209
 
class WinMemberExplSpec;
47210
 
class WinTypeKeywords;
 
57804
class ExtGnu;
47211
57805
class PragmaOnceUnitState;
47212
57806
class PragmaOnce;
47213
 
class CCExprResolve;
47214
 
class CExprResolve;
47215
 
namespace Puma {
47216
 
 
47217
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47218
 
class CT_CallExpr : public CT_Expression, public CSemObject {
47219
 
#line 47220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57807
class CMatchSyntax;
 
57808
namespace Puma {
 
57809
 
 
57810
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57811
 
 
57812
#line 57813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57813
} // closed Puma
 
57814
 
 
57815
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57816
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57817
#include "CCExprResolveH.ah"
 
57818
#endif
 
57819
namespace Puma {
 
57820
 
 
57821
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57822
 
 
57823
#line 57824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57824
} // closed Puma
 
57825
 
 
57826
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57827
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57828
#include "CExprResolveH.ah"
 
57829
#endif
 
57830
namespace Puma {
 
57831
 
 
57832
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57833
class CT_CallExpr : public CT_Call {
 
57834
#line 57835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57835
  friend class ::CCExprResolve;
 
57836
  friend class ::CExprResolve;
47220
57837
  friend class ::WinIfExists;
47221
57838
  friend class ::WinImportHandler;
47222
57839
  friend class ::WinMacros;
47223
 
  friend class ::CMatchSyntax;
47224
 
  friend class ::ExtGnu;
 
57840
  friend class ::WinAsm;
 
57841
  friend class ::WinDeclSpecs;
 
57842
  friend class ::WinMemberExplSpec;
 
57843
  friend class ::WinTypeKeywords;
 
57844
  friend class ::WinFriend;
47225
57845
  friend class ::ExtAC;
47226
57846
  friend class ::ExtACBuilderCoupling;
47227
57847
  friend class ::ExtACSyntaxCoupling;
47228
57848
  friend class ::ExtACTree;
47229
57849
  friend class ::ExtACKeywords;
47230
 
  friend class ::WinAsm;
47231
 
  friend class ::WinDeclSpecs;
47232
 
  friend class ::WinMemberExplSpec;
47233
 
  friend class ::WinTypeKeywords;
 
57850
  friend class ::ExtGnu;
47234
57851
  friend class ::PragmaOnceUnitState;
47235
57852
  friend class ::PragmaOnce;
47236
 
  friend class ::CCExprResolve;
47237
 
  friend class ::CExprResolve;
 
57853
  friend class ::CMatchSyntax;
47238
57854
 
47239
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57855
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47240
57856
 
47241
57857
  CTree *sons[2]; // expr, args
47242
57858
 
47243
57859
public:
47244
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
47245
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
57860
  /** Constructor.
 
57861
   *  \param e The expression on which the call is invoked. */
 
57862
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
57863
  /** Constructor.
 
57864
   *  \param e The expression on which the call is invoked.
 
57865
   *  \param l The argument list of the call. */
 
57866
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
57867
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47246
57868
  static const char *NodeId ();
 
57869
  /** Get the name of the node. Can be compared with NodeId(). */
47247
57870
  const char *NodeName () const { return NodeId (); }
 
57871
  /** Get the number of sons. */
47248
57872
  int Sons () const { return CTree::Sons (sons, 2); }
 
57873
  /** Get the n-th son.
 
57874
   *  \param n The index of the son.
 
57875
   *  \return The n-th son or NULL. */
47249
57876
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
57877
  /** Replace a son.
 
57878
   *  \param old_son The son to replace.
 
57879
   *  \param new_son The new son. */
47250
57880
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47251
57881
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47252
57882
  }
47253
57883
  CTree *Expr () const { return sons[0]; }
47254
57884
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
47255
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
47256
57885
   private:
47257
57886
  typedef CT_CallExpr CCExprResolveExpr;
47258
57887
 
47259
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57888
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47260
57889
 public :
47261
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57890
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47262
57891
  typedef CT_CallExpr CExprResolveExpr;
47263
57892
 
47264
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57893
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47265
57894
 public :
47266
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47267
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57895
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57896
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47268
57897
};
47269
57898
 
 
57899
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
57900
 *  Tree node representing a cast expression, e.g. (int)a. */
47270
57901
 
47271
 
#line 47272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57902
#line 57903 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47272
57903
} // closed Puma
 
57904
class CCExprResolve;
 
57905
class CExprResolve;
47273
57906
class WinIfExists;
47274
57907
class WinImportHandler;
47275
57908
class WinMacros;
47276
 
class CMatchSyntax;
47277
 
class ExtGnu;
 
57909
class WinAsm;
 
57910
class WinDeclSpecs;
 
57911
class WinMemberExplSpec;
 
57912
class WinTypeKeywords;
 
57913
class WinFriend;
47278
57914
class ExtAC;
47279
57915
class ExtACBuilderCoupling;
47280
57916
class ExtACSyntaxCoupling;
47281
57917
class ExtACTree;
47282
57918
class ExtACKeywords;
47283
 
class WinAsm;
47284
 
class WinDeclSpecs;
47285
 
class WinMemberExplSpec;
47286
 
class WinTypeKeywords;
 
57919
class ExtGnu;
47287
57920
class PragmaOnceUnitState;
47288
57921
class PragmaOnce;
47289
 
class CCExprResolve;
47290
 
class CExprResolve;
47291
 
namespace Puma {
47292
 
 
47293
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57922
class CMatchSyntax;
 
57923
namespace Puma {
 
57924
 
 
57925
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57926
 
 
57927
#line 57928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57928
} // closed Puma
 
57929
 
 
57930
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57931
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57932
#include "CCExprResolveH.ah"
 
57933
#endif
 
57934
namespace Puma {
 
57935
 
 
57936
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57937
 
 
57938
#line 57939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57939
} // closed Puma
 
57940
 
 
57941
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57942
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57943
#include "CExprResolveH.ah"
 
57944
#endif
 
57945
namespace Puma {
 
57946
 
 
57947
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47294
57948
class CT_CastExpr : public CT_Expression {
47295
 
#line 47296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
57949
#line 57950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
57950
  friend class ::CCExprResolve;
 
57951
  friend class ::CExprResolve;
47296
57952
  friend class ::WinIfExists;
47297
57953
  friend class ::WinImportHandler;
47298
57954
  friend class ::WinMacros;
47299
 
  friend class ::CMatchSyntax;
47300
 
  friend class ::ExtGnu;
 
57955
  friend class ::WinAsm;
 
57956
  friend class ::WinDeclSpecs;
 
57957
  friend class ::WinMemberExplSpec;
 
57958
  friend class ::WinTypeKeywords;
 
57959
  friend class ::WinFriend;
47301
57960
  friend class ::ExtAC;
47302
57961
  friend class ::ExtACBuilderCoupling;
47303
57962
  friend class ::ExtACSyntaxCoupling;
47304
57963
  friend class ::ExtACTree;
47305
57964
  friend class ::ExtACKeywords;
47306
 
  friend class ::WinAsm;
47307
 
  friend class ::WinDeclSpecs;
47308
 
  friend class ::WinMemberExplSpec;
47309
 
  friend class ::WinTypeKeywords;
 
57965
  friend class ::ExtGnu;
47310
57966
  friend class ::PragmaOnceUnitState;
47311
57967
  friend class ::PragmaOnce;
47312
 
  friend class ::CCExprResolve;
47313
 
  friend class ::CExprResolve;
 
57968
  friend class ::CMatchSyntax;
47314
57969
 
47315
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57970
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47316
57971
 
47317
57972
  CTree *sons[4]; // open, type, close, expr
47318
57973
 
47319
57974
public:
 
57975
  /** Constructor.
 
57976
   *  \param o Left parenthesis of the type name.
 
57977
   *  \param t The type to cast to.
 
57978
   *  \param c Right parenthesis of the type name. 
 
57979
   *  \param e The expression to cast. */
47320
57980
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
47321
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
57981
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
57982
    AddSon (sons[2], c); AddSon (sons[3], e);
47322
57983
  }
 
57984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47323
57985
  static const char *NodeId ();
 
57986
  /** Get the name of the node. Can be compared with NodeId(). */
47324
57987
  const char *NodeName () const { return NodeId (); }
 
57988
  /** Get the number of sons. */
47325
57989
  int Sons () const { return 4; }
 
57990
  /** Get the n-th son.
 
57991
   *  \param n The index of the son.
 
57992
   *  \return The n-th son or NULL. */
47326
57993
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
57994
  /** Replace a son.
 
57995
   *  \param old_son The son to replace.
 
57996
   *  \param new_son The new son. */
47327
57997
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47328
57998
    CTree::ReplaceSon (sons, 4, old_son, new_son);
47329
57999
  }
 
58000
  /** Get the casted expression. */
47330
58001
  CTree *Expr () const { return sons[3]; }
 
58002
  /** Get the type to cast to. */
47331
58003
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
47332
58004
   private:
47333
58005
  typedef CT_CastExpr CCExprResolveExpr;
47334
58006
 
47335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58007
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47336
58008
 public :
47337
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58009
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47338
58010
  typedef CT_CastExpr CExprResolveExpr;
47339
58011
 
47340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58012
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47341
58013
 public :
47342
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47343
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58014
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58015
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47344
58016
};
47345
58017
 
 
58018
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
58019
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
47346
58020
 
47347
 
#line 47348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58021
#line 58022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47348
58022
} // closed Puma
 
58023
class CCExprResolve;
 
58024
class CExprResolve;
47349
58025
class WinIfExists;
47350
58026
class WinImportHandler;
47351
58027
class WinMacros;
47352
 
class CMatchSyntax;
47353
 
class ExtGnu;
 
58028
class WinAsm;
 
58029
class WinDeclSpecs;
 
58030
class WinMemberExplSpec;
 
58031
class WinTypeKeywords;
 
58032
class WinFriend;
47354
58033
class ExtAC;
47355
58034
class ExtACBuilderCoupling;
47356
58035
class ExtACSyntaxCoupling;
47357
58036
class ExtACTree;
47358
58037
class ExtACKeywords;
47359
 
class WinAsm;
47360
 
class WinDeclSpecs;
47361
 
class WinMemberExplSpec;
47362
 
class WinTypeKeywords;
 
58038
class ExtGnu;
47363
58039
class PragmaOnceUnitState;
47364
58040
class PragmaOnce;
47365
 
class CCExprResolve;
47366
 
class CExprResolve;
47367
 
namespace Puma {
47368
 
 
47369
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58041
class CMatchSyntax;
 
58042
namespace Puma {
 
58043
 
 
58044
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58045
 
 
58046
#line 58047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58047
} // closed Puma
 
58048
 
 
58049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58051
#include "CCExprResolveH.ah"
 
58052
#endif
 
58053
namespace Puma {
 
58054
 
 
58055
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58056
 
 
58057
#line 58058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58058
} // closed Puma
 
58059
 
 
58060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58062
#include "CExprResolveH.ah"
 
58063
#endif
 
58064
namespace Puma {
 
58065
 
 
58066
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47370
58067
class CT_StaticCast : public CT_Expression {
47371
 
#line 47372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58068
#line 58069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58069
  friend class ::CCExprResolve;
 
58070
  friend class ::CExprResolve;
47372
58071
  friend class ::WinIfExists;
47373
58072
  friend class ::WinImportHandler;
47374
58073
  friend class ::WinMacros;
47375
 
  friend class ::CMatchSyntax;
47376
 
  friend class ::ExtGnu;
 
58074
  friend class ::WinAsm;
 
58075
  friend class ::WinDeclSpecs;
 
58076
  friend class ::WinMemberExplSpec;
 
58077
  friend class ::WinTypeKeywords;
 
58078
  friend class ::WinFriend;
47377
58079
  friend class ::ExtAC;
47378
58080
  friend class ::ExtACBuilderCoupling;
47379
58081
  friend class ::ExtACSyntaxCoupling;
47380
58082
  friend class ::ExtACTree;
47381
58083
  friend class ::ExtACKeywords;
47382
 
  friend class ::WinAsm;
47383
 
  friend class ::WinDeclSpecs;
47384
 
  friend class ::WinMemberExplSpec;
47385
 
  friend class ::WinTypeKeywords;
 
58084
  friend class ::ExtGnu;
47386
58085
  friend class ::PragmaOnceUnitState;
47387
58086
  friend class ::PragmaOnce;
47388
 
  friend class ::CCExprResolve;
47389
 
  friend class ::CExprResolve;
 
58087
  friend class ::CMatchSyntax;
47390
58088
 
47391
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58089
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47392
58090
 
47393
58091
  CTree *sons[5]; // cast, open, type, close, expr
47394
58092
 
47395
58093
public:
 
58094
  /** Constructor.
 
58095
   *  \param cst The cast operator, i.e. 'static_cast'.
 
58096
   *  \param o Left arrow bracket of the type name.
 
58097
   *  \param t The type to cast to.
 
58098
   *  \param c Right array bracket of the type name.
 
58099
   *  \param e The expression to cast. */
47396
58100
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
47397
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
58101
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
58102
    AddSon (sons[3], c); AddSon (sons[4], e);
47398
58103
  }
 
58104
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47399
58105
  static const char *NodeId ();
 
58106
  /** Get the name of the node. Can be compared with NodeId(). */
47400
58107
  const char *NodeName () const { return NodeId (); }
 
58108
  /** Get the number of sons. */
47401
58109
  int Sons () const { return 5; }
 
58110
  /** Get the n-th son.
 
58111
   *  \param n The index of the son.
 
58112
   *  \return The n-th son or NULL. */
47402
58113
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
58114
  /** Replace a son.
 
58115
   *  \param old_son The son to replace.
 
58116
   *  \param new_son The new son. */
47403
58117
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47404
58118
    CTree::ReplaceSon (sons, 5, old_son, new_son);
47405
58119
  }
 
58120
  /** Get the casted expression. */
47406
58121
  CTree *Expr () const { return sons[4]; }
 
58122
  /** Get the type to cast to. */
47407
58123
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
47408
58124
   private:
47409
58125
  typedef CT_StaticCast CCExprResolveExpr;
47410
58126
 
47411
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47412
58128
 public :
47413
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58129
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47414
58130
  typedef CT_StaticCast CExprResolveExpr;
47415
58131
 
47416
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58132
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47417
58133
 public :
47418
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47419
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58134
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58135
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47420
58136
};
47421
58137
 
 
58138
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
58139
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
47422
58140
 
47423
 
#line 47424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58141
#line 58142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47424
58142
} // closed Puma
 
58143
class CCExprResolve;
 
58144
class CExprResolve;
47425
58145
class WinIfExists;
47426
58146
class WinImportHandler;
47427
58147
class WinMacros;
47428
 
class CMatchSyntax;
47429
 
class ExtGnu;
 
58148
class WinAsm;
 
58149
class WinDeclSpecs;
 
58150
class WinMemberExplSpec;
 
58151
class WinTypeKeywords;
 
58152
class WinFriend;
47430
58153
class ExtAC;
47431
58154
class ExtACBuilderCoupling;
47432
58155
class ExtACSyntaxCoupling;
47433
58156
class ExtACTree;
47434
58157
class ExtACKeywords;
47435
 
class WinAsm;
47436
 
class WinDeclSpecs;
47437
 
class WinMemberExplSpec;
47438
 
class WinTypeKeywords;
 
58158
class ExtGnu;
47439
58159
class PragmaOnceUnitState;
47440
58160
class PragmaOnce;
47441
 
class CCExprResolve;
47442
 
class CExprResolve;
47443
 
namespace Puma {
47444
 
 
47445
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58161
class CMatchSyntax;
 
58162
namespace Puma {
 
58163
 
 
58164
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58165
 
 
58166
#line 58167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58167
} // closed Puma
 
58168
 
 
58169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58171
#include "CCExprResolveH.ah"
 
58172
#endif
 
58173
namespace Puma {
 
58174
 
 
58175
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58176
 
 
58177
#line 58178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58178
} // closed Puma
 
58179
 
 
58180
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58181
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58182
#include "CExprResolveH.ah"
 
58183
#endif
 
58184
namespace Puma {
 
58185
 
 
58186
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47446
58187
class CT_ConstCast : public CT_StaticCast {
47447
 
#line 47448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58188
#line 58189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58189
  friend class ::CCExprResolve;
 
58190
  friend class ::CExprResolve;
47448
58191
  friend class ::WinIfExists;
47449
58192
  friend class ::WinImportHandler;
47450
58193
  friend class ::WinMacros;
47451
 
  friend class ::CMatchSyntax;
47452
 
  friend class ::ExtGnu;
 
58194
  friend class ::WinAsm;
 
58195
  friend class ::WinDeclSpecs;
 
58196
  friend class ::WinMemberExplSpec;
 
58197
  friend class ::WinTypeKeywords;
 
58198
  friend class ::WinFriend;
47453
58199
  friend class ::ExtAC;
47454
58200
  friend class ::ExtACBuilderCoupling;
47455
58201
  friend class ::ExtACSyntaxCoupling;
47456
58202
  friend class ::ExtACTree;
47457
58203
  friend class ::ExtACKeywords;
47458
 
  friend class ::WinAsm;
47459
 
  friend class ::WinDeclSpecs;
47460
 
  friend class ::WinMemberExplSpec;
47461
 
  friend class ::WinTypeKeywords;
 
58204
  friend class ::ExtGnu;
47462
58205
  friend class ::PragmaOnceUnitState;
47463
58206
  friend class ::PragmaOnce;
47464
 
  friend class ::CCExprResolve;
47465
 
  friend class ::CExprResolve;
 
58207
  friend class ::CMatchSyntax;
47466
58208
 
47467
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58209
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47468
58210
 
47469
58211
public:
 
58212
  /** Constructor.
 
58213
   *  \param cst The cast operator, i.e. 'const_cast'.
 
58214
   *  \param o Left arrow bracket of the type name.
 
58215
   *  \param t The type to cast to.
 
58216
   *  \param c Right array bracket of the type name.
 
58217
   *  \param e The expression to cast. */
47470
58218
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
47471
58219
    CT_StaticCast (cst, o, t, c, e) {}
 
58220
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47472
58221
  static const char *NodeId ();
 
58222
  /** Get the name of the node. Can be compared with NodeId(). */
47473
58223
  const char *NodeName () const { return NodeId (); }
47474
58224
   private:
47475
58225
  typedef CT_ConstCast CCExprResolveExpr;
47476
58226
 
47477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58227
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47478
58228
 public :
47479
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58229
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47480
58230
  typedef CT_ConstCast CExprResolveExpr;
47481
58231
 
47482
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58232
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47483
58233
 public :
47484
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47485
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58234
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58235
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47486
58236
};
47487
58237
 
 
58238
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
58239
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
47488
58240
 
47489
 
#line 47490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58241
#line 58242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47490
58242
} // closed Puma
 
58243
class CCExprResolve;
 
58244
class CExprResolve;
47491
58245
class WinIfExists;
47492
58246
class WinImportHandler;
47493
58247
class WinMacros;
47494
 
class CMatchSyntax;
47495
 
class ExtGnu;
 
58248
class WinAsm;
 
58249
class WinDeclSpecs;
 
58250
class WinMemberExplSpec;
 
58251
class WinTypeKeywords;
 
58252
class WinFriend;
47496
58253
class ExtAC;
47497
58254
class ExtACBuilderCoupling;
47498
58255
class ExtACSyntaxCoupling;
47499
58256
class ExtACTree;
47500
58257
class ExtACKeywords;
47501
 
class WinAsm;
47502
 
class WinDeclSpecs;
47503
 
class WinMemberExplSpec;
47504
 
class WinTypeKeywords;
 
58258
class ExtGnu;
47505
58259
class PragmaOnceUnitState;
47506
58260
class PragmaOnce;
47507
 
class CCExprResolve;
47508
 
class CExprResolve;
47509
 
namespace Puma {
47510
 
 
47511
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58261
class CMatchSyntax;
 
58262
namespace Puma {
 
58263
 
 
58264
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58265
 
 
58266
#line 58267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58267
} // closed Puma
 
58268
 
 
58269
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58270
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58271
#include "CCExprResolveH.ah"
 
58272
#endif
 
58273
namespace Puma {
 
58274
 
 
58275
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58276
 
 
58277
#line 58278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58278
} // closed Puma
 
58279
 
 
58280
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58281
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58282
#include "CExprResolveH.ah"
 
58283
#endif
 
58284
namespace Puma {
 
58285
 
 
58286
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47512
58287
class CT_ReintCast : public CT_StaticCast {
47513
 
#line 47514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58288
#line 58289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58289
  friend class ::CCExprResolve;
 
58290
  friend class ::CExprResolve;
47514
58291
  friend class ::WinIfExists;
47515
58292
  friend class ::WinImportHandler;
47516
58293
  friend class ::WinMacros;
47517
 
  friend class ::CMatchSyntax;
47518
 
  friend class ::ExtGnu;
 
58294
  friend class ::WinAsm;
 
58295
  friend class ::WinDeclSpecs;
 
58296
  friend class ::WinMemberExplSpec;
 
58297
  friend class ::WinTypeKeywords;
 
58298
  friend class ::WinFriend;
47519
58299
  friend class ::ExtAC;
47520
58300
  friend class ::ExtACBuilderCoupling;
47521
58301
  friend class ::ExtACSyntaxCoupling;
47522
58302
  friend class ::ExtACTree;
47523
58303
  friend class ::ExtACKeywords;
47524
 
  friend class ::WinAsm;
47525
 
  friend class ::WinDeclSpecs;
47526
 
  friend class ::WinMemberExplSpec;
47527
 
  friend class ::WinTypeKeywords;
 
58304
  friend class ::ExtGnu;
47528
58305
  friend class ::PragmaOnceUnitState;
47529
58306
  friend class ::PragmaOnce;
47530
 
  friend class ::CCExprResolve;
47531
 
  friend class ::CExprResolve;
 
58307
  friend class ::CMatchSyntax;
47532
58308
 
47533
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58309
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47534
58310
 
47535
58311
public:
 
58312
  /** Constructor.
 
58313
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
58314
   *  \param o Left arrow bracket of the type name.
 
58315
   *  \param t The type to cast to.
 
58316
   *  \param c Right array bracket of the type name.
 
58317
   *  \param e The expression to cast. */
47536
58318
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
47537
58319
    CT_StaticCast (cst, o, t, c, e) {}
 
58320
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47538
58321
  static const char *NodeId ();
 
58322
  /** Get the name of the node. Can be compared with NodeId(). */
47539
58323
  const char *NodeName () const { return NodeId (); }
47540
58324
   private:
47541
58325
  typedef CT_ReintCast CCExprResolveExpr;
47542
58326
 
47543
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58327
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47544
58328
 public :
47545
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58329
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47546
58330
  typedef CT_ReintCast CExprResolveExpr;
47547
58331
 
47548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58332
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47549
58333
 public :
47550
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47551
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58334
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58335
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47552
58336
};
47553
58337
 
 
58338
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
58339
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
47554
58340
 
47555
 
#line 47556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58341
#line 58342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47556
58342
} // closed Puma
 
58343
class CCExprResolve;
 
58344
class CExprResolve;
47557
58345
class WinIfExists;
47558
58346
class WinImportHandler;
47559
58347
class WinMacros;
47560
 
class CMatchSyntax;
47561
 
class ExtGnu;
 
58348
class WinAsm;
 
58349
class WinDeclSpecs;
 
58350
class WinMemberExplSpec;
 
58351
class WinTypeKeywords;
 
58352
class WinFriend;
47562
58353
class ExtAC;
47563
58354
class ExtACBuilderCoupling;
47564
58355
class ExtACSyntaxCoupling;
47565
58356
class ExtACTree;
47566
58357
class ExtACKeywords;
47567
 
class WinAsm;
47568
 
class WinDeclSpecs;
47569
 
class WinMemberExplSpec;
47570
 
class WinTypeKeywords;
 
58358
class ExtGnu;
47571
58359
class PragmaOnceUnitState;
47572
58360
class PragmaOnce;
47573
 
class CCExprResolve;
47574
 
class CExprResolve;
47575
 
namespace Puma {
47576
 
 
47577
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58361
class CMatchSyntax;
 
58362
namespace Puma {
 
58363
 
 
58364
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58365
 
 
58366
#line 58367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58367
} // closed Puma
 
58368
 
 
58369
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58370
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58371
#include "CCExprResolveH.ah"
 
58372
#endif
 
58373
namespace Puma {
 
58374
 
 
58375
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58376
 
 
58377
#line 58378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58378
} // closed Puma
 
58379
 
 
58380
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58381
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58382
#include "CExprResolveH.ah"
 
58383
#endif
 
58384
namespace Puma {
 
58385
 
 
58386
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47578
58387
class CT_DynamicCast : public CT_StaticCast {
47579
 
#line 47580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58388
#line 58389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58389
  friend class ::CCExprResolve;
 
58390
  friend class ::CExprResolve;
47580
58391
  friend class ::WinIfExists;
47581
58392
  friend class ::WinImportHandler;
47582
58393
  friend class ::WinMacros;
47583
 
  friend class ::CMatchSyntax;
47584
 
  friend class ::ExtGnu;
 
58394
  friend class ::WinAsm;
 
58395
  friend class ::WinDeclSpecs;
 
58396
  friend class ::WinMemberExplSpec;
 
58397
  friend class ::WinTypeKeywords;
 
58398
  friend class ::WinFriend;
47585
58399
  friend class ::ExtAC;
47586
58400
  friend class ::ExtACBuilderCoupling;
47587
58401
  friend class ::ExtACSyntaxCoupling;
47588
58402
  friend class ::ExtACTree;
47589
58403
  friend class ::ExtACKeywords;
47590
 
  friend class ::WinAsm;
47591
 
  friend class ::WinDeclSpecs;
47592
 
  friend class ::WinMemberExplSpec;
47593
 
  friend class ::WinTypeKeywords;
 
58404
  friend class ::ExtGnu;
47594
58405
  friend class ::PragmaOnceUnitState;
47595
58406
  friend class ::PragmaOnce;
47596
 
  friend class ::CCExprResolve;
47597
 
  friend class ::CExprResolve;
 
58407
  friend class ::CMatchSyntax;
47598
58408
 
47599
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58409
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47600
58410
 
47601
58411
public:
 
58412
  /** Constructor.
 
58413
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
58414
   *  \param o Left arrow bracket of the type name.
 
58415
   *  \param t The type to cast to.
 
58416
   *  \param c Right array bracket of the type name.
 
58417
   *  \param e The expression to cast. */
47602
58418
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
47603
58419
    CT_StaticCast (cst, o, t, c, e) {}
 
58420
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47604
58421
  static const char *NodeId ();
 
58422
  /** Get the name of the node. Can be compared with NodeId(). */
47605
58423
  const char *NodeName () const { return NodeId (); }
47606
58424
   private:
47607
58425
  typedef CT_DynamicCast CCExprResolveExpr;
47608
58426
 
47609
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58427
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47610
58428
 public :
47611
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58429
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47612
58430
  typedef CT_DynamicCast CExprResolveExpr;
47613
58431
 
47614
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58432
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47615
58433
 public :
47616
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47617
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58434
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58435
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47618
58436
};
47619
58437
 
 
58438
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
58439
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
58440
 *  where 1.2 is implicitely casted from float to int. */
47620
58441
 
47621
 
#line 47622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58442
#line 58443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47622
58443
} // closed Puma
 
58444
class CCExprResolve;
 
58445
class CExprResolve;
47623
58446
class WinIfExists;
47624
58447
class WinImportHandler;
47625
58448
class WinMacros;
47626
 
class CMatchSyntax;
47627
 
class ExtGnu;
 
58449
class WinAsm;
 
58450
class WinDeclSpecs;
 
58451
class WinMemberExplSpec;
 
58452
class WinTypeKeywords;
 
58453
class WinFriend;
47628
58454
class ExtAC;
47629
58455
class ExtACBuilderCoupling;
47630
58456
class ExtACSyntaxCoupling;
47631
58457
class ExtACTree;
47632
58458
class ExtACKeywords;
47633
 
class WinAsm;
47634
 
class WinDeclSpecs;
47635
 
class WinMemberExplSpec;
47636
 
class WinTypeKeywords;
 
58459
class ExtGnu;
47637
58460
class PragmaOnceUnitState;
47638
58461
class PragmaOnce;
47639
 
class CCExprResolve;
47640
 
class CExprResolve;
47641
 
namespace Puma {
47642
 
 
47643
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58462
class CMatchSyntax;
 
58463
namespace Puma {
 
58464
 
 
58465
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58466
 
 
58467
#line 58468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58468
} // closed Puma
 
58469
 
 
58470
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58471
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58472
#include "CCExprResolveH.ah"
 
58473
#endif
 
58474
namespace Puma {
 
58475
 
 
58476
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58477
 
 
58478
#line 58479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58479
} // closed Puma
 
58480
 
 
58481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58483
#include "CExprResolveH.ah"
 
58484
#endif
 
58485
namespace Puma {
 
58486
 
 
58487
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47644
58488
class CT_ImplicitCast : public CT_Expression {
47645
 
#line 47646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58489
#line 58490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58490
  friend class ::CCExprResolve;
 
58491
  friend class ::CExprResolve;
47646
58492
  friend class ::WinIfExists;
47647
58493
  friend class ::WinImportHandler;
47648
58494
  friend class ::WinMacros;
47649
 
  friend class ::CMatchSyntax;
47650
 
  friend class ::ExtGnu;
 
58495
  friend class ::WinAsm;
 
58496
  friend class ::WinDeclSpecs;
 
58497
  friend class ::WinMemberExplSpec;
 
58498
  friend class ::WinTypeKeywords;
 
58499
  friend class ::WinFriend;
47651
58500
  friend class ::ExtAC;
47652
58501
  friend class ::ExtACBuilderCoupling;
47653
58502
  friend class ::ExtACSyntaxCoupling;
47654
58503
  friend class ::ExtACTree;
47655
58504
  friend class ::ExtACKeywords;
47656
 
  friend class ::WinAsm;
47657
 
  friend class ::WinDeclSpecs;
47658
 
  friend class ::WinMemberExplSpec;
47659
 
  friend class ::WinTypeKeywords;
 
58505
  friend class ::ExtGnu;
47660
58506
  friend class ::PragmaOnceUnitState;
47661
58507
  friend class ::PragmaOnce;
47662
 
  friend class ::CCExprResolve;
47663
 
  friend class ::CExprResolve;
 
58508
  friend class ::CMatchSyntax;
47664
58509
 
47665
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58510
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47666
58511
 
47667
58512
  CTree *_expr; // casted expression
47668
58513
 
47669
58514
public:
47670
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
58515
  /** Constructor.
 
58516
   *  \param e The expression that is implicitely casted. */
 
58517
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
58518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47671
58519
  static const char *NodeId ();
 
58520
  /** Get the name of the node. Can be compared with NodeId(). */
47672
58521
  const char *NodeName () const { return NodeId (); }
 
58522
  /** Get the number of sons. */
47673
58523
  int Sons () const { return 1; }
 
58524
  /** Get the n-th son.
 
58525
   *  \param n The index of the son.
 
58526
   *  \return The n-th son or NULL. */
47674
58527
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
58528
  /** Get the casted expression. */
47675
58529
  CTree *Expr () const { return _expr; }
 
58530
  /** Replace a son.
 
58531
   *  \param old_son The son to replace.
 
58532
   *  \param new_son The new son. */
47676
58533
  void ReplaceSon (CTree *old_son, CTree *new_son) 
47677
 
   { if (old_son == _expr) _expr = new_son; }
 
58534
   { CTree::ReplaceSon (_expr, old_son, new_son); }
47678
58535
   private:
47679
58536
  typedef CT_ImplicitCast CCExprResolveExpr;
47680
58537
 
47681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58538
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47682
58539
 public :
47683
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58540
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47684
58541
  typedef CT_ImplicitCast CExprResolveExpr;
47685
58542
 
47686
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58543
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47687
58544
 public :
47688
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47689
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58545
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58546
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47690
58547
};
47691
58548
 
 
58549
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
58550
 *  Tree node representing a typeid expression, e.g. typeid(X). */
47692
58551
 
47693
 
#line 47694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58552
#line 58553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47694
58553
} // closed Puma
 
58554
class CCExprResolve;
 
58555
class CExprResolve;
47695
58556
class WinIfExists;
47696
58557
class WinImportHandler;
47697
58558
class WinMacros;
47698
 
class CMatchSyntax;
47699
 
class ExtGnu;
 
58559
class WinAsm;
 
58560
class WinDeclSpecs;
 
58561
class WinMemberExplSpec;
 
58562
class WinTypeKeywords;
 
58563
class WinFriend;
47700
58564
class ExtAC;
47701
58565
class ExtACBuilderCoupling;
47702
58566
class ExtACSyntaxCoupling;
47703
58567
class ExtACTree;
47704
58568
class ExtACKeywords;
47705
 
class WinAsm;
47706
 
class WinDeclSpecs;
47707
 
class WinMemberExplSpec;
47708
 
class WinTypeKeywords;
 
58569
class ExtGnu;
47709
58570
class PragmaOnceUnitState;
47710
58571
class PragmaOnce;
47711
 
class CCExprResolve;
47712
 
class CExprResolve;
47713
 
namespace Puma {
47714
 
 
47715
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58572
class CMatchSyntax;
 
58573
namespace Puma {
 
58574
 
 
58575
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58576
 
 
58577
#line 58578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58578
} // closed Puma
 
58579
 
 
58580
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58581
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58582
#include "CCExprResolveH.ah"
 
58583
#endif
 
58584
namespace Puma {
 
58585
 
 
58586
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58587
 
 
58588
#line 58589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58589
} // closed Puma
 
58590
 
 
58591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58593
#include "CExprResolveH.ah"
 
58594
#endif
 
58595
namespace Puma {
 
58596
 
 
58597
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47716
58598
class CT_TypeidExpr : public CT_Expression {
47717
 
#line 47718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58599
#line 58600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58600
  friend class ::CCExprResolve;
 
58601
  friend class ::CExprResolve;
47718
58602
  friend class ::WinIfExists;
47719
58603
  friend class ::WinImportHandler;
47720
58604
  friend class ::WinMacros;
47721
 
  friend class ::CMatchSyntax;
47722
 
  friend class ::ExtGnu;
 
58605
  friend class ::WinAsm;
 
58606
  friend class ::WinDeclSpecs;
 
58607
  friend class ::WinMemberExplSpec;
 
58608
  friend class ::WinTypeKeywords;
 
58609
  friend class ::WinFriend;
47723
58610
  friend class ::ExtAC;
47724
58611
  friend class ::ExtACBuilderCoupling;
47725
58612
  friend class ::ExtACSyntaxCoupling;
47726
58613
  friend class ::ExtACTree;
47727
58614
  friend class ::ExtACKeywords;
47728
 
  friend class ::WinAsm;
47729
 
  friend class ::WinDeclSpecs;
47730
 
  friend class ::WinMemberExplSpec;
47731
 
  friend class ::WinTypeKeywords;
 
58615
  friend class ::ExtGnu;
47732
58616
  friend class ::PragmaOnceUnitState;
47733
58617
  friend class ::PragmaOnce;
47734
 
  friend class ::CCExprResolve;
47735
 
  friend class ::CExprResolve;
 
58618
  friend class ::CMatchSyntax;
47736
58619
 
47737
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58620
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47738
58621
 
47739
58622
  CTree *sons[4]; // typeid, open, type_id/expr, close
47740
58623
 
47741
58624
public:
 
58625
  /** Constructor.
 
58626
   *  \param tid The 'typeid' operator.
 
58627
   *  \param o The left parenthesis of the type name or expression.
 
58628
   *  \param e The expression or type name for which to get the type identifier.
 
58629
   *  \param c The right parenthesis of the type name or expression. */
47742
58630
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
47743
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
58631
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
58632
    AddSon (sons[2], e); AddSon (sons[3], c);
47744
58633
  }
 
58634
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47745
58635
  static const char *NodeId ();
 
58636
  /** Get the name of the node. Can be compared with NodeId(). */
47746
58637
  const char *NodeName () const { return NodeId (); }
 
58638
  /** Get the number of sons. */
47747
58639
  int Sons () const { return 4; }
 
58640
  /** Get the n-th son.
 
58641
   *  \param n The index of the son.
 
58642
   *  \return The n-th son or NULL. */
47748
58643
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
58644
  /** Replace a son.
 
58645
   *  \param old_son The son to replace.
 
58646
   *  \param new_son The new son. */
47749
58647
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47750
58648
    CTree::ReplaceSon (sons, 4, old_son, new_son);
47751
58649
  }
 
58650
  /** Get the typeid argument, i.e. the expression or type name for
 
58651
   *  which to get the type identifier. */
47752
58652
  CTree *Arg () const { return sons[2]; }
47753
58653
   private:
47754
58654
  typedef CT_TypeidExpr CCExprResolveExpr;
47755
58655
 
47756
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58656
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47757
58657
 public :
47758
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58658
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47759
58659
  typedef CT_TypeidExpr CExprResolveExpr;
47760
58660
 
47761
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58661
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47762
58662
 public :
47763
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47764
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58663
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58664
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47765
58665
};
47766
58666
 
 
58667
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
58668
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
47767
58669
 
47768
 
#line 47769 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58670
#line 58671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47769
58671
} // closed Puma
 
58672
class CCExprResolve;
 
58673
class CExprResolve;
47770
58674
class WinIfExists;
47771
58675
class WinImportHandler;
47772
58676
class WinMacros;
47773
 
class CMatchSyntax;
47774
 
class ExtGnu;
 
58677
class WinAsm;
 
58678
class WinDeclSpecs;
 
58679
class WinMemberExplSpec;
 
58680
class WinTypeKeywords;
 
58681
class WinFriend;
47775
58682
class ExtAC;
47776
58683
class ExtACBuilderCoupling;
47777
58684
class ExtACSyntaxCoupling;
47778
58685
class ExtACTree;
47779
58686
class ExtACKeywords;
47780
 
class WinAsm;
47781
 
class WinDeclSpecs;
47782
 
class WinMemberExplSpec;
47783
 
class WinTypeKeywords;
 
58687
class ExtGnu;
47784
58688
class PragmaOnceUnitState;
47785
58689
class PragmaOnce;
47786
 
class CCExprResolve;
47787
 
class CExprResolve;
47788
 
namespace Puma {
47789
 
 
47790
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58690
class CMatchSyntax;
 
58691
namespace Puma {
 
58692
 
 
58693
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58694
 
 
58695
#line 58696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58696
} // closed Puma
 
58697
 
 
58698
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58699
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58700
#include "CCExprResolveH.ah"
 
58701
#endif
 
58702
namespace Puma {
 
58703
 
 
58704
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58705
 
 
58706
#line 58707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58707
} // closed Puma
 
58708
 
 
58709
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58710
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58711
#include "CExprResolveH.ah"
 
58712
#endif
 
58713
namespace Puma {
 
58714
 
 
58715
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47791
58716
class CT_SizeofExpr : public CT_Expression {
47792
 
#line 47793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58717
#line 58718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58718
  friend class ::CCExprResolve;
 
58719
  friend class ::CExprResolve;
47793
58720
  friend class ::WinIfExists;
47794
58721
  friend class ::WinImportHandler;
47795
58722
  friend class ::WinMacros;
47796
 
  friend class ::CMatchSyntax;
47797
 
  friend class ::ExtGnu;
 
58723
  friend class ::WinAsm;
 
58724
  friend class ::WinDeclSpecs;
 
58725
  friend class ::WinMemberExplSpec;
 
58726
  friend class ::WinTypeKeywords;
 
58727
  friend class ::WinFriend;
47798
58728
  friend class ::ExtAC;
47799
58729
  friend class ::ExtACBuilderCoupling;
47800
58730
  friend class ::ExtACSyntaxCoupling;
47801
58731
  friend class ::ExtACTree;
47802
58732
  friend class ::ExtACKeywords;
47803
 
  friend class ::WinAsm;
47804
 
  friend class ::WinDeclSpecs;
47805
 
  friend class ::WinMemberExplSpec;
47806
 
  friend class ::WinTypeKeywords;
 
58733
  friend class ::ExtGnu;
47807
58734
  friend class ::PragmaOnceUnitState;
47808
58735
  friend class ::PragmaOnce;
47809
 
  friend class ::CCExprResolve;
47810
 
  friend class ::CExprResolve;
 
58736
  friend class ::CMatchSyntax;
47811
58737
 
47812
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58738
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47813
58739
 
47814
58740
  CTree *sons[5]; // key, open, type, close, expr
47815
58741
 
47816
58742
public:
 
58743
  /** Constructor.
 
58744
   *  \param k The 'sizeof' keyword.
 
58745
   *  \param o Left parenthesis around the type name.
 
58746
   *  \param t The type from which to get the size.
 
58747
   *  \param c Right parenthesis around the type name. */
47817
58748
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
47818
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
58749
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
58750
    AddSon (sons[3], c); AddSon (sons[4], 0);
47819
58751
  }
 
58752
  /** Constructor.
 
58753
   *  \param k The 'sizeof' keyword.
 
58754
   *  \param e The expression from which to get the size. */
47820
58755
  CT_SizeofExpr (CTree *k, CTree *e) {
47821
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
58756
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
58757
    AddSon (sons[3], 0); AddSon (sons[4], e);
47822
58758
  }
 
58759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47823
58760
  static const char *NodeId ();
 
58761
  /** Get the name of the node. Can be compared with NodeId(). */
47824
58762
  const char *NodeName () const { return NodeId (); }
 
58763
  /** Get the number of sons. */
47825
58764
  int Sons () const { return CTree::Sons (sons, 5); }
 
58765
  /** Get the n-th son.
 
58766
   *  \param n The index of the son.
 
58767
   *  \return The n-th son or NULL. */
47826
58768
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
58769
  /** Replace a son.
 
58770
   *  \param old_son The son to replace.
 
58771
   *  \param new_son The new son. */
47827
58772
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47828
58773
    CTree::ReplaceSon (sons, 5, old_son, new_son);
47829
58774
  }
 
58775
  /** Get the expression. */
47830
58776
  CTree *Expr () const { return sons[4]; }
 
58777
  /** Get the type name. */
47831
58778
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
47832
58779
   private:
47833
58780
  typedef CT_SizeofExpr CCExprResolveExpr;
47834
58781
 
47835
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58782
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47836
58783
 public :
47837
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58784
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47838
58785
  typedef CT_SizeofExpr CExprResolveExpr;
47839
58786
 
47840
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58787
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47841
58788
 public :
47842
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47843
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58789
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58790
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47844
58791
};
47845
58792
 
 
58793
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
58794
 *  Tree node representing an index designator, i.e. [1]. */
47846
58795
 
47847
 
#line 47848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58796
#line 58797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47848
58797
} // closed Puma
 
58798
class CCExprResolve;
 
58799
class CExprResolve;
47849
58800
class WinIfExists;
47850
58801
class WinImportHandler;
47851
58802
class WinMacros;
47852
 
class CMatchSyntax;
47853
 
class ExtGnu;
 
58803
class WinAsm;
 
58804
class WinDeclSpecs;
 
58805
class WinMemberExplSpec;
 
58806
class WinTypeKeywords;
 
58807
class WinFriend;
47854
58808
class ExtAC;
47855
58809
class ExtACBuilderCoupling;
47856
58810
class ExtACSyntaxCoupling;
47857
58811
class ExtACTree;
47858
58812
class ExtACKeywords;
47859
 
class WinAsm;
47860
 
class WinDeclSpecs;
47861
 
class WinMemberExplSpec;
47862
 
class WinTypeKeywords;
 
58813
class ExtGnu;
47863
58814
class PragmaOnceUnitState;
47864
58815
class PragmaOnce;
47865
 
class CCExprResolve;
47866
 
class CExprResolve;
47867
 
namespace Puma {
47868
 
 
47869
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58816
class CMatchSyntax;
 
58817
namespace Puma {
 
58818
 
 
58819
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58820
 
 
58821
#line 58822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58822
} // closed Puma
 
58823
 
 
58824
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58825
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58826
#include "CCExprResolveH.ah"
 
58827
#endif
 
58828
namespace Puma {
 
58829
 
 
58830
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58831
 
 
58832
#line 58833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58833
} // closed Puma
 
58834
 
 
58835
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58836
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58837
#include "CExprResolveH.ah"
 
58838
#endif
 
58839
namespace Puma {
 
58840
 
 
58841
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47870
58842
class CT_IndexDesignator : public CT_Expression {
47871
 
#line 47872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58843
#line 58844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58844
  friend class ::CCExprResolve;
 
58845
  friend class ::CExprResolve;
47872
58846
  friend class ::WinIfExists;
47873
58847
  friend class ::WinImportHandler;
47874
58848
  friend class ::WinMacros;
47875
 
  friend class ::CMatchSyntax;
47876
 
  friend class ::ExtGnu;
 
58849
  friend class ::WinAsm;
 
58850
  friend class ::WinDeclSpecs;
 
58851
  friend class ::WinMemberExplSpec;
 
58852
  friend class ::WinTypeKeywords;
 
58853
  friend class ::WinFriend;
47877
58854
  friend class ::ExtAC;
47878
58855
  friend class ::ExtACBuilderCoupling;
47879
58856
  friend class ::ExtACSyntaxCoupling;
47880
58857
  friend class ::ExtACTree;
47881
58858
  friend class ::ExtACKeywords;
47882
 
  friend class ::WinAsm;
47883
 
  friend class ::WinDeclSpecs;
47884
 
  friend class ::WinMemberExplSpec;
47885
 
  friend class ::WinTypeKeywords;
 
58859
  friend class ::ExtGnu;
47886
58860
  friend class ::PragmaOnceUnitState;
47887
58861
  friend class ::PragmaOnce;
47888
 
  friend class ::CCExprResolve;
47889
 
  friend class ::CExprResolve;
 
58862
  friend class ::CMatchSyntax;
47890
58863
 
47891
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58864
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47892
58865
 
47893
58866
  CTree *sons[3]; // open, index, close
47894
58867
 
47895
58868
public:
 
58869
  /** Constructor.
 
58870
   *  \param o Left bracket of the index designator.
 
58871
   *  \param i The index expression.
 
58872
   *  \param c Right bracket of the index designator. */
47896
58873
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
47897
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
58874
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
47898
58875
  }
 
58876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47899
58877
  static const char *NodeId ();
 
58878
  /** Get the name of the node. Can be compared with NodeId(). */
47900
58879
  const char *NodeName () const { return NodeId (); }
 
58880
  /** Get the number of sons. */
47901
58881
  int Sons () const { return 3; }
 
58882
  /** Get the n-th son.
 
58883
   *  \param n The index of the son.
 
58884
   *  \return The n-th son or NULL. */
47902
58885
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
58886
  /** Replace a son.
 
58887
   *  \param old_son The son to replace.
 
58888
   *  \param new_son The new son. */
47903
58889
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47904
58890
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47905
58891
  }
47906
58892
   private:
47907
58893
  typedef CT_IndexDesignator CCExprResolveExpr;
47908
58894
 
47909
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58895
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47910
58896
 public :
47911
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58897
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47912
58898
  typedef CT_IndexDesignator CExprResolveExpr;
47913
58899
 
47914
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58900
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47915
58901
 public :
47916
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47917
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58902
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58903
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47918
58904
};
47919
58905
 
 
58906
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
58907
 *  Tree node representing a member designator, e.g. .a. */
47920
58908
 
47921
 
#line 47922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58909
#line 58910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47922
58910
} // closed Puma
 
58911
class CCExprResolve;
 
58912
class CExprResolve;
47923
58913
class WinIfExists;
47924
58914
class WinImportHandler;
47925
58915
class WinMacros;
47926
 
class CMatchSyntax;
47927
 
class ExtGnu;
 
58916
class WinAsm;
 
58917
class WinDeclSpecs;
 
58918
class WinMemberExplSpec;
 
58919
class WinTypeKeywords;
 
58920
class WinFriend;
47928
58921
class ExtAC;
47929
58922
class ExtACBuilderCoupling;
47930
58923
class ExtACSyntaxCoupling;
47931
58924
class ExtACTree;
47932
58925
class ExtACKeywords;
47933
 
class WinAsm;
47934
 
class WinDeclSpecs;
47935
 
class WinMemberExplSpec;
47936
 
class WinTypeKeywords;
 
58926
class ExtGnu;
47937
58927
class PragmaOnceUnitState;
47938
58928
class PragmaOnce;
47939
 
class CCExprResolve;
47940
 
class CExprResolve;
47941
 
namespace Puma {
47942
 
 
47943
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58929
class CMatchSyntax;
 
58930
namespace Puma {
 
58931
 
 
58932
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58933
 
 
58934
#line 58935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58935
} // closed Puma
 
58936
 
 
58937
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58938
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58939
#include "CCExprResolveH.ah"
 
58940
#endif
 
58941
namespace Puma {
 
58942
 
 
58943
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58944
 
 
58945
#line 58946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58946
} // closed Puma
 
58947
 
 
58948
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58949
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58950
#include "CExprResolveH.ah"
 
58951
#endif
 
58952
namespace Puma {
 
58953
 
 
58954
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47944
58955
class CT_MembDesignator : public CT_Expression {
47945
 
#line 47946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
58956
#line 58957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
58957
  friend class ::CCExprResolve;
 
58958
  friend class ::CExprResolve;
47946
58959
  friend class ::WinIfExists;
47947
58960
  friend class ::WinImportHandler;
47948
58961
  friend class ::WinMacros;
47949
 
  friend class ::CMatchSyntax;
47950
 
  friend class ::ExtGnu;
 
58962
  friend class ::WinAsm;
 
58963
  friend class ::WinDeclSpecs;
 
58964
  friend class ::WinMemberExplSpec;
 
58965
  friend class ::WinTypeKeywords;
 
58966
  friend class ::WinFriend;
47951
58967
  friend class ::ExtAC;
47952
58968
  friend class ::ExtACBuilderCoupling;
47953
58969
  friend class ::ExtACSyntaxCoupling;
47954
58970
  friend class ::ExtACTree;
47955
58971
  friend class ::ExtACKeywords;
47956
 
  friend class ::WinAsm;
47957
 
  friend class ::WinDeclSpecs;
47958
 
  friend class ::WinMemberExplSpec;
47959
 
  friend class ::WinTypeKeywords;
 
58972
  friend class ::ExtGnu;
47960
58973
  friend class ::PragmaOnceUnitState;
47961
58974
  friend class ::PragmaOnce;
47962
 
  friend class ::CCExprResolve;
47963
 
  friend class ::CExprResolve;
 
58975
  friend class ::CMatchSyntax;
47964
58976
 
47965
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58977
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47966
58978
 
47967
58979
  CTree *sons[2]; // dot, member
47968
58980
 
47969
58981
public:
47970
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
58982
  /** Constructor.
 
58983
   *  \param d The dot before the member name.
 
58984
   *  \param m The member name. */
 
58985
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
58986
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47971
58987
  static const char *NodeId ();
 
58988
  /** Get the name of the node. Can be compared with NodeId(). */
47972
58989
  const char *NodeName () const { return NodeId (); }
 
58990
  /** Get the number of sons. */
47973
58991
  int Sons () const { return 2; }
 
58992
  /** Get the n-th son.
 
58993
   *  \param n The index of the son.
 
58994
   *  \return The n-th son or NULL. */
47974
58995
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
58996
  /** Replace a son.
 
58997
   *  \param old_son The son to replace.
 
58998
   *  \param new_son The new son. */
47975
58999
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47976
59000
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47977
59001
  }
47978
59002
   private:
47979
59003
  typedef CT_MembDesignator CCExprResolveExpr;
47980
59004
 
47981
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
47982
59006
 public :
47983
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59007
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
47984
59008
  typedef CT_MembDesignator CExprResolveExpr;
47985
59009
 
47986
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59010
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
47987
59011
 public :
47988
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
47989
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59012
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59013
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47990
59014
};
47991
59015
 
 
59016
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
59017
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
47992
59018
 
47993
 
#line 47994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59019
#line 59020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
47994
59020
} // closed Puma
 
59021
class CCExprResolve;
 
59022
class CExprResolve;
47995
59023
class WinIfExists;
47996
59024
class WinImportHandler;
47997
59025
class WinMacros;
47998
 
class CMatchSyntax;
47999
 
class ExtGnu;
 
59026
class WinAsm;
 
59027
class WinDeclSpecs;
 
59028
class WinMemberExplSpec;
 
59029
class WinTypeKeywords;
 
59030
class WinFriend;
48000
59031
class ExtAC;
48001
59032
class ExtACBuilderCoupling;
48002
59033
class ExtACSyntaxCoupling;
48003
59034
class ExtACTree;
48004
59035
class ExtACKeywords;
48005
 
class WinAsm;
48006
 
class WinDeclSpecs;
48007
 
class WinMemberExplSpec;
48008
 
class WinTypeKeywords;
 
59036
class ExtGnu;
48009
59037
class PragmaOnceUnitState;
48010
59038
class PragmaOnce;
48011
 
class CCExprResolve;
48012
 
class CExprResolve;
 
59039
class CMatchSyntax;
48013
59040
namespace Puma {
48014
59041
 
48015
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59042
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48016
59043
class CT_DesignatorSeq : public CT_List, public CSemValue {
48017
 
#line 48018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59044
#line 59045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59045
  friend class ::CCExprResolve;
 
59046
  friend class ::CExprResolve;
48018
59047
  friend class ::WinIfExists;
48019
59048
  friend class ::WinImportHandler;
48020
59049
  friend class ::WinMacros;
48021
 
  friend class ::CMatchSyntax;
48022
 
  friend class ::ExtGnu;
 
59050
  friend class ::WinAsm;
 
59051
  friend class ::WinDeclSpecs;
 
59052
  friend class ::WinMemberExplSpec;
 
59053
  friend class ::WinTypeKeywords;
 
59054
  friend class ::WinFriend;
48023
59055
  friend class ::ExtAC;
48024
59056
  friend class ::ExtACBuilderCoupling;
48025
59057
  friend class ::ExtACSyntaxCoupling;
48026
59058
  friend class ::ExtACTree;
48027
59059
  friend class ::ExtACKeywords;
48028
 
  friend class ::WinAsm;
48029
 
  friend class ::WinDeclSpecs;
48030
 
  friend class ::WinMemberExplSpec;
48031
 
  friend class ::WinTypeKeywords;
 
59060
  friend class ::ExtGnu;
48032
59061
  friend class ::PragmaOnceUnitState;
48033
59062
  friend class ::PragmaOnce;
48034
 
  friend class ::CCExprResolve;
48035
 
  friend class ::CExprResolve;
 
59063
  friend class ::CMatchSyntax;
48036
59064
 
48037
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59065
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48038
59066
 
48039
59067
public:
 
59068
  /** Constructor.
 
59069
   *  \param size Initial number of designators. */
48040
59070
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
59071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48041
59072
  static const char *NodeId ();
 
59073
  /** Get the name of the node. Can be compared with NodeId(). */
48042
59074
  const char *NodeName () const { return NodeId (); }
48043
59075
 
 
59076
  /** Get the type of the entity to initialize. */
48044
59077
  CTypeInfo *Type () const { return type; }
 
59078
  /** Get the value of the entity to initialize. */
48045
59079
  CExprValue *Value () const { return value; }
 
59080
  /** Get the semantic value object. */
48046
59081
  CSemValue *SemValue () const { return (CSemValue*)this; }
48047
59082
};
48048
59083
 
48052
59087
/*                                                                           */
48053
59088
/*****************************************************************************/
48054
59089
 
 
59090
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
59091
 *  Base class for all tree nodes representing declaration specifiers. */
48055
59092
 
48056
 
#line 48057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59093
#line 59094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48057
59094
} // closed Puma
 
59095
class CCExprResolve;
 
59096
class CExprResolve;
48058
59097
class WinIfExists;
48059
59098
class WinImportHandler;
48060
59099
class WinMacros;
48061
 
class CMatchSyntax;
48062
 
class ExtGnu;
 
59100
class WinAsm;
 
59101
class WinDeclSpecs;
 
59102
class WinMemberExplSpec;
 
59103
class WinTypeKeywords;
 
59104
class WinFriend;
48063
59105
class ExtAC;
48064
59106
class ExtACBuilderCoupling;
48065
59107
class ExtACSyntaxCoupling;
48066
59108
class ExtACTree;
48067
59109
class ExtACKeywords;
48068
 
class WinAsm;
48069
 
class WinDeclSpecs;
48070
 
class WinMemberExplSpec;
48071
 
class WinTypeKeywords;
 
59110
class ExtGnu;
48072
59111
class PragmaOnceUnitState;
48073
59112
class PragmaOnce;
48074
 
class CCExprResolve;
48075
 
class CExprResolve;
 
59113
class CMatchSyntax;
48076
59114
namespace Puma {
48077
59115
 
48078
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59116
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48079
59117
class CT_DeclSpec : public CTree {
48080
 
#line 48081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59118
#line 59119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59119
  friend class ::CCExprResolve;
 
59120
  friend class ::CExprResolve;
48081
59121
  friend class ::WinIfExists;
48082
59122
  friend class ::WinImportHandler;
48083
59123
  friend class ::WinMacros;
48084
 
  friend class ::CMatchSyntax;
48085
 
  friend class ::ExtGnu;
 
59124
  friend class ::WinAsm;
 
59125
  friend class ::WinDeclSpecs;
 
59126
  friend class ::WinMemberExplSpec;
 
59127
  friend class ::WinTypeKeywords;
 
59128
  friend class ::WinFriend;
48086
59129
  friend class ::ExtAC;
48087
59130
  friend class ::ExtACBuilderCoupling;
48088
59131
  friend class ::ExtACSyntaxCoupling;
48089
59132
  friend class ::ExtACTree;
48090
59133
  friend class ::ExtACKeywords;
48091
 
  friend class ::WinAsm;
48092
 
  friend class ::WinDeclSpecs;
48093
 
  friend class ::WinMemberExplSpec;
48094
 
  friend class ::WinTypeKeywords;
 
59134
  friend class ::ExtGnu;
48095
59135
  friend class ::PragmaOnceUnitState;
48096
59136
  friend class ::PragmaOnce;
48097
 
  friend class ::CCExprResolve;
48098
 
  friend class ::CExprResolve;
 
59137
  friend class ::CMatchSyntax;
48099
59138
 
48100
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59139
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48101
59140
 
48102
59141
protected:
 
59142
  /** Constructor. */
48103
59143
  CT_DeclSpec () {}
48104
59144
};
48105
59145
 
 
59146
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
59147
 *  Tree node representing a primitive declaration specifier. */
48106
59148
 
48107
 
#line 48108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59149
#line 59150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48108
59150
} // closed Puma
 
59151
class CCExprResolve;
 
59152
class CExprResolve;
48109
59153
class WinIfExists;
48110
59154
class WinImportHandler;
48111
59155
class WinMacros;
48112
 
class CMatchSyntax;
48113
 
class ExtGnu;
 
59156
class WinAsm;
 
59157
class WinDeclSpecs;
 
59158
class WinMemberExplSpec;
 
59159
class WinTypeKeywords;
 
59160
class WinFriend;
48114
59161
class ExtAC;
48115
59162
class ExtACBuilderCoupling;
48116
59163
class ExtACSyntaxCoupling;
48117
59164
class ExtACTree;
48118
59165
class ExtACKeywords;
48119
 
class WinAsm;
48120
 
class WinDeclSpecs;
48121
 
class WinMemberExplSpec;
48122
 
class WinTypeKeywords;
 
59166
class ExtGnu;
48123
59167
class PragmaOnceUnitState;
48124
59168
class PragmaOnce;
48125
 
class CCExprResolve;
48126
 
class CExprResolve;
 
59169
class CMatchSyntax;
48127
59170
namespace Puma {
48128
59171
 
48129
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59172
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48130
59173
class CT_PrimDeclSpec : public CT_DeclSpec {
48131
 
#line 48132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59174
#line 59175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59175
  friend class ::CCExprResolve;
 
59176
  friend class ::CExprResolve;
48132
59177
  friend class ::WinIfExists;
48133
59178
  friend class ::WinImportHandler;
48134
59179
  friend class ::WinMacros;
48135
 
  friend class ::CMatchSyntax;
48136
 
  friend class ::ExtGnu;
 
59180
  friend class ::WinAsm;
 
59181
  friend class ::WinDeclSpecs;
 
59182
  friend class ::WinMemberExplSpec;
 
59183
  friend class ::WinTypeKeywords;
 
59184
  friend class ::WinFriend;
48137
59185
  friend class ::ExtAC;
48138
59186
  friend class ::ExtACBuilderCoupling;
48139
59187
  friend class ::ExtACSyntaxCoupling;
48140
59188
  friend class ::ExtACTree;
48141
59189
  friend class ::ExtACKeywords;
48142
 
  friend class ::WinAsm;
48143
 
  friend class ::WinDeclSpecs;
48144
 
  friend class ::WinMemberExplSpec;
48145
 
  friend class ::WinTypeKeywords;
 
59190
  friend class ::ExtGnu;
48146
59191
  friend class ::PragmaOnceUnitState;
48147
59192
  friend class ::PragmaOnce;
48148
 
  friend class ::CCExprResolve;
48149
 
  friend class ::CExprResolve;
 
59193
  friend class ::CMatchSyntax;
48150
59194
 
48151
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59195
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48152
59196
 
48153
59197
public:
48154
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
48155
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
48156
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
48157
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
48158
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
48159
 
              // AspectC++ specific type specifier
48160
 
              PDS_UNKNOWN_T,
48161
 
              // Win specific declaration specifiers
48162
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
48163
 
              PDS_UNKNOWN, PDS_NUM };
 
59198
  /** Declaration specifier types. */
 
59199
  enum Type { 
 
59200
    PDS_FRIEND,    /** friend */
 
59201
    PDS_TYPEDEF,   /** typedef */
 
59202
    PDS_AUTO,      /** auto */
 
59203
    PDS_REGISTER,  /** register */
 
59204
    PDS_STATIC,    /** static */
 
59205
    PDS_EXTERN,    /** extern */
 
59206
    PDS_MUTABLE,   /** mutable */
 
59207
    PDS_INLINE,    /** inline */
 
59208
    PDS_VIRTUAL,   /** virtual */
 
59209
    PDS_EXPLICIT,  /** explicit */
 
59210
    PDS_CONST,     /** const */
 
59211
    PDS_VOLATILE,  /** volatile */
 
59212
    PDS_RESTRICT,  /** restrict */
 
59213
    PDS_CHAR,      /** char */
 
59214
    PDS_WCHAR_T,   /** wchar_t */
 
59215
    PDS_BOOL,      /** bool */
 
59216
    PDS_SHORT,     /** short */
 
59217
    PDS_INT,       /** int */
 
59218
    PDS_LONG,      /** long */
 
59219
    PDS_SIGNED,    /** signed */
 
59220
    PDS_UNSIGNED,  /** unsigned */
 
59221
    PDS_FLOAT,     /** float */
 
59222
    PDS_DOUBLE,    /** double */
 
59223
    PDS_VOID,      /** void */
 
59224
    // AspectC++ specific type specifier
 
59225
    PDS_UNKNOWN_T, /** unknown_t */
 
59226
    // Win specific declaration specifiers
 
59227
    PDS_CDECL,     /** __cdecl */
 
59228
    PDS_STDCALL,   /** __stdcall */
 
59229
    PDS_FASTCALL,  /** __fastcall */
 
59230
    PDS_INT64,     /** __int64 */
 
59231
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
59232
    PDS_NUM        /** Number of declaration specifier types. */
 
59233
  };
48164
59234
 
48165
59235
private:
48166
59236
  Type _type;
48167
 
  CT_Token *_token;
 
59237
  CTree *_token; // has to be a CT_Token
48168
59238
 
48169
59239
  void determine_type ();
48170
59240
 
48171
59241
public:
48172
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
59242
  /** Constructor.
 
59243
   *  \param t The token containing the declaration specifier. */
 
59244
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
59245
  /** Constructor.
 
59246
   *  \param t The declaration specifier type. */
48173
59247
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
59248
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48174
59249
  static const char *NodeId ();
 
59250
  /** Get the name of the node. Can be compared with NodeId(). */
48175
59251
  const char *NodeName () const { return NodeId (); }
 
59252
  /** Get the number of sons. */
48176
59253
  int Sons () const { return _token ? 1 : 0; }
 
59254
  /** Get the n-th son.
 
59255
   *  \param n The index of the son.
 
59256
   *  \return The n-th son or NULL. */
48177
59257
  CTree *Son (int n) const 
48178
59258
   { return (n == 0) ? _token : (CTree*)0; }
 
59259
  /** Get the textual representation of the declaration specifier.
 
59260
   *  \return The string representation or " ". */
48179
59261
  const char *SpecText () const 
48180
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
59262
   { return _token ? _token->token ()->text () : " "; }
 
59263
  /** Get the declaration specifier type. */
48181
59264
  Type SpecType () const { return _type; }
 
59265
  /** Number of declaration specifier types. */
48182
59266
  static const int NumTypes = PDS_NUM;
 
59267
  /** Replace a son.
 
59268
   *  \param old_son The son to replace.
 
59269
   *  \param new_son The new son. */
 
59270
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
59271
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
59272
    determine_type ();
 
59273
  }
48183
59274
};
48184
59275
 
 
59276
/** \class CT_NamedType CTree.h Puma/CTree.h
 
59277
 *  Tree node representing a named type, e.g. (int*)a. 
 
59278
 *  where int* is a type with a generated name. */
48185
59279
 
48186
 
#line 48187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59280
#line 59281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48187
59281
} // closed Puma
 
59282
class CCExprResolve;
 
59283
class CExprResolve;
48188
59284
class WinIfExists;
48189
59285
class WinImportHandler;
48190
59286
class WinMacros;
48191
 
class CMatchSyntax;
48192
 
class ExtGnu;
 
59287
class WinAsm;
 
59288
class WinDeclSpecs;
 
59289
class WinMemberExplSpec;
 
59290
class WinTypeKeywords;
 
59291
class WinFriend;
48193
59292
class ExtAC;
48194
59293
class ExtACBuilderCoupling;
48195
59294
class ExtACSyntaxCoupling;
48196
59295
class ExtACTree;
48197
59296
class ExtACKeywords;
48198
 
class WinAsm;
48199
 
class WinDeclSpecs;
48200
 
class WinMemberExplSpec;
48201
 
class WinTypeKeywords;
 
59297
class ExtGnu;
48202
59298
class PragmaOnceUnitState;
48203
59299
class PragmaOnce;
48204
 
class CCExprResolve;
48205
 
class CExprResolve;
 
59300
class CMatchSyntax;
48206
59301
namespace Puma {
48207
59302
 
48208
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59303
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48209
59304
class CT_NamedType : public CT_DeclSpec, public CSemObject {
48210
 
#line 48211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59305
#line 59306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59306
  friend class ::CCExprResolve;
 
59307
  friend class ::CExprResolve;
48211
59308
  friend class ::WinIfExists;
48212
59309
  friend class ::WinImportHandler;
48213
59310
  friend class ::WinMacros;
48214
 
  friend class ::CMatchSyntax;
48215
 
  friend class ::ExtGnu;
 
59311
  friend class ::WinAsm;
 
59312
  friend class ::WinDeclSpecs;
 
59313
  friend class ::WinMemberExplSpec;
 
59314
  friend class ::WinTypeKeywords;
 
59315
  friend class ::WinFriend;
48216
59316
  friend class ::ExtAC;
48217
59317
  friend class ::ExtACBuilderCoupling;
48218
59318
  friend class ::ExtACSyntaxCoupling;
48219
59319
  friend class ::ExtACTree;
48220
59320
  friend class ::ExtACKeywords;
48221
 
  friend class ::WinAsm;
48222
 
  friend class ::WinDeclSpecs;
48223
 
  friend class ::WinMemberExplSpec;
48224
 
  friend class ::WinTypeKeywords;
 
59321
  friend class ::ExtGnu;
48225
59322
  friend class ::PragmaOnceUnitState;
48226
59323
  friend class ::PragmaOnce;
48227
 
  friend class ::CCExprResolve;
48228
 
  friend class ::CExprResolve;
 
59324
  friend class ::CMatchSyntax;
48229
59325
 
48230
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59326
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48231
59327
 
48232
59328
  CTree *sons[2]; // declspecs, declarator
48233
59329
 
48234
59330
public:
48235
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
59331
  /** Constructor.
 
59332
   *  \param dss The declaration specifier sequence of the type.
 
59333
   *  \param d The type declarator. */
 
59334
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
59335
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48236
59336
  static const char *NodeId ();
 
59337
  /** Get the name of the node. Can be compared with NodeId(). */
48237
59338
  const char *NodeName () const { return NodeId (); }
 
59339
  /** Get the number of sons. */
48238
59340
  int Sons () const { return CTree::Sons (sons, 2); }
 
59341
  /** Get the n-th son.
 
59342
   *  \param n The index of the son.
 
59343
   *  \return The n-th son or NULL. */
48239
59344
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
59345
  /** Get the declarator. */
48240
59346
  CTree *Declarator () const { return sons[1]; }
 
59347
  /** Replace a son.
 
59348
   *  \param old_son The son to replace.
 
59349
   *  \param new_son The new son. */
48241
59350
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48242
59351
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48243
59352
  }
 
59353
  /** Get the semantic information object. */
48244
59354
  CSemObject *SemObject () const { return (CSemObject*)this; }
48245
59355
};
48246
59356
      
 
59357
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
59358
 *  Tree node representing a class specifier, e.g. class X. */
48247
59359
 
48248
 
#line 48249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59360
#line 59361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48249
59361
} // closed Puma
 
59362
class CCExprResolve;
 
59363
class CExprResolve;
48250
59364
class WinIfExists;
48251
59365
class WinImportHandler;
48252
59366
class WinMacros;
48253
 
class CMatchSyntax;
48254
 
class ExtGnu;
 
59367
class WinAsm;
 
59368
class WinDeclSpecs;
 
59369
class WinMemberExplSpec;
 
59370
class WinTypeKeywords;
 
59371
class WinFriend;
48255
59372
class ExtAC;
48256
59373
class ExtACBuilderCoupling;
48257
59374
class ExtACSyntaxCoupling;
48258
59375
class ExtACTree;
48259
59376
class ExtACKeywords;
48260
 
class WinAsm;
48261
 
class WinDeclSpecs;
48262
 
class WinMemberExplSpec;
48263
 
class WinTypeKeywords;
 
59377
class ExtGnu;
48264
59378
class PragmaOnceUnitState;
48265
59379
class PragmaOnce;
48266
 
class CCExprResolve;
48267
 
class CExprResolve;
 
59380
class CMatchSyntax;
48268
59381
namespace Puma {
48269
59382
 
48270
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59383
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48271
59384
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
48272
 
#line 48273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59385
#line 59386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59386
  friend class ::CCExprResolve;
 
59387
  friend class ::CExprResolve;
48273
59388
  friend class ::WinIfExists;
48274
59389
  friend class ::WinImportHandler;
48275
59390
  friend class ::WinMacros;
48276
 
  friend class ::CMatchSyntax;
48277
 
  friend class ::ExtGnu;
 
59391
  friend class ::WinAsm;
 
59392
  friend class ::WinDeclSpecs;
 
59393
  friend class ::WinMemberExplSpec;
 
59394
  friend class ::WinTypeKeywords;
 
59395
  friend class ::WinFriend;
48278
59396
  friend class ::ExtAC;
48279
59397
  friend class ::ExtACBuilderCoupling;
48280
59398
  friend class ::ExtACSyntaxCoupling;
48281
59399
  friend class ::ExtACTree;
48282
59400
  friend class ::ExtACKeywords;
48283
 
  friend class ::WinAsm;
48284
 
  friend class ::WinDeclSpecs;
48285
 
  friend class ::WinMemberExplSpec;
48286
 
  friend class ::WinTypeKeywords;
 
59401
  friend class ::ExtGnu;
48287
59402
  friend class ::PragmaOnceUnitState;
48288
59403
  friend class ::PragmaOnce;
48289
 
  friend class ::CCExprResolve;
48290
 
  friend class ::CExprResolve;
 
59404
  friend class ::CMatchSyntax;
48291
59405
 
48292
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59406
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48293
59407
 
48294
59408
  CTree *sons[2]; // key, name
48295
59409
  
48296
59410
public:
48297
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
59411
  /** Constructor.
 
59412
   *  \param k The 'class' or 'struct' keyword.
 
59413
   *  \param n The class name. */
 
59414
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
59415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48298
59416
  static const char *NodeId ();
 
59417
  /** Get the name of the node. Can be compared with NodeId(). */
48299
59418
  const char *NodeName () const { return NodeId (); }
 
59419
  /** Get the number of sons. */
48300
59420
  int Sons () const { return 2; }
 
59421
  /** Get the n-th son.
 
59422
   *  \param n The index of the son.
 
59423
   *  \return The n-th son or NULL. */
48301
59424
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
59425
  /** Get the class name. */
48302
59426
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
59427
  /** Get the semantic information object. */
48303
59428
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
59429
  /** Replace a son.
 
59430
   *  \param old_son The son to replace.
 
59431
   *  \param new_son The new son. */
48304
59432
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48305
59433
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48306
59434
  }
48307
59435
};
48308
59436
 
 
59437
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
59438
 *  Tree node representing a union specifier, e.g. union X. */
48309
59439
 
48310
 
#line 48311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59440
#line 59441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48311
59441
} // closed Puma
 
59442
class CCExprResolve;
 
59443
class CExprResolve;
48312
59444
class WinIfExists;
48313
59445
class WinImportHandler;
48314
59446
class WinMacros;
48315
 
class CMatchSyntax;
48316
 
class ExtGnu;
 
59447
class WinAsm;
 
59448
class WinDeclSpecs;
 
59449
class WinMemberExplSpec;
 
59450
class WinTypeKeywords;
 
59451
class WinFriend;
48317
59452
class ExtAC;
48318
59453
class ExtACBuilderCoupling;
48319
59454
class ExtACSyntaxCoupling;
48320
59455
class ExtACTree;
48321
59456
class ExtACKeywords;
48322
 
class WinAsm;
48323
 
class WinDeclSpecs;
48324
 
class WinMemberExplSpec;
48325
 
class WinTypeKeywords;
 
59457
class ExtGnu;
48326
59458
class PragmaOnceUnitState;
48327
59459
class PragmaOnce;
48328
 
class CCExprResolve;
48329
 
class CExprResolve;
 
59460
class CMatchSyntax;
48330
59461
namespace Puma {
48331
59462
 
48332
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59463
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48333
59464
class CT_UnionSpec : public CT_ClassSpec {
48334
 
#line 48335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59465
#line 59466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59466
  friend class ::CCExprResolve;
 
59467
  friend class ::CExprResolve;
48335
59468
  friend class ::WinIfExists;
48336
59469
  friend class ::WinImportHandler;
48337
59470
  friend class ::WinMacros;
48338
 
  friend class ::CMatchSyntax;
48339
 
  friend class ::ExtGnu;
 
59471
  friend class ::WinAsm;
 
59472
  friend class ::WinDeclSpecs;
 
59473
  friend class ::WinMemberExplSpec;
 
59474
  friend class ::WinTypeKeywords;
 
59475
  friend class ::WinFriend;
48340
59476
  friend class ::ExtAC;
48341
59477
  friend class ::ExtACBuilderCoupling;
48342
59478
  friend class ::ExtACSyntaxCoupling;
48343
59479
  friend class ::ExtACTree;
48344
59480
  friend class ::ExtACKeywords;
48345
 
  friend class ::WinAsm;
48346
 
  friend class ::WinDeclSpecs;
48347
 
  friend class ::WinMemberExplSpec;
48348
 
  friend class ::WinTypeKeywords;
 
59481
  friend class ::ExtGnu;
48349
59482
  friend class ::PragmaOnceUnitState;
48350
59483
  friend class ::PragmaOnce;
48351
 
  friend class ::CCExprResolve;
48352
 
  friend class ::CExprResolve;
 
59484
  friend class ::CMatchSyntax;
48353
59485
 
48354
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59486
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48355
59487
 
48356
59488
public:
 
59489
  /** Constructor.
 
59490
   *  \param k The 'union' keyword.
 
59491
   *  \param n The name of the union. */
48357
59492
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
59493
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48358
59494
  static const char *NodeId ();
 
59495
  /** Get the name of the node. Can be compared with NodeId(). */
48359
59496
  const char *NodeName () const { return NodeId (); }
48360
59497
};
48361
59498
 
 
59499
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
59500
 *  Tree node representing an enumeration specifier, e.g. enum X. */
48362
59501
 
48363
 
#line 48364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59502
#line 59503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48364
59503
} // closed Puma
 
59504
class CCExprResolve;
 
59505
class CExprResolve;
48365
59506
class WinIfExists;
48366
59507
class WinImportHandler;
48367
59508
class WinMacros;
48368
 
class CMatchSyntax;
48369
 
class ExtGnu;
 
59509
class WinAsm;
 
59510
class WinDeclSpecs;
 
59511
class WinMemberExplSpec;
 
59512
class WinTypeKeywords;
 
59513
class WinFriend;
48370
59514
class ExtAC;
48371
59515
class ExtACBuilderCoupling;
48372
59516
class ExtACSyntaxCoupling;
48373
59517
class ExtACTree;
48374
59518
class ExtACKeywords;
48375
 
class WinAsm;
48376
 
class WinDeclSpecs;
48377
 
class WinMemberExplSpec;
48378
 
class WinTypeKeywords;
 
59519
class ExtGnu;
48379
59520
class PragmaOnceUnitState;
48380
59521
class PragmaOnce;
48381
 
class CCExprResolve;
48382
 
class CExprResolve;
 
59522
class CMatchSyntax;
48383
59523
namespace Puma {
48384
59524
 
48385
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59525
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48386
59526
class CT_EnumSpec : public CT_ClassSpec {
48387
 
#line 48388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59527
#line 59528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59528
  friend class ::CCExprResolve;
 
59529
  friend class ::CExprResolve;
48388
59530
  friend class ::WinIfExists;
48389
59531
  friend class ::WinImportHandler;
48390
59532
  friend class ::WinMacros;
48391
 
  friend class ::CMatchSyntax;
48392
 
  friend class ::ExtGnu;
 
59533
  friend class ::WinAsm;
 
59534
  friend class ::WinDeclSpecs;
 
59535
  friend class ::WinMemberExplSpec;
 
59536
  friend class ::WinTypeKeywords;
 
59537
  friend class ::WinFriend;
48393
59538
  friend class ::ExtAC;
48394
59539
  friend class ::ExtACBuilderCoupling;
48395
59540
  friend class ::ExtACSyntaxCoupling;
48396
59541
  friend class ::ExtACTree;
48397
59542
  friend class ::ExtACKeywords;
48398
 
  friend class ::WinAsm;
48399
 
  friend class ::WinDeclSpecs;
48400
 
  friend class ::WinMemberExplSpec;
48401
 
  friend class ::WinTypeKeywords;
 
59543
  friend class ::ExtGnu;
48402
59544
  friend class ::PragmaOnceUnitState;
48403
59545
  friend class ::PragmaOnce;
48404
 
  friend class ::CCExprResolve;
48405
 
  friend class ::CExprResolve;
 
59546
  friend class ::CMatchSyntax;
48406
59547
 
48407
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59548
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48408
59549
 
48409
59550
public:
 
59551
  /** Constructor.
 
59552
   *  \param k The 'enum' keyword. 
 
59553
   *  \param n The name of the enumeration. */
48410
59554
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
59555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48411
59556
  static const char *NodeId ();
 
59557
  /** Get the name of the node. Can be compared with NodeId(). */
48412
59558
  const char *NodeName () const { return NodeId (); }
48413
59559
};
48414
59560
 
 
59561
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
59562
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
48415
59563
 
48416
 
#line 48417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59564
#line 59565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48417
59565
} // closed Puma
 
59566
class CCExprResolve;
 
59567
class CExprResolve;
48418
59568
class WinIfExists;
48419
59569
class WinImportHandler;
48420
59570
class WinMacros;
48421
 
class CMatchSyntax;
48422
 
class ExtGnu;
 
59571
class WinAsm;
 
59572
class WinDeclSpecs;
 
59573
class WinMemberExplSpec;
 
59574
class WinTypeKeywords;
 
59575
class WinFriend;
48423
59576
class ExtAC;
48424
59577
class ExtACBuilderCoupling;
48425
59578
class ExtACSyntaxCoupling;
48426
59579
class ExtACTree;
48427
59580
class ExtACKeywords;
48428
 
class WinAsm;
48429
 
class WinDeclSpecs;
48430
 
class WinMemberExplSpec;
48431
 
class WinTypeKeywords;
 
59581
class ExtGnu;
48432
59582
class PragmaOnceUnitState;
48433
59583
class PragmaOnce;
48434
 
class CCExprResolve;
48435
 
class CExprResolve;
 
59584
class CMatchSyntax;
48436
59585
namespace Puma {
48437
59586
 
48438
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59587
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48439
59588
class CT_ExceptionSpec : public CT_DeclSpec {
48440
 
#line 48441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59589
#line 59590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59590
  friend class ::CCExprResolve;
 
59591
  friend class ::CExprResolve;
48441
59592
  friend class ::WinIfExists;
48442
59593
  friend class ::WinImportHandler;
48443
59594
  friend class ::WinMacros;
48444
 
  friend class ::CMatchSyntax;
48445
 
  friend class ::ExtGnu;
 
59595
  friend class ::WinAsm;
 
59596
  friend class ::WinDeclSpecs;
 
59597
  friend class ::WinMemberExplSpec;
 
59598
  friend class ::WinTypeKeywords;
 
59599
  friend class ::WinFriend;
48446
59600
  friend class ::ExtAC;
48447
59601
  friend class ::ExtACBuilderCoupling;
48448
59602
  friend class ::ExtACSyntaxCoupling;
48449
59603
  friend class ::ExtACTree;
48450
59604
  friend class ::ExtACKeywords;
48451
 
  friend class ::WinAsm;
48452
 
  friend class ::WinDeclSpecs;
48453
 
  friend class ::WinMemberExplSpec;
48454
 
  friend class ::WinTypeKeywords;
 
59605
  friend class ::ExtGnu;
48455
59606
  friend class ::PragmaOnceUnitState;
48456
59607
  friend class ::PragmaOnce;
48457
 
  friend class ::CCExprResolve;
48458
 
  friend class ::CExprResolve;
 
59608
  friend class ::CMatchSyntax;
48459
59609
 
48460
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59610
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48461
59611
 
48462
59612
  CTree *sons[2]; // throw, type_id_list
48463
59613
  
48464
59614
public:
48465
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
59615
  /** Constructor.
 
59616
   *  \param k The 'throw' keyword.
 
59617
   *  \param l The type list for the exception type to throw. */
 
59618
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
59619
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48466
59620
  static const char *NodeId ();
 
59621
  /** Get the name of the node. Can be compared with NodeId(). */
48467
59622
  const char *NodeName () const { return NodeId (); }
 
59623
  /** Get the number of sons. */
48468
59624
  int Sons () const { return 2; }
 
59625
  /** Get the n-th son.
 
59626
   *  \param n The index of the son.
 
59627
   *  \return The n-th son or NULL. */
48469
59628
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
59629
  /** Get the exception type list. */
48470
59630
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
59631
  /** Replace a son.
 
59632
   *  \param old_son The son to replace.
 
59633
   *  \param new_son The new son. */
48471
59634
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48472
59635
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48473
59636
  }
48479
59642
/*                                                                           */
48480
59643
/*****************************************************************************/
48481
59644
 
 
59645
/** \class CT_Decl CTree.h Puma/CTree.h
 
59646
 *  Base class for all tree nodes representing declarations. */
48482
59647
 
48483
 
#line 48484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59648
#line 59649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48484
59649
} // closed Puma
 
59650
class CCExprResolve;
 
59651
class CExprResolve;
48485
59652
class WinIfExists;
48486
59653
class WinImportHandler;
48487
59654
class WinMacros;
48488
 
class CMatchSyntax;
48489
 
class ExtGnu;
 
59655
class WinAsm;
 
59656
class WinDeclSpecs;
 
59657
class WinMemberExplSpec;
 
59658
class WinTypeKeywords;
 
59659
class WinFriend;
48490
59660
class ExtAC;
48491
59661
class ExtACBuilderCoupling;
48492
59662
class ExtACSyntaxCoupling;
48493
59663
class ExtACTree;
48494
59664
class ExtACKeywords;
48495
 
class WinAsm;
48496
 
class WinDeclSpecs;
48497
 
class WinMemberExplSpec;
48498
 
class WinTypeKeywords;
 
59665
class ExtGnu;
48499
59666
class PragmaOnceUnitState;
48500
59667
class PragmaOnce;
48501
 
class CCExprResolve;
48502
 
class CExprResolve;
 
59668
class CMatchSyntax;
48503
59669
namespace Puma {
48504
59670
 
48505
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59671
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48506
59672
class CT_Decl : public CTree {
48507
 
#line 48508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59673
#line 59674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59674
  friend class ::CCExprResolve;
 
59675
  friend class ::CExprResolve;
48508
59676
  friend class ::WinIfExists;
48509
59677
  friend class ::WinImportHandler;
48510
59678
  friend class ::WinMacros;
48511
 
  friend class ::CMatchSyntax;
48512
 
  friend class ::ExtGnu;
 
59679
  friend class ::WinAsm;
 
59680
  friend class ::WinDeclSpecs;
 
59681
  friend class ::WinMemberExplSpec;
 
59682
  friend class ::WinTypeKeywords;
 
59683
  friend class ::WinFriend;
48513
59684
  friend class ::ExtAC;
48514
59685
  friend class ::ExtACBuilderCoupling;
48515
59686
  friend class ::ExtACSyntaxCoupling;
48516
59687
  friend class ::ExtACTree;
48517
59688
  friend class ::ExtACKeywords;
48518
 
  friend class ::WinAsm;
48519
 
  friend class ::WinDeclSpecs;
48520
 
  friend class ::WinMemberExplSpec;
48521
 
  friend class ::WinTypeKeywords;
 
59689
  friend class ::ExtGnu;
48522
59690
  friend class ::PragmaOnceUnitState;
48523
59691
  friend class ::PragmaOnce;
48524
 
  friend class ::CCExprResolve;
48525
 
  friend class ::CExprResolve;
 
59692
  friend class ::CMatchSyntax;
48526
59693
 
48527
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59694
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48528
59695
 
48529
59696
  CT_LinkageSpec *_linkage;
 
59697
  
48530
59698
protected:
 
59699
  /** Constructor. */
48531
59700
  CT_Decl () : _linkage (0) {}
 
59701
  
48532
59702
public:
 
59703
  /** Set the linkage of the declared entity.
 
59704
   *  \param l The linkage specifiers. */
48533
59705
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
59706
  /** Get the linkage specifiers. */
48534
59707
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
59708
  /** Get this. */
 
59709
  virtual CT_Decl *IsDeclaration () { return this; }
48535
59710
};
48536
59711
 
 
59712
/** \class CT_Program CTree.h Puma/CTree.h
 
59713
 *  Root node of C/C++ syntax tree. */
48537
59714
 
48538
 
#line 48539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59715
#line 59716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48539
59716
} // closed Puma
 
59717
class CCExprResolve;
 
59718
class CExprResolve;
48540
59719
class WinIfExists;
48541
59720
class WinImportHandler;
48542
59721
class WinMacros;
48543
 
class CMatchSyntax;
48544
 
class ExtGnu;
 
59722
class WinAsm;
 
59723
class WinDeclSpecs;
 
59724
class WinMemberExplSpec;
 
59725
class WinTypeKeywords;
 
59726
class WinFriend;
48545
59727
class ExtAC;
48546
59728
class ExtACBuilderCoupling;
48547
59729
class ExtACSyntaxCoupling;
48548
59730
class ExtACTree;
48549
59731
class ExtACKeywords;
48550
 
class WinAsm;
48551
 
class WinDeclSpecs;
48552
 
class WinMemberExplSpec;
48553
 
class WinTypeKeywords;
 
59732
class ExtGnu;
48554
59733
class PragmaOnceUnitState;
48555
59734
class PragmaOnce;
48556
 
class CCExprResolve;
48557
 
class CExprResolve;
 
59735
class CMatchSyntax;
48558
59736
namespace Puma {
48559
59737
 
48560
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59738
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48561
59739
class CT_Program : public CT_DeclList, public CSemScope {
48562
 
#line 48563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59740
#line 59741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59741
  friend class ::CCExprResolve;
 
59742
  friend class ::CExprResolve;
48563
59743
  friend class ::WinIfExists;
48564
59744
  friend class ::WinImportHandler;
48565
59745
  friend class ::WinMacros;
48566
 
  friend class ::CMatchSyntax;
48567
 
  friend class ::ExtGnu;
 
59746
  friend class ::WinAsm;
 
59747
  friend class ::WinDeclSpecs;
 
59748
  friend class ::WinMemberExplSpec;
 
59749
  friend class ::WinTypeKeywords;
 
59750
  friend class ::WinFriend;
48568
59751
  friend class ::ExtAC;
48569
59752
  friend class ::ExtACBuilderCoupling;
48570
59753
  friend class ::ExtACSyntaxCoupling;
48571
59754
  friend class ::ExtACTree;
48572
59755
  friend class ::ExtACKeywords;
48573
 
  friend class ::WinAsm;
48574
 
  friend class ::WinDeclSpecs;
48575
 
  friend class ::WinMemberExplSpec;
48576
 
  friend class ::WinTypeKeywords;
 
59756
  friend class ::ExtGnu;
48577
59757
  friend class ::PragmaOnceUnitState;
48578
59758
  friend class ::PragmaOnce;
48579
 
  friend class ::CCExprResolve;
48580
 
  friend class ::CExprResolve;
 
59759
  friend class ::CMatchSyntax;
48581
59760
 
48582
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59761
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48583
59762
 
48584
59763
public:
 
59764
  /** Constructor.
 
59765
   *  \param size The initial number of declarations in the program.
 
59766
   *  \param incr The initial increment count. */
48585
59767
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
59768
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48586
59769
  static const char *NodeId ();
 
59770
  /** Get the name of the node. Can be compared with NodeId(). */
48587
59771
  const char *NodeName () const { return NodeId (); }
 
59772
  /** Get the semantic scope object. */
 
59773
  CSemScope *SemScope () const { return (CSemScope*)this; }
48588
59774
};
48589
59775
   
 
59776
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
59777
 *  Tree node representing an object declaration, e.g. int *i. */
48590
59778
 
48591
 
#line 48592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59779
#line 59780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48592
59780
} // closed Puma
 
59781
class CCExprResolve;
 
59782
class CExprResolve;
48593
59783
class WinIfExists;
48594
59784
class WinImportHandler;
48595
59785
class WinMacros;
48596
 
class CMatchSyntax;
48597
 
class ExtGnu;
 
59786
class WinAsm;
 
59787
class WinDeclSpecs;
 
59788
class WinMemberExplSpec;
 
59789
class WinTypeKeywords;
 
59790
class WinFriend;
48598
59791
class ExtAC;
48599
59792
class ExtACBuilderCoupling;
48600
59793
class ExtACSyntaxCoupling;
48601
59794
class ExtACTree;
48602
59795
class ExtACKeywords;
48603
 
class WinAsm;
48604
 
class WinDeclSpecs;
48605
 
class WinMemberExplSpec;
48606
 
class WinTypeKeywords;
 
59796
class ExtGnu;
48607
59797
class PragmaOnceUnitState;
48608
59798
class PragmaOnce;
48609
 
class CCExprResolve;
48610
 
class CExprResolve;
 
59799
class CMatchSyntax;
48611
59800
namespace Puma {
48612
59801
 
48613
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59802
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48614
59803
class CT_ObjDecl : public CT_Decl {
48615
 
#line 48616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59804
#line 59805 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59805
  friend class ::CCExprResolve;
 
59806
  friend class ::CExprResolve;
48616
59807
  friend class ::WinIfExists;
48617
59808
  friend class ::WinImportHandler;
48618
59809
  friend class ::WinMacros;
48619
 
  friend class ::CMatchSyntax;
48620
 
  friend class ::ExtGnu;
 
59810
  friend class ::WinAsm;
 
59811
  friend class ::WinDeclSpecs;
 
59812
  friend class ::WinMemberExplSpec;
 
59813
  friend class ::WinTypeKeywords;
 
59814
  friend class ::WinFriend;
48621
59815
  friend class ::ExtAC;
48622
59816
  friend class ::ExtACBuilderCoupling;
48623
59817
  friend class ::ExtACSyntaxCoupling;
48624
59818
  friend class ::ExtACTree;
48625
59819
  friend class ::ExtACKeywords;
48626
 
  friend class ::WinAsm;
48627
 
  friend class ::WinDeclSpecs;
48628
 
  friend class ::WinMemberExplSpec;
48629
 
  friend class ::WinTypeKeywords;
 
59820
  friend class ::ExtGnu;
48630
59821
  friend class ::PragmaOnceUnitState;
48631
59822
  friend class ::PragmaOnce;
48632
 
  friend class ::CCExprResolve;
48633
 
  friend class ::CExprResolve;
 
59823
  friend class ::CMatchSyntax;
48634
59824
 
48635
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59825
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48636
59826
 
48637
59827
  CTree *sons[3]; // declspecs, declarators, colon
48638
59828
 
48639
59829
public:
 
59830
  /** Constructor.
 
59831
   *  \param dsl The declaration specifier sequence.
 
59832
   *  \param dl The declarator list.
 
59833
   *  \param c Optional colon. */
48640
59834
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
48641
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
59835
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
48642
59836
  }
 
59837
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48643
59838
  static const char *NodeId ();
 
59839
  /** Get the name of the node. Can be compared with NodeId(). */
48644
59840
  const char *NodeName () const { return NodeId (); }
 
59841
  /** Get the number of sons. */
48645
59842
  int Sons () const { return 3; }
 
59843
  /** Get the n-th son.
 
59844
   *  \param n The index of the son.
 
59845
   *  \return The n-th son or NULL. */
48646
59846
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
59847
  /** Get the declaration specifier sequence. */
48647
59848
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
59849
  /** Get the declarator list. */
48648
59850
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
59851
  /** Replace a son.
 
59852
   *  \param old_son The son to replace.
 
59853
   *  \param new_son The new son. */
48649
59854
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48650
59855
    CTree::ReplaceSon (sons, 3, old_son, new_son);
48651
59856
  }
48652
59857
};
48653
59858
 
 
59859
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
59860
 *  Tree node representing a template declaration. */
48654
59861
 
48655
 
#line 48656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59862
#line 59863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48656
59863
} // closed Puma
 
59864
class CCExprResolve;
 
59865
class CExprResolve;
48657
59866
class WinIfExists;
48658
59867
class WinImportHandler;
48659
59868
class WinMacros;
48660
 
class CMatchSyntax;
48661
 
class ExtGnu;
 
59869
class WinAsm;
 
59870
class WinDeclSpecs;
 
59871
class WinMemberExplSpec;
 
59872
class WinTypeKeywords;
 
59873
class WinFriend;
48662
59874
class ExtAC;
48663
59875
class ExtACBuilderCoupling;
48664
59876
class ExtACSyntaxCoupling;
48665
59877
class ExtACTree;
48666
59878
class ExtACKeywords;
48667
 
class WinAsm;
48668
 
class WinDeclSpecs;
48669
 
class WinMemberExplSpec;
48670
 
class WinTypeKeywords;
 
59879
class ExtGnu;
48671
59880
class PragmaOnceUnitState;
48672
59881
class PragmaOnce;
48673
 
class CCExprResolve;
48674
 
class CExprResolve;
 
59882
class CMatchSyntax;
48675
59883
namespace Puma {
48676
59884
 
48677
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59885
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48678
59886
class CT_TemplateDecl : public CT_Decl, public CSemScope {
48679
 
#line 48680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59887
#line 59888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59888
  friend class ::CCExprResolve;
 
59889
  friend class ::CExprResolve;
48680
59890
  friend class ::WinIfExists;
48681
59891
  friend class ::WinImportHandler;
48682
59892
  friend class ::WinMacros;
48683
 
  friend class ::CMatchSyntax;
48684
 
  friend class ::ExtGnu;
 
59893
  friend class ::WinAsm;
 
59894
  friend class ::WinDeclSpecs;
 
59895
  friend class ::WinMemberExplSpec;
 
59896
  friend class ::WinTypeKeywords;
 
59897
  friend class ::WinFriend;
48685
59898
  friend class ::ExtAC;
48686
59899
  friend class ::ExtACBuilderCoupling;
48687
59900
  friend class ::ExtACSyntaxCoupling;
48688
59901
  friend class ::ExtACTree;
48689
59902
  friend class ::ExtACKeywords;
48690
 
  friend class ::WinAsm;
48691
 
  friend class ::WinDeclSpecs;
48692
 
  friend class ::WinMemberExplSpec;
48693
 
  friend class ::WinTypeKeywords;
 
59903
  friend class ::ExtGnu;
48694
59904
  friend class ::PragmaOnceUnitState;
48695
59905
  friend class ::PragmaOnce;
48696
 
  friend class ::CCExprResolve;
48697
 
  friend class ::CExprResolve;
 
59906
  friend class ::CMatchSyntax;
48698
59907
 
48699
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59908
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48700
59909
 
48701
59910
  CTree *sons[3]; // export, param_list, decl
48702
59911
 
48703
59912
public:
 
59913
  /** Constructor.
 
59914
   *  \param e Optional 'export' keyword. 
 
59915
   *  \param p The template parameter list.
 
59916
   *  \param d The class or function declaration. */
48704
59917
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
48705
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
59918
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
48706
59919
  }
 
59920
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48707
59921
  static const char *NodeId ();
 
59922
  /** Get the name of the node. Can be compared with NodeId(). */
48708
59923
  const char *NodeName () const { return NodeId (); }
 
59924
  /** Get the number of sons. */
48709
59925
  int Sons () const { return CTree::Sons (sons, 3); }
 
59926
  /** Get the n-th son.
 
59927
   *  \param n The index of the son.
 
59928
   *  \return The n-th son or NULL. */
48710
59929
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
59930
  /** Replace a son.
 
59931
   *  \param old_son The son to replace.
 
59932
   *  \param new_son The new son. */
48711
59933
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48712
59934
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
48713
59935
  }
 
59936
  /** Get the 'export' keyword. */
48714
59937
  CTree *Export () const { return sons[0]; }
 
59938
  /** Get the template parameter list. */
48715
59939
  CT_TemplateParamList *Parameters () const { 
48716
59940
    return (CT_TemplateParamList*)sons[1]; 
48717
59941
  }
 
59942
  /** Get the class or function declaration. */
48718
59943
  CTree *Declaration () const { return sons[2]; }
 
59944
  /** Get the semantic scope object. */
 
59945
  CSemScope *SemScope () const { return (CSemScope*)this; }
48719
59946
};
48720
59947
 
 
59948
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
59949
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
48721
59950
 
48722
 
#line 48723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59951
#line 59952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48723
59952
} // closed Puma
 
59953
class CCExprResolve;
 
59954
class CExprResolve;
48724
59955
class WinIfExists;
48725
59956
class WinImportHandler;
48726
59957
class WinMacros;
48727
 
class CMatchSyntax;
48728
 
class ExtGnu;
 
59958
class WinAsm;
 
59959
class WinDeclSpecs;
 
59960
class WinMemberExplSpec;
 
59961
class WinTypeKeywords;
 
59962
class WinFriend;
48729
59963
class ExtAC;
48730
59964
class ExtACBuilderCoupling;
48731
59965
class ExtACSyntaxCoupling;
48732
59966
class ExtACTree;
48733
59967
class ExtACKeywords;
48734
 
class WinAsm;
48735
 
class WinDeclSpecs;
48736
 
class WinMemberExplSpec;
48737
 
class WinTypeKeywords;
 
59968
class ExtGnu;
48738
59969
class PragmaOnceUnitState;
48739
59970
class PragmaOnce;
48740
 
class CCExprResolve;
48741
 
class CExprResolve;
 
59971
class CMatchSyntax;
48742
59972
namespace Puma {
48743
59973
 
48744
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59974
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48745
59975
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
48746
 
#line 48747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
59976
#line 59977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
59977
  friend class ::CCExprResolve;
 
59978
  friend class ::CExprResolve;
48747
59979
  friend class ::WinIfExists;
48748
59980
  friend class ::WinImportHandler;
48749
59981
  friend class ::WinMacros;
48750
 
  friend class ::CMatchSyntax;
48751
 
  friend class ::ExtGnu;
 
59982
  friend class ::WinAsm;
 
59983
  friend class ::WinDeclSpecs;
 
59984
  friend class ::WinMemberExplSpec;
 
59985
  friend class ::WinTypeKeywords;
 
59986
  friend class ::WinFriend;
48752
59987
  friend class ::ExtAC;
48753
59988
  friend class ::ExtACBuilderCoupling;
48754
59989
  friend class ::ExtACSyntaxCoupling;
48755
59990
  friend class ::ExtACTree;
48756
59991
  friend class ::ExtACKeywords;
48757
 
  friend class ::WinAsm;
48758
 
  friend class ::WinDeclSpecs;
48759
 
  friend class ::WinMemberExplSpec;
48760
 
  friend class ::WinTypeKeywords;
 
59992
  friend class ::ExtGnu;
48761
59993
  friend class ::PragmaOnceUnitState;
48762
59994
  friend class ::PragmaOnce;
48763
 
  friend class ::CCExprResolve;
48764
 
  friend class ::CExprResolve;
 
59995
  friend class ::CMatchSyntax;
48765
59996
 
48766
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59997
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48767
59998
 
48768
59999
protected:
 
60000
  /** Constructor. */
48769
60001
  CT_TemplateParamDecl () {}
48770
60002
  
48771
60003
public:
 
60004
  /** Get the template default argument. */
48772
60005
  virtual CT_ExprList *DefaultArgument () const = 0;
 
60006
  /** Get the semantic information object. */
48773
60007
  CSemObject *SemObject () const { return (CSemObject*)this; }
48774
60008
};
48775
60009
 
48776
60010
 
48777
 
#line 48778 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60011
#line 60012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48778
60012
} // closed Puma
 
60013
class CCExprResolve;
 
60014
class CExprResolve;
48779
60015
class WinIfExists;
48780
60016
class WinImportHandler;
48781
60017
class WinMacros;
48782
 
class CMatchSyntax;
48783
 
class ExtGnu;
 
60018
class WinAsm;
 
60019
class WinDeclSpecs;
 
60020
class WinMemberExplSpec;
 
60021
class WinTypeKeywords;
 
60022
class WinFriend;
48784
60023
class ExtAC;
48785
60024
class ExtACBuilderCoupling;
48786
60025
class ExtACSyntaxCoupling;
48787
60026
class ExtACTree;
48788
60027
class ExtACKeywords;
48789
 
class WinAsm;
48790
 
class WinDeclSpecs;
48791
 
class WinMemberExplSpec;
48792
 
class WinTypeKeywords;
 
60028
class ExtGnu;
48793
60029
class PragmaOnceUnitState;
48794
60030
class PragmaOnce;
48795
 
class CCExprResolve;
48796
 
class CExprResolve;
 
60031
class CMatchSyntax;
48797
60032
namespace Puma {
48798
60033
 
48799
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60034
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48800
60035
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
48801
 
#line 48802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60036
#line 60037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60037
  friend class ::CCExprResolve;
 
60038
  friend class ::CExprResolve;
48802
60039
  friend class ::WinIfExists;
48803
60040
  friend class ::WinImportHandler;
48804
60041
  friend class ::WinMacros;
48805
 
  friend class ::CMatchSyntax;
48806
 
  friend class ::ExtGnu;
 
60042
  friend class ::WinAsm;
 
60043
  friend class ::WinDeclSpecs;
 
60044
  friend class ::WinMemberExplSpec;
 
60045
  friend class ::WinTypeKeywords;
 
60046
  friend class ::WinFriend;
48807
60047
  friend class ::ExtAC;
48808
60048
  friend class ::ExtACBuilderCoupling;
48809
60049
  friend class ::ExtACSyntaxCoupling;
48810
60050
  friend class ::ExtACTree;
48811
60051
  friend class ::ExtACKeywords;
48812
 
  friend class ::WinAsm;
48813
 
  friend class ::WinDeclSpecs;
48814
 
  friend class ::WinMemberExplSpec;
48815
 
  friend class ::WinTypeKeywords;
 
60052
  friend class ::ExtGnu;
48816
60053
  friend class ::PragmaOnceUnitState;
48817
60054
  friend class ::PragmaOnce;
48818
 
  friend class ::CCExprResolve;
48819
 
  friend class ::CExprResolve;
 
60055
  friend class ::CMatchSyntax;
48820
60056
 
48821
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60057
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48822
60058
 
48823
60059
  CTree *sons[3]; // declspecs, declarator, init
48824
60060
 
48825
60061
public:
48826
60062
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
48827
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
60063
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
48828
60064
  }
 
60065
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48829
60066
  static const char *NodeId ();
 
60067
  /** Get the name of the node. Can be compared with NodeId(). */
48830
60068
  const char *NodeName () const { return NodeId (); }
 
60069
  /** Get the number of sons. */
48831
60070
  int Sons () const { return CTree::Sons (sons, 3); }
 
60071
  /** Get the n-th son.
 
60072
   *  \param n The index of the son.
 
60073
   *  \return The n-th son or NULL. */
48832
60074
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
48833
60075
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
48834
60076
  CTree *Declarator () const { return sons[1]; }
48835
60077
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
48836
60078
  CSemObject *SemObject () const { return (CSemObject*)this; }
48837
 
  void Initializer (CTree *i) { sons[2] = i; }
 
60079
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
60080
  /** Replace a son.
 
60081
   *  \param old_son The son to replace.
 
60082
   *  \param new_son The new son. */
48838
60083
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48839
60084
    CTree::ReplaceSon (sons, 3, old_son, new_son);
48840
60085
  }
48841
60086
};
48842
60087
 
48843
60088
 
48844
 
#line 48845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60089
#line 60090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48845
60090
} // closed Puma
 
60091
class CCExprResolve;
 
60092
class CExprResolve;
48846
60093
class WinIfExists;
48847
60094
class WinImportHandler;
48848
60095
class WinMacros;
48849
 
class CMatchSyntax;
48850
 
class ExtGnu;
 
60096
class WinAsm;
 
60097
class WinDeclSpecs;
 
60098
class WinMemberExplSpec;
 
60099
class WinTypeKeywords;
 
60100
class WinFriend;
48851
60101
class ExtAC;
48852
60102
class ExtACBuilderCoupling;
48853
60103
class ExtACSyntaxCoupling;
48854
60104
class ExtACTree;
48855
60105
class ExtACKeywords;
48856
 
class WinAsm;
48857
 
class WinDeclSpecs;
48858
 
class WinMemberExplSpec;
48859
 
class WinTypeKeywords;
 
60106
class ExtGnu;
48860
60107
class PragmaOnceUnitState;
48861
60108
class PragmaOnce;
48862
 
class CCExprResolve;
48863
 
class CExprResolve;
 
60109
class CMatchSyntax;
48864
60110
namespace Puma {
48865
60111
 
48866
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60112
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48867
60113
class CT_TypeParamDecl : public CT_TemplateParamDecl {
48868
 
#line 48869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60114
#line 60115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60115
  friend class ::CCExprResolve;
 
60116
  friend class ::CExprResolve;
48869
60117
  friend class ::WinIfExists;
48870
60118
  friend class ::WinImportHandler;
48871
60119
  friend class ::WinMacros;
48872
 
  friend class ::CMatchSyntax;
48873
 
  friend class ::ExtGnu;
 
60120
  friend class ::WinAsm;
 
60121
  friend class ::WinDeclSpecs;
 
60122
  friend class ::WinMemberExplSpec;
 
60123
  friend class ::WinTypeKeywords;
 
60124
  friend class ::WinFriend;
48874
60125
  friend class ::ExtAC;
48875
60126
  friend class ::ExtACBuilderCoupling;
48876
60127
  friend class ::ExtACSyntaxCoupling;
48877
60128
  friend class ::ExtACTree;
48878
60129
  friend class ::ExtACKeywords;
48879
 
  friend class ::WinAsm;
48880
 
  friend class ::WinDeclSpecs;
48881
 
  friend class ::WinMemberExplSpec;
48882
 
  friend class ::WinTypeKeywords;
 
60130
  friend class ::ExtGnu;
48883
60131
  friend class ::PragmaOnceUnitState;
48884
60132
  friend class ::PragmaOnce;
48885
 
  friend class ::CCExprResolve;
48886
 
  friend class ::CExprResolve;
 
60133
  friend class ::CMatchSyntax;
48887
60134
 
48888
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60135
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48889
60136
 
48890
60137
  CTree *sons[4]; // params, key, id, init
48891
60138
 
48892
60139
public:
48893
60140
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
48894
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
60141
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
60142
    AddSon (sons[2], id); AddSon (sons[3], i);
48895
60143
  }
 
60144
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48896
60145
  static const char *NodeId ();
 
60146
  /** Get the name of the node. Can be compared with NodeId(). */
48897
60147
  const char *NodeName () const { return NodeId (); }
 
60148
  /** Get the number of sons. */
48898
60149
  int Sons () const { return CTree::Sons (sons, 4); }
 
60150
  /** Get the n-th son.
 
60151
   *  \param n The index of the son.
 
60152
   *  \return The n-th son or NULL. */
48899
60153
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
48900
60154
  CT_TemplateParamList *Parameters () const { 
48901
60155
    return (CT_TemplateParamList*)sons[0]; 
48902
60156
  }
48903
60157
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
48904
60158
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
48905
 
  void Initializer (CTree *i) { sons[3] = i; }
 
60159
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
60160
  /** Replace a son.
 
60161
   *  \param old_son The son to replace.
 
60162
   *  \param new_son The new son. */
48906
60163
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48907
60164
    CTree::ReplaceSon (sons, 4, old_son, new_son);
48908
60165
  }
48909
60166
};
48910
60167
 
48911
60168
 
48912
 
#line 48913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60169
#line 60170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48913
60170
} // closed Puma
 
60171
class CCExprResolve;
 
60172
class CExprResolve;
48914
60173
class WinIfExists;
48915
60174
class WinImportHandler;
48916
60175
class WinMacros;
48917
 
class CMatchSyntax;
48918
 
class ExtGnu;
 
60176
class WinAsm;
 
60177
class WinDeclSpecs;
 
60178
class WinMemberExplSpec;
 
60179
class WinTypeKeywords;
 
60180
class WinFriend;
48919
60181
class ExtAC;
48920
60182
class ExtACBuilderCoupling;
48921
60183
class ExtACSyntaxCoupling;
48922
60184
class ExtACTree;
48923
60185
class ExtACKeywords;
48924
 
class WinAsm;
48925
 
class WinDeclSpecs;
48926
 
class WinMemberExplSpec;
48927
 
class WinTypeKeywords;
 
60186
class ExtGnu;
48928
60187
class PragmaOnceUnitState;
48929
60188
class PragmaOnce;
48930
 
class CCExprResolve;
48931
 
class CExprResolve;
 
60189
class CMatchSyntax;
48932
60190
namespace Puma {
48933
60191
 
48934
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60192
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48935
60193
class CT_EnumDef : public CT_Decl, public CSemObject {
48936
 
#line 48937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60194
#line 60195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60195
  friend class ::CCExprResolve;
 
60196
  friend class ::CExprResolve;
48937
60197
  friend class ::WinIfExists;
48938
60198
  friend class ::WinImportHandler;
48939
60199
  friend class ::WinMacros;
48940
 
  friend class ::CMatchSyntax;
48941
 
  friend class ::ExtGnu;
 
60200
  friend class ::WinAsm;
 
60201
  friend class ::WinDeclSpecs;
 
60202
  friend class ::WinMemberExplSpec;
 
60203
  friend class ::WinTypeKeywords;
 
60204
  friend class ::WinFriend;
48942
60205
  friend class ::ExtAC;
48943
60206
  friend class ::ExtACBuilderCoupling;
48944
60207
  friend class ::ExtACSyntaxCoupling;
48945
60208
  friend class ::ExtACTree;
48946
60209
  friend class ::ExtACKeywords;
48947
 
  friend class ::WinAsm;
48948
 
  friend class ::WinDeclSpecs;
48949
 
  friend class ::WinMemberExplSpec;
48950
 
  friend class ::WinTypeKeywords;
 
60210
  friend class ::ExtGnu;
48951
60211
  friend class ::PragmaOnceUnitState;
48952
60212
  friend class ::PragmaOnce;
48953
 
  friend class ::CCExprResolve;
48954
 
  friend class ::CExprResolve;
 
60213
  friend class ::CMatchSyntax;
48955
60214
 
48956
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60215
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48957
60216
 
48958
60217
  CTree *sons[3]; // key, name, enumerators
48959
60218
 
48960
60219
public:
48961
60220
  CT_EnumDef (CTree *k, CTree *n) {
48962
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
60221
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
48963
60222
  }
 
60223
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48964
60224
  static const char *NodeId ();
 
60225
  /** Get the name of the node. Can be compared with NodeId(). */
48965
60226
  const char *NodeName () const { return NodeId (); }
 
60227
  /** Get the number of sons. */
48966
60228
  int Sons () const { return CTree::Sons (sons, 3); }
 
60229
  /** Get the n-th son.
 
60230
   *  \param n The index of the son.
 
60231
   *  \return The n-th son or NULL. */
48967
60232
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
48968
60233
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
48969
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
60234
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
48970
60235
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
60236
  /** Replace a son.
 
60237
   *  \param old_son The son to replace.
 
60238
   *  \param new_son The new son. */
48971
60239
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48972
60240
    CTree::ReplaceSon (sons, 3, old_son, new_son);
48973
60241
  }
48975
60243
};
48976
60244
 
48977
60245
 
48978
 
#line 48979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60246
#line 60247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
48979
60247
} // closed Puma
 
60248
class CCExprResolve;
 
60249
class CExprResolve;
48980
60250
class WinIfExists;
48981
60251
class WinImportHandler;
48982
60252
class WinMacros;
48983
 
class CMatchSyntax;
48984
 
class ExtGnu;
 
60253
class WinAsm;
 
60254
class WinDeclSpecs;
 
60255
class WinMemberExplSpec;
 
60256
class WinTypeKeywords;
 
60257
class WinFriend;
48985
60258
class ExtAC;
48986
60259
class ExtACBuilderCoupling;
48987
60260
class ExtACSyntaxCoupling;
48988
60261
class ExtACTree;
48989
60262
class ExtACKeywords;
48990
 
class WinAsm;
48991
 
class WinDeclSpecs;
48992
 
class WinMemberExplSpec;
48993
 
class WinTypeKeywords;
 
60263
class ExtGnu;
48994
60264
class PragmaOnceUnitState;
48995
60265
class PragmaOnce;
48996
 
class CCExprResolve;
48997
 
class CExprResolve;
 
60266
class CMatchSyntax;
48998
60267
namespace Puma {
48999
60268
 
49000
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60269
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49001
60270
class CT_Enumerator : public CT_Decl, public CSemObject {
49002
 
#line 49003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60271
#line 60272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60272
  friend class ::CCExprResolve;
 
60273
  friend class ::CExprResolve;
49003
60274
  friend class ::WinIfExists;
49004
60275
  friend class ::WinImportHandler;
49005
60276
  friend class ::WinMacros;
49006
 
  friend class ::CMatchSyntax;
49007
 
  friend class ::ExtGnu;
 
60277
  friend class ::WinAsm;
 
60278
  friend class ::WinDeclSpecs;
 
60279
  friend class ::WinMemberExplSpec;
 
60280
  friend class ::WinTypeKeywords;
 
60281
  friend class ::WinFriend;
49008
60282
  friend class ::ExtAC;
49009
60283
  friend class ::ExtACBuilderCoupling;
49010
60284
  friend class ::ExtACSyntaxCoupling;
49011
60285
  friend class ::ExtACTree;
49012
60286
  friend class ::ExtACKeywords;
49013
 
  friend class ::WinAsm;
49014
 
  friend class ::WinDeclSpecs;
49015
 
  friend class ::WinMemberExplSpec;
49016
 
  friend class ::WinTypeKeywords;
 
60287
  friend class ::ExtGnu;
49017
60288
  friend class ::PragmaOnceUnitState;
49018
60289
  friend class ::PragmaOnce;
49019
 
  friend class ::CCExprResolve;
49020
 
  friend class ::CExprResolve;
 
60290
  friend class ::CMatchSyntax;
49021
60291
 
49022
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60292
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49023
60293
 
49024
60294
  CTree *sons[2]; // name, init
49025
60295
 
49026
60296
public:
49027
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
60297
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
60298
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49028
60299
  static const char *NodeId ();
 
60300
  /** Get the name of the node. Can be compared with NodeId(). */
49029
60301
  const char *NodeName () const { return NodeId (); }
 
60302
  /** Get the number of sons. */
49030
60303
  int Sons () const { return CTree::Sons (sons, 2); }
 
60304
  /** Get the n-th son.
 
60305
   *  \param n The index of the son.
 
60306
   *  \return The n-th son or NULL. */
49031
60307
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
49032
60308
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
49033
 
  void Initializer (CTree *i) { sons[1] = i; }
 
60309
  void Initializer (CTree *i) { AddSon (sons[1], i); }
49034
60310
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
60311
  /** Replace a son.
 
60312
   *  \param old_son The son to replace.
 
60313
   *  \param new_son The new son. */
49035
60314
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49036
60315
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
49037
60316
  }
49039
60318
};
49040
60319
 
49041
60320
 
49042
 
#line 49043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60321
#line 60322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49043
60322
} // closed Puma
 
60323
class CCExprResolve;
 
60324
class CExprResolve;
49044
60325
class WinIfExists;
49045
60326
class WinImportHandler;
49046
60327
class WinMacros;
49047
 
class CMatchSyntax;
49048
 
class ExtGnu;
 
60328
class WinAsm;
 
60329
class WinDeclSpecs;
 
60330
class WinMemberExplSpec;
 
60331
class WinTypeKeywords;
 
60332
class WinFriend;
49049
60333
class ExtAC;
49050
60334
class ExtACBuilderCoupling;
49051
60335
class ExtACSyntaxCoupling;
49052
60336
class ExtACTree;
49053
60337
class ExtACKeywords;
49054
 
class WinAsm;
49055
 
class WinDeclSpecs;
49056
 
class WinMemberExplSpec;
49057
 
class WinTypeKeywords;
 
60338
class ExtGnu;
49058
60339
class PragmaOnceUnitState;
49059
60340
class PragmaOnce;
49060
 
class CCExprResolve;
49061
 
class CExprResolve;
 
60341
class CMatchSyntax;
49062
60342
namespace Puma {
49063
60343
 
49064
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60344
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49065
60345
class CT_FctDef : public CT_Decl, public CSemObject {
49066
 
#line 49067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60346
#line 60347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60347
  friend class ::CCExprResolve;
 
60348
  friend class ::CExprResolve;
49067
60349
  friend class ::WinIfExists;
49068
60350
  friend class ::WinImportHandler;
49069
60351
  friend class ::WinMacros;
49070
 
  friend class ::CMatchSyntax;
49071
 
  friend class ::ExtGnu;
 
60352
  friend class ::WinAsm;
 
60353
  friend class ::WinDeclSpecs;
 
60354
  friend class ::WinMemberExplSpec;
 
60355
  friend class ::WinTypeKeywords;
 
60356
  friend class ::WinFriend;
49072
60357
  friend class ::ExtAC;
49073
60358
  friend class ::ExtACBuilderCoupling;
49074
60359
  friend class ::ExtACSyntaxCoupling;
49075
60360
  friend class ::ExtACTree;
49076
60361
  friend class ::ExtACKeywords;
49077
 
  friend class ::WinAsm;
49078
 
  friend class ::WinDeclSpecs;
49079
 
  friend class ::WinMemberExplSpec;
49080
 
  friend class ::WinTypeKeywords;
 
60362
  friend class ::ExtGnu;
49081
60363
  friend class ::PragmaOnceUnitState;
49082
60364
  friend class ::PragmaOnce;
49083
 
  friend class ::CCExprResolve;
49084
 
  friend class ::CExprResolve;
 
60365
  friend class ::CMatchSyntax;
49085
60366
 
49086
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60367
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49087
60368
 
49088
60369
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
49089
60370
 
49090
60371
public:
49091
60372
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
49092
60373
             CTree *b, CTree *hs) {
49093
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
49094
 
    sons[5] = b; sons[6] = hs; 
 
60374
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
60375
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
60376
    AddSon (sons[6], hs); 
49095
60377
  }
 
60378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49096
60379
  static const char *NodeId ();
 
60380
  /** Get the name of the node. Can be compared with NodeId(). */
49097
60381
  const char *NodeName () const { return NodeId (); }
 
60382
  /** Get the number of sons. */
49098
60383
  int Sons () const { return CTree::Sons (sons, 7); }
 
60384
  /** Get the n-th son.
 
60385
   *  \param n The index of the son.
 
60386
   *  \return The n-th son or NULL. */
49099
60387
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
49100
60388
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
49101
60389
  CTree *Declarator () const { return sons[1]; }
49105
60393
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
49106
60394
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
49107
60395
  CSemObject *SemObject () const { return (CSemObject*)this; }
49108
 
  void CtorInit (CTree *i) { sons[3] = i; }
49109
 
  void Body (CTree *b) { sons[5] = b; }
 
60396
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
60397
  void Body (CTree *b) { AddSon (sons[5], b); }
49110
60398
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
49111
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
60399
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
60400
    AddSon (sons[5], b); AddSon (sons[6], h);
49112
60401
  }
 
60402
  /** Replace a son.
 
60403
   *  \param old_son The son to replace.
 
60404
   *  \param new_son The new son. */
49113
60405
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49114
60406
    CTree::ReplaceSon (sons, 7, old_son, new_son);
49115
60407
  }
49116
60408
};
49117
60409
 
49118
60410
 
49119
 
#line 49120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60411
#line 60412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49120
60412
} // closed Puma
 
60413
class CCExprResolve;
 
60414
class CExprResolve;
49121
60415
class WinIfExists;
49122
60416
class WinImportHandler;
49123
60417
class WinMacros;
49124
 
class CMatchSyntax;
49125
 
class ExtGnu;
 
60418
class WinAsm;
 
60419
class WinDeclSpecs;
 
60420
class WinMemberExplSpec;
 
60421
class WinTypeKeywords;
 
60422
class WinFriend;
49126
60423
class ExtAC;
49127
60424
class ExtACBuilderCoupling;
49128
60425
class ExtACSyntaxCoupling;
49129
60426
class ExtACTree;
49130
60427
class ExtACKeywords;
49131
 
class WinAsm;
49132
 
class WinDeclSpecs;
49133
 
class WinMemberExplSpec;
49134
 
class WinTypeKeywords;
 
60428
class ExtGnu;
49135
60429
class PragmaOnceUnitState;
49136
60430
class PragmaOnce;
49137
 
class CCExprResolve;
49138
 
class CExprResolve;
 
60431
class CMatchSyntax;
49139
60432
namespace Puma {
49140
60433
 
49141
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60434
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49142
60435
class CT_AsmDef : public CT_Decl {
49143
 
#line 49144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60436
#line 60437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60437
  friend class ::CCExprResolve;
 
60438
  friend class ::CExprResolve;
49144
60439
  friend class ::WinIfExists;
49145
60440
  friend class ::WinImportHandler;
49146
60441
  friend class ::WinMacros;
49147
 
  friend class ::CMatchSyntax;
49148
 
  friend class ::ExtGnu;
 
60442
  friend class ::WinAsm;
 
60443
  friend class ::WinDeclSpecs;
 
60444
  friend class ::WinMemberExplSpec;
 
60445
  friend class ::WinTypeKeywords;
 
60446
  friend class ::WinFriend;
49149
60447
  friend class ::ExtAC;
49150
60448
  friend class ::ExtACBuilderCoupling;
49151
60449
  friend class ::ExtACSyntaxCoupling;
49152
60450
  friend class ::ExtACTree;
49153
60451
  friend class ::ExtACKeywords;
49154
 
  friend class ::WinAsm;
49155
 
  friend class ::WinDeclSpecs;
49156
 
  friend class ::WinMemberExplSpec;
49157
 
  friend class ::WinTypeKeywords;
 
60452
  friend class ::ExtGnu;
49158
60453
  friend class ::PragmaOnceUnitState;
49159
60454
  friend class ::PragmaOnce;
49160
 
  friend class ::CCExprResolve;
49161
 
  friend class ::CExprResolve;
 
60455
  friend class ::CMatchSyntax;
49162
60456
 
49163
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60457
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49164
60458
 
49165
60459
  CTree *sons[5]; // asm, open, str, close, semi_colon
49166
60460
 
49167
60461
public:
49168
60462
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
49169
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
60463
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
60464
    AddSon (sons[3], c); AddSon (sons[4], sc); 
49170
60465
  }
 
60466
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49171
60467
  static const char *NodeId ();
 
60468
  /** Get the name of the node. Can be compared with NodeId(). */
49172
60469
  const char *NodeName () const { return NodeId (); }
 
60470
  /** Get the number of sons. */
49173
60471
  int Sons () const { return 5; }
 
60472
  /** Get the n-th son.
 
60473
   *  \param n The index of the son.
 
60474
   *  \return The n-th son or NULL. */
49174
60475
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
49175
60476
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
60477
  /** Replace a son.
 
60478
   *  \param old_son The son to replace.
 
60479
   *  \param new_son The new son. */
49176
60480
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49177
60481
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49178
60482
  }
49179
60483
};
49180
60484
 
49181
60485
 
49182
 
#line 49183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60486
#line 60487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49183
60487
} // closed Puma
 
60488
class CCExprResolve;
 
60489
class CExprResolve;
49184
60490
class WinIfExists;
49185
60491
class WinImportHandler;
49186
60492
class WinMacros;
49187
 
class CMatchSyntax;
49188
 
class ExtGnu;
 
60493
class WinAsm;
 
60494
class WinDeclSpecs;
 
60495
class WinMemberExplSpec;
 
60496
class WinTypeKeywords;
 
60497
class WinFriend;
49189
60498
class ExtAC;
49190
60499
class ExtACBuilderCoupling;
49191
60500
class ExtACSyntaxCoupling;
49192
60501
class ExtACTree;
49193
60502
class ExtACKeywords;
49194
 
class WinAsm;
49195
 
class WinDeclSpecs;
49196
 
class WinMemberExplSpec;
49197
 
class WinTypeKeywords;
 
60503
class ExtGnu;
49198
60504
class PragmaOnceUnitState;
49199
60505
class PragmaOnce;
49200
 
class CCExprResolve;
49201
 
class CExprResolve;
 
60506
class CMatchSyntax;
49202
60507
namespace Puma {
49203
60508
 
49204
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60509
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49205
60510
class CT_Handler : public CT_Decl, public CSemScope {
49206
 
#line 49207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60511
#line 60512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60512
  friend class ::CCExprResolve;
 
60513
  friend class ::CExprResolve;
49207
60514
  friend class ::WinIfExists;
49208
60515
  friend class ::WinImportHandler;
49209
60516
  friend class ::WinMacros;
49210
 
  friend class ::CMatchSyntax;
49211
 
  friend class ::ExtGnu;
 
60517
  friend class ::WinAsm;
 
60518
  friend class ::WinDeclSpecs;
 
60519
  friend class ::WinMemberExplSpec;
 
60520
  friend class ::WinTypeKeywords;
 
60521
  friend class ::WinFriend;
49212
60522
  friend class ::ExtAC;
49213
60523
  friend class ::ExtACBuilderCoupling;
49214
60524
  friend class ::ExtACSyntaxCoupling;
49215
60525
  friend class ::ExtACTree;
49216
60526
  friend class ::ExtACKeywords;
49217
 
  friend class ::WinAsm;
49218
 
  friend class ::WinDeclSpecs;
49219
 
  friend class ::WinMemberExplSpec;
49220
 
  friend class ::WinTypeKeywords;
 
60527
  friend class ::ExtGnu;
49221
60528
  friend class ::PragmaOnceUnitState;
49222
60529
  friend class ::PragmaOnce;
49223
 
  friend class ::CCExprResolve;
49224
 
  friend class ::CExprResolve;
 
60530
  friend class ::CMatchSyntax;
49225
60531
 
49226
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60532
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49227
60533
 
49228
60534
  CTree *sons[3]; // catch, exception_decl, stmt
49229
60535
 
49230
60536
public:
49231
60537
  CT_Handler (CTree *c, CTree *e, CTree *s) {
49232
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
60538
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
49233
60539
  }
 
60540
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49234
60541
  static const char *NodeId ();
 
60542
  /** Get the name of the node. Can be compared with NodeId(). */
49235
60543
  const char *NodeName () const { return NodeId (); }
 
60544
  /** Get the number of sons. */
49236
60545
  int Sons () const { return 3; }
 
60546
  /** Get the n-th son.
 
60547
   *  \param n The index of the son.
 
60548
   *  \return The n-th son or NULL. */
49237
60549
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
49238
60550
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
49239
60551
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
60552
  /** Replace a son.
 
60553
   *  \param old_son The son to replace.
 
60554
   *  \param new_son The new son. */
49240
60555
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49241
60556
    CTree::ReplaceSon (sons, 3, old_son, new_son);
49242
60557
  }
 
60558
  CSemScope *SemScope () const { return (CSemScope*)this; }
49243
60559
};
49244
60560
 
49245
60561
 
49246
 
#line 49247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60562
#line 60563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49247
60563
} // closed Puma
 
60564
class CCExprResolve;
 
60565
class CExprResolve;
49248
60566
class WinIfExists;
49249
60567
class WinImportHandler;
49250
60568
class WinMacros;
49251
 
class CMatchSyntax;
49252
 
class ExtGnu;
 
60569
class WinAsm;
 
60570
class WinDeclSpecs;
 
60571
class WinMemberExplSpec;
 
60572
class WinTypeKeywords;
 
60573
class WinFriend;
49253
60574
class ExtAC;
49254
60575
class ExtACBuilderCoupling;
49255
60576
class ExtACSyntaxCoupling;
49256
60577
class ExtACTree;
49257
60578
class ExtACKeywords;
49258
 
class WinAsm;
49259
 
class WinDeclSpecs;
49260
 
class WinMemberExplSpec;
49261
 
class WinTypeKeywords;
 
60579
class ExtGnu;
49262
60580
class PragmaOnceUnitState;
49263
60581
class PragmaOnce;
49264
 
class CCExprResolve;
49265
 
class CExprResolve;
 
60582
class CMatchSyntax;
49266
60583
namespace Puma {
49267
60584
 
49268
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60585
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49269
60586
class CT_LinkageSpec : public CT_Decl {
49270
 
#line 49271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60587
#line 60588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60588
  friend class ::CCExprResolve;
 
60589
  friend class ::CExprResolve;
49271
60590
  friend class ::WinIfExists;
49272
60591
  friend class ::WinImportHandler;
49273
60592
  friend class ::WinMacros;
49274
 
  friend class ::CMatchSyntax;
49275
 
  friend class ::ExtGnu;
 
60593
  friend class ::WinAsm;
 
60594
  friend class ::WinDeclSpecs;
 
60595
  friend class ::WinMemberExplSpec;
 
60596
  friend class ::WinTypeKeywords;
 
60597
  friend class ::WinFriend;
49276
60598
  friend class ::ExtAC;
49277
60599
  friend class ::ExtACBuilderCoupling;
49278
60600
  friend class ::ExtACSyntaxCoupling;
49279
60601
  friend class ::ExtACTree;
49280
60602
  friend class ::ExtACKeywords;
49281
 
  friend class ::WinAsm;
49282
 
  friend class ::WinDeclSpecs;
49283
 
  friend class ::WinMemberExplSpec;
49284
 
  friend class ::WinTypeKeywords;
 
60603
  friend class ::ExtGnu;
49285
60604
  friend class ::PragmaOnceUnitState;
49286
60605
  friend class ::PragmaOnce;
49287
 
  friend class ::CCExprResolve;
49288
 
  friend class ::CExprResolve;
 
60606
  friend class ::CMatchSyntax;
49289
60607
 
49290
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60608
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49291
60609
 
49292
60610
  CTree *sons[5]; // extern, str, open, decls, close
49293
60611
 
49294
60612
public:
49295
60613
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
49296
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
60614
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
60615
    AddSon (sons[3], d); AddSon (sons[4], c);
49297
60616
    if (isList ())
49298
60617
      ((CT_DeclList*)Decls ())->Linkage (this);
49299
60618
    else
49300
60619
      ((CT_Decl*)Decls ())->Linkage (this);
49301
60620
  }
 
60621
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49302
60622
  static const char *NodeId ();
 
60623
  /** Get the name of the node. Can be compared with NodeId(). */
49303
60624
  const char *NodeName () const { return NodeId (); }
 
60625
  /** Get the number of sons. */
49304
60626
  int Sons () const { return CTree::Sons (sons, 5); }
 
60627
  /** Get the n-th son.
 
60628
   *  \param n The index of the son.
 
60629
   *  \return The n-th son or NULL. */
49305
60630
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
49306
60631
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
49307
60632
  CTree *Decls () const { return sons[3]; }
49308
60633
  bool isList () const {
49309
60634
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
49310
60635
  }
 
60636
  /** Replace a son.
 
60637
   *  \param old_son The son to replace.
 
60638
   *  \param new_son The new son. */
49311
60639
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49312
60640
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49313
60641
  }
49314
60642
};
49315
60643
 
49316
60644
 
49317
 
#line 49318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60645
#line 60646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49318
60646
} // closed Puma
 
60647
class CCExprResolve;
 
60648
class CExprResolve;
49319
60649
class WinIfExists;
49320
60650
class WinImportHandler;
49321
60651
class WinMacros;
49322
 
class CMatchSyntax;
49323
 
class ExtGnu;
 
60652
class WinAsm;
 
60653
class WinDeclSpecs;
 
60654
class WinMemberExplSpec;
 
60655
class WinTypeKeywords;
 
60656
class WinFriend;
49324
60657
class ExtAC;
49325
60658
class ExtACBuilderCoupling;
49326
60659
class ExtACSyntaxCoupling;
49327
60660
class ExtACTree;
49328
60661
class ExtACKeywords;
49329
 
class WinAsm;
49330
 
class WinDeclSpecs;
49331
 
class WinMemberExplSpec;
49332
 
class WinTypeKeywords;
 
60662
class ExtGnu;
49333
60663
class PragmaOnceUnitState;
49334
60664
class PragmaOnce;
49335
 
class CCExprResolve;
49336
 
class CExprResolve;
 
60665
class CMatchSyntax;
49337
60666
namespace Puma {
49338
60667
 
49339
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60668
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49340
60669
class CT_ArgDecl : public CT_Decl, public CSemObject {
49341
 
#line 49342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60670
#line 60671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60671
  friend class ::CCExprResolve;
 
60672
  friend class ::CExprResolve;
49342
60673
  friend class ::WinIfExists;
49343
60674
  friend class ::WinImportHandler;
49344
60675
  friend class ::WinMacros;
49345
 
  friend class ::CMatchSyntax;
49346
 
  friend class ::ExtGnu;
 
60676
  friend class ::WinAsm;
 
60677
  friend class ::WinDeclSpecs;
 
60678
  friend class ::WinMemberExplSpec;
 
60679
  friend class ::WinTypeKeywords;
 
60680
  friend class ::WinFriend;
49347
60681
  friend class ::ExtAC;
49348
60682
  friend class ::ExtACBuilderCoupling;
49349
60683
  friend class ::ExtACSyntaxCoupling;
49350
60684
  friend class ::ExtACTree;
49351
60685
  friend class ::ExtACKeywords;
49352
 
  friend class ::WinAsm;
49353
 
  friend class ::WinDeclSpecs;
49354
 
  friend class ::WinMemberExplSpec;
49355
 
  friend class ::WinTypeKeywords;
 
60686
  friend class ::ExtGnu;
49356
60687
  friend class ::PragmaOnceUnitState;
49357
60688
  friend class ::PragmaOnce;
49358
 
  friend class ::CCExprResolve;
49359
 
  friend class ::CExprResolve;
 
60689
  friend class ::CMatchSyntax;
49360
60690
 
49361
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60691
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49362
60692
 
49363
60693
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
49364
60694
 
49365
60695
public:
49366
60696
  CT_ArgDecl (CTree *dsl, CTree *d) {
49367
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
60697
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
60698
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
49368
60699
  }
49369
60700
  CT_ArgDecl (CTree *ellipsis) {
49370
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
60701
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
60702
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
49371
60703
  }
 
60704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49372
60705
  static const char *NodeId ();
 
60706
  /** Get the name of the node. Can be compared with NodeId(). */
49373
60707
  const char *NodeName () const { return NodeId (); }
 
60708
  /** Get the number of sons. */
49374
60709
  int Sons () const { return CTree::Sons (sons, 4); }
 
60710
  /** Get the n-th son.
 
60711
   *  \param n The index of the son.
 
60712
   *  \return The n-th son or NULL. */
49375
60713
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
49376
60714
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
49377
60715
  CTree *Declarator () const { return sons[1]; }
49378
60716
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
49379
60717
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
49380
60718
  CSemObject *SemObject () const { return (CSemObject*)this; }
49381
 
  void Initializer (CTree *i) { sons[2] = i; }
 
60719
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
60720
  /** Replace a son.
 
60721
   *  \param old_son The son to replace.
 
60722
   *  \param new_son The new son. */
49382
60723
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49383
60724
    CTree::ReplaceSon (sons, 4, old_son, new_son);
49384
60725
  }
49385
60726
};
49386
60727
 
49387
60728
 
49388
 
#line 49389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60729
#line 60730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49389
60730
} // closed Puma
 
60731
class CCExprResolve;
 
60732
class CExprResolve;
49390
60733
class WinIfExists;
49391
60734
class WinImportHandler;
49392
60735
class WinMacros;
49393
 
class CMatchSyntax;
49394
 
class ExtGnu;
 
60736
class WinAsm;
 
60737
class WinDeclSpecs;
 
60738
class WinMemberExplSpec;
 
60739
class WinTypeKeywords;
 
60740
class WinFriend;
49395
60741
class ExtAC;
49396
60742
class ExtACBuilderCoupling;
49397
60743
class ExtACSyntaxCoupling;
49398
60744
class ExtACTree;
49399
60745
class ExtACKeywords;
49400
 
class WinAsm;
49401
 
class WinDeclSpecs;
49402
 
class WinMemberExplSpec;
49403
 
class WinTypeKeywords;
 
60746
class ExtGnu;
49404
60747
class PragmaOnceUnitState;
49405
60748
class PragmaOnce;
49406
 
class CCExprResolve;
49407
 
class CExprResolve;
 
60749
class CMatchSyntax;
49408
60750
namespace Puma {
49409
60751
 
49410
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60752
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49411
60753
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
49412
 
#line 49413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60754
#line 60755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60755
  friend class ::CCExprResolve;
 
60756
  friend class ::CExprResolve;
49413
60757
  friend class ::WinIfExists;
49414
60758
  friend class ::WinImportHandler;
49415
60759
  friend class ::WinMacros;
49416
 
  friend class ::CMatchSyntax;
49417
 
  friend class ::ExtGnu;
 
60760
  friend class ::WinAsm;
 
60761
  friend class ::WinDeclSpecs;
 
60762
  friend class ::WinMemberExplSpec;
 
60763
  friend class ::WinTypeKeywords;
 
60764
  friend class ::WinFriend;
49418
60765
  friend class ::ExtAC;
49419
60766
  friend class ::ExtACBuilderCoupling;
49420
60767
  friend class ::ExtACSyntaxCoupling;
49421
60768
  friend class ::ExtACTree;
49422
60769
  friend class ::ExtACKeywords;
49423
 
  friend class ::WinAsm;
49424
 
  friend class ::WinDeclSpecs;
49425
 
  friend class ::WinMemberExplSpec;
49426
 
  friend class ::WinTypeKeywords;
 
60770
  friend class ::ExtGnu;
49427
60771
  friend class ::PragmaOnceUnitState;
49428
60772
  friend class ::PragmaOnce;
49429
 
  friend class ::CCExprResolve;
49430
 
  friend class ::CExprResolve;
 
60773
  friend class ::CMatchSyntax;
49431
60774
 
49432
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60775
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49433
60776
 
49434
60777
public:
49435
60778
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
49436
60779
   CT_DeclList (size, 2) { AddProperties (props); }
 
60780
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49437
60781
  static const char *NodeId ();
 
60782
  /** Get the name of the node. Can be compared with NodeId(). */
49438
60783
  const char *NodeName () const { return NodeId (); }
 
60784
  CSemScope *SemScope () const { return (CSemScope*)this; }
49439
60785
};
49440
60786
 
49441
60787
 
49442
 
#line 49443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60788
#line 60789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49443
60789
} // closed Puma
 
60790
class CCExprResolve;
 
60791
class CExprResolve;
49444
60792
class WinIfExists;
49445
60793
class WinImportHandler;
49446
60794
class WinMacros;
49447
 
class CMatchSyntax;
49448
 
class ExtGnu;
 
60795
class WinAsm;
 
60796
class WinDeclSpecs;
 
60797
class WinMemberExplSpec;
 
60798
class WinTypeKeywords;
 
60799
class WinFriend;
49449
60800
class ExtAC;
49450
60801
class ExtACBuilderCoupling;
49451
60802
class ExtACSyntaxCoupling;
49452
60803
class ExtACTree;
49453
60804
class ExtACKeywords;
49454
 
class WinAsm;
49455
 
class WinDeclSpecs;
49456
 
class WinMemberExplSpec;
49457
 
class WinTypeKeywords;
 
60805
class ExtGnu;
49458
60806
class PragmaOnceUnitState;
49459
60807
class PragmaOnce;
49460
 
class CCExprResolve;
49461
 
class CExprResolve;
 
60808
class CMatchSyntax;
49462
60809
namespace Puma {
49463
60810
 
49464
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60811
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49465
60812
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
49466
 
#line 49467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60813
#line 60814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60814
  friend class ::CCExprResolve;
 
60815
  friend class ::CExprResolve;
49467
60816
  friend class ::WinIfExists;
49468
60817
  friend class ::WinImportHandler;
49469
60818
  friend class ::WinMacros;
49470
 
  friend class ::CMatchSyntax;
49471
 
  friend class ::ExtGnu;
 
60819
  friend class ::WinAsm;
 
60820
  friend class ::WinDeclSpecs;
 
60821
  friend class ::WinMemberExplSpec;
 
60822
  friend class ::WinTypeKeywords;
 
60823
  friend class ::WinFriend;
49472
60824
  friend class ::ExtAC;
49473
60825
  friend class ::ExtACBuilderCoupling;
49474
60826
  friend class ::ExtACSyntaxCoupling;
49475
60827
  friend class ::ExtACTree;
49476
60828
  friend class ::ExtACKeywords;
49477
 
  friend class ::WinAsm;
49478
 
  friend class ::WinDeclSpecs;
49479
 
  friend class ::WinMemberExplSpec;
49480
 
  friend class ::WinTypeKeywords;
 
60829
  friend class ::ExtGnu;
49481
60830
  friend class ::PragmaOnceUnitState;
49482
60831
  friend class ::PragmaOnce;
49483
 
  friend class ::CCExprResolve;
49484
 
  friend class ::CExprResolve;
 
60832
  friend class ::CMatchSyntax;
49485
60833
 
49486
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60834
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49487
60835
 
49488
60836
public:
49489
60837
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
60838
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49490
60839
  static const char *NodeId ();
 
60840
  /** Get the name of the node. Can be compared with NodeId(). */
49491
60841
  const char *NodeName () const { return NodeId (); }
 
60842
  CSemScope *SemScope () const { return (CSemScope*)this; }
49492
60843
};
49493
60844
 
49494
60845
 
49495
 
#line 49496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60846
#line 60847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49496
60847
} // closed Puma
 
60848
class CCExprResolve;
 
60849
class CExprResolve;
49497
60850
class WinIfExists;
49498
60851
class WinImportHandler;
49499
60852
class WinMacros;
49500
 
class CMatchSyntax;
49501
 
class ExtGnu;
 
60853
class WinAsm;
 
60854
class WinDeclSpecs;
 
60855
class WinMemberExplSpec;
 
60856
class WinTypeKeywords;
 
60857
class WinFriend;
49502
60858
class ExtAC;
49503
60859
class ExtACBuilderCoupling;
49504
60860
class ExtACSyntaxCoupling;
49505
60861
class ExtACTree;
49506
60862
class ExtACKeywords;
49507
 
class WinAsm;
49508
 
class WinDeclSpecs;
49509
 
class WinMemberExplSpec;
49510
 
class WinTypeKeywords;
 
60863
class ExtGnu;
49511
60864
class PragmaOnceUnitState;
49512
60865
class PragmaOnce;
49513
 
class CCExprResolve;
49514
 
class CExprResolve;
 
60866
class CMatchSyntax;
49515
60867
namespace Puma {
49516
60868
 
49517
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60869
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49518
60870
class CT_ArgNameList : public CT_ArgDeclList {
49519
 
#line 49520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60871
#line 60872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60872
  friend class ::CCExprResolve;
 
60873
  friend class ::CExprResolve;
49520
60874
  friend class ::WinIfExists;
49521
60875
  friend class ::WinImportHandler;
49522
60876
  friend class ::WinMacros;
49523
 
  friend class ::CMatchSyntax;
49524
 
  friend class ::ExtGnu;
 
60877
  friend class ::WinAsm;
 
60878
  friend class ::WinDeclSpecs;
 
60879
  friend class ::WinMemberExplSpec;
 
60880
  friend class ::WinTypeKeywords;
 
60881
  friend class ::WinFriend;
49525
60882
  friend class ::ExtAC;
49526
60883
  friend class ::ExtACBuilderCoupling;
49527
60884
  friend class ::ExtACSyntaxCoupling;
49528
60885
  friend class ::ExtACTree;
49529
60886
  friend class ::ExtACKeywords;
49530
 
  friend class ::WinAsm;
49531
 
  friend class ::WinDeclSpecs;
49532
 
  friend class ::WinMemberExplSpec;
49533
 
  friend class ::WinTypeKeywords;
 
60887
  friend class ::ExtGnu;
49534
60888
  friend class ::PragmaOnceUnitState;
49535
60889
  friend class ::PragmaOnce;
49536
 
  friend class ::CCExprResolve;
49537
 
  friend class ::CExprResolve;
 
60890
  friend class ::CMatchSyntax;
49538
60891
 
49539
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60892
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49540
60893
 
49541
60894
public:
49542
60895
  CT_ArgNameList () : CT_ArgDeclList () {}
 
60896
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49543
60897
  static const char *NodeId ();
 
60898
  /** Get the name of the node. Can be compared with NodeId(). */
49544
60899
  const char *NodeName () const { return NodeId (); }
49545
60900
};
49546
60901
 
49547
60902
 
49548
 
#line 49549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60903
#line 60904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49549
60904
} // closed Puma
 
60905
class CCExprResolve;
 
60906
class CExprResolve;
49550
60907
class WinIfExists;
49551
60908
class WinImportHandler;
49552
60909
class WinMacros;
49553
 
class CMatchSyntax;
49554
 
class ExtGnu;
 
60910
class WinAsm;
 
60911
class WinDeclSpecs;
 
60912
class WinMemberExplSpec;
 
60913
class WinTypeKeywords;
 
60914
class WinFriend;
49555
60915
class ExtAC;
49556
60916
class ExtACBuilderCoupling;
49557
60917
class ExtACSyntaxCoupling;
49558
60918
class ExtACTree;
49559
60919
class ExtACKeywords;
49560
 
class WinAsm;
49561
 
class WinDeclSpecs;
49562
 
class WinMemberExplSpec;
49563
 
class WinTypeKeywords;
 
60920
class ExtGnu;
49564
60921
class PragmaOnceUnitState;
49565
60922
class PragmaOnce;
49566
 
class CCExprResolve;
49567
 
class CExprResolve;
 
60923
class CMatchSyntax;
49568
60924
namespace Puma {
49569
60925
 
49570
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60926
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49571
60927
class CT_NamespaceDef : public CT_Decl, public CSemObject {
49572
 
#line 49573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60928
#line 60929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
60929
  friend class ::CCExprResolve;
 
60930
  friend class ::CExprResolve;
49573
60931
  friend class ::WinIfExists;
49574
60932
  friend class ::WinImportHandler;
49575
60933
  friend class ::WinMacros;
49576
 
  friend class ::CMatchSyntax;
49577
 
  friend class ::ExtGnu;
 
60934
  friend class ::WinAsm;
 
60935
  friend class ::WinDeclSpecs;
 
60936
  friend class ::WinMemberExplSpec;
 
60937
  friend class ::WinTypeKeywords;
 
60938
  friend class ::WinFriend;
49578
60939
  friend class ::ExtAC;
49579
60940
  friend class ::ExtACBuilderCoupling;
49580
60941
  friend class ::ExtACSyntaxCoupling;
49581
60942
  friend class ::ExtACTree;
49582
60943
  friend class ::ExtACKeywords;
49583
 
  friend class ::WinAsm;
49584
 
  friend class ::WinDeclSpecs;
49585
 
  friend class ::WinMemberExplSpec;
49586
 
  friend class ::WinTypeKeywords;
 
60944
  friend class ::ExtGnu;
49587
60945
  friend class ::PragmaOnceUnitState;
49588
60946
  friend class ::PragmaOnce;
49589
 
  friend class ::CCExprResolve;
49590
 
  friend class ::CExprResolve;
 
60947
  friend class ::CMatchSyntax;
49591
60948
 
49592
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60949
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49593
60950
 
49594
60951
  CTree *sons[3]; // ns, name, members
49595
60952
 
49596
60953
public:
49597
60954
  CT_NamespaceDef (CTree *n, CTree *nm) {
49598
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
60955
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
49599
60956
  }
49600
60957
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
49601
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
60958
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
49602
60959
  }
 
60960
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49603
60961
  static const char *NodeId ();
 
60962
  /** Get the name of the node. Can be compared with NodeId(). */
49604
60963
  const char *NodeName () const { return NodeId (); }
 
60964
  /** Get the number of sons. */
49605
60965
  int Sons () const { return CTree::Sons (sons, 3); }
 
60966
  /** Get the n-th son.
 
60967
   *  \param n The index of the son.
 
60968
   *  \return The n-th son or NULL. */
49606
60969
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
49607
 
  void Members (CTree *m) { sons[2] = m; }
 
60970
  void Members (CTree *m) { AddSon (sons[2], m); }
49608
60971
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
49609
60972
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
49610
60973
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
60974
  /** Replace a son.
 
60975
   *  \param old_son The son to replace.
 
60976
   *  \param new_son The new son. */
49611
60977
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49612
60978
    CTree::ReplaceSon (sons, 3, old_son, new_son);
49613
60979
  }
49614
60980
};
49615
60981
 
49616
60982
 
49617
 
#line 49618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
60983
#line 60984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49618
60984
} // closed Puma
 
60985
class CCExprResolve;
 
60986
class CExprResolve;
49619
60987
class WinIfExists;
49620
60988
class WinImportHandler;
49621
60989
class WinMacros;
49622
 
class CMatchSyntax;
49623
 
class ExtGnu;
 
60990
class WinAsm;
 
60991
class WinDeclSpecs;
 
60992
class WinMemberExplSpec;
 
60993
class WinTypeKeywords;
 
60994
class WinFriend;
49624
60995
class ExtAC;
49625
60996
class ExtACBuilderCoupling;
49626
60997
class ExtACSyntaxCoupling;
49627
60998
class ExtACTree;
49628
60999
class ExtACKeywords;
49629
 
class WinAsm;
49630
 
class WinDeclSpecs;
49631
 
class WinMemberExplSpec;
49632
 
class WinTypeKeywords;
 
61000
class ExtGnu;
49633
61001
class PragmaOnceUnitState;
49634
61002
class PragmaOnce;
49635
 
class CCExprResolve;
49636
 
class CExprResolve;
 
61003
class CMatchSyntax;
49637
61004
namespace Puma {
49638
61005
 
49639
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61006
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49640
61007
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
49641
 
#line 49642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61008
#line 61009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61009
  friend class ::CCExprResolve;
 
61010
  friend class ::CExprResolve;
49642
61011
  friend class ::WinIfExists;
49643
61012
  friend class ::WinImportHandler;
49644
61013
  friend class ::WinMacros;
49645
 
  friend class ::CMatchSyntax;
49646
 
  friend class ::ExtGnu;
 
61014
  friend class ::WinAsm;
 
61015
  friend class ::WinDeclSpecs;
 
61016
  friend class ::WinMemberExplSpec;
 
61017
  friend class ::WinTypeKeywords;
 
61018
  friend class ::WinFriend;
49647
61019
  friend class ::ExtAC;
49648
61020
  friend class ::ExtACBuilderCoupling;
49649
61021
  friend class ::ExtACSyntaxCoupling;
49650
61022
  friend class ::ExtACTree;
49651
61023
  friend class ::ExtACKeywords;
49652
 
  friend class ::WinAsm;
49653
 
  friend class ::WinDeclSpecs;
49654
 
  friend class ::WinMemberExplSpec;
49655
 
  friend class ::WinTypeKeywords;
 
61024
  friend class ::ExtGnu;
49656
61025
  friend class ::PragmaOnceUnitState;
49657
61026
  friend class ::PragmaOnce;
49658
 
  friend class ::CCExprResolve;
49659
 
  friend class ::CExprResolve;
 
61027
  friend class ::CMatchSyntax;
49660
61028
 
49661
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61029
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49662
61030
 
49663
61031
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
49664
61032
 
49665
61033
public:
49666
61034
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
49667
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
61035
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
61036
    AddSon (sons[3], nm); AddSon (sons[4], s); 
49668
61037
  }
 
61038
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49669
61039
  static const char *NodeId ();
 
61040
  /** Get the name of the node. Can be compared with NodeId(). */
49670
61041
  const char *NodeName () const { return NodeId (); }
 
61042
  /** Get the number of sons. */
49671
61043
  int Sons () const { return 5; }
 
61044
  /** Get the n-th son.
 
61045
   *  \param n The index of the son.
 
61046
   *  \return The n-th son or NULL. */
49672
61047
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
49673
61048
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
49674
61049
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
49675
61050
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61051
  /** Replace a son.
 
61052
   *  \param old_son The son to replace.
 
61053
   *  \param new_son The new son. */
49676
61054
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49677
61055
    CTree::ReplaceSon (sons, 5, old_son, new_son);
49678
61056
  }
49679
61057
};
49680
61058
 
49681
61059
 
49682
 
#line 49683 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61060
#line 61061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49683
61061
} // closed Puma
 
61062
class CCExprResolve;
 
61063
class CExprResolve;
49684
61064
class WinIfExists;
49685
61065
class WinImportHandler;
49686
61066
class WinMacros;
49687
 
class CMatchSyntax;
49688
 
class ExtGnu;
 
61067
class WinAsm;
 
61068
class WinDeclSpecs;
 
61069
class WinMemberExplSpec;
 
61070
class WinTypeKeywords;
 
61071
class WinFriend;
49689
61072
class ExtAC;
49690
61073
class ExtACBuilderCoupling;
49691
61074
class ExtACSyntaxCoupling;
49692
61075
class ExtACTree;
49693
61076
class ExtACKeywords;
49694
 
class WinAsm;
49695
 
class WinDeclSpecs;
49696
 
class WinMemberExplSpec;
49697
 
class WinTypeKeywords;
 
61077
class ExtGnu;
49698
61078
class PragmaOnceUnitState;
49699
61079
class PragmaOnce;
49700
 
class CCExprResolve;
49701
 
class CExprResolve;
 
61080
class CMatchSyntax;
49702
61081
namespace Puma {
49703
61082
 
49704
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61083
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49705
61084
class CT_UsingDirective : public CT_Decl {
49706
 
#line 49707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61085
#line 61086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61086
  friend class ::CCExprResolve;
 
61087
  friend class ::CExprResolve;
49707
61088
  friend class ::WinIfExists;
49708
61089
  friend class ::WinImportHandler;
49709
61090
  friend class ::WinMacros;
49710
 
  friend class ::CMatchSyntax;
49711
 
  friend class ::ExtGnu;
 
61091
  friend class ::WinAsm;
 
61092
  friend class ::WinDeclSpecs;
 
61093
  friend class ::WinMemberExplSpec;
 
61094
  friend class ::WinTypeKeywords;
 
61095
  friend class ::WinFriend;
49712
61096
  friend class ::ExtAC;
49713
61097
  friend class ::ExtACBuilderCoupling;
49714
61098
  friend class ::ExtACSyntaxCoupling;
49715
61099
  friend class ::ExtACTree;
49716
61100
  friend class ::ExtACKeywords;
49717
 
  friend class ::WinAsm;
49718
 
  friend class ::WinDeclSpecs;
49719
 
  friend class ::WinMemberExplSpec;
49720
 
  friend class ::WinTypeKeywords;
 
61101
  friend class ::ExtGnu;
49721
61102
  friend class ::PragmaOnceUnitState;
49722
61103
  friend class ::PragmaOnce;
49723
 
  friend class ::CCExprResolve;
49724
 
  friend class ::CExprResolve;
 
61104
  friend class ::CMatchSyntax;
49725
61105
 
49726
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61106
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49727
61107
 
49728
61108
  CTree *sons[4]; // using, ns, name, semi_colon
49729
61109
 
49730
61110
public:
49731
61111
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
49732
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
61112
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
61113
    AddSon (sons[3], s); 
49733
61114
  }
 
61115
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49734
61116
  static const char *NodeId ();
 
61117
  /** Get the name of the node. Can be compared with NodeId(). */
49735
61118
  const char *NodeName () const { return NodeId (); }
 
61119
  /** Get the number of sons. */
49736
61120
  int Sons () const { return 4; }
 
61121
  /** Get the n-th son.
 
61122
   *  \param n The index of the son.
 
61123
   *  \return The n-th son or NULL. */
49737
61124
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
49738
61125
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
61126
  /** Replace a son.
 
61127
   *  \param old_son The son to replace.
 
61128
   *  \param new_son The new son. */
49739
61129
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49740
61130
    CTree::ReplaceSon (sons, 4, old_son, new_son);
49741
61131
  }
49748
61138
/*****************************************************************************/
49749
61139
 
49750
61140
 
49751
 
#line 49752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61141
#line 61142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49752
61142
} // closed Puma
 
61143
class CCExprResolve;
 
61144
class CExprResolve;
49753
61145
class WinIfExists;
49754
61146
class WinImportHandler;
49755
61147
class WinMacros;
49756
 
class CMatchSyntax;
49757
 
class ExtGnu;
 
61148
class WinAsm;
 
61149
class WinDeclSpecs;
 
61150
class WinMemberExplSpec;
 
61151
class WinTypeKeywords;
 
61152
class WinFriend;
49758
61153
class ExtAC;
49759
61154
class ExtACBuilderCoupling;
49760
61155
class ExtACSyntaxCoupling;
49761
61156
class ExtACTree;
49762
61157
class ExtACKeywords;
49763
 
class WinAsm;
49764
 
class WinDeclSpecs;
49765
 
class WinMemberExplSpec;
49766
 
class WinTypeKeywords;
 
61158
class ExtGnu;
49767
61159
class PragmaOnceUnitState;
49768
61160
class PragmaOnce;
49769
 
class CCExprResolve;
49770
 
class CExprResolve;
 
61161
class CMatchSyntax;
49771
61162
namespace Puma {
49772
61163
 
49773
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61164
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49774
61165
class CT_Declarator : public CTree {
49775
 
#line 49776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61166
#line 61167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61167
  friend class ::CCExprResolve;
 
61168
  friend class ::CExprResolve;
49776
61169
  friend class ::WinIfExists;
49777
61170
  friend class ::WinImportHandler;
49778
61171
  friend class ::WinMacros;
49779
 
  friend class ::CMatchSyntax;
49780
 
  friend class ::ExtGnu;
 
61172
  friend class ::WinAsm;
 
61173
  friend class ::WinDeclSpecs;
 
61174
  friend class ::WinMemberExplSpec;
 
61175
  friend class ::WinTypeKeywords;
 
61176
  friend class ::WinFriend;
49781
61177
  friend class ::ExtAC;
49782
61178
  friend class ::ExtACBuilderCoupling;
49783
61179
  friend class ::ExtACSyntaxCoupling;
49784
61180
  friend class ::ExtACTree;
49785
61181
  friend class ::ExtACKeywords;
49786
 
  friend class ::WinAsm;
49787
 
  friend class ::WinDeclSpecs;
49788
 
  friend class ::WinMemberExplSpec;
49789
 
  friend class ::WinTypeKeywords;
 
61182
  friend class ::ExtGnu;
49790
61183
  friend class ::PragmaOnceUnitState;
49791
61184
  friend class ::PragmaOnce;
49792
 
  friend class ::CCExprResolve;
49793
 
  friend class ::CExprResolve;
 
61185
  friend class ::CMatchSyntax;
49794
61186
 
49795
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61187
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49796
61188
 
49797
61189
protected:
49798
61190
  CT_Declarator () {}
49807
61199
};
49808
61200
 
49809
61201
 
49810
 
#line 49811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61202
#line 61203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49811
61203
} // closed Puma
 
61204
class CCExprResolve;
 
61205
class CExprResolve;
49812
61206
class WinIfExists;
49813
61207
class WinImportHandler;
49814
61208
class WinMacros;
49815
 
class CMatchSyntax;
49816
 
class ExtGnu;
 
61209
class WinAsm;
 
61210
class WinDeclSpecs;
 
61211
class WinMemberExplSpec;
 
61212
class WinTypeKeywords;
 
61213
class WinFriend;
49817
61214
class ExtAC;
49818
61215
class ExtACBuilderCoupling;
49819
61216
class ExtACSyntaxCoupling;
49820
61217
class ExtACTree;
49821
61218
class ExtACKeywords;
49822
 
class WinAsm;
49823
 
class WinDeclSpecs;
49824
 
class WinMemberExplSpec;
49825
 
class WinTypeKeywords;
 
61219
class ExtGnu;
49826
61220
class PragmaOnceUnitState;
49827
61221
class PragmaOnce;
49828
 
class CCExprResolve;
49829
 
class CExprResolve;
 
61222
class CMatchSyntax;
49830
61223
namespace Puma {
49831
61224
 
49832
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61225
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49833
61226
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
49834
 
#line 49835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61227
#line 61228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61228
  friend class ::CCExprResolve;
 
61229
  friend class ::CExprResolve;
49835
61230
  friend class ::WinIfExists;
49836
61231
  friend class ::WinImportHandler;
49837
61232
  friend class ::WinMacros;
49838
 
  friend class ::CMatchSyntax;
49839
 
  friend class ::ExtGnu;
 
61233
  friend class ::WinAsm;
 
61234
  friend class ::WinDeclSpecs;
 
61235
  friend class ::WinMemberExplSpec;
 
61236
  friend class ::WinTypeKeywords;
 
61237
  friend class ::WinFriend;
49840
61238
  friend class ::ExtAC;
49841
61239
  friend class ::ExtACBuilderCoupling;
49842
61240
  friend class ::ExtACSyntaxCoupling;
49843
61241
  friend class ::ExtACTree;
49844
61242
  friend class ::ExtACKeywords;
49845
 
  friend class ::WinAsm;
49846
 
  friend class ::WinDeclSpecs;
49847
 
  friend class ::WinMemberExplSpec;
49848
 
  friend class ::WinTypeKeywords;
 
61243
  friend class ::ExtGnu;
49849
61244
  friend class ::PragmaOnceUnitState;
49850
61245
  friend class ::PragmaOnce;
49851
 
  friend class ::CCExprResolve;
49852
 
  friend class ::CExprResolve;
49853
 
 
49854
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49855
 
 
49856
 
  CTree *sons[2]; // declarator, init
 
61246
  friend class ::CMatchSyntax;
 
61247
 
 
61248
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61249
 
 
61250
  CTree *sons[3]; // declarator, ext, init
49857
61251
  CTree *obj_decl;
49858
61252
 
49859
61253
public:
49860
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
49861
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
61254
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
61255
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
61256
    AddSon (obj_decl, 0); 
49862
61257
  }
 
61258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49863
61259
  static const char *NodeId ();
 
61260
  /** Get the name of the node. Can be compared with NodeId(). */
49864
61261
  const char *NodeName () const { return NodeId (); }
49865
 
  int Sons () const { return CTree::Sons (sons, 2); }
49866
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
61262
  /** Get the number of sons. */
 
61263
  int Sons () const { return CTree::Sons (sons, 3); }
 
61264
  /** Get the n-th son.
 
61265
   *  \param n The index of the son.
 
61266
   *  \return The n-th son or NULL. */
 
61267
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
49867
61268
  CTree *Declarator () const { return sons[0]; }
49868
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
61269
  CTree *Extension () const { return sons[1]; }
 
61270
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
49869
61271
  CSemObject *SemObject () const { return (CSemObject*)this; }
49870
61272
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
49871
 
  void Initializer (CTree* i) { sons[1] = i; }
49872
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
61273
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
61274
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
61275
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
61276
  /** Replace a son.
 
61277
   *  \param old_son The son to replace.
 
61278
   *  \param new_son The new son. */
49873
61279
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49874
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
61280
    CTree::ReplaceSon (sons, 3, old_son, new_son);
49875
61281
  }
49876
61282
};
49877
61283
 
49878
61284
 
49879
 
#line 49880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61285
#line 61286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49880
61286
} // closed Puma
 
61287
class CCExprResolve;
 
61288
class CExprResolve;
49881
61289
class WinIfExists;
49882
61290
class WinImportHandler;
49883
61291
class WinMacros;
49884
 
class CMatchSyntax;
49885
 
class ExtGnu;
 
61292
class WinAsm;
 
61293
class WinDeclSpecs;
 
61294
class WinMemberExplSpec;
 
61295
class WinTypeKeywords;
 
61296
class WinFriend;
49886
61297
class ExtAC;
49887
61298
class ExtACBuilderCoupling;
49888
61299
class ExtACSyntaxCoupling;
49889
61300
class ExtACTree;
49890
61301
class ExtACKeywords;
49891
 
class WinAsm;
49892
 
class WinDeclSpecs;
49893
 
class WinMemberExplSpec;
49894
 
class WinTypeKeywords;
 
61302
class ExtGnu;
49895
61303
class PragmaOnceUnitState;
49896
61304
class PragmaOnce;
49897
 
class CCExprResolve;
49898
 
class CExprResolve;
 
61305
class CMatchSyntax;
49899
61306
namespace Puma {
49900
61307
 
49901
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61308
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49902
61309
class CT_BracedDeclarator : public CT_Declarator {
49903
 
#line 49904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61310
#line 61311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61311
  friend class ::CCExprResolve;
 
61312
  friend class ::CExprResolve;
49904
61313
  friend class ::WinIfExists;
49905
61314
  friend class ::WinImportHandler;
49906
61315
  friend class ::WinMacros;
49907
 
  friend class ::CMatchSyntax;
49908
 
  friend class ::ExtGnu;
 
61316
  friend class ::WinAsm;
 
61317
  friend class ::WinDeclSpecs;
 
61318
  friend class ::WinMemberExplSpec;
 
61319
  friend class ::WinTypeKeywords;
 
61320
  friend class ::WinFriend;
49909
61321
  friend class ::ExtAC;
49910
61322
  friend class ::ExtACBuilderCoupling;
49911
61323
  friend class ::ExtACSyntaxCoupling;
49912
61324
  friend class ::ExtACTree;
49913
61325
  friend class ::ExtACKeywords;
49914
 
  friend class ::WinAsm;
49915
 
  friend class ::WinDeclSpecs;
49916
 
  friend class ::WinMemberExplSpec;
49917
 
  friend class ::WinTypeKeywords;
 
61326
  friend class ::ExtGnu;
49918
61327
  friend class ::PragmaOnceUnitState;
49919
61328
  friend class ::PragmaOnce;
49920
 
  friend class ::CCExprResolve;
49921
 
  friend class ::CExprResolve;
 
61329
  friend class ::CMatchSyntax;
49922
61330
 
49923
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61331
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49924
61332
 
49925
61333
  CTree *sons[4]; // open, win_specs, declarator, close
49926
61334
 
49927
61335
public:
49928
61336
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
49929
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
61337
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
61338
    AddSon (sons[2], d); AddSon (sons[3], c); 
49930
61339
  }
49931
61340
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
49932
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
61341
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
61342
    AddSon (sons[2], d); AddSon (sons[3], c); 
49933
61343
  }
 
61344
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49934
61345
  static const char *NodeId ();
 
61346
  /** Get the name of the node. Can be compared with NodeId(). */
49935
61347
  const char *NodeName () const { return NodeId (); }
 
61348
  /** Get the number of sons. */
49936
61349
  int Sons () const { return CTree::Sons (sons, 4); }
 
61350
  /** Get the n-th son.
 
61351
   *  \param n The index of the son.
 
61352
   *  \return The n-th son or NULL. */
49937
61353
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
49938
61354
  CTree *Declarator () const { return sons[2]; }
 
61355
  /** Replace a son.
 
61356
   *  \param old_son The son to replace.
 
61357
   *  \param new_son The new son. */
49939
61358
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
49940
61359
    CTree::ReplaceSon (sons, 4, old_son, new_son);
49941
61360
  }
49942
61361
};
49943
61362
 
49944
61363
 
49945
 
#line 49946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61364
#line 61365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
49946
61365
} // closed Puma
 
61366
class CCExprResolve;
 
61367
class CExprResolve;
49947
61368
class WinIfExists;
49948
61369
class WinImportHandler;
49949
61370
class WinMacros;
49950
 
class CMatchSyntax;
49951
 
class ExtGnu;
 
61371
class WinAsm;
 
61372
class WinDeclSpecs;
 
61373
class WinMemberExplSpec;
 
61374
class WinTypeKeywords;
 
61375
class WinFriend;
49952
61376
class ExtAC;
49953
61377
class ExtACBuilderCoupling;
49954
61378
class ExtACSyntaxCoupling;
49955
61379
class ExtACTree;
49956
61380
class ExtACKeywords;
49957
 
class WinAsm;
49958
 
class WinDeclSpecs;
49959
 
class WinMemberExplSpec;
49960
 
class WinTypeKeywords;
 
61381
class ExtGnu;
49961
61382
class PragmaOnceUnitState;
49962
61383
class PragmaOnce;
49963
 
class CCExprResolve;
49964
 
class CExprResolve;
 
61384
class CMatchSyntax;
49965
61385
namespace Puma {
49966
61386
 
49967
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61387
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49968
61388
class CT_ArrayDelimiter : public CTree {
49969
 
#line 49970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61389
#line 61390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61390
  friend class ::CCExprResolve;
 
61391
  friend class ::CExprResolve;
49970
61392
  friend class ::WinIfExists;
49971
61393
  friend class ::WinImportHandler;
49972
61394
  friend class ::WinMacros;
49973
 
  friend class ::CMatchSyntax;
49974
 
  friend class ::ExtGnu;
 
61395
  friend class ::WinAsm;
 
61396
  friend class ::WinDeclSpecs;
 
61397
  friend class ::WinMemberExplSpec;
 
61398
  friend class ::WinTypeKeywords;
 
61399
  friend class ::WinFriend;
49975
61400
  friend class ::ExtAC;
49976
61401
  friend class ::ExtACBuilderCoupling;
49977
61402
  friend class ::ExtACSyntaxCoupling;
49978
61403
  friend class ::ExtACTree;
49979
61404
  friend class ::ExtACKeywords;
49980
 
  friend class ::WinAsm;
49981
 
  friend class ::WinDeclSpecs;
49982
 
  friend class ::WinMemberExplSpec;
49983
 
  friend class ::WinTypeKeywords;
 
61405
  friend class ::ExtGnu;
49984
61406
  friend class ::PragmaOnceUnitState;
49985
61407
  friend class ::PragmaOnce;
49986
 
  friend class ::CCExprResolve;
49987
 
  friend class ::CExprResolve;
 
61408
  friend class ::CMatchSyntax;
49988
61409
 
49989
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61410
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49990
61411
 
49991
61412
  CTree *sons[4]; // star, static, quals, expr
49992
61413
  bool pos0;
49993
61414
 
49994
61415
public:
49995
61416
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
49996
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
61417
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
61418
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
49997
61419
  }
 
61420
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49998
61421
  static const char *NodeId ();
 
61422
  /** Get the name of the node. Can be compared with NodeId(). */
49999
61423
  const char *NodeName () const { return NodeId (); }
 
61424
  /** Get the number of sons. */
50000
61425
  int Sons () const { return CTree::Sons (sons, 4); }
 
61426
  /** Get the n-th son.
 
61427
   *  \param n The index of the son.
 
61428
   *  \return The n-th son or NULL. */
50001
61429
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50002
61430
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
50003
61431
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
50004
61432
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
50005
61433
  CTree *Expr () const { return sons[3]; }
 
61434
  /** Replace a son.
 
61435
   *  \param old_son The son to replace.
 
61436
   *  \param new_son The new son. */
50006
61437
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50007
61438
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50008
61439
  }
50009
61440
};
50010
61441
 
50011
61442
 
50012
 
#line 50013 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61443
#line 61444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50013
61444
} // closed Puma
 
61445
class CCExprResolve;
 
61446
class CExprResolve;
50014
61447
class WinIfExists;
50015
61448
class WinImportHandler;
50016
61449
class WinMacros;
50017
 
class CMatchSyntax;
50018
 
class ExtGnu;
 
61450
class WinAsm;
 
61451
class WinDeclSpecs;
 
61452
class WinMemberExplSpec;
 
61453
class WinTypeKeywords;
 
61454
class WinFriend;
50019
61455
class ExtAC;
50020
61456
class ExtACBuilderCoupling;
50021
61457
class ExtACSyntaxCoupling;
50022
61458
class ExtACTree;
50023
61459
class ExtACKeywords;
50024
 
class WinAsm;
50025
 
class WinDeclSpecs;
50026
 
class WinMemberExplSpec;
50027
 
class WinTypeKeywords;
 
61460
class ExtGnu;
50028
61461
class PragmaOnceUnitState;
50029
61462
class PragmaOnce;
50030
 
class CCExprResolve;
50031
 
class CExprResolve;
 
61463
class CMatchSyntax;
50032
61464
namespace Puma {
50033
61465
 
50034
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61466
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50035
61467
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
50036
 
#line 50037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61468
#line 61469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61469
  friend class ::CCExprResolve;
 
61470
  friend class ::CExprResolve;
50037
61471
  friend class ::WinIfExists;
50038
61472
  friend class ::WinImportHandler;
50039
61473
  friend class ::WinMacros;
50040
 
  friend class ::CMatchSyntax;
50041
 
  friend class ::ExtGnu;
 
61474
  friend class ::WinAsm;
 
61475
  friend class ::WinDeclSpecs;
 
61476
  friend class ::WinMemberExplSpec;
 
61477
  friend class ::WinTypeKeywords;
 
61478
  friend class ::WinFriend;
50042
61479
  friend class ::ExtAC;
50043
61480
  friend class ::ExtACBuilderCoupling;
50044
61481
  friend class ::ExtACSyntaxCoupling;
50045
61482
  friend class ::ExtACTree;
50046
61483
  friend class ::ExtACKeywords;
50047
 
  friend class ::WinAsm;
50048
 
  friend class ::WinDeclSpecs;
50049
 
  friend class ::WinMemberExplSpec;
50050
 
  friend class ::WinTypeKeywords;
 
61484
  friend class ::ExtGnu;
50051
61485
  friend class ::PragmaOnceUnitState;
50052
61486
  friend class ::PragmaOnce;
50053
 
  friend class ::CCExprResolve;
50054
 
  friend class ::CExprResolve;
 
61487
  friend class ::CMatchSyntax;
50055
61488
 
50056
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61489
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50057
61490
 
50058
61491
  CTree *sons[4]; // declarator, open, delim, close
50059
61492
 
50060
61493
public:
50061
61494
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
50062
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
61495
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
61496
    AddSon (sons[2], ad); AddSon (sons[3], c); 
50063
61497
  }
 
61498
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50064
61499
  static const char *NodeId ();
 
61500
  /** Get the name of the node. Can be compared with NodeId(). */
50065
61501
  const char *NodeName () const { return NodeId (); }
 
61502
  /** Get the number of sons. */
50066
61503
  int Sons () const { return 4; }
 
61504
  /** Get the n-th son.
 
61505
   *  \param n The index of the son.
 
61506
   *  \return The n-th son or NULL. */
50067
61507
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50068
61508
  CTree *Declarator () const { return sons[0]; }
50069
61509
  CT_ArrayDelimiter *Delimiter () const 
50070
61510
   { return (CT_ArrayDelimiter*)sons[2]; }
 
61511
  /** Replace a son.
 
61512
   *  \param old_son The son to replace.
 
61513
   *  \param new_son The new son. */
50071
61514
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50072
61515
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50073
61516
  }
50077
61520
};
50078
61521
 
50079
61522
 
50080
 
#line 50081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61523
#line 61524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50081
61524
} // closed Puma
 
61525
class CCExprResolve;
 
61526
class CExprResolve;
50082
61527
class WinIfExists;
50083
61528
class WinImportHandler;
50084
61529
class WinMacros;
50085
 
class CMatchSyntax;
50086
 
class ExtGnu;
 
61530
class WinAsm;
 
61531
class WinDeclSpecs;
 
61532
class WinMemberExplSpec;
 
61533
class WinTypeKeywords;
 
61534
class WinFriend;
50087
61535
class ExtAC;
50088
61536
class ExtACBuilderCoupling;
50089
61537
class ExtACSyntaxCoupling;
50090
61538
class ExtACTree;
50091
61539
class ExtACKeywords;
50092
 
class WinAsm;
50093
 
class WinDeclSpecs;
50094
 
class WinMemberExplSpec;
50095
 
class WinTypeKeywords;
 
61540
class ExtGnu;
50096
61541
class PragmaOnceUnitState;
50097
61542
class PragmaOnce;
50098
 
class CCExprResolve;
50099
 
class CExprResolve;
 
61543
class CMatchSyntax;
50100
61544
namespace Puma {
50101
61545
 
50102
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61546
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50103
61547
class CT_FctDeclarator : public CT_Declarator {
50104
 
#line 50105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61548
#line 61549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61549
  friend class ::CCExprResolve;
 
61550
  friend class ::CExprResolve;
50105
61551
  friend class ::WinIfExists;
50106
61552
  friend class ::WinImportHandler;
50107
61553
  friend class ::WinMacros;
50108
 
  friend class ::CMatchSyntax;
50109
 
  friend class ::ExtGnu;
 
61554
  friend class ::WinAsm;
 
61555
  friend class ::WinDeclSpecs;
 
61556
  friend class ::WinMemberExplSpec;
 
61557
  friend class ::WinTypeKeywords;
 
61558
  friend class ::WinFriend;
50110
61559
  friend class ::ExtAC;
50111
61560
  friend class ::ExtACBuilderCoupling;
50112
61561
  friend class ::ExtACSyntaxCoupling;
50113
61562
  friend class ::ExtACTree;
50114
61563
  friend class ::ExtACKeywords;
50115
 
  friend class ::WinAsm;
50116
 
  friend class ::WinDeclSpecs;
50117
 
  friend class ::WinMemberExplSpec;
50118
 
  friend class ::WinTypeKeywords;
 
61564
  friend class ::ExtGnu;
50119
61565
  friend class ::PragmaOnceUnitState;
50120
61566
  friend class ::PragmaOnce;
50121
 
  friend class ::CCExprResolve;
50122
 
  friend class ::CExprResolve;
 
61567
  friend class ::CMatchSyntax;
50123
61568
 
50124
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61569
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50125
61570
 
50126
61571
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
50127
61572
 
50128
61573
public:
50129
61574
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
50130
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
61575
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
61576
    AddSon (sons[2], cv); AddSon (sons[3], es); 
50131
61577
  }
 
61578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50132
61579
  static const char *NodeId ();
 
61580
  /** Get the name of the node. Can be compared with NodeId(). */
50133
61581
  const char *NodeName () const { return NodeId (); }
 
61582
  /** Get the number of sons. */
50134
61583
  int Sons () const { return CTree::Sons (sons, 4); }
 
61584
  /** Get the n-th son.
 
61585
   *  \param n The index of the son.
 
61586
   *  \return The n-th son or NULL. */
50135
61587
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50136
61588
  CTree *Declarator () const { return sons[0]; }
50137
61589
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
50138
61590
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
50139
61591
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
61592
  /** Replace a son.
 
61593
   *  \param old_son The son to replace.
 
61594
   *  \param new_son The new son. */
50140
61595
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50141
61596
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50142
61597
  }
50143
61598
};
50144
61599
 
50145
61600
 
50146
 
#line 50147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61601
#line 61602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50147
61602
} // closed Puma
 
61603
class CCExprResolve;
 
61604
class CExprResolve;
50148
61605
class WinIfExists;
50149
61606
class WinImportHandler;
50150
61607
class WinMacros;
50151
 
class CMatchSyntax;
50152
 
class ExtGnu;
 
61608
class WinAsm;
 
61609
class WinDeclSpecs;
 
61610
class WinMemberExplSpec;
 
61611
class WinTypeKeywords;
 
61612
class WinFriend;
50153
61613
class ExtAC;
50154
61614
class ExtACBuilderCoupling;
50155
61615
class ExtACSyntaxCoupling;
50156
61616
class ExtACTree;
50157
61617
class ExtACKeywords;
50158
 
class WinAsm;
50159
 
class WinDeclSpecs;
50160
 
class WinMemberExplSpec;
50161
 
class WinTypeKeywords;
 
61618
class ExtGnu;
50162
61619
class PragmaOnceUnitState;
50163
61620
class PragmaOnce;
50164
 
class CCExprResolve;
50165
 
class CExprResolve;
 
61621
class CMatchSyntax;
50166
61622
namespace Puma {
50167
61623
 
50168
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61624
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50169
61625
class CT_RefDeclarator : public CT_Declarator {
50170
 
#line 50171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61626
#line 61627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61627
  friend class ::CCExprResolve;
 
61628
  friend class ::CExprResolve;
50171
61629
  friend class ::WinIfExists;
50172
61630
  friend class ::WinImportHandler;
50173
61631
  friend class ::WinMacros;
50174
 
  friend class ::CMatchSyntax;
50175
 
  friend class ::ExtGnu;
 
61632
  friend class ::WinAsm;
 
61633
  friend class ::WinDeclSpecs;
 
61634
  friend class ::WinMemberExplSpec;
 
61635
  friend class ::WinTypeKeywords;
 
61636
  friend class ::WinFriend;
50176
61637
  friend class ::ExtAC;
50177
61638
  friend class ::ExtACBuilderCoupling;
50178
61639
  friend class ::ExtACSyntaxCoupling;
50179
61640
  friend class ::ExtACTree;
50180
61641
  friend class ::ExtACKeywords;
50181
 
  friend class ::WinAsm;
50182
 
  friend class ::WinDeclSpecs;
50183
 
  friend class ::WinMemberExplSpec;
50184
 
  friend class ::WinTypeKeywords;
 
61642
  friend class ::ExtGnu;
50185
61643
  friend class ::PragmaOnceUnitState;
50186
61644
  friend class ::PragmaOnce;
50187
 
  friend class ::CCExprResolve;
50188
 
  friend class ::CExprResolve;
 
61645
  friend class ::CMatchSyntax;
50189
61646
 
50190
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61647
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50191
61648
 
50192
61649
  CTree *sons[2]; // ref, declarator
50193
61650
 
50194
61651
public:
50195
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
61652
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
61653
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50196
61654
  static const char *NodeId ();
 
61655
  /** Get the name of the node. Can be compared with NodeId(). */
50197
61656
  const char *NodeName () const { return NodeId (); }
 
61657
  /** Get the number of sons. */
50198
61658
  int Sons () const { return 2; }
 
61659
  /** Get the n-th son.
 
61660
   *  \param n The index of the son.
 
61661
   *  \return The n-th son or NULL. */
50199
61662
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
50200
61663
  CTree *Declarator () const { return sons[1]; }
 
61664
  /** Replace a son.
 
61665
   *  \param old_son The son to replace.
 
61666
   *  \param new_son The new son. */
50201
61667
  void ReplaceSon (CTree *old_son, CTree *new_son) {
50202
61668
    CTree::ReplaceSon (sons, 2, old_son, new_son);
50203
61669
  }
50204
61670
};
50205
61671
 
50206
61672
 
50207
 
#line 50208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61673
#line 61674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50208
61674
} // closed Puma
 
61675
class CCExprResolve;
 
61676
class CExprResolve;
50209
61677
class WinIfExists;
50210
61678
class WinImportHandler;
50211
61679
class WinMacros;
50212
 
class CMatchSyntax;
50213
 
class ExtGnu;
 
61680
class WinAsm;
 
61681
class WinDeclSpecs;
 
61682
class WinMemberExplSpec;
 
61683
class WinTypeKeywords;
 
61684
class WinFriend;
50214
61685
class ExtAC;
50215
61686
class ExtACBuilderCoupling;
50216
61687
class ExtACSyntaxCoupling;
50217
61688
class ExtACTree;
50218
61689
class ExtACKeywords;
50219
 
class WinAsm;
50220
 
class WinDeclSpecs;
50221
 
class WinMemberExplSpec;
50222
 
class WinTypeKeywords;
 
61690
class ExtGnu;
50223
61691
class PragmaOnceUnitState;
50224
61692
class PragmaOnce;
50225
 
class CCExprResolve;
50226
 
class CExprResolve;
 
61693
class CMatchSyntax;
50227
61694
namespace Puma {
50228
61695
 
50229
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61696
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50230
61697
class CT_PtrDeclarator : public CT_Declarator {
50231
 
#line 50232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61698
#line 61699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61699
  friend class ::CCExprResolve;
 
61700
  friend class ::CExprResolve;
50232
61701
  friend class ::WinIfExists;
50233
61702
  friend class ::WinImportHandler;
50234
61703
  friend class ::WinMacros;
50235
 
  friend class ::CMatchSyntax;
50236
 
  friend class ::ExtGnu;
 
61704
  friend class ::WinAsm;
 
61705
  friend class ::WinDeclSpecs;
 
61706
  friend class ::WinMemberExplSpec;
 
61707
  friend class ::WinTypeKeywords;
 
61708
  friend class ::WinFriend;
50237
61709
  friend class ::ExtAC;
50238
61710
  friend class ::ExtACBuilderCoupling;
50239
61711
  friend class ::ExtACSyntaxCoupling;
50240
61712
  friend class ::ExtACTree;
50241
61713
  friend class ::ExtACKeywords;
50242
 
  friend class ::WinAsm;
50243
 
  friend class ::WinDeclSpecs;
50244
 
  friend class ::WinMemberExplSpec;
50245
 
  friend class ::WinTypeKeywords;
 
61714
  friend class ::ExtGnu;
50246
61715
  friend class ::PragmaOnceUnitState;
50247
61716
  friend class ::PragmaOnce;
50248
 
  friend class ::CCExprResolve;
50249
 
  friend class ::CExprResolve;
 
61717
  friend class ::CMatchSyntax;
50250
61718
 
50251
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61719
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50252
61720
 
50253
61721
  CTree *sons[3]; // ptr, cv_quals, declarator
50254
61722
 
50255
61723
public:
50256
61724
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
50257
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
61725
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
50258
61726
  }
 
61727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50259
61728
  static const char *NodeId ();
 
61729
  /** Get the name of the node. Can be compared with NodeId(). */
50260
61730
  const char *NodeName () const { return NodeId (); }
 
61731
  /** Get the number of sons. */
50261
61732
  int Sons () const { return CTree::Sons (sons, 3); }
 
61733
  /** Get the n-th son.
 
61734
   *  \param n The index of the son.
 
61735
   *  \return The n-th son or NULL. */
50262
61736
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50263
61737
  CTree *Declarator () const { return sons[2]; }
50264
61738
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
61739
  /** Replace a son.
 
61740
   *  \param old_son The son to replace.
 
61741
   *  \param new_son The new son. */
50265
61742
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50266
61743
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50267
61744
  }
50268
61745
};
50269
61746
 
50270
61747
 
50271
 
#line 50272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61748
#line 61749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50272
61749
} // closed Puma
 
61750
class CCExprResolve;
 
61751
class CExprResolve;
50273
61752
class WinIfExists;
50274
61753
class WinImportHandler;
50275
61754
class WinMacros;
50276
 
class CMatchSyntax;
50277
 
class ExtGnu;
 
61755
class WinAsm;
 
61756
class WinDeclSpecs;
 
61757
class WinMemberExplSpec;
 
61758
class WinTypeKeywords;
 
61759
class WinFriend;
50278
61760
class ExtAC;
50279
61761
class ExtACBuilderCoupling;
50280
61762
class ExtACSyntaxCoupling;
50281
61763
class ExtACTree;
50282
61764
class ExtACKeywords;
50283
 
class WinAsm;
50284
 
class WinDeclSpecs;
50285
 
class WinMemberExplSpec;
50286
 
class WinTypeKeywords;
 
61765
class ExtGnu;
50287
61766
class PragmaOnceUnitState;
50288
61767
class PragmaOnce;
50289
 
class CCExprResolve;
50290
 
class CExprResolve;
 
61768
class CMatchSyntax;
50291
61769
namespace Puma {
50292
61770
 
50293
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61771
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50294
61772
class CT_MembPtrDeclarator : public CT_Declarator {
50295
 
#line 50296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61773
#line 61774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61774
  friend class ::CCExprResolve;
 
61775
  friend class ::CExprResolve;
50296
61776
  friend class ::WinIfExists;
50297
61777
  friend class ::WinImportHandler;
50298
61778
  friend class ::WinMacros;
50299
 
  friend class ::CMatchSyntax;
50300
 
  friend class ::ExtGnu;
 
61779
  friend class ::WinAsm;
 
61780
  friend class ::WinDeclSpecs;
 
61781
  friend class ::WinMemberExplSpec;
 
61782
  friend class ::WinTypeKeywords;
 
61783
  friend class ::WinFriend;
50301
61784
  friend class ::ExtAC;
50302
61785
  friend class ::ExtACBuilderCoupling;
50303
61786
  friend class ::ExtACSyntaxCoupling;
50304
61787
  friend class ::ExtACTree;
50305
61788
  friend class ::ExtACKeywords;
50306
 
  friend class ::WinAsm;
50307
 
  friend class ::WinDeclSpecs;
50308
 
  friend class ::WinMemberExplSpec;
50309
 
  friend class ::WinTypeKeywords;
 
61789
  friend class ::ExtGnu;
50310
61790
  friend class ::PragmaOnceUnitState;
50311
61791
  friend class ::PragmaOnce;
50312
 
  friend class ::CCExprResolve;
50313
 
  friend class ::CExprResolve;
 
61792
  friend class ::CMatchSyntax;
50314
61793
 
50315
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61794
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50316
61795
 
50317
61796
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
50318
61797
 
50319
61798
public:
50320
61799
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
50321
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
61800
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
61801
    AddSon (sons[3], q); AddSon (sons[4], d); 
50322
61802
  }
 
61803
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50323
61804
  static const char *NodeId ();
 
61805
  /** Get the name of the node. Can be compared with NodeId(). */
50324
61806
  const char *NodeName () const { return NodeId (); }
 
61807
  /** Get the number of sons. */
50325
61808
  int Sons () const { return CTree::Sons (sons, 5); }
 
61809
  /** Get the n-th son.
 
61810
   *  \param n The index of the son.
 
61811
   *  \return The n-th son or NULL. */
50326
61812
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50327
61813
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
50328
61814
  CTree *Declarator () const { return sons[4]; }
50329
61815
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
61816
  /** Replace a son.
 
61817
   *  \param old_son The son to replace.
 
61818
   *  \param new_son The new son. */
50330
61819
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50331
61820
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50332
61821
  }
50333
61822
};
50334
61823
 
50335
61824
 
50336
 
#line 50337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61825
#line 61826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50337
61826
} // closed Puma
 
61827
class CCExprResolve;
 
61828
class CExprResolve;
50338
61829
class WinIfExists;
50339
61830
class WinImportHandler;
50340
61831
class WinMacros;
50341
 
class CMatchSyntax;
50342
 
class ExtGnu;
 
61832
class WinAsm;
 
61833
class WinDeclSpecs;
 
61834
class WinMemberExplSpec;
 
61835
class WinTypeKeywords;
 
61836
class WinFriend;
50343
61837
class ExtAC;
50344
61838
class ExtACBuilderCoupling;
50345
61839
class ExtACSyntaxCoupling;
50346
61840
class ExtACTree;
50347
61841
class ExtACKeywords;
50348
 
class WinAsm;
50349
 
class WinDeclSpecs;
50350
 
class WinMemberExplSpec;
50351
 
class WinTypeKeywords;
 
61842
class ExtGnu;
50352
61843
class PragmaOnceUnitState;
50353
61844
class PragmaOnce;
50354
 
class CCExprResolve;
50355
 
class CExprResolve;
 
61845
class CMatchSyntax;
50356
61846
namespace Puma {
50357
61847
 
50358
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61848
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50359
61849
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
50360
 
#line 50361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61850
#line 61851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61851
  friend class ::CCExprResolve;
 
61852
  friend class ::CExprResolve;
50361
61853
  friend class ::WinIfExists;
50362
61854
  friend class ::WinImportHandler;
50363
61855
  friend class ::WinMacros;
50364
 
  friend class ::CMatchSyntax;
50365
 
  friend class ::ExtGnu;
 
61856
  friend class ::WinAsm;
 
61857
  friend class ::WinDeclSpecs;
 
61858
  friend class ::WinMemberExplSpec;
 
61859
  friend class ::WinTypeKeywords;
 
61860
  friend class ::WinFriend;
50366
61861
  friend class ::ExtAC;
50367
61862
  friend class ::ExtACBuilderCoupling;
50368
61863
  friend class ::ExtACSyntaxCoupling;
50369
61864
  friend class ::ExtACTree;
50370
61865
  friend class ::ExtACKeywords;
50371
 
  friend class ::WinAsm;
50372
 
  friend class ::WinDeclSpecs;
50373
 
  friend class ::WinMemberExplSpec;
50374
 
  friend class ::WinTypeKeywords;
 
61866
  friend class ::ExtGnu;
50375
61867
  friend class ::PragmaOnceUnitState;
50376
61868
  friend class ::PragmaOnce;
50377
 
  friend class ::CCExprResolve;
50378
 
  friend class ::CExprResolve;
 
61869
  friend class ::CMatchSyntax;
50379
61870
 
50380
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61871
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50381
61872
 
50382
61873
  CTree *sons[3]; // declarator, colon, expr
50383
61874
 
50384
61875
public:
50385
61876
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
50386
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
61877
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
50387
61878
  }
 
61879
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50388
61880
  static const char *NodeId ();
 
61881
  /** Get the name of the node. Can be compared with NodeId(). */
50389
61882
  const char *NodeName () const { return NodeId (); }
 
61883
  /** Get the number of sons. */
50390
61884
  int Sons () const { return CTree::Sons (sons, 3); }
 
61885
  /** Get the n-th son.
 
61886
   *  \param n The index of the son.
 
61887
   *  \return The n-th son or NULL. */
50391
61888
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50392
61889
  CTree *Declarator () const { return sons[0]; }
50393
61890
  CTree *Expr () const { return sons[2]; }
50394
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
61891
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
50395
61892
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61893
  /** Replace a son.
 
61894
   *  \param old_son The son to replace.
 
61895
   *  \param new_son The new son. */
50396
61896
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50397
61897
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50398
61898
  }
50405
61905
/*****************************************************************************/
50406
61906
 
50407
61907
 
50408
 
#line 50409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61908
#line 61909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50409
61909
} // closed Puma
 
61910
class CCExprResolve;
 
61911
class CExprResolve;
50410
61912
class WinIfExists;
50411
61913
class WinImportHandler;
50412
61914
class WinMacros;
50413
 
class CMatchSyntax;
50414
 
class ExtGnu;
 
61915
class WinAsm;
 
61916
class WinDeclSpecs;
 
61917
class WinMemberExplSpec;
 
61918
class WinTypeKeywords;
 
61919
class WinFriend;
50415
61920
class ExtAC;
50416
61921
class ExtACBuilderCoupling;
50417
61922
class ExtACSyntaxCoupling;
50418
61923
class ExtACTree;
50419
61924
class ExtACKeywords;
50420
 
class WinAsm;
50421
 
class WinDeclSpecs;
50422
 
class WinMemberExplSpec;
50423
 
class WinTypeKeywords;
 
61925
class ExtGnu;
50424
61926
class PragmaOnceUnitState;
50425
61927
class PragmaOnce;
50426
 
class CCExprResolve;
50427
 
class CExprResolve;
 
61928
class CMatchSyntax;
50428
61929
namespace Puma {
50429
61930
 
50430
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61931
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50431
61932
class CT_Statement : public CTree {
50432
 
#line 50433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61933
#line 61934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61934
  friend class ::CCExprResolve;
 
61935
  friend class ::CExprResolve;
50433
61936
  friend class ::WinIfExists;
50434
61937
  friend class ::WinImportHandler;
50435
61938
  friend class ::WinMacros;
50436
 
  friend class ::CMatchSyntax;
50437
 
  friend class ::ExtGnu;
 
61939
  friend class ::WinAsm;
 
61940
  friend class ::WinDeclSpecs;
 
61941
  friend class ::WinMemberExplSpec;
 
61942
  friend class ::WinTypeKeywords;
 
61943
  friend class ::WinFriend;
50438
61944
  friend class ::ExtAC;
50439
61945
  friend class ::ExtACBuilderCoupling;
50440
61946
  friend class ::ExtACSyntaxCoupling;
50441
61947
  friend class ::ExtACTree;
50442
61948
  friend class ::ExtACKeywords;
50443
 
  friend class ::WinAsm;
50444
 
  friend class ::WinDeclSpecs;
50445
 
  friend class ::WinMemberExplSpec;
50446
 
  friend class ::WinTypeKeywords;
 
61949
  friend class ::ExtGnu;
50447
61950
  friend class ::PragmaOnceUnitState;
50448
61951
  friend class ::PragmaOnce;
50449
 
  friend class ::CCExprResolve;
50450
 
  friend class ::CExprResolve;
 
61952
  friend class ::CMatchSyntax;
50451
61953
 
50452
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61954
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50453
61955
 
50454
61956
protected:
50455
61957
  CT_Statement () {}
 
61958
  virtual CT_Statement *IsStatement () { return this; }
50456
61959
};
50457
61960
 
50458
61961
 
50459
 
#line 50460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61962
#line 61963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50460
61963
} // closed Puma
 
61964
class CCExprResolve;
 
61965
class CExprResolve;
50461
61966
class WinIfExists;
50462
61967
class WinImportHandler;
50463
61968
class WinMacros;
50464
 
class CMatchSyntax;
50465
 
class ExtGnu;
 
61969
class WinAsm;
 
61970
class WinDeclSpecs;
 
61971
class WinMemberExplSpec;
 
61972
class WinTypeKeywords;
 
61973
class WinFriend;
50466
61974
class ExtAC;
50467
61975
class ExtACBuilderCoupling;
50468
61976
class ExtACSyntaxCoupling;
50469
61977
class ExtACTree;
50470
61978
class ExtACKeywords;
50471
 
class WinAsm;
50472
 
class WinDeclSpecs;
50473
 
class WinMemberExplSpec;
50474
 
class WinTypeKeywords;
 
61979
class ExtGnu;
50475
61980
class PragmaOnceUnitState;
50476
61981
class PragmaOnce;
50477
 
class CCExprResolve;
50478
 
class CExprResolve;
 
61982
class CMatchSyntax;
50479
61983
namespace Puma {
50480
61984
 
50481
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61985
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50482
61986
class CT_LabelStmt : public CT_Statement {
50483
 
#line 50484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
61987
#line 61988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
61988
  friend class ::CCExprResolve;
 
61989
  friend class ::CExprResolve;
50484
61990
  friend class ::WinIfExists;
50485
61991
  friend class ::WinImportHandler;
50486
61992
  friend class ::WinMacros;
50487
 
  friend class ::CMatchSyntax;
50488
 
  friend class ::ExtGnu;
 
61993
  friend class ::WinAsm;
 
61994
  friend class ::WinDeclSpecs;
 
61995
  friend class ::WinMemberExplSpec;
 
61996
  friend class ::WinTypeKeywords;
 
61997
  friend class ::WinFriend;
50489
61998
  friend class ::ExtAC;
50490
61999
  friend class ::ExtACBuilderCoupling;
50491
62000
  friend class ::ExtACSyntaxCoupling;
50492
62001
  friend class ::ExtACTree;
50493
62002
  friend class ::ExtACKeywords;
50494
 
  friend class ::WinAsm;
50495
 
  friend class ::WinDeclSpecs;
50496
 
  friend class ::WinMemberExplSpec;
50497
 
  friend class ::WinTypeKeywords;
 
62003
  friend class ::ExtGnu;
50498
62004
  friend class ::PragmaOnceUnitState;
50499
62005
  friend class ::PragmaOnce;
50500
 
  friend class ::CCExprResolve;
50501
 
  friend class ::CExprResolve;
 
62006
  friend class ::CMatchSyntax;
50502
62007
 
50503
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62008
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50504
62009
 
50505
62010
  CTree *sons[3]; // id, colon, stmt
50506
62011
 
50507
62012
public:
50508
62013
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
50509
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
62014
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
50510
62015
  }
 
62016
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50511
62017
  static const char *NodeId ();
 
62018
  /** Get the name of the node. Can be compared with NodeId(). */
50512
62019
  const char *NodeName () const { return NodeId (); }
 
62020
  /** Get the number of sons. */
50513
62021
  int Sons () const { return 3; }
 
62022
  /** Get the n-th son.
 
62023
   *  \param n The index of the son.
 
62024
   *  \return The n-th son or NULL. */
50514
62025
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50515
62026
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
50516
62027
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
62028
  /** Replace a son.
 
62029
   *  \param old_son The son to replace.
 
62030
   *  \param new_son The new son. */
50517
62031
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50518
62032
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50519
62033
  }
50520
62034
};
50521
62035
 
50522
62036
 
50523
 
#line 50524 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62037
#line 62038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50524
62038
} // closed Puma
 
62039
class CCExprResolve;
 
62040
class CExprResolve;
50525
62041
class WinIfExists;
50526
62042
class WinImportHandler;
50527
62043
class WinMacros;
50528
 
class CMatchSyntax;
50529
 
class ExtGnu;
 
62044
class WinAsm;
 
62045
class WinDeclSpecs;
 
62046
class WinMemberExplSpec;
 
62047
class WinTypeKeywords;
 
62048
class WinFriend;
50530
62049
class ExtAC;
50531
62050
class ExtACBuilderCoupling;
50532
62051
class ExtACSyntaxCoupling;
50533
62052
class ExtACTree;
50534
62053
class ExtACKeywords;
50535
 
class WinAsm;
50536
 
class WinDeclSpecs;
50537
 
class WinMemberExplSpec;
50538
 
class WinTypeKeywords;
 
62054
class ExtGnu;
50539
62055
class PragmaOnceUnitState;
50540
62056
class PragmaOnce;
50541
 
class CCExprResolve;
50542
 
class CExprResolve;
 
62057
class CMatchSyntax;
50543
62058
namespace Puma {
50544
62059
 
50545
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62060
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50546
62061
class CT_DefaultStmt : public CT_Statement {
50547
 
#line 50548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62062
#line 62063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62063
  friend class ::CCExprResolve;
 
62064
  friend class ::CExprResolve;
50548
62065
  friend class ::WinIfExists;
50549
62066
  friend class ::WinImportHandler;
50550
62067
  friend class ::WinMacros;
50551
 
  friend class ::CMatchSyntax;
50552
 
  friend class ::ExtGnu;
 
62068
  friend class ::WinAsm;
 
62069
  friend class ::WinDeclSpecs;
 
62070
  friend class ::WinMemberExplSpec;
 
62071
  friend class ::WinTypeKeywords;
 
62072
  friend class ::WinFriend;
50553
62073
  friend class ::ExtAC;
50554
62074
  friend class ::ExtACBuilderCoupling;
50555
62075
  friend class ::ExtACSyntaxCoupling;
50556
62076
  friend class ::ExtACTree;
50557
62077
  friend class ::ExtACKeywords;
50558
 
  friend class ::WinAsm;
50559
 
  friend class ::WinDeclSpecs;
50560
 
  friend class ::WinMemberExplSpec;
50561
 
  friend class ::WinTypeKeywords;
 
62078
  friend class ::ExtGnu;
50562
62079
  friend class ::PragmaOnceUnitState;
50563
62080
  friend class ::PragmaOnce;
50564
 
  friend class ::CCExprResolve;
50565
 
  friend class ::CExprResolve;
 
62081
  friend class ::CMatchSyntax;
50566
62082
 
50567
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62083
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50568
62084
 
50569
62085
  CTree *sons[3]; // keyword, colon, stmt
50570
62086
 
50571
62087
public:
50572
62088
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
50573
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
62089
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
50574
62090
  }
 
62091
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50575
62092
  static const char *NodeId ();
 
62093
  /** Get the name of the node. Can be compared with NodeId(). */
50576
62094
  const char *NodeName () const { return NodeId (); }
 
62095
  /** Get the number of sons. */
50577
62096
  int Sons () const { return 3; }
 
62097
  /** Get the n-th son.
 
62098
   *  \param n The index of the son.
 
62099
   *  \return The n-th son or NULL. */
50578
62100
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50579
62101
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
62102
  /** Replace a son.
 
62103
   *  \param old_son The son to replace.
 
62104
   *  \param new_son The new son. */
50580
62105
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50581
62106
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50582
62107
  }
50583
62108
};
50584
62109
 
50585
62110
 
50586
 
#line 50587 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62111
#line 62112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50587
62112
} // closed Puma
 
62113
class CCExprResolve;
 
62114
class CExprResolve;
50588
62115
class WinIfExists;
50589
62116
class WinImportHandler;
50590
62117
class WinMacros;
50591
 
class CMatchSyntax;
50592
 
class ExtGnu;
 
62118
class WinAsm;
 
62119
class WinDeclSpecs;
 
62120
class WinMemberExplSpec;
 
62121
class WinTypeKeywords;
 
62122
class WinFriend;
50593
62123
class ExtAC;
50594
62124
class ExtACBuilderCoupling;
50595
62125
class ExtACSyntaxCoupling;
50596
62126
class ExtACTree;
50597
62127
class ExtACKeywords;
50598
 
class WinAsm;
50599
 
class WinDeclSpecs;
50600
 
class WinMemberExplSpec;
50601
 
class WinTypeKeywords;
 
62128
class ExtGnu;
50602
62129
class PragmaOnceUnitState;
50603
62130
class PragmaOnce;
50604
 
class CCExprResolve;
50605
 
class CExprResolve;
 
62131
class CMatchSyntax;
50606
62132
namespace Puma {
50607
62133
 
50608
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62134
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50609
62135
class CT_TryStmt : public CT_Statement {
50610
 
#line 50611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62136
#line 62137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62137
  friend class ::CCExprResolve;
 
62138
  friend class ::CExprResolve;
50611
62139
  friend class ::WinIfExists;
50612
62140
  friend class ::WinImportHandler;
50613
62141
  friend class ::WinMacros;
50614
 
  friend class ::CMatchSyntax;
50615
 
  friend class ::ExtGnu;
 
62142
  friend class ::WinAsm;
 
62143
  friend class ::WinDeclSpecs;
 
62144
  friend class ::WinMemberExplSpec;
 
62145
  friend class ::WinTypeKeywords;
 
62146
  friend class ::WinFriend;
50616
62147
  friend class ::ExtAC;
50617
62148
  friend class ::ExtACBuilderCoupling;
50618
62149
  friend class ::ExtACSyntaxCoupling;
50619
62150
  friend class ::ExtACTree;
50620
62151
  friend class ::ExtACKeywords;
50621
 
  friend class ::WinAsm;
50622
 
  friend class ::WinDeclSpecs;
50623
 
  friend class ::WinMemberExplSpec;
50624
 
  friend class ::WinTypeKeywords;
 
62152
  friend class ::ExtGnu;
50625
62153
  friend class ::PragmaOnceUnitState;
50626
62154
  friend class ::PragmaOnce;
50627
 
  friend class ::CCExprResolve;
50628
 
  friend class ::CExprResolve;
 
62155
  friend class ::CMatchSyntax;
50629
62156
 
50630
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62157
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50631
62158
 
50632
62159
  CTree *sons[3]; // try, stmt, handlers
50633
62160
 
50634
62161
public:
50635
62162
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
50636
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
62163
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
50637
62164
  }
 
62165
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50638
62166
  static const char *NodeId ();
 
62167
  /** Get the name of the node. Can be compared with NodeId(). */
50639
62168
  const char *NodeName () const { return NodeId (); }
 
62169
  /** Get the number of sons. */
50640
62170
  int Sons () const { return 3; }
 
62171
  /** Get the n-th son.
 
62172
   *  \param n The index of the son.
 
62173
   *  \return The n-th son or NULL. */
50641
62174
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
50642
62175
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
50643
62176
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
62177
  /** Replace a son.
 
62178
   *  \param old_son The son to replace.
 
62179
   *  \param new_son The new son. */
50644
62180
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50645
62181
    CTree::ReplaceSon (sons, 3, old_son, new_son);
50646
62182
  }
50647
62183
};
50648
62184
 
50649
62185
 
50650
 
#line 50651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62186
#line 62187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50651
62187
} // closed Puma
 
62188
class CCExprResolve;
 
62189
class CExprResolve;
50652
62190
class WinIfExists;
50653
62191
class WinImportHandler;
50654
62192
class WinMacros;
50655
 
class CMatchSyntax;
50656
 
class ExtGnu;
 
62193
class WinAsm;
 
62194
class WinDeclSpecs;
 
62195
class WinMemberExplSpec;
 
62196
class WinTypeKeywords;
 
62197
class WinFriend;
50657
62198
class ExtAC;
50658
62199
class ExtACBuilderCoupling;
50659
62200
class ExtACSyntaxCoupling;
50660
62201
class ExtACTree;
50661
62202
class ExtACKeywords;
50662
 
class WinAsm;
50663
 
class WinDeclSpecs;
50664
 
class WinMemberExplSpec;
50665
 
class WinTypeKeywords;
 
62203
class ExtGnu;
50666
62204
class PragmaOnceUnitState;
50667
62205
class PragmaOnce;
50668
 
class CCExprResolve;
50669
 
class CExprResolve;
 
62206
class CMatchSyntax;
50670
62207
namespace Puma {
50671
62208
 
50672
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62209
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50673
62210
class CT_CaseStmt : public CT_Statement {
50674
 
#line 50675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62211
#line 62212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62212
  friend class ::CCExprResolve;
 
62213
  friend class ::CExprResolve;
50675
62214
  friend class ::WinIfExists;
50676
62215
  friend class ::WinImportHandler;
50677
62216
  friend class ::WinMacros;
50678
 
  friend class ::CMatchSyntax;
50679
 
  friend class ::ExtGnu;
 
62217
  friend class ::WinAsm;
 
62218
  friend class ::WinDeclSpecs;
 
62219
  friend class ::WinMemberExplSpec;
 
62220
  friend class ::WinTypeKeywords;
 
62221
  friend class ::WinFriend;
50680
62222
  friend class ::ExtAC;
50681
62223
  friend class ::ExtACBuilderCoupling;
50682
62224
  friend class ::ExtACSyntaxCoupling;
50683
62225
  friend class ::ExtACTree;
50684
62226
  friend class ::ExtACKeywords;
50685
 
  friend class ::WinAsm;
50686
 
  friend class ::WinDeclSpecs;
50687
 
  friend class ::WinMemberExplSpec;
50688
 
  friend class ::WinTypeKeywords;
 
62227
  friend class ::ExtGnu;
50689
62228
  friend class ::PragmaOnceUnitState;
50690
62229
  friend class ::PragmaOnce;
50691
 
  friend class ::CCExprResolve;
50692
 
  friend class ::CExprResolve;
 
62230
  friend class ::CMatchSyntax;
50693
62231
 
50694
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62232
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50695
62233
 
50696
62234
  CTree *sons[4]; // keyword, expr, colon, stmt
50697
62235
 
50698
62236
public:
50699
62237
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
50700
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
62238
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
62239
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
50701
62240
  }
 
62241
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50702
62242
  static const char *NodeId ();
 
62243
  /** Get the name of the node. Can be compared with NodeId(). */
50703
62244
  const char *NodeName () const { return NodeId (); }
 
62245
  /** Get the number of sons. */
50704
62246
  int Sons () const { return 4; }
 
62247
  /** Get the n-th son.
 
62248
   *  \param n The index of the son.
 
62249
   *  \return The n-th son or NULL. */
50705
62250
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
50706
62251
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
50707
62252
  CTree *Expr () const { return sons[1]; }
 
62253
  /** Replace a son.
 
62254
   *  \param old_son The son to replace.
 
62255
   *  \param new_son The new son. */
50708
62256
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50709
62257
    CTree::ReplaceSon (sons, 4, old_son, new_son);
50710
62258
  }
50711
62259
};
50712
62260
 
50713
62261
 
50714
 
#line 50715 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62262
#line 62263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50715
62263
} // closed Puma
 
62264
class CCExprResolve;
 
62265
class CExprResolve;
50716
62266
class WinIfExists;
50717
62267
class WinImportHandler;
50718
62268
class WinMacros;
50719
 
class CMatchSyntax;
50720
 
class ExtGnu;
 
62269
class WinAsm;
 
62270
class WinDeclSpecs;
 
62271
class WinMemberExplSpec;
 
62272
class WinTypeKeywords;
 
62273
class WinFriend;
50721
62274
class ExtAC;
50722
62275
class ExtACBuilderCoupling;
50723
62276
class ExtACSyntaxCoupling;
50724
62277
class ExtACTree;
50725
62278
class ExtACKeywords;
50726
 
class WinAsm;
50727
 
class WinDeclSpecs;
50728
 
class WinMemberExplSpec;
50729
 
class WinTypeKeywords;
 
62279
class ExtGnu;
50730
62280
class PragmaOnceUnitState;
50731
62281
class PragmaOnce;
50732
 
class CCExprResolve;
50733
 
class CExprResolve;
 
62282
class CMatchSyntax;
50734
62283
namespace Puma {
50735
62284
 
50736
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62285
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50737
62286
class CT_ExprStmt : public CT_Statement {
50738
 
#line 50739 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62287
#line 62288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62288
  friend class ::CCExprResolve;
 
62289
  friend class ::CExprResolve;
50739
62290
  friend class ::WinIfExists;
50740
62291
  friend class ::WinImportHandler;
50741
62292
  friend class ::WinMacros;
50742
 
  friend class ::CMatchSyntax;
50743
 
  friend class ::ExtGnu;
 
62293
  friend class ::WinAsm;
 
62294
  friend class ::WinDeclSpecs;
 
62295
  friend class ::WinMemberExplSpec;
 
62296
  friend class ::WinTypeKeywords;
 
62297
  friend class ::WinFriend;
50744
62298
  friend class ::ExtAC;
50745
62299
  friend class ::ExtACBuilderCoupling;
50746
62300
  friend class ::ExtACSyntaxCoupling;
50747
62301
  friend class ::ExtACTree;
50748
62302
  friend class ::ExtACKeywords;
50749
 
  friend class ::WinAsm;
50750
 
  friend class ::WinDeclSpecs;
50751
 
  friend class ::WinMemberExplSpec;
50752
 
  friend class ::WinTypeKeywords;
 
62303
  friend class ::ExtGnu;
50753
62304
  friend class ::PragmaOnceUnitState;
50754
62305
  friend class ::PragmaOnce;
50755
 
  friend class ::CCExprResolve;
50756
 
  friend class ::CExprResolve;
 
62306
  friend class ::CMatchSyntax;
50757
62307
 
50758
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62308
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50759
62309
 
50760
62310
  CTree *sons[2]; // expr, semi_colon
50761
62311
 
50762
62312
public:
50763
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
62313
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
62314
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50764
62315
  static const char *NodeId ();
 
62316
  /** Get the name of the node. Can be compared with NodeId(). */
50765
62317
  const char *NodeName () const { return NodeId (); }
 
62318
  /** Get the number of sons. */
50766
62319
  int Sons () const { return CTree::Sons (sons, 2); }
 
62320
  /** Get the n-th son.
 
62321
   *  \param n The index of the son.
 
62322
   *  \return The n-th son or NULL. */
50767
62323
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
50768
62324
  CTree *Expr () const { return sons[0]; }
 
62325
  /** Replace a son.
 
62326
   *  \param old_son The son to replace.
 
62327
   *  \param new_son The new son. */
50769
62328
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50770
62329
    CTree::ReplaceSon (sons, 2, old_son, new_son);
50771
62330
  }
50772
62331
};
50773
62332
 
50774
62333
 
50775
 
#line 50776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62334
#line 62335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50776
62335
} // closed Puma
 
62336
class CCExprResolve;
 
62337
class CExprResolve;
50777
62338
class WinIfExists;
50778
62339
class WinImportHandler;
50779
62340
class WinMacros;
50780
 
class CMatchSyntax;
50781
 
class ExtGnu;
 
62341
class WinAsm;
 
62342
class WinDeclSpecs;
 
62343
class WinMemberExplSpec;
 
62344
class WinTypeKeywords;
 
62345
class WinFriend;
50782
62346
class ExtAC;
50783
62347
class ExtACBuilderCoupling;
50784
62348
class ExtACSyntaxCoupling;
50785
62349
class ExtACTree;
50786
62350
class ExtACKeywords;
50787
 
class WinAsm;
50788
 
class WinDeclSpecs;
50789
 
class WinMemberExplSpec;
50790
 
class WinTypeKeywords;
 
62351
class ExtGnu;
50791
62352
class PragmaOnceUnitState;
50792
62353
class PragmaOnce;
50793
 
class CCExprResolve;
50794
 
class CExprResolve;
 
62354
class CMatchSyntax;
50795
62355
namespace Puma {
50796
62356
 
50797
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62357
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50798
62358
class CT_DeclStmt : public CT_Statement {
50799
 
#line 50800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62359
#line 62360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62360
  friend class ::CCExprResolve;
 
62361
  friend class ::CExprResolve;
50800
62362
  friend class ::WinIfExists;
50801
62363
  friend class ::WinImportHandler;
50802
62364
  friend class ::WinMacros;
50803
 
  friend class ::CMatchSyntax;
50804
 
  friend class ::ExtGnu;
 
62365
  friend class ::WinAsm;
 
62366
  friend class ::WinDeclSpecs;
 
62367
  friend class ::WinMemberExplSpec;
 
62368
  friend class ::WinTypeKeywords;
 
62369
  friend class ::WinFriend;
50805
62370
  friend class ::ExtAC;
50806
62371
  friend class ::ExtACBuilderCoupling;
50807
62372
  friend class ::ExtACSyntaxCoupling;
50808
62373
  friend class ::ExtACTree;
50809
62374
  friend class ::ExtACKeywords;
50810
 
  friend class ::WinAsm;
50811
 
  friend class ::WinDeclSpecs;
50812
 
  friend class ::WinMemberExplSpec;
50813
 
  friend class ::WinTypeKeywords;
 
62375
  friend class ::ExtGnu;
50814
62376
  friend class ::PragmaOnceUnitState;
50815
62377
  friend class ::PragmaOnce;
50816
 
  friend class ::CCExprResolve;
50817
 
  friend class ::CExprResolve;
 
62378
  friend class ::CMatchSyntax;
50818
62379
 
50819
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62380
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50820
62381
 
50821
62382
  CTree *_decl;
50822
62383
 
50823
62384
public:
50824
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
62385
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
62386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50825
62387
  static const char *NodeId ();
 
62388
  /** Get the name of the node. Can be compared with NodeId(). */
50826
62389
  const char *NodeName () const { return NodeId (); }
 
62390
  /** Get the number of sons. */
50827
62391
  int Sons () const { return 1; }
 
62392
  /** Get the n-th son.
 
62393
   *  \param n The index of the son.
 
62394
   *  \return The n-th son or NULL. */
50828
62395
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
62396
  /** Replace a son.
 
62397
   *  \param old_son The son to replace.
 
62398
   *  \param new_son The new son. */
50829
62399
  void ReplaceSon (CTree *old_son, CTree *new_son) 
50830
 
   { if (old_son == _decl) _decl = new_son; }
 
62400
   { CTree::ReplaceSon (_decl, old_son, new_son); }
50831
62401
};
50832
62402
 
50833
62403
 
50834
 
#line 50835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62404
#line 62405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50835
62405
} // closed Puma
 
62406
class CCExprResolve;
 
62407
class CExprResolve;
50836
62408
class WinIfExists;
50837
62409
class WinImportHandler;
50838
62410
class WinMacros;
50839
 
class CMatchSyntax;
50840
 
class ExtGnu;
 
62411
class WinAsm;
 
62412
class WinDeclSpecs;
 
62413
class WinMemberExplSpec;
 
62414
class WinTypeKeywords;
 
62415
class WinFriend;
50841
62416
class ExtAC;
50842
62417
class ExtACBuilderCoupling;
50843
62418
class ExtACSyntaxCoupling;
50844
62419
class ExtACTree;
50845
62420
class ExtACKeywords;
50846
 
class WinAsm;
50847
 
class WinDeclSpecs;
50848
 
class WinMemberExplSpec;
50849
 
class WinTypeKeywords;
 
62421
class ExtGnu;
50850
62422
class PragmaOnceUnitState;
50851
62423
class PragmaOnce;
50852
 
class CCExprResolve;
50853
 
class CExprResolve;
 
62424
class CMatchSyntax;
50854
62425
namespace Puma {
50855
62426
 
50856
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62427
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50857
62428
class CT_SwitchStmt : public CT_Statement, public CSemScope {
50858
 
#line 50859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62429
#line 62430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62430
  friend class ::CCExprResolve;
 
62431
  friend class ::CExprResolve;
50859
62432
  friend class ::WinIfExists;
50860
62433
  friend class ::WinImportHandler;
50861
62434
  friend class ::WinMacros;
50862
 
  friend class ::CMatchSyntax;
50863
 
  friend class ::ExtGnu;
 
62435
  friend class ::WinAsm;
 
62436
  friend class ::WinDeclSpecs;
 
62437
  friend class ::WinMemberExplSpec;
 
62438
  friend class ::WinTypeKeywords;
 
62439
  friend class ::WinFriend;
50864
62440
  friend class ::ExtAC;
50865
62441
  friend class ::ExtACBuilderCoupling;
50866
62442
  friend class ::ExtACSyntaxCoupling;
50867
62443
  friend class ::ExtACTree;
50868
62444
  friend class ::ExtACKeywords;
50869
 
  friend class ::WinAsm;
50870
 
  friend class ::WinDeclSpecs;
50871
 
  friend class ::WinMemberExplSpec;
50872
 
  friend class ::WinTypeKeywords;
 
62445
  friend class ::ExtGnu;
50873
62446
  friend class ::PragmaOnceUnitState;
50874
62447
  friend class ::PragmaOnce;
50875
 
  friend class ::CCExprResolve;
50876
 
  friend class ::CExprResolve;
 
62448
  friend class ::CMatchSyntax;
50877
62449
 
50878
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62450
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50879
62451
 
50880
62452
  CTree *sons[5]; // keyword, open, cond, close, stmt
50881
62453
 
50882
62454
public:
50883
62455
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
50884
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
62456
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
62457
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
50885
62458
  }
 
62459
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50886
62460
  static const char *NodeId ();
 
62461
  /** Get the name of the node. Can be compared with NodeId(). */
50887
62462
  const char *NodeName () const { return NodeId (); }
 
62463
  /** Get the number of sons. */
50888
62464
  int Sons () const { return 5; }
 
62465
  /** Get the n-th son.
 
62466
   *  \param n The index of the son.
 
62467
   *  \return The n-th son or NULL. */
50889
62468
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50890
62469
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
50891
62470
  CTree *Condition () const { return sons[2]; }
 
62471
  /** Replace a son.
 
62472
   *  \param old_son The son to replace.
 
62473
   *  \param new_son The new son. */
50892
62474
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50893
62475
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50894
62476
  }
 
62477
  CSemScope *SemScope () const { return (CSemScope*)this; }
50895
62478
};
50896
62479
 
50897
62480
 
50898
 
#line 50899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62481
#line 62482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50899
62482
} // closed Puma
 
62483
class CCExprResolve;
 
62484
class CExprResolve;
50900
62485
class WinIfExists;
50901
62486
class WinImportHandler;
50902
62487
class WinMacros;
50903
 
class CMatchSyntax;
50904
 
class ExtGnu;
 
62488
class WinAsm;
 
62489
class WinDeclSpecs;
 
62490
class WinMemberExplSpec;
 
62491
class WinTypeKeywords;
 
62492
class WinFriend;
50905
62493
class ExtAC;
50906
62494
class ExtACBuilderCoupling;
50907
62495
class ExtACSyntaxCoupling;
50908
62496
class ExtACTree;
50909
62497
class ExtACKeywords;
50910
 
class WinAsm;
50911
 
class WinDeclSpecs;
50912
 
class WinMemberExplSpec;
50913
 
class WinTypeKeywords;
 
62498
class ExtGnu;
50914
62499
class PragmaOnceUnitState;
50915
62500
class PragmaOnce;
50916
 
class CCExprResolve;
50917
 
class CExprResolve;
 
62501
class CMatchSyntax;
50918
62502
namespace Puma {
50919
62503
 
50920
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62504
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50921
62505
class CT_IfStmt : public CT_Statement, public CSemScope {
50922
 
#line 50923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62506
#line 62507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62507
  friend class ::CCExprResolve;
 
62508
  friend class ::CExprResolve;
50923
62509
  friend class ::WinIfExists;
50924
62510
  friend class ::WinImportHandler;
50925
62511
  friend class ::WinMacros;
50926
 
  friend class ::CMatchSyntax;
50927
 
  friend class ::ExtGnu;
 
62512
  friend class ::WinAsm;
 
62513
  friend class ::WinDeclSpecs;
 
62514
  friend class ::WinMemberExplSpec;
 
62515
  friend class ::WinTypeKeywords;
 
62516
  friend class ::WinFriend;
50928
62517
  friend class ::ExtAC;
50929
62518
  friend class ::ExtACBuilderCoupling;
50930
62519
  friend class ::ExtACSyntaxCoupling;
50931
62520
  friend class ::ExtACTree;
50932
62521
  friend class ::ExtACKeywords;
50933
 
  friend class ::WinAsm;
50934
 
  friend class ::WinDeclSpecs;
50935
 
  friend class ::WinMemberExplSpec;
50936
 
  friend class ::WinTypeKeywords;
 
62522
  friend class ::ExtGnu;
50937
62523
  friend class ::PragmaOnceUnitState;
50938
62524
  friend class ::PragmaOnce;
50939
 
  friend class ::CCExprResolve;
50940
 
  friend class ::CExprResolve;
 
62525
  friend class ::CMatchSyntax;
50941
62526
 
50942
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62527
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50943
62528
 
50944
62529
  CTree *sons[5]; // keyword, open, cond, close, stmt
50945
62530
 
50946
62531
public:
50947
62532
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
50948
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
62533
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
62534
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
50949
62535
  }
 
62536
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50950
62537
  static const char *NodeId ();
 
62538
  /** Get the name of the node. Can be compared with NodeId(). */
50951
62539
  const char *NodeName () const { return NodeId (); }
 
62540
  /** Get the number of sons. */
50952
62541
  int Sons () const { return 5; }
 
62542
  /** Get the n-th son.
 
62543
   *  \param n The index of the son.
 
62544
   *  \return The n-th son or NULL. */
50953
62545
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
50954
62546
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
50955
62547
  CTree *Condition () const { return sons[2]; }
 
62548
  /** Replace a son.
 
62549
   *  \param old_son The son to replace.
 
62550
   *  \param new_son The new son. */
50956
62551
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
50957
62552
    CTree::ReplaceSon (sons, 5, old_son, new_son);
50958
62553
  }
 
62554
  CSemScope *SemScope () const { return (CSemScope*)this; }
50959
62555
};
50960
62556
 
50961
62557
 
50962
 
#line 50963 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62558
#line 62559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
50963
62559
} // closed Puma
 
62560
class CCExprResolve;
 
62561
class CExprResolve;
50964
62562
class WinIfExists;
50965
62563
class WinImportHandler;
50966
62564
class WinMacros;
50967
 
class CMatchSyntax;
50968
 
class ExtGnu;
 
62565
class WinAsm;
 
62566
class WinDeclSpecs;
 
62567
class WinMemberExplSpec;
 
62568
class WinTypeKeywords;
 
62569
class WinFriend;
50969
62570
class ExtAC;
50970
62571
class ExtACBuilderCoupling;
50971
62572
class ExtACSyntaxCoupling;
50972
62573
class ExtACTree;
50973
62574
class ExtACKeywords;
50974
 
class WinAsm;
50975
 
class WinDeclSpecs;
50976
 
class WinMemberExplSpec;
50977
 
class WinTypeKeywords;
 
62575
class ExtGnu;
50978
62576
class PragmaOnceUnitState;
50979
62577
class PragmaOnce;
50980
 
class CCExprResolve;
50981
 
class CExprResolve;
 
62578
class CMatchSyntax;
50982
62579
namespace Puma {
50983
62580
 
50984
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62581
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50985
62582
class CT_IfElseStmt : public CT_Statement, public CSemScope {
50986
 
#line 50987 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62583
#line 62584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62584
  friend class ::CCExprResolve;
 
62585
  friend class ::CExprResolve;
50987
62586
  friend class ::WinIfExists;
50988
62587
  friend class ::WinImportHandler;
50989
62588
  friend class ::WinMacros;
50990
 
  friend class ::CMatchSyntax;
50991
 
  friend class ::ExtGnu;
 
62589
  friend class ::WinAsm;
 
62590
  friend class ::WinDeclSpecs;
 
62591
  friend class ::WinMemberExplSpec;
 
62592
  friend class ::WinTypeKeywords;
 
62593
  friend class ::WinFriend;
50992
62594
  friend class ::ExtAC;
50993
62595
  friend class ::ExtACBuilderCoupling;
50994
62596
  friend class ::ExtACSyntaxCoupling;
50995
62597
  friend class ::ExtACTree;
50996
62598
  friend class ::ExtACKeywords;
50997
 
  friend class ::WinAsm;
50998
 
  friend class ::WinDeclSpecs;
50999
 
  friend class ::WinMemberExplSpec;
51000
 
  friend class ::WinTypeKeywords;
 
62599
  friend class ::ExtGnu;
51001
62600
  friend class ::PragmaOnceUnitState;
51002
62601
  friend class ::PragmaOnce;
51003
 
  friend class ::CCExprResolve;
51004
 
  friend class ::CExprResolve;
 
62602
  friend class ::CMatchSyntax;
51005
62603
 
51006
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62604
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51007
62605
 
51008
62606
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
51009
62607
 
51010
62608
public:
51011
62609
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
51012
62610
                 CTree *is, CTree *e, CTree *es) {
51013
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
51014
 
    sons[5] = e; sons[6] = es; 
 
62611
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
62612
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
62613
    AddSon (sons[6], es); 
51015
62614
  }
 
62615
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51016
62616
  static const char *NodeId ();
 
62617
  /** Get the name of the node. Can be compared with NodeId(). */
51017
62618
  const char *NodeName () const { return NodeId (); }
 
62619
  /** Get the number of sons. */
51018
62620
  int Sons () const { return 7; }
 
62621
  /** Get the n-th son.
 
62622
   *  \param n The index of the son.
 
62623
   *  \return The n-th son or NULL. */
51019
62624
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
51020
62625
  CTree *Condition () const { return sons[2]; }
51021
62626
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
51022
62627
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
62628
  /** Replace a son.
 
62629
   *  \param old_son The son to replace.
 
62630
   *  \param new_son The new son. */
51023
62631
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51024
62632
    CTree::ReplaceSon (sons, 7, old_son, new_son);
51025
62633
  }
 
62634
  CSemScope *SemScope () const { return (CSemScope*)this; }
51026
62635
};
51027
62636
 
51028
62637
 
51029
 
#line 51030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62638
#line 62639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51030
62639
} // closed Puma
 
62640
class CCExprResolve;
 
62641
class CExprResolve;
51031
62642
class WinIfExists;
51032
62643
class WinImportHandler;
51033
62644
class WinMacros;
51034
 
class CMatchSyntax;
51035
 
class ExtGnu;
 
62645
class WinAsm;
 
62646
class WinDeclSpecs;
 
62647
class WinMemberExplSpec;
 
62648
class WinTypeKeywords;
 
62649
class WinFriend;
51036
62650
class ExtAC;
51037
62651
class ExtACBuilderCoupling;
51038
62652
class ExtACSyntaxCoupling;
51039
62653
class ExtACTree;
51040
62654
class ExtACKeywords;
51041
 
class WinAsm;
51042
 
class WinDeclSpecs;
51043
 
class WinMemberExplSpec;
51044
 
class WinTypeKeywords;
 
62655
class ExtGnu;
51045
62656
class PragmaOnceUnitState;
51046
62657
class PragmaOnce;
51047
 
class CCExprResolve;
51048
 
class CExprResolve;
 
62658
class CMatchSyntax;
51049
62659
namespace Puma {
51050
62660
 
51051
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62661
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51052
62662
class CT_BreakStmt : public CT_Statement {
51053
 
#line 51054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62663
#line 62664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62664
  friend class ::CCExprResolve;
 
62665
  friend class ::CExprResolve;
51054
62666
  friend class ::WinIfExists;
51055
62667
  friend class ::WinImportHandler;
51056
62668
  friend class ::WinMacros;
51057
 
  friend class ::CMatchSyntax;
51058
 
  friend class ::ExtGnu;
 
62669
  friend class ::WinAsm;
 
62670
  friend class ::WinDeclSpecs;
 
62671
  friend class ::WinMemberExplSpec;
 
62672
  friend class ::WinTypeKeywords;
 
62673
  friend class ::WinFriend;
51059
62674
  friend class ::ExtAC;
51060
62675
  friend class ::ExtACBuilderCoupling;
51061
62676
  friend class ::ExtACSyntaxCoupling;
51062
62677
  friend class ::ExtACTree;
51063
62678
  friend class ::ExtACKeywords;
51064
 
  friend class ::WinAsm;
51065
 
  friend class ::WinDeclSpecs;
51066
 
  friend class ::WinMemberExplSpec;
51067
 
  friend class ::WinTypeKeywords;
 
62679
  friend class ::ExtGnu;
51068
62680
  friend class ::PragmaOnceUnitState;
51069
62681
  friend class ::PragmaOnce;
51070
 
  friend class ::CCExprResolve;
51071
 
  friend class ::CExprResolve;
 
62682
  friend class ::CMatchSyntax;
51072
62683
 
51073
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62684
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51074
62685
 
51075
62686
  CTree *sons[2]; // key, semi_colon
51076
62687
 
51077
62688
public:
51078
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
62689
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
62690
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51079
62691
  static const char *NodeId ();
 
62692
  /** Get the name of the node. Can be compared with NodeId(). */
51080
62693
  const char *NodeName () const { return NodeId (); }
 
62694
  /** Get the number of sons. */
51081
62695
  int Sons () const { return 2; }
 
62696
  /** Get the n-th son.
 
62697
   *  \param n The index of the son.
 
62698
   *  \return The n-th son or NULL. */
51082
62699
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62700
  /** Replace a son.
 
62701
   *  \param old_son The son to replace.
 
62702
   *  \param new_son The new son. */
51083
62703
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51084
62704
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51085
62705
  }
51086
62706
};
51087
62707
 
51088
62708
 
51089
 
#line 51090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62709
#line 62710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51090
62710
} // closed Puma
 
62711
class CCExprResolve;
 
62712
class CExprResolve;
51091
62713
class WinIfExists;
51092
62714
class WinImportHandler;
51093
62715
class WinMacros;
51094
 
class CMatchSyntax;
51095
 
class ExtGnu;
 
62716
class WinAsm;
 
62717
class WinDeclSpecs;
 
62718
class WinMemberExplSpec;
 
62719
class WinTypeKeywords;
 
62720
class WinFriend;
51096
62721
class ExtAC;
51097
62722
class ExtACBuilderCoupling;
51098
62723
class ExtACSyntaxCoupling;
51099
62724
class ExtACTree;
51100
62725
class ExtACKeywords;
51101
 
class WinAsm;
51102
 
class WinDeclSpecs;
51103
 
class WinMemberExplSpec;
51104
 
class WinTypeKeywords;
 
62726
class ExtGnu;
51105
62727
class PragmaOnceUnitState;
51106
62728
class PragmaOnce;
51107
 
class CCExprResolve;
51108
 
class CExprResolve;
 
62729
class CMatchSyntax;
51109
62730
namespace Puma {
51110
62731
 
51111
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62732
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51112
62733
class CT_ContinueStmt : public CT_Statement {
51113
 
#line 51114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62734
#line 62735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62735
  friend class ::CCExprResolve;
 
62736
  friend class ::CExprResolve;
51114
62737
  friend class ::WinIfExists;
51115
62738
  friend class ::WinImportHandler;
51116
62739
  friend class ::WinMacros;
51117
 
  friend class ::CMatchSyntax;
51118
 
  friend class ::ExtGnu;
 
62740
  friend class ::WinAsm;
 
62741
  friend class ::WinDeclSpecs;
 
62742
  friend class ::WinMemberExplSpec;
 
62743
  friend class ::WinTypeKeywords;
 
62744
  friend class ::WinFriend;
51119
62745
  friend class ::ExtAC;
51120
62746
  friend class ::ExtACBuilderCoupling;
51121
62747
  friend class ::ExtACSyntaxCoupling;
51122
62748
  friend class ::ExtACTree;
51123
62749
  friend class ::ExtACKeywords;
51124
 
  friend class ::WinAsm;
51125
 
  friend class ::WinDeclSpecs;
51126
 
  friend class ::WinMemberExplSpec;
51127
 
  friend class ::WinTypeKeywords;
 
62750
  friend class ::ExtGnu;
51128
62751
  friend class ::PragmaOnceUnitState;
51129
62752
  friend class ::PragmaOnce;
51130
 
  friend class ::CCExprResolve;
51131
 
  friend class ::CExprResolve;
 
62753
  friend class ::CMatchSyntax;
51132
62754
 
51133
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62755
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51134
62756
 
51135
62757
  CTree *sons[2]; // key, semi_colon
51136
62758
 
51137
62759
public:
51138
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
62760
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
62761
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51139
62762
  static const char *NodeId ();
 
62763
  /** Get the name of the node. Can be compared with NodeId(). */
51140
62764
  const char *NodeName () const { return NodeId (); }
 
62765
  /** Get the number of sons. */
51141
62766
  int Sons () const { return 2; }
 
62767
  /** Get the n-th son.
 
62768
   *  \param n The index of the son.
 
62769
   *  \return The n-th son or NULL. */
51142
62770
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62771
  /** Replace a son.
 
62772
   *  \param old_son The son to replace.
 
62773
   *  \param new_son The new son. */
51143
62774
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51144
62775
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51145
62776
  }
51146
62777
};
51147
62778
 
51148
62779
 
51149
 
#line 51150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62780
#line 62781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51150
62781
} // closed Puma
 
62782
class CCExprResolve;
 
62783
class CExprResolve;
51151
62784
class WinIfExists;
51152
62785
class WinImportHandler;
51153
62786
class WinMacros;
51154
 
class CMatchSyntax;
51155
 
class ExtGnu;
 
62787
class WinAsm;
 
62788
class WinDeclSpecs;
 
62789
class WinMemberExplSpec;
 
62790
class WinTypeKeywords;
 
62791
class WinFriend;
51156
62792
class ExtAC;
51157
62793
class ExtACBuilderCoupling;
51158
62794
class ExtACSyntaxCoupling;
51159
62795
class ExtACTree;
51160
62796
class ExtACKeywords;
51161
 
class WinAsm;
51162
 
class WinDeclSpecs;
51163
 
class WinMemberExplSpec;
51164
 
class WinTypeKeywords;
 
62797
class ExtGnu;
51165
62798
class PragmaOnceUnitState;
51166
62799
class PragmaOnce;
51167
 
class CCExprResolve;
51168
 
class CExprResolve;
 
62800
class CMatchSyntax;
51169
62801
namespace Puma {
51170
62802
 
51171
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62803
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51172
62804
class CT_GotoStmt : public CT_Statement {
51173
 
#line 51174 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62805
#line 62806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62806
  friend class ::CCExprResolve;
 
62807
  friend class ::CExprResolve;
51174
62808
  friend class ::WinIfExists;
51175
62809
  friend class ::WinImportHandler;
51176
62810
  friend class ::WinMacros;
51177
 
  friend class ::CMatchSyntax;
51178
 
  friend class ::ExtGnu;
 
62811
  friend class ::WinAsm;
 
62812
  friend class ::WinDeclSpecs;
 
62813
  friend class ::WinMemberExplSpec;
 
62814
  friend class ::WinTypeKeywords;
 
62815
  friend class ::WinFriend;
51179
62816
  friend class ::ExtAC;
51180
62817
  friend class ::ExtACBuilderCoupling;
51181
62818
  friend class ::ExtACSyntaxCoupling;
51182
62819
  friend class ::ExtACTree;
51183
62820
  friend class ::ExtACKeywords;
51184
 
  friend class ::WinAsm;
51185
 
  friend class ::WinDeclSpecs;
51186
 
  friend class ::WinMemberExplSpec;
51187
 
  friend class ::WinTypeKeywords;
 
62821
  friend class ::ExtGnu;
51188
62822
  friend class ::PragmaOnceUnitState;
51189
62823
  friend class ::PragmaOnce;
51190
 
  friend class ::CCExprResolve;
51191
 
  friend class ::CExprResolve;
 
62824
  friend class ::CMatchSyntax;
51192
62825
 
51193
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62826
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51194
62827
 
51195
62828
  CTree *sons[3]; // key, label, semi_colon
51196
62829
 
51197
62830
public:
51198
62831
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
51199
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
62832
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
51200
62833
  }
 
62834
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51201
62835
  static const char *NodeId ();
 
62836
  /** Get the name of the node. Can be compared with NodeId(). */
51202
62837
  const char *NodeName () const { return NodeId (); }
 
62838
  /** Get the number of sons. */
51203
62839
  int Sons () const { return 3; }
 
62840
  /** Get the n-th son.
 
62841
   *  \param n The index of the son.
 
62842
   *  \return The n-th son or NULL. */
51204
62843
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51205
62844
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
62845
  /** Replace a son.
 
62846
   *  \param old_son The son to replace.
 
62847
   *  \param new_son The new son. */
51206
62848
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51207
62849
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51208
62850
  }
51209
62851
};
51210
62852
 
51211
62853
 
51212
 
#line 51213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62854
#line 62855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51213
62855
} // closed Puma
 
62856
class CCExprResolve;
 
62857
class CExprResolve;
51214
62858
class WinIfExists;
51215
62859
class WinImportHandler;
51216
62860
class WinMacros;
51217
 
class CMatchSyntax;
51218
 
class ExtGnu;
 
62861
class WinAsm;
 
62862
class WinDeclSpecs;
 
62863
class WinMemberExplSpec;
 
62864
class WinTypeKeywords;
 
62865
class WinFriend;
51219
62866
class ExtAC;
51220
62867
class ExtACBuilderCoupling;
51221
62868
class ExtACSyntaxCoupling;
51222
62869
class ExtACTree;
51223
62870
class ExtACKeywords;
51224
 
class WinAsm;
51225
 
class WinDeclSpecs;
51226
 
class WinMemberExplSpec;
51227
 
class WinTypeKeywords;
 
62871
class ExtGnu;
51228
62872
class PragmaOnceUnitState;
51229
62873
class PragmaOnce;
51230
 
class CCExprResolve;
51231
 
class CExprResolve;
 
62874
class CMatchSyntax;
51232
62875
namespace Puma {
51233
62876
 
51234
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62877
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51235
62878
class CT_ReturnStmt : public CT_Statement {
51236
 
#line 51237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62879
#line 62880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62880
  friend class ::CCExprResolve;
 
62881
  friend class ::CExprResolve;
51237
62882
  friend class ::WinIfExists;
51238
62883
  friend class ::WinImportHandler;
51239
62884
  friend class ::WinMacros;
51240
 
  friend class ::CMatchSyntax;
51241
 
  friend class ::ExtGnu;
 
62885
  friend class ::WinAsm;
 
62886
  friend class ::WinDeclSpecs;
 
62887
  friend class ::WinMemberExplSpec;
 
62888
  friend class ::WinTypeKeywords;
 
62889
  friend class ::WinFriend;
51242
62890
  friend class ::ExtAC;
51243
62891
  friend class ::ExtACBuilderCoupling;
51244
62892
  friend class ::ExtACSyntaxCoupling;
51245
62893
  friend class ::ExtACTree;
51246
62894
  friend class ::ExtACKeywords;
51247
 
  friend class ::WinAsm;
51248
 
  friend class ::WinDeclSpecs;
51249
 
  friend class ::WinMemberExplSpec;
51250
 
  friend class ::WinTypeKeywords;
 
62895
  friend class ::ExtGnu;
51251
62896
  friend class ::PragmaOnceUnitState;
51252
62897
  friend class ::PragmaOnce;
51253
 
  friend class ::CCExprResolve;
51254
 
  friend class ::CExprResolve;
 
62898
  friend class ::CMatchSyntax;
51255
62899
 
51256
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62900
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51257
62901
 
51258
62902
  CTree *sons[3]; // key, expr, semi_colon
51259
62903
 
51260
62904
public:
51261
62905
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
51262
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
62906
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
51263
62907
  }
 
62908
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51264
62909
  static const char *NodeId ();
 
62910
  /** Get the name of the node. Can be compared with NodeId(). */
51265
62911
  const char *NodeName () const { return NodeId (); }
 
62912
  /** Get the number of sons. */
51266
62913
  int Sons () const { return CTree::Sons (sons, 3); }
 
62914
  /** Get the n-th son.
 
62915
   *  \param n The index of the son.
 
62916
   *  \return The n-th son or NULL. */
51267
62917
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51268
62918
  CTree *Expr () const { return sons[1]; }
 
62919
  /** Replace a son.
 
62920
   *  \param old_son The son to replace.
 
62921
   *  \param new_son The new son. */
51269
62922
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51270
62923
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51271
62924
  }
51272
62925
};
51273
62926
 
51274
62927
 
51275
 
#line 51276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62928
#line 62929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51276
62929
} // closed Puma
 
62930
class CCExprResolve;
 
62931
class CExprResolve;
51277
62932
class WinIfExists;
51278
62933
class WinImportHandler;
51279
62934
class WinMacros;
51280
 
class CMatchSyntax;
51281
 
class ExtGnu;
 
62935
class WinAsm;
 
62936
class WinDeclSpecs;
 
62937
class WinMemberExplSpec;
 
62938
class WinTypeKeywords;
 
62939
class WinFriend;
51282
62940
class ExtAC;
51283
62941
class ExtACBuilderCoupling;
51284
62942
class ExtACSyntaxCoupling;
51285
62943
class ExtACTree;
51286
62944
class ExtACKeywords;
51287
 
class WinAsm;
51288
 
class WinDeclSpecs;
51289
 
class WinMemberExplSpec;
51290
 
class WinTypeKeywords;
 
62945
class ExtGnu;
51291
62946
class PragmaOnceUnitState;
51292
62947
class PragmaOnce;
51293
 
class CCExprResolve;
51294
 
class CExprResolve;
 
62948
class CMatchSyntax;
51295
62949
namespace Puma {
51296
62950
 
51297
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62951
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51298
62952
class CT_WhileStmt : public CT_Statement, public CSemScope {
51299
 
#line 51300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
62953
#line 62954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
62954
  friend class ::CCExprResolve;
 
62955
  friend class ::CExprResolve;
51300
62956
  friend class ::WinIfExists;
51301
62957
  friend class ::WinImportHandler;
51302
62958
  friend class ::WinMacros;
51303
 
  friend class ::CMatchSyntax;
51304
 
  friend class ::ExtGnu;
 
62959
  friend class ::WinAsm;
 
62960
  friend class ::WinDeclSpecs;
 
62961
  friend class ::WinMemberExplSpec;
 
62962
  friend class ::WinTypeKeywords;
 
62963
  friend class ::WinFriend;
51305
62964
  friend class ::ExtAC;
51306
62965
  friend class ::ExtACBuilderCoupling;
51307
62966
  friend class ::ExtACSyntaxCoupling;
51308
62967
  friend class ::ExtACTree;
51309
62968
  friend class ::ExtACKeywords;
51310
 
  friend class ::WinAsm;
51311
 
  friend class ::WinDeclSpecs;
51312
 
  friend class ::WinMemberExplSpec;
51313
 
  friend class ::WinTypeKeywords;
 
62969
  friend class ::ExtGnu;
51314
62970
  friend class ::PragmaOnceUnitState;
51315
62971
  friend class ::PragmaOnce;
51316
 
  friend class ::CCExprResolve;
51317
 
  friend class ::CExprResolve;
 
62972
  friend class ::CMatchSyntax;
51318
62973
 
51319
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62974
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51320
62975
 
51321
62976
  CTree *sons[5]; // key, open, cond, close, stmt
51322
62977
 
51323
62978
public:
51324
62979
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
51325
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
62980
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
62981
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
51326
62982
  }
 
62983
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51327
62984
  static const char *NodeId ();
 
62985
  /** Get the name of the node. Can be compared with NodeId(). */
51328
62986
  const char *NodeName () const { return NodeId (); }
 
62987
  /** Get the number of sons. */
51329
62988
  int Sons () const { return 5; }
 
62989
  /** Get the n-th son.
 
62990
   *  \param n The index of the son.
 
62991
   *  \return The n-th son or NULL. */
51330
62992
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
51331
62993
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
51332
62994
  CTree *Condition () const { return sons[2]; }
 
62995
  /** Replace a son.
 
62996
   *  \param old_son The son to replace.
 
62997
   *  \param new_son The new son. */
51333
62998
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51334
62999
    CTree::ReplaceSon (sons, 5, old_son, new_son);
51335
63000
  }
 
63001
  CSemScope *SemScope () const { return (CSemScope*)this; }
51336
63002
};
51337
63003
 
51338
63004
 
51339
 
#line 51340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63005
#line 63006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51340
63006
} // closed Puma
 
63007
class CCExprResolve;
 
63008
class CExprResolve;
51341
63009
class WinIfExists;
51342
63010
class WinImportHandler;
51343
63011
class WinMacros;
51344
 
class CMatchSyntax;
51345
 
class ExtGnu;
 
63012
class WinAsm;
 
63013
class WinDeclSpecs;
 
63014
class WinMemberExplSpec;
 
63015
class WinTypeKeywords;
 
63016
class WinFriend;
51346
63017
class ExtAC;
51347
63018
class ExtACBuilderCoupling;
51348
63019
class ExtACSyntaxCoupling;
51349
63020
class ExtACTree;
51350
63021
class ExtACKeywords;
51351
 
class WinAsm;
51352
 
class WinDeclSpecs;
51353
 
class WinMemberExplSpec;
51354
 
class WinTypeKeywords;
 
63022
class ExtGnu;
51355
63023
class PragmaOnceUnitState;
51356
63024
class PragmaOnce;
51357
 
class CCExprResolve;
51358
 
class CExprResolve;
 
63025
class CMatchSyntax;
51359
63026
namespace Puma {
51360
63027
 
51361
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63028
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51362
63029
class CT_DoStmt : public CT_Statement {
51363
 
#line 51364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63030
#line 63031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63031
  friend class ::CCExprResolve;
 
63032
  friend class ::CExprResolve;
51364
63033
  friend class ::WinIfExists;
51365
63034
  friend class ::WinImportHandler;
51366
63035
  friend class ::WinMacros;
51367
 
  friend class ::CMatchSyntax;
51368
 
  friend class ::ExtGnu;
 
63036
  friend class ::WinAsm;
 
63037
  friend class ::WinDeclSpecs;
 
63038
  friend class ::WinMemberExplSpec;
 
63039
  friend class ::WinTypeKeywords;
 
63040
  friend class ::WinFriend;
51369
63041
  friend class ::ExtAC;
51370
63042
  friend class ::ExtACBuilderCoupling;
51371
63043
  friend class ::ExtACSyntaxCoupling;
51372
63044
  friend class ::ExtACTree;
51373
63045
  friend class ::ExtACKeywords;
51374
 
  friend class ::WinAsm;
51375
 
  friend class ::WinDeclSpecs;
51376
 
  friend class ::WinMemberExplSpec;
51377
 
  friend class ::WinTypeKeywords;
 
63046
  friend class ::ExtGnu;
51378
63047
  friend class ::PragmaOnceUnitState;
51379
63048
  friend class ::PragmaOnce;
51380
 
  friend class ::CCExprResolve;
51381
 
  friend class ::CExprResolve;
 
63049
  friend class ::CMatchSyntax;
51382
63050
 
51383
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63051
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51384
63052
 
51385
63053
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
51386
63054
 
51387
63055
public:
51388
63056
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
51389
63057
             CTree *c, CTree *sc) {
51390
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
51391
 
    sons[5] = c; sons[6] = sc; 
 
63058
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
63059
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
63060
    AddSon (sons[6], sc); 
51392
63061
  }
 
63062
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51393
63063
  static const char *NodeId ();
 
63064
  /** Get the name of the node. Can be compared with NodeId(). */
51394
63065
  const char *NodeName () const { return NodeId (); }
 
63066
  /** Get the number of sons. */
51395
63067
  int Sons () const { return 7; }
 
63068
  /** Get the n-th son.
 
63069
   *  \param n The index of the son.
 
63070
   *  \return The n-th son or NULL. */
51396
63071
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
51397
63072
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
51398
63073
  CTree *Expr () const { return sons[4]; }
 
63074
  /** Replace a son.
 
63075
   *  \param old_son The son to replace.
 
63076
   *  \param new_son The new son. */
51399
63077
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51400
63078
    CTree::ReplaceSon (sons, 7, old_son, new_son);
51401
63079
  }
51402
63080
};
51403
63081
 
51404
63082
 
51405
 
#line 51406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63083
#line 63084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51406
63084
} // closed Puma
 
63085
class CCExprResolve;
 
63086
class CExprResolve;
51407
63087
class WinIfExists;
51408
63088
class WinImportHandler;
51409
63089
class WinMacros;
51410
 
class CMatchSyntax;
51411
 
class ExtGnu;
 
63090
class WinAsm;
 
63091
class WinDeclSpecs;
 
63092
class WinMemberExplSpec;
 
63093
class WinTypeKeywords;
 
63094
class WinFriend;
51412
63095
class ExtAC;
51413
63096
class ExtACBuilderCoupling;
51414
63097
class ExtACSyntaxCoupling;
51415
63098
class ExtACTree;
51416
63099
class ExtACKeywords;
51417
 
class WinAsm;
51418
 
class WinDeclSpecs;
51419
 
class WinMemberExplSpec;
51420
 
class WinTypeKeywords;
 
63100
class ExtGnu;
51421
63101
class PragmaOnceUnitState;
51422
63102
class PragmaOnce;
51423
 
class CCExprResolve;
51424
 
class CExprResolve;
 
63103
class CMatchSyntax;
51425
63104
namespace Puma {
51426
63105
 
51427
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63106
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51428
63107
class CT_ForStmt : public CT_Statement, public CSemScope {
51429
 
#line 51430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63108
#line 63109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63109
  friend class ::CCExprResolve;
 
63110
  friend class ::CExprResolve;
51430
63111
  friend class ::WinIfExists;
51431
63112
  friend class ::WinImportHandler;
51432
63113
  friend class ::WinMacros;
51433
 
  friend class ::CMatchSyntax;
51434
 
  friend class ::ExtGnu;
 
63114
  friend class ::WinAsm;
 
63115
  friend class ::WinDeclSpecs;
 
63116
  friend class ::WinMemberExplSpec;
 
63117
  friend class ::WinTypeKeywords;
 
63118
  friend class ::WinFriend;
51435
63119
  friend class ::ExtAC;
51436
63120
  friend class ::ExtACBuilderCoupling;
51437
63121
  friend class ::ExtACSyntaxCoupling;
51438
63122
  friend class ::ExtACTree;
51439
63123
  friend class ::ExtACKeywords;
51440
 
  friend class ::WinAsm;
51441
 
  friend class ::WinDeclSpecs;
51442
 
  friend class ::WinMemberExplSpec;
51443
 
  friend class ::WinTypeKeywords;
 
63124
  friend class ::ExtGnu;
51444
63125
  friend class ::PragmaOnceUnitState;
51445
63126
  friend class ::PragmaOnce;
51446
 
  friend class ::CCExprResolve;
51447
 
  friend class ::CExprResolve;
 
63127
  friend class ::CMatchSyntax;
51448
63128
 
51449
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63129
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51450
63130
 
51451
63131
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
51452
63132
 
51453
63133
public:
51454
63134
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
51455
63135
              CTree *e, CTree *c, CTree *stmt) {
51456
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
51457
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
63136
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
63137
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
63138
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
51458
63139
  }
 
63140
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51459
63141
  static const char *NodeId ();
 
63142
  /** Get the name of the node. Can be compared with NodeId(). */
51460
63143
  const char *NodeName () const { return NodeId (); }
 
63144
  /** Get the number of sons. */
51461
63145
  int Sons () const { return CTree::Sons (sons, 8); }
 
63146
  /** Get the n-th son.
 
63147
   *  \param n The index of the son.
 
63148
   *  \return The n-th son or NULL. */
51462
63149
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
51463
63150
  CTree *InitStmt () const { return sons[2]; }
51464
63151
  CTree *Condition () const { return sons[3]; }
51465
63152
  CTree *Expr () const { return sons[5]; }
51466
63153
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
63154
  /** Replace a son.
 
63155
   *  \param old_son The son to replace.
 
63156
   *  \param new_son The new son. */
51467
63157
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51468
63158
    CTree::ReplaceSon (sons, 8, old_son, new_son);
51469
63159
  }
 
63160
  CSemScope *SemScope () const { return (CSemScope*)this; }
51470
63161
};
51471
63162
 
51472
63163
 
51473
 
#line 51474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63164
#line 63165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51474
63165
} // closed Puma
 
63166
class CCExprResolve;
 
63167
class CExprResolve;
51475
63168
class WinIfExists;
51476
63169
class WinImportHandler;
51477
63170
class WinMacros;
51478
 
class CMatchSyntax;
51479
 
class ExtGnu;
 
63171
class WinAsm;
 
63172
class WinDeclSpecs;
 
63173
class WinMemberExplSpec;
 
63174
class WinTypeKeywords;
 
63175
class WinFriend;
51480
63176
class ExtAC;
51481
63177
class ExtACBuilderCoupling;
51482
63178
class ExtACSyntaxCoupling;
51483
63179
class ExtACTree;
51484
63180
class ExtACKeywords;
51485
 
class WinAsm;
51486
 
class WinDeclSpecs;
51487
 
class WinMemberExplSpec;
51488
 
class WinTypeKeywords;
 
63181
class ExtGnu;
51489
63182
class PragmaOnceUnitState;
51490
63183
class PragmaOnce;
51491
 
class CCExprResolve;
51492
 
class CExprResolve;
 
63184
class CMatchSyntax;
51493
63185
namespace Puma {
51494
63186
 
51495
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63187
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51496
63188
class CT_Condition : public CT_Decl, public CSemObject {
51497
 
#line 51498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63189
#line 63190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63190
  friend class ::CCExprResolve;
 
63191
  friend class ::CExprResolve;
51498
63192
  friend class ::WinIfExists;
51499
63193
  friend class ::WinImportHandler;
51500
63194
  friend class ::WinMacros;
51501
 
  friend class ::CMatchSyntax;
51502
 
  friend class ::ExtGnu;
 
63195
  friend class ::WinAsm;
 
63196
  friend class ::WinDeclSpecs;
 
63197
  friend class ::WinMemberExplSpec;
 
63198
  friend class ::WinTypeKeywords;
 
63199
  friend class ::WinFriend;
51503
63200
  friend class ::ExtAC;
51504
63201
  friend class ::ExtACBuilderCoupling;
51505
63202
  friend class ::ExtACSyntaxCoupling;
51506
63203
  friend class ::ExtACTree;
51507
63204
  friend class ::ExtACKeywords;
51508
 
  friend class ::WinAsm;
51509
 
  friend class ::WinDeclSpecs;
51510
 
  friend class ::WinMemberExplSpec;
51511
 
  friend class ::WinTypeKeywords;
 
63205
  friend class ::ExtGnu;
51512
63206
  friend class ::PragmaOnceUnitState;
51513
63207
  friend class ::PragmaOnce;
51514
 
  friend class ::CCExprResolve;
51515
 
  friend class ::CExprResolve;
 
63208
  friend class ::CMatchSyntax;
51516
63209
 
51517
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63210
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51518
63211
 
51519
63212
  CTree *sons[3]; // declspecs, declarator, init
51520
63213
 
51521
63214
public:
51522
63215
  CT_Condition (CTree *dsl, CTree *d) {
51523
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
63216
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
51524
63217
  }
 
63218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51525
63219
  static const char *NodeId ();
 
63220
  /** Get the name of the node. Can be compared with NodeId(). */
51526
63221
  const char *NodeName () const { return NodeId (); }
 
63222
  /** Get the number of sons. */
51527
63223
  int Sons () const { return CTree::Sons (sons, 3); }
 
63224
  /** Get the n-th son.
 
63225
   *  \param n The index of the son.
 
63226
   *  \return The n-th son or NULL. */
51528
63227
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
51529
63228
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
51530
63229
  CTree *Declarator () const { return sons[1]; }
51531
63230
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
51532
63231
  CSemObject *SemObject () const { return (CSemObject*)this; }
51533
 
  void Initializer (CTree *i) { sons[2] = i; }
 
63232
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
63233
  /** Replace a son.
 
63234
   *  \param old_son The son to replace.
 
63235
   *  \param new_son The new son. */
51534
63236
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51535
63237
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51536
63238
  }
51543
63245
/*****************************************************************************/
51544
63246
 
51545
63247
 
51546
 
#line 51547 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63248
#line 63249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51547
63249
} // closed Puma
 
63250
class CCExprResolve;
 
63251
class CExprResolve;
51548
63252
class WinIfExists;
51549
63253
class WinImportHandler;
51550
63254
class WinMacros;
51551
 
class CMatchSyntax;
51552
 
class ExtGnu;
 
63255
class WinAsm;
 
63256
class WinDeclSpecs;
 
63257
class WinMemberExplSpec;
 
63258
class WinTypeKeywords;
 
63259
class WinFriend;
51553
63260
class ExtAC;
51554
63261
class ExtACBuilderCoupling;
51555
63262
class ExtACSyntaxCoupling;
51556
63263
class ExtACTree;
51557
63264
class ExtACKeywords;
51558
 
class WinAsm;
51559
 
class WinDeclSpecs;
51560
 
class WinMemberExplSpec;
51561
 
class WinTypeKeywords;
 
63265
class ExtGnu;
51562
63266
class PragmaOnceUnitState;
51563
63267
class PragmaOnce;
51564
 
class CCExprResolve;
51565
 
class CExprResolve;
51566
 
namespace Puma {
51567
 
 
51568
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63268
class CMatchSyntax;
 
63269
namespace Puma {
 
63270
 
 
63271
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63272
 
 
63273
#line 63274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63274
} // closed Puma
 
63275
 
 
63276
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
63277
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
63278
#include "ExtACTree.ah"
 
63279
#endif
 
63280
namespace Puma {
 
63281
 
 
63282
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51569
63283
class CT_ClassDef : public CT_Decl, public CSemObject {
51570
 
#line 51571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63284
#line 63285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63285
  friend class ::CCExprResolve;
 
63286
  friend class ::CExprResolve;
51571
63287
  friend class ::WinIfExists;
51572
63288
  friend class ::WinImportHandler;
51573
63289
  friend class ::WinMacros;
51574
 
  friend class ::CMatchSyntax;
51575
 
  friend class ::ExtGnu;
 
63290
  friend class ::WinAsm;
 
63291
  friend class ::WinDeclSpecs;
 
63292
  friend class ::WinMemberExplSpec;
 
63293
  friend class ::WinTypeKeywords;
 
63294
  friend class ::WinFriend;
51576
63295
  friend class ::ExtAC;
51577
63296
  friend class ::ExtACBuilderCoupling;
51578
63297
  friend class ::ExtACSyntaxCoupling;
51579
63298
  friend class ::ExtACTree;
51580
63299
  friend class ::ExtACKeywords;
51581
 
  friend class ::WinAsm;
51582
 
  friend class ::WinDeclSpecs;
51583
 
  friend class ::WinMemberExplSpec;
51584
 
  friend class ::WinTypeKeywords;
 
63300
  friend class ::ExtGnu;
51585
63301
  friend class ::PragmaOnceUnitState;
51586
63302
  friend class ::PragmaOnce;
51587
 
  friend class ::CCExprResolve;
51588
 
  friend class ::CExprResolve;
 
63303
  friend class ::CMatchSyntax;
51589
63304
 
51590
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63305
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51591
63306
 
51592
63307
   
51593
 
#line 51594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63308
#line 63309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51594
63309
 
51595
63310
  struct __ac_wrapper_sons {
51596
63311
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
51605
63320
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
51606
63321
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
51607
63322
  } sons
51608
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63323
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51609
63324
 
51610
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63325
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51611
63326
; // key, name, bases, members
51612
63327
  CTree *obj_decl;
51613
63328
 
51614
63329
public:
51615
63330
  
51616
 
#line 51617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
51617
 
 
51618
 
 
51619
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
51620
 
  typedef void Result;
51621
 
  typedef ::Puma::CT_ClassDef That;
51622
 
  typedef ::Puma::CT_ClassDef Target;
51623
 
  static const int JPID = 4;
 
63331
#line 63332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63332
 
 
63333
 
 
63334
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
63335
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
63336
  typedef TResult Result;
 
63337
  typedef TThat   That;
 
63338
  typedef TTarget Target;
 
63339
  enum { ARGS = TArgs::ARGS };
 
63340
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
63341
  static const int JPID = 55;
51624
63342
  static const AC::JPType JPTYPE = (AC::JPType)16;
51625
63343
  struct Res {
51626
63344
    typedef void Type;
51627
63345
    typedef void ReferredType;
51628
63346
  };
51629
 
  enum { ARGS = 3 };
51630
 
  template <int I, int DUMMY = 0> struct Arg {
51631
 
    typedef void Type;
51632
 
    typedef void ReferredType;
51633
 
  };
51634
 
  template <int DUMMY> struct Arg<0, DUMMY> {
51635
 
    typedef ::Puma::CTree * Type;
51636
 
    typedef ::Puma::CTree * ReferredType;
51637
 
  };
51638
 
  template <int DUMMY> struct Arg<1, DUMMY> {
51639
 
    typedef ::Puma::CTree * Type;
51640
 
    typedef ::Puma::CTree * ReferredType;
51641
 
  };
51642
 
  template <int DUMMY> struct Arg<2, DUMMY> {
51643
 
    typedef ::Puma::CTree * Type;
51644
 
    typedef ::Puma::CTree * ReferredType;
51645
 
  };
51646
63347
 
51647
63348
  That *_that;
51648
63349
 
51651
63352
};
51652
63353
 
51653
63354
 
51654
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63355
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51655
63356
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
51656
 
#line 51657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63357
#line 63358 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51657
63358
{
51658
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
51659
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
51660
 
this->__exec_old_C1(arg0, arg1, arg2);
51661
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
51662
 
 
 
63359
  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;
 
63360
    __TJP tjp;
 
63361
  tjp._that =  (__TJP::That*)this;
 
63362
    this->__exec_old_C1(arg0, arg1, arg2);
 
63363
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
63364
  
51663
63365
}
51664
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
51665
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63366
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
63367
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51666
63368
{
51667
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
63369
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
63370
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
51668
63371
  }
 
63372
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51669
63373
  static const char *NodeId ();
 
63374
  /** Get the name of the node. Can be compared with NodeId(). */
51670
63375
  const char *NodeName () const { return NodeId (); }
 
63376
  /** Get the number of sons. */
51671
63377
  int Sons () const { return CTree::Sons (sons, 4); }
 
63378
  /** Get the n-th son.
 
63379
   *  \param n The index of the son.
 
63380
   *  \return The n-th son or NULL. */
51672
63381
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
51673
63382
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
51674
63383
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
51675
63384
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
51676
63385
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
51677
63386
  CSemObject *SemObject () const { return (CSemObject*)this; }
51678
 
  void Members (CTree *m) { sons[3] = m; }
51679
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
51680
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
63387
  void Members (CTree *m) { AddSon (sons[3], m); }
 
63388
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
63389
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
63390
  /** Replace a son.
 
63391
   *  \param old_son The son to replace.
 
63392
   *  \param new_son The new son. */
51681
63393
  void ReplaceSon (CTree *old_son, CTree *new_son) {
51682
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
51683
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
63394
    CTree::ReplaceSon (sons, 4, old_son, new_son);
51684
63395
  }
51685
63396
   private:
51686
63397
 
51687
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
51688
 
 CTree * _intro_members ;
 
63398
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
63399
 Puma :: CTree * _intro_members ;
 
63400
Puma :: CTree * _base_intros ;
51689
63401
public :
51690
 
CTree * IntroMembers ( ) const { return _intro_members ; }
51691
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
51692
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51693
 
 
51694
 
#line 51695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
51695
 
 
51696
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
51697
 
  typedef void Result;
51698
 
  typedef ::Puma::CT_ClassDef That;
51699
 
  typedef ::Puma::CT_ClassDef Target;
51700
 
  static const int JPID = 4;
 
63402
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
63403
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
63404
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
63405
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
63406
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63407
 
 
63408
#line 63409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63409
 
 
63410
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
63411
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
63412
  typedef TResult Result;
 
63413
  typedef TThat   That;
 
63414
  typedef TTarget Target;
 
63415
  enum { ARGS = TArgs::ARGS };
 
63416
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
63417
  static const int JPID = 7249;
51701
63418
  static const AC::JPType JPTYPE = (AC::JPType)16;
51702
63419
  struct Res {
51703
63420
    typedef void Type;
51704
63421
    typedef void ReferredType;
51705
63422
  };
51706
 
  enum { ARGS = 1 };
51707
 
  template <int I, int DUMMY = 0> struct Arg {
51708
 
    typedef void Type;
51709
 
    typedef void ReferredType;
51710
 
  };
51711
 
  template <int DUMMY> struct Arg<0, DUMMY> {
51712
 
    typedef const ::Puma::CT_ClassDef & Type;
51713
 
    typedef const ::Puma::CT_ClassDef ReferredType;
51714
 
  };
51715
63423
 
51716
63424
  That *_that;
51717
63425
 
51720
63428
};
51721
63429
 
51722
63430
 
51723
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63431
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51724
63432
 
51725
 
#line 51726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63433
#line 63434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51726
63434
 
51727
63435
public:
51728
 
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) {
51729
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
51730
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
51731
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
63436
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) {
 
63437
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
63438
  __TJP tjp;
 
63439
  tjp._that =  (__TJP::That*)this;
 
63440
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
51732
63441
 
51733
63442
}
51734
63443
 
51735
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51736
 
 
51737
 
#line 51738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
51738
 
 
51739
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
51740
 
  typedef void Result;
51741
 
  typedef ::Puma::CT_ClassDef That;
51742
 
  typedef ::Puma::CT_ClassDef Target;
51743
 
  static const int JPID = 4;
 
63444
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63445
 
 
63446
#line 63447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63447
 
 
63448
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
63449
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
63450
  typedef TResult Result;
 
63451
  typedef TThat   That;
 
63452
  typedef TTarget Target;
 
63453
  enum { ARGS = TArgs::ARGS };
 
63454
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
63455
  static const int JPID = 7247;
51744
63456
  static const AC::JPType JPTYPE = (AC::JPType)32;
51745
63457
  struct Res {
51746
63458
    typedef void Type;
51747
63459
    typedef void ReferredType;
51748
63460
  };
51749
 
  enum { ARGS = 0 };
51750
 
  template <int I, int DUMMY = 0> struct Arg {
51751
 
    typedef void Type;
51752
 
    typedef void ReferredType;
51753
 
  };
51754
63461
 
51755
63462
  That *_that;
51756
63463
 
51759
63466
};
51760
63467
 
51761
63468
 
51762
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63469
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51763
63470
 
51764
 
#line 51765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63471
#line 63472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51765
63472
 
51766
63473
public:
51767
63474
inline ~CT_ClassDef () {
51768
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
51769
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
51770
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
63475
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
63476
  __TJP tjp;
 
63477
  tjp._that =  (__TJP::That*)this;
 
63478
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
51771
63479
 
51772
63480
}
51773
63481
 
51774
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63482
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51775
63483
};
51776
63484
      
51777
63485
 
51778
 
#line 51779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63486
#line 63487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51779
63487
} // closed Puma
 
63488
class CCExprResolve;
 
63489
class CExprResolve;
51780
63490
class WinIfExists;
51781
63491
class WinImportHandler;
51782
63492
class WinMacros;
51783
 
class CMatchSyntax;
51784
 
class ExtGnu;
 
63493
class WinAsm;
 
63494
class WinDeclSpecs;
 
63495
class WinMemberExplSpec;
 
63496
class WinTypeKeywords;
 
63497
class WinFriend;
51785
63498
class ExtAC;
51786
63499
class ExtACBuilderCoupling;
51787
63500
class ExtACSyntaxCoupling;
51788
63501
class ExtACTree;
51789
63502
class ExtACKeywords;
51790
 
class WinAsm;
51791
 
class WinDeclSpecs;
51792
 
class WinMemberExplSpec;
51793
 
class WinTypeKeywords;
 
63503
class ExtGnu;
51794
63504
class PragmaOnceUnitState;
51795
63505
class PragmaOnce;
51796
 
class CCExprResolve;
51797
 
class CExprResolve;
 
63506
class CMatchSyntax;
51798
63507
namespace Puma {
51799
63508
 
51800
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63509
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51801
63510
class CT_UnionDef : public CT_ClassDef {
51802
 
#line 51803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63511
#line 63512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63512
  friend class ::CCExprResolve;
 
63513
  friend class ::CExprResolve;
51803
63514
  friend class ::WinIfExists;
51804
63515
  friend class ::WinImportHandler;
51805
63516
  friend class ::WinMacros;
51806
 
  friend class ::CMatchSyntax;
51807
 
  friend class ::ExtGnu;
 
63517
  friend class ::WinAsm;
 
63518
  friend class ::WinDeclSpecs;
 
63519
  friend class ::WinMemberExplSpec;
 
63520
  friend class ::WinTypeKeywords;
 
63521
  friend class ::WinFriend;
51808
63522
  friend class ::ExtAC;
51809
63523
  friend class ::ExtACBuilderCoupling;
51810
63524
  friend class ::ExtACSyntaxCoupling;
51811
63525
  friend class ::ExtACTree;
51812
63526
  friend class ::ExtACKeywords;
51813
 
  friend class ::WinAsm;
51814
 
  friend class ::WinDeclSpecs;
51815
 
  friend class ::WinMemberExplSpec;
51816
 
  friend class ::WinTypeKeywords;
 
63527
  friend class ::ExtGnu;
51817
63528
  friend class ::PragmaOnceUnitState;
51818
63529
  friend class ::PragmaOnce;
51819
 
  friend class ::CCExprResolve;
51820
 
  friend class ::CExprResolve;
 
63530
  friend class ::CMatchSyntax;
51821
63531
 
51822
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63532
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51823
63533
 
51824
63534
public:
51825
63535
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
51826
63536
  static const char *NodeId ();
 
63537
  /** Get the name of the node. Can be compared with NodeId(). */
51827
63538
  const char *NodeName () const { return NodeId (); }
51828
63539
};
51829
63540
      
51830
63541
 
51831
 
#line 51832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63542
#line 63543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51832
63543
} // closed Puma
 
63544
class CCExprResolve;
 
63545
class CExprResolve;
51833
63546
class WinIfExists;
51834
63547
class WinImportHandler;
51835
63548
class WinMacros;
51836
 
class CMatchSyntax;
51837
 
class ExtGnu;
 
63549
class WinAsm;
 
63550
class WinDeclSpecs;
 
63551
class WinMemberExplSpec;
 
63552
class WinTypeKeywords;
 
63553
class WinFriend;
51838
63554
class ExtAC;
51839
63555
class ExtACBuilderCoupling;
51840
63556
class ExtACSyntaxCoupling;
51841
63557
class ExtACTree;
51842
63558
class ExtACKeywords;
51843
 
class WinAsm;
51844
 
class WinDeclSpecs;
51845
 
class WinMemberExplSpec;
51846
 
class WinTypeKeywords;
 
63559
class ExtGnu;
51847
63560
class PragmaOnceUnitState;
51848
63561
class PragmaOnce;
51849
 
class CCExprResolve;
51850
 
class CExprResolve;
 
63562
class CMatchSyntax;
51851
63563
namespace Puma {
51852
63564
 
51853
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63565
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51854
63566
class CT_MembList : public CT_DeclList, public CSemScope {
51855
 
#line 51856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63567
#line 63568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63568
  friend class ::CCExprResolve;
 
63569
  friend class ::CExprResolve;
51856
63570
  friend class ::WinIfExists;
51857
63571
  friend class ::WinImportHandler;
51858
63572
  friend class ::WinMacros;
51859
 
  friend class ::CMatchSyntax;
51860
 
  friend class ::ExtGnu;
 
63573
  friend class ::WinAsm;
 
63574
  friend class ::WinDeclSpecs;
 
63575
  friend class ::WinMemberExplSpec;
 
63576
  friend class ::WinTypeKeywords;
 
63577
  friend class ::WinFriend;
51861
63578
  friend class ::ExtAC;
51862
63579
  friend class ::ExtACBuilderCoupling;
51863
63580
  friend class ::ExtACSyntaxCoupling;
51864
63581
  friend class ::ExtACTree;
51865
63582
  friend class ::ExtACKeywords;
51866
 
  friend class ::WinAsm;
51867
 
  friend class ::WinDeclSpecs;
51868
 
  friend class ::WinMemberExplSpec;
51869
 
  friend class ::WinTypeKeywords;
 
63583
  friend class ::ExtGnu;
51870
63584
  friend class ::PragmaOnceUnitState;
51871
63585
  friend class ::PragmaOnce;
51872
 
  friend class ::CCExprResolve;
51873
 
  friend class ::CExprResolve;
 
63586
  friend class ::CMatchSyntax;
51874
63587
 
51875
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63588
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51876
63589
 
51877
63590
public:
51878
63591
  CT_MembList (int size = 10, int incr = 10) : 
51879
63592
    CT_DeclList (size, incr) {}
 
63593
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51880
63594
  static const char *NodeId ();
 
63595
  /** Get the name of the node. Can be compared with NodeId(). */
51881
63596
  const char *NodeName () const { return NodeId (); }
 
63597
  CSemScope *SemScope () const { return (CSemScope*)this; }
51882
63598
};
51883
63599
 
51884
63600
 
51885
 
#line 51886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63601
#line 63602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51886
63602
} // closed Puma
 
63603
class CCExprResolve;
 
63604
class CExprResolve;
51887
63605
class WinIfExists;
51888
63606
class WinImportHandler;
51889
63607
class WinMacros;
51890
 
class CMatchSyntax;
51891
 
class ExtGnu;
 
63608
class WinAsm;
 
63609
class WinDeclSpecs;
 
63610
class WinMemberExplSpec;
 
63611
class WinTypeKeywords;
 
63612
class WinFriend;
51892
63613
class ExtAC;
51893
63614
class ExtACBuilderCoupling;
51894
63615
class ExtACSyntaxCoupling;
51895
63616
class ExtACTree;
51896
63617
class ExtACKeywords;
51897
 
class WinAsm;
51898
 
class WinDeclSpecs;
51899
 
class WinMemberExplSpec;
51900
 
class WinTypeKeywords;
 
63618
class ExtGnu;
51901
63619
class PragmaOnceUnitState;
51902
63620
class PragmaOnce;
51903
 
class CCExprResolve;
51904
 
class CExprResolve;
 
63621
class CMatchSyntax;
51905
63622
namespace Puma {
51906
63623
 
51907
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63624
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51908
63625
class CT_MembInitList : public CT_List, public CSemScope {
51909
 
#line 51910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63626
#line 63627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63627
  friend class ::CCExprResolve;
 
63628
  friend class ::CExprResolve;
51910
63629
  friend class ::WinIfExists;
51911
63630
  friend class ::WinImportHandler;
51912
63631
  friend class ::WinMacros;
51913
 
  friend class ::CMatchSyntax;
51914
 
  friend class ::ExtGnu;
 
63632
  friend class ::WinAsm;
 
63633
  friend class ::WinDeclSpecs;
 
63634
  friend class ::WinMemberExplSpec;
 
63635
  friend class ::WinTypeKeywords;
 
63636
  friend class ::WinFriend;
51915
63637
  friend class ::ExtAC;
51916
63638
  friend class ::ExtACBuilderCoupling;
51917
63639
  friend class ::ExtACSyntaxCoupling;
51918
63640
  friend class ::ExtACTree;
51919
63641
  friend class ::ExtACKeywords;
51920
 
  friend class ::WinAsm;
51921
 
  friend class ::WinDeclSpecs;
51922
 
  friend class ::WinMemberExplSpec;
51923
 
  friend class ::WinTypeKeywords;
 
63642
  friend class ::ExtGnu;
51924
63643
  friend class ::PragmaOnceUnitState;
51925
63644
  friend class ::PragmaOnce;
51926
 
  friend class ::CCExprResolve;
51927
 
  friend class ::CExprResolve;
 
63645
  friend class ::CMatchSyntax;
51928
63646
 
51929
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63647
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51930
63648
 
51931
63649
public:
51932
63650
  CT_MembInitList (int size = 2) : 
51933
63651
    CT_List (size, 2, CT_List::OPEN) {}
51934
63652
  static const char *NodeId ();
 
63653
  /** Get the name of the node. Can be compared with NodeId(). */
51935
63654
  const char *NodeName () const { return NodeId (); }
 
63655
  CSemScope *SemScope () const { return (CSemScope*)this; }
51936
63656
};
51937
63657
 
51938
63658
 
51939
 
#line 51940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63659
#line 63660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
51940
63660
} // closed Puma
 
63661
class CCExprResolve;
 
63662
class CExprResolve;
51941
63663
class WinIfExists;
51942
63664
class WinImportHandler;
51943
63665
class WinMacros;
51944
 
class CMatchSyntax;
51945
 
class ExtGnu;
 
63666
class WinAsm;
 
63667
class WinDeclSpecs;
 
63668
class WinMemberExplSpec;
 
63669
class WinTypeKeywords;
 
63670
class WinFriend;
51946
63671
class ExtAC;
51947
63672
class ExtACBuilderCoupling;
51948
63673
class ExtACSyntaxCoupling;
51949
63674
class ExtACTree;
51950
63675
class ExtACKeywords;
51951
 
class WinAsm;
51952
 
class WinDeclSpecs;
51953
 
class WinMemberExplSpec;
51954
 
class WinTypeKeywords;
 
63676
class ExtGnu;
51955
63677
class PragmaOnceUnitState;
51956
63678
class PragmaOnce;
51957
 
class CCExprResolve;
51958
 
class CExprResolve;
51959
 
namespace Puma {
51960
 
 
51961
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63679
class CMatchSyntax;
 
63680
namespace Puma {
 
63681
 
 
63682
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63683
 
 
63684
#line 63685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63685
} // closed Puma
 
63686
 
 
63687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63689
#include "CCExprResolveH.ah"
 
63690
#endif
 
63691
namespace Puma {
 
63692
 
 
63693
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63694
 
 
63695
#line 63696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63696
} // closed Puma
 
63697
 
 
63698
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63699
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63700
#include "CExprResolveH.ah"
 
63701
#endif
 
63702
namespace Puma {
 
63703
 
 
63704
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51962
63705
class CT_MembInit : public CT_Expression, public CSemObject {
51963
 
#line 51964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63706
#line 63707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63707
  friend class ::CCExprResolve;
 
63708
  friend class ::CExprResolve;
51964
63709
  friend class ::WinIfExists;
51965
63710
  friend class ::WinImportHandler;
51966
63711
  friend class ::WinMacros;
51967
 
  friend class ::CMatchSyntax;
51968
 
  friend class ::ExtGnu;
 
63712
  friend class ::WinAsm;
 
63713
  friend class ::WinDeclSpecs;
 
63714
  friend class ::WinMemberExplSpec;
 
63715
  friend class ::WinTypeKeywords;
 
63716
  friend class ::WinFriend;
51969
63717
  friend class ::ExtAC;
51970
63718
  friend class ::ExtACBuilderCoupling;
51971
63719
  friend class ::ExtACSyntaxCoupling;
51972
63720
  friend class ::ExtACTree;
51973
63721
  friend class ::ExtACKeywords;
51974
 
  friend class ::WinAsm;
51975
 
  friend class ::WinDeclSpecs;
51976
 
  friend class ::WinMemberExplSpec;
51977
 
  friend class ::WinTypeKeywords;
 
63722
  friend class ::ExtGnu;
51978
63723
  friend class ::PragmaOnceUnitState;
51979
63724
  friend class ::PragmaOnce;
51980
 
  friend class ::CCExprResolve;
51981
 
  friend class ::CExprResolve;
 
63725
  friend class ::CMatchSyntax;
51982
63726
 
51983
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63727
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51984
63728
 
51985
63729
  CTree *sons[2]; // name, init
51986
63730
 
51987
63731
public:
51988
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
63732
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
63733
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51989
63734
  static const char *NodeId ();
 
63735
  /** Get the name of the node. Can be compared with NodeId(). */
51990
63736
  const char *NodeName () const { return NodeId (); }
 
63737
  /** Get the number of sons. */
51991
63738
  int Sons () const { return 2; }
 
63739
  /** Get the n-th son.
 
63740
   *  \param n The index of the son.
 
63741
   *  \return The n-th son or NULL. */
51992
63742
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
63743
  /** Replace a son.
 
63744
   *  \param old_son The son to replace.
 
63745
   *  \param new_son The new son. */
51993
63746
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51994
63747
    CTree::ReplaceSon (sons, 2, old_son, new_son);
51995
63748
  }
51999
63752
   private:
52000
63753
  typedef CT_MembInit CCExprResolveExpr;
52001
63754
 
52002
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63755
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52003
63756
 public :
52004
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63757
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52005
63758
  typedef CT_MembInit CExprResolveExpr;
52006
63759
 
52007
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63760
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52008
63761
 public :
52009
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52010
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63762
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63763
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52011
63764
};
52012
63765
 
52013
63766
 
52014
 
#line 52015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63767
#line 63768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52015
63768
} // closed Puma
 
63769
class CCExprResolve;
 
63770
class CExprResolve;
52016
63771
class WinIfExists;
52017
63772
class WinImportHandler;
52018
63773
class WinMacros;
52019
 
class CMatchSyntax;
52020
 
class ExtGnu;
 
63774
class WinAsm;
 
63775
class WinDeclSpecs;
 
63776
class WinMemberExplSpec;
 
63777
class WinTypeKeywords;
 
63778
class WinFriend;
52021
63779
class ExtAC;
52022
63780
class ExtACBuilderCoupling;
52023
63781
class ExtACSyntaxCoupling;
52024
63782
class ExtACTree;
52025
63783
class ExtACKeywords;
52026
 
class WinAsm;
52027
 
class WinDeclSpecs;
52028
 
class WinMemberExplSpec;
52029
 
class WinTypeKeywords;
 
63784
class ExtGnu;
52030
63785
class PragmaOnceUnitState;
52031
63786
class PragmaOnce;
52032
 
class CCExprResolve;
52033
 
class CExprResolve;
 
63787
class CMatchSyntax;
52034
63788
namespace Puma {
52035
63789
 
52036
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63790
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52037
63791
class CT_BaseSpecList : public CT_List {
52038
 
#line 52039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63792
#line 63793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63793
  friend class ::CCExprResolve;
 
63794
  friend class ::CExprResolve;
52039
63795
  friend class ::WinIfExists;
52040
63796
  friend class ::WinImportHandler;
52041
63797
  friend class ::WinMacros;
52042
 
  friend class ::CMatchSyntax;
52043
 
  friend class ::ExtGnu;
 
63798
  friend class ::WinAsm;
 
63799
  friend class ::WinDeclSpecs;
 
63800
  friend class ::WinMemberExplSpec;
 
63801
  friend class ::WinTypeKeywords;
 
63802
  friend class ::WinFriend;
52044
63803
  friend class ::ExtAC;
52045
63804
  friend class ::ExtACBuilderCoupling;
52046
63805
  friend class ::ExtACSyntaxCoupling;
52047
63806
  friend class ::ExtACTree;
52048
63807
  friend class ::ExtACKeywords;
52049
 
  friend class ::WinAsm;
52050
 
  friend class ::WinDeclSpecs;
52051
 
  friend class ::WinMemberExplSpec;
52052
 
  friend class ::WinTypeKeywords;
 
63808
  friend class ::ExtGnu;
52053
63809
  friend class ::PragmaOnceUnitState;
52054
63810
  friend class ::PragmaOnce;
52055
 
  friend class ::CCExprResolve;
52056
 
  friend class ::CExprResolve;
 
63811
  friend class ::CMatchSyntax;
52057
63812
 
52058
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63813
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52059
63814
 
52060
63815
public:
52061
63816
  CT_BaseSpecList (int size = 2) : 
52062
63817
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
63818
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52063
63819
  static const char *NodeId ();
 
63820
  /** Get the name of the node. Can be compared with NodeId(). */
52064
63821
  const char *NodeName () const { return NodeId (); }
52065
63822
};
52066
63823
 
52067
63824
 
52068
 
#line 52069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63825
#line 63826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52069
63826
} // closed Puma
 
63827
class CCExprResolve;
 
63828
class CExprResolve;
52070
63829
class WinIfExists;
52071
63830
class WinImportHandler;
52072
63831
class WinMacros;
52073
 
class CMatchSyntax;
52074
 
class ExtGnu;
 
63832
class WinAsm;
 
63833
class WinDeclSpecs;
 
63834
class WinMemberExplSpec;
 
63835
class WinTypeKeywords;
 
63836
class WinFriend;
52075
63837
class ExtAC;
52076
63838
class ExtACBuilderCoupling;
52077
63839
class ExtACSyntaxCoupling;
52078
63840
class ExtACTree;
52079
63841
class ExtACKeywords;
52080
 
class WinAsm;
52081
 
class WinDeclSpecs;
52082
 
class WinMemberExplSpec;
52083
 
class WinTypeKeywords;
 
63842
class ExtGnu;
52084
63843
class PragmaOnceUnitState;
52085
63844
class PragmaOnce;
52086
 
class CCExprResolve;
52087
 
class CExprResolve;
 
63845
class CMatchSyntax;
52088
63846
namespace Puma {
52089
63847
 
52090
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63848
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52091
63849
class CT_AccessSpec : public CTree {
52092
 
#line 52093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63850
#line 63851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63851
  friend class ::CCExprResolve;
 
63852
  friend class ::CExprResolve;
52093
63853
  friend class ::WinIfExists;
52094
63854
  friend class ::WinImportHandler;
52095
63855
  friend class ::WinMacros;
52096
 
  friend class ::CMatchSyntax;
52097
 
  friend class ::ExtGnu;
 
63856
  friend class ::WinAsm;
 
63857
  friend class ::WinDeclSpecs;
 
63858
  friend class ::WinMemberExplSpec;
 
63859
  friend class ::WinTypeKeywords;
 
63860
  friend class ::WinFriend;
52098
63861
  friend class ::ExtAC;
52099
63862
  friend class ::ExtACBuilderCoupling;
52100
63863
  friend class ::ExtACSyntaxCoupling;
52101
63864
  friend class ::ExtACTree;
52102
63865
  friend class ::ExtACKeywords;
52103
 
  friend class ::WinAsm;
52104
 
  friend class ::WinDeclSpecs;
52105
 
  friend class ::WinMemberExplSpec;
52106
 
  friend class ::WinTypeKeywords;
 
63866
  friend class ::ExtGnu;
52107
63867
  friend class ::PragmaOnceUnitState;
52108
63868
  friend class ::PragmaOnce;
52109
 
  friend class ::CCExprResolve;
52110
 
  friend class ::CExprResolve;
 
63869
  friend class ::CMatchSyntax;
52111
63870
 
52112
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63871
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52113
63872
 
52114
63873
  CTree *sons[2]; // access, colon
52115
63874
 
52116
63875
public:
52117
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
63876
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
63877
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52118
63878
  static const char *NodeId ();
 
63879
  /** Get the name of the node. Can be compared with NodeId(). */
52119
63880
  const char *NodeName () const { return NodeId (); }
 
63881
  /** Get the number of sons. */
52120
63882
  int Sons () const { return 2; }
 
63883
  /** Get the n-th son.
 
63884
   *  \param n The index of the son.
 
63885
   *  \return The n-th son or NULL. */
52121
63886
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52122
63887
  int Access () const { return sons[0]->token ()->type (); }
 
63888
  /** Replace a son.
 
63889
   *  \param old_son The son to replace.
 
63890
   *  \param new_son The new son. */
52123
63891
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52124
63892
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52125
63893
  }
52126
63894
};
52127
63895
 
52128
63896
 
52129
 
#line 52130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63897
#line 63898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52130
63898
} // closed Puma
 
63899
class CCExprResolve;
 
63900
class CExprResolve;
52131
63901
class WinIfExists;
52132
63902
class WinImportHandler;
52133
63903
class WinMacros;
52134
 
class CMatchSyntax;
52135
 
class ExtGnu;
 
63904
class WinAsm;
 
63905
class WinDeclSpecs;
 
63906
class WinMemberExplSpec;
 
63907
class WinTypeKeywords;
 
63908
class WinFriend;
52136
63909
class ExtAC;
52137
63910
class ExtACBuilderCoupling;
52138
63911
class ExtACSyntaxCoupling;
52139
63912
class ExtACTree;
52140
63913
class ExtACKeywords;
52141
 
class WinAsm;
52142
 
class WinDeclSpecs;
52143
 
class WinMemberExplSpec;
52144
 
class WinTypeKeywords;
 
63914
class ExtGnu;
52145
63915
class PragmaOnceUnitState;
52146
63916
class PragmaOnce;
52147
 
class CCExprResolve;
52148
 
class CExprResolve;
 
63917
class CMatchSyntax;
52149
63918
namespace Puma {
52150
63919
 
52151
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63920
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52152
63921
class CT_BaseSpec : public CTree {
52153
 
#line 52154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63922
#line 63923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
63923
  friend class ::CCExprResolve;
 
63924
  friend class ::CExprResolve;
52154
63925
  friend class ::WinIfExists;
52155
63926
  friend class ::WinImportHandler;
52156
63927
  friend class ::WinMacros;
52157
 
  friend class ::CMatchSyntax;
52158
 
  friend class ::ExtGnu;
 
63928
  friend class ::WinAsm;
 
63929
  friend class ::WinDeclSpecs;
 
63930
  friend class ::WinMemberExplSpec;
 
63931
  friend class ::WinTypeKeywords;
 
63932
  friend class ::WinFriend;
52159
63933
  friend class ::ExtAC;
52160
63934
  friend class ::ExtACBuilderCoupling;
52161
63935
  friend class ::ExtACSyntaxCoupling;
52162
63936
  friend class ::ExtACTree;
52163
63937
  friend class ::ExtACKeywords;
52164
 
  friend class ::WinAsm;
52165
 
  friend class ::WinDeclSpecs;
52166
 
  friend class ::WinMemberExplSpec;
52167
 
  friend class ::WinTypeKeywords;
 
63938
  friend class ::ExtGnu;
52168
63939
  friend class ::PragmaOnceUnitState;
52169
63940
  friend class ::PragmaOnce;
52170
 
  friend class ::CCExprResolve;
52171
 
  friend class ::CExprResolve;
 
63941
  friend class ::CMatchSyntax;
52172
63942
 
52173
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63943
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52174
63944
 
52175
63945
  CTree *sons[3]; // virtual, access, name
52176
63946
 
52177
63947
public:
52178
63948
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
52179
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
63949
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
52180
63950
  }
 
63951
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52181
63952
  static const char *NodeId ();
 
63953
  /** Get the name of the node. Can be compared with NodeId(). */
52182
63954
  const char *NodeName () const { return NodeId (); }
 
63955
  /** Get the number of sons. */
52183
63956
  int Sons () const { return CTree::Sons (sons, 3); }
 
63957
  /** Get the n-th son.
 
63958
   *  \param n The index of the son.
 
63959
   *  \return The n-th son or NULL. */
52184
63960
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
52185
63961
  int Access () const { return sons[1]->token ()->type (); }
52186
63962
  CTree *AccessSpec () const { return sons[1]; }
52187
63963
  CTree *Virtual () const { return sons[0]; }
52188
63964
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
63965
  /** Replace a son.
 
63966
   *  \param old_son The son to replace.
 
63967
   *  \param new_son The new son. */
52189
63968
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52190
63969
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52191
63970
  }
52192
63971
};
52193
63972
 
52194
63973
 
52195
 
#line 52196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63974
#line 63975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52196
63975
} // closed Puma
 
63976
class CCExprResolve;
 
63977
class CExprResolve;
52197
63978
class WinIfExists;
52198
63979
class WinImportHandler;
52199
63980
class WinMacros;
52200
 
class CMatchSyntax;
52201
 
class ExtGnu;
 
63981
class WinAsm;
 
63982
class WinDeclSpecs;
 
63983
class WinMemberExplSpec;
 
63984
class WinTypeKeywords;
 
63985
class WinFriend;
52202
63986
class ExtAC;
52203
63987
class ExtACBuilderCoupling;
52204
63988
class ExtACSyntaxCoupling;
52205
63989
class ExtACTree;
52206
63990
class ExtACKeywords;
52207
 
class WinAsm;
52208
 
class WinDeclSpecs;
52209
 
class WinMemberExplSpec;
52210
 
class WinTypeKeywords;
 
63991
class ExtGnu;
52211
63992
class PragmaOnceUnitState;
52212
63993
class PragmaOnce;
52213
 
class CCExprResolve;
52214
 
class CExprResolve;
 
63994
class CMatchSyntax;
52215
63995
namespace Puma {
52216
63996
 
52217
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63997
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52218
63998
class CT_AccessDecl : public CT_Decl {
52219
 
#line 52220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
63999
#line 64000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64000
  friend class ::CCExprResolve;
 
64001
  friend class ::CExprResolve;
52220
64002
  friend class ::WinIfExists;
52221
64003
  friend class ::WinImportHandler;
52222
64004
  friend class ::WinMacros;
52223
 
  friend class ::CMatchSyntax;
52224
 
  friend class ::ExtGnu;
 
64005
  friend class ::WinAsm;
 
64006
  friend class ::WinDeclSpecs;
 
64007
  friend class ::WinMemberExplSpec;
 
64008
  friend class ::WinTypeKeywords;
 
64009
  friend class ::WinFriend;
52225
64010
  friend class ::ExtAC;
52226
64011
  friend class ::ExtACBuilderCoupling;
52227
64012
  friend class ::ExtACSyntaxCoupling;
52228
64013
  friend class ::ExtACTree;
52229
64014
  friend class ::ExtACKeywords;
52230
 
  friend class ::WinAsm;
52231
 
  friend class ::WinDeclSpecs;
52232
 
  friend class ::WinMemberExplSpec;
52233
 
  friend class ::WinTypeKeywords;
 
64015
  friend class ::ExtGnu;
52234
64016
  friend class ::PragmaOnceUnitState;
52235
64017
  friend class ::PragmaOnce;
52236
 
  friend class ::CCExprResolve;
52237
 
  friend class ::CExprResolve;
 
64018
  friend class ::CMatchSyntax;
52238
64019
 
52239
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64020
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52240
64021
 
52241
64022
  CTree *sons[2]; // name, semi_colon
52242
64023
 
52243
64024
public:
52244
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
64025
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
64026
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52245
64027
  static const char *NodeId ();
 
64028
  /** Get the name of the node. Can be compared with NodeId(). */
52246
64029
  const char *NodeName () const { return NodeId (); }
 
64030
  /** Get the number of sons. */
52247
64031
  int Sons () const { return 2; }
 
64032
  /** Get the n-th son.
 
64033
   *  \param n The index of the son.
 
64034
   *  \return The n-th son or NULL. */
52248
64035
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
52249
64036
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
64037
  /** Replace a son.
 
64038
   *  \param old_son The son to replace.
 
64039
   *  \param new_son The new son. */
52250
64040
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52251
64041
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52252
64042
  }
52253
64043
};
52254
64044
 
52255
64045
 
52256
 
#line 52257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64046
#line 64047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52257
64047
} // closed Puma
 
64048
class CCExprResolve;
 
64049
class CExprResolve;
52258
64050
class WinIfExists;
52259
64051
class WinImportHandler;
52260
64052
class WinMacros;
52261
 
class CMatchSyntax;
52262
 
class ExtGnu;
 
64053
class WinAsm;
 
64054
class WinDeclSpecs;
 
64055
class WinMemberExplSpec;
 
64056
class WinTypeKeywords;
 
64057
class WinFriend;
52263
64058
class ExtAC;
52264
64059
class ExtACBuilderCoupling;
52265
64060
class ExtACSyntaxCoupling;
52266
64061
class ExtACTree;
52267
64062
class ExtACKeywords;
52268
 
class WinAsm;
52269
 
class WinDeclSpecs;
52270
 
class WinMemberExplSpec;
52271
 
class WinTypeKeywords;
 
64063
class ExtGnu;
52272
64064
class PragmaOnceUnitState;
52273
64065
class PragmaOnce;
52274
 
class CCExprResolve;
52275
 
class CExprResolve;
 
64066
class CMatchSyntax;
52276
64067
namespace Puma {
52277
64068
 
52278
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64069
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52279
64070
class CT_UsingDecl : public CT_AccessDecl {
52280
 
#line 52281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64071
#line 64072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64072
  friend class ::CCExprResolve;
 
64073
  friend class ::CExprResolve;
52281
64074
  friend class ::WinIfExists;
52282
64075
  friend class ::WinImportHandler;
52283
64076
  friend class ::WinMacros;
52284
 
  friend class ::CMatchSyntax;
52285
 
  friend class ::ExtGnu;
 
64077
  friend class ::WinAsm;
 
64078
  friend class ::WinDeclSpecs;
 
64079
  friend class ::WinMemberExplSpec;
 
64080
  friend class ::WinTypeKeywords;
 
64081
  friend class ::WinFriend;
52286
64082
  friend class ::ExtAC;
52287
64083
  friend class ::ExtACBuilderCoupling;
52288
64084
  friend class ::ExtACSyntaxCoupling;
52289
64085
  friend class ::ExtACTree;
52290
64086
  friend class ::ExtACKeywords;
52291
 
  friend class ::WinAsm;
52292
 
  friend class ::WinDeclSpecs;
52293
 
  friend class ::WinMemberExplSpec;
52294
 
  friend class ::WinTypeKeywords;
 
64087
  friend class ::ExtGnu;
52295
64088
  friend class ::PragmaOnceUnitState;
52296
64089
  friend class ::PragmaOnce;
52297
 
  friend class ::CCExprResolve;
52298
 
  friend class ::CExprResolve;
 
64090
  friend class ::CMatchSyntax;
52299
64091
 
52300
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64092
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52301
64093
 
52302
64094
  CTree *sons[2]; // using, typename
52303
64095
 
52304
64096
public:
52305
64097
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
52306
 
    sons[0] = u; sons[1] = 0; 
 
64098
    AddSon (sons[0], u); AddSon (sons[1], 0); 
52307
64099
  }
52308
64100
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
52309
 
    sons[0] = u; sons[1] = t; 
 
64101
    AddSon (sons[0], u); AddSon (sons[1], t); 
52310
64102
  }
 
64103
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52311
64104
  static const char *NodeId ();
 
64105
  /** Get the name of the node. Can be compared with NodeId(). */
52312
64106
  const char *NodeName () const { return NodeId (); }
 
64107
  /** Get the number of sons. */
52313
64108
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
64109
  /** Get the n-th son.
 
64110
   *  \param n The index of the son.
 
64111
   *  \return The n-th son or NULL. */
52314
64112
  CTree *Son (int n) const {
52315
64113
    int num = CTree::Sons (sons, 2);
52316
64114
    CTree *result = CTree::Son (sons, 2, n);
52317
64115
    return result ? result : CT_AccessDecl::Son (n-num);
52318
64116
  }
52319
64117
  CTree *Typename () const { return sons[1]; }
 
64118
  /** Replace a son.
 
64119
   *  \param old_son The son to replace.
 
64120
   *  \param new_son The new son. */
52320
64121
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52321
64122
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52322
64123
    CT_AccessDecl::ReplaceSon (old_son, new_son);
52330
64131
/*****************************************************************************/
52331
64132
 
52332
64133
 
52333
 
#line 52334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64134
#line 64135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52334
64135
} // closed Puma
 
64136
class CCExprResolve;
 
64137
class CExprResolve;
52335
64138
class WinIfExists;
52336
64139
class WinImportHandler;
52337
64140
class WinMacros;
52338
 
class CMatchSyntax;
52339
 
class ExtGnu;
 
64141
class WinAsm;
 
64142
class WinDeclSpecs;
 
64143
class WinMemberExplSpec;
 
64144
class WinTypeKeywords;
 
64145
class WinFriend;
52340
64146
class ExtAC;
52341
64147
class ExtACBuilderCoupling;
52342
64148
class ExtACSyntaxCoupling;
52343
64149
class ExtACTree;
52344
64150
class ExtACKeywords;
52345
 
class WinAsm;
52346
 
class WinDeclSpecs;
52347
 
class WinMemberExplSpec;
52348
 
class WinTypeKeywords;
 
64151
class ExtGnu;
52349
64152
class PragmaOnceUnitState;
52350
64153
class PragmaOnce;
52351
 
class CCExprResolve;
52352
 
class CExprResolve;
 
64154
class CMatchSyntax;
52353
64155
namespace Puma {
52354
64156
 
52355
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64157
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52356
64158
class CT_Any : public CTree {
52357
 
#line 52358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64159
#line 64160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64160
  friend class ::CCExprResolve;
 
64161
  friend class ::CExprResolve;
52358
64162
  friend class ::WinIfExists;
52359
64163
  friend class ::WinImportHandler;
52360
64164
  friend class ::WinMacros;
52361
 
  friend class ::CMatchSyntax;
52362
 
  friend class ::ExtGnu;
 
64165
  friend class ::WinAsm;
 
64166
  friend class ::WinDeclSpecs;
 
64167
  friend class ::WinMemberExplSpec;
 
64168
  friend class ::WinTypeKeywords;
 
64169
  friend class ::WinFriend;
52363
64170
  friend class ::ExtAC;
52364
64171
  friend class ::ExtACBuilderCoupling;
52365
64172
  friend class ::ExtACSyntaxCoupling;
52366
64173
  friend class ::ExtACTree;
52367
64174
  friend class ::ExtACKeywords;
52368
 
  friend class ::WinAsm;
52369
 
  friend class ::WinDeclSpecs;
52370
 
  friend class ::WinMemberExplSpec;
52371
 
  friend class ::WinTypeKeywords;
 
64175
  friend class ::ExtGnu;
52372
64176
  friend class ::PragmaOnceUnitState;
52373
64177
  friend class ::PragmaOnce;
52374
 
  friend class ::CCExprResolve;
52375
 
  friend class ::CExprResolve;
 
64178
  friend class ::CMatchSyntax;
52376
64179
 
52377
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64180
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52378
64181
 
52379
64182
  CTree *sons[2]; // keyword, extension
52380
64183
 
52381
64184
public:
52382
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
64185
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
64186
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52383
64187
  static const char *NodeId ();
 
64188
  /** Get the name of the node. Can be compared with NodeId(). */
52384
64189
  const char *NodeName () const { return NodeId (); }
 
64190
  /** Get the number of sons. */
52385
64191
  int Sons () const { return CTree::Sons (sons, 2); }
 
64192
  /** Get the n-th son.
 
64193
   *  \param n The index of the son.
 
64194
   *  \return The n-th son or NULL. */
52386
64195
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64196
  /** Replace a son.
 
64197
   *  \param old_son The son to replace.
 
64198
   *  \param new_son The new son. */
52387
64199
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52388
64200
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52389
64201
  }
52392
64204
};
52393
64205
 
52394
64206
 
52395
 
#line 52396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64207
#line 64208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52396
64208
} // closed Puma
 
64209
class CCExprResolve;
 
64210
class CExprResolve;
52397
64211
class WinIfExists;
52398
64212
class WinImportHandler;
52399
64213
class WinMacros;
52400
 
class CMatchSyntax;
52401
 
class ExtGnu;
 
64214
class WinAsm;
 
64215
class WinDeclSpecs;
 
64216
class WinMemberExplSpec;
 
64217
class WinTypeKeywords;
 
64218
class WinFriend;
52402
64219
class ExtAC;
52403
64220
class ExtACBuilderCoupling;
52404
64221
class ExtACSyntaxCoupling;
52405
64222
class ExtACTree;
52406
64223
class ExtACKeywords;
52407
 
class WinAsm;
52408
 
class WinDeclSpecs;
52409
 
class WinMemberExplSpec;
52410
 
class WinTypeKeywords;
 
64224
class ExtGnu;
52411
64225
class PragmaOnceUnitState;
52412
64226
class PragmaOnce;
52413
 
class CCExprResolve;
52414
 
class CExprResolve;
 
64227
class CMatchSyntax;
52415
64228
namespace Puma {
52416
64229
 
52417
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64230
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52418
64231
class CT_AnyList : public CT_Any {
52419
 
#line 52420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64232
#line 64233 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64233
  friend class ::CCExprResolve;
 
64234
  friend class ::CExprResolve;
52420
64235
  friend class ::WinIfExists;
52421
64236
  friend class ::WinImportHandler;
52422
64237
  friend class ::WinMacros;
52423
 
  friend class ::CMatchSyntax;
52424
 
  friend class ::ExtGnu;
 
64238
  friend class ::WinAsm;
 
64239
  friend class ::WinDeclSpecs;
 
64240
  friend class ::WinMemberExplSpec;
 
64241
  friend class ::WinTypeKeywords;
 
64242
  friend class ::WinFriend;
52425
64243
  friend class ::ExtAC;
52426
64244
  friend class ::ExtACBuilderCoupling;
52427
64245
  friend class ::ExtACSyntaxCoupling;
52428
64246
  friend class ::ExtACTree;
52429
64247
  friend class ::ExtACKeywords;
52430
 
  friend class ::WinAsm;
52431
 
  friend class ::WinDeclSpecs;
52432
 
  friend class ::WinMemberExplSpec;
52433
 
  friend class ::WinTypeKeywords;
 
64248
  friend class ::ExtGnu;
52434
64249
  friend class ::PragmaOnceUnitState;
52435
64250
  friend class ::PragmaOnce;
52436
 
  friend class ::CCExprResolve;
52437
 
  friend class ::CExprResolve;
 
64251
  friend class ::CMatchSyntax;
52438
64252
 
52439
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64253
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52440
64254
 
52441
64255
public:
52442
64256
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
64257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52443
64258
  static const char *NodeId ();
 
64259
  /** Get the name of the node. Can be compared with NodeId(). */
52444
64260
  const char *NodeName () const { return NodeId (); }
52445
64261
};
52446
64262
 
52447
64263
 
52448
 
#line 52449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64264
#line 64265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52449
64265
} // closed Puma
 
64266
class CCExprResolve;
 
64267
class CExprResolve;
52450
64268
class WinIfExists;
52451
64269
class WinImportHandler;
52452
64270
class WinMacros;
52453
 
class CMatchSyntax;
52454
 
class ExtGnu;
 
64271
class WinAsm;
 
64272
class WinDeclSpecs;
 
64273
class WinMemberExplSpec;
 
64274
class WinTypeKeywords;
 
64275
class WinFriend;
52455
64276
class ExtAC;
52456
64277
class ExtACBuilderCoupling;
52457
64278
class ExtACSyntaxCoupling;
52458
64279
class ExtACTree;
52459
64280
class ExtACKeywords;
52460
 
class WinAsm;
52461
 
class WinDeclSpecs;
52462
 
class WinMemberExplSpec;
52463
 
class WinTypeKeywords;
 
64281
class ExtGnu;
52464
64282
class PragmaOnceUnitState;
52465
64283
class PragmaOnce;
52466
 
class CCExprResolve;
52467
 
class CExprResolve;
 
64284
class CMatchSyntax;
52468
64285
namespace Puma {
52469
64286
 
52470
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64287
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52471
64288
class CT_AnyExtension : public CTree, public CSemValue {
52472
 
#line 52473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64289
#line 64290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64290
  friend class ::CCExprResolve;
 
64291
  friend class ::CExprResolve;
52473
64292
  friend class ::WinIfExists;
52474
64293
  friend class ::WinImportHandler;
52475
64294
  friend class ::WinMacros;
52476
 
  friend class ::CMatchSyntax;
52477
 
  friend class ::ExtGnu;
 
64295
  friend class ::WinAsm;
 
64296
  friend class ::WinDeclSpecs;
 
64297
  friend class ::WinMemberExplSpec;
 
64298
  friend class ::WinTypeKeywords;
 
64299
  friend class ::WinFriend;
52478
64300
  friend class ::ExtAC;
52479
64301
  friend class ::ExtACBuilderCoupling;
52480
64302
  friend class ::ExtACSyntaxCoupling;
52481
64303
  friend class ::ExtACTree;
52482
64304
  friend class ::ExtACKeywords;
52483
 
  friend class ::WinAsm;
52484
 
  friend class ::WinDeclSpecs;
52485
 
  friend class ::WinMemberExplSpec;
52486
 
  friend class ::WinTypeKeywords;
 
64305
  friend class ::ExtGnu;
52487
64306
  friend class ::PragmaOnceUnitState;
52488
64307
  friend class ::PragmaOnce;
52489
 
  friend class ::CCExprResolve;
52490
 
  friend class ::CExprResolve;
 
64308
  friend class ::CMatchSyntax;
52491
64309
 
52492
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64310
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52493
64311
 
52494
64312
  CTree *sons[5]; // open, string, comma, cond, close
52495
64313
 
52496
64314
public:
52497
64315
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
52498
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
64316
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
64317
    AddSon (sons[3], c); AddSon (sons[4], cr); 
52499
64318
  }
 
64319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52500
64320
  static const char *NodeId ();
 
64321
  /** Get the name of the node. Can be compared with NodeId(). */
52501
64322
  const char *NodeName () const { return NodeId (); }
 
64323
  /** Get the number of sons. */
52502
64324
  int Sons () const { return CTree::Sons (sons, 5); }
 
64325
  /** Get the n-th son.
 
64326
   *  \param n The index of the son.
 
64327
   *  \return The n-th son or NULL. */
52503
64328
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
64329
  /** Replace a son.
 
64330
   *  \param old_son The son to replace.
 
64331
   *  \param new_son The new son. */
52504
64332
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52505
64333
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52506
64334
  }
52514
64342
};
52515
64343
 
52516
64344
 
52517
 
#line 52518 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64345
#line 64346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
52518
64346
} // closed Puma
 
64347
class CCExprResolve;
 
64348
class CExprResolve;
52519
64349
class WinIfExists;
52520
64350
class WinImportHandler;
52521
64351
class WinMacros;
52522
 
class CMatchSyntax;
52523
 
class ExtGnu;
 
64352
class WinAsm;
 
64353
class WinDeclSpecs;
 
64354
class WinMemberExplSpec;
 
64355
class WinTypeKeywords;
 
64356
class WinFriend;
52524
64357
class ExtAC;
52525
64358
class ExtACBuilderCoupling;
52526
64359
class ExtACSyntaxCoupling;
52527
64360
class ExtACTree;
52528
64361
class ExtACKeywords;
52529
 
class WinAsm;
52530
 
class WinDeclSpecs;
52531
 
class WinMemberExplSpec;
52532
 
class WinTypeKeywords;
 
64362
class ExtGnu;
52533
64363
class PragmaOnceUnitState;
52534
64364
class PragmaOnce;
52535
 
class CCExprResolve;
52536
 
class CExprResolve;
 
64365
class CMatchSyntax;
52537
64366
namespace Puma {
52538
64367
 
52539
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64368
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52540
64369
class CT_AnyCondition : public CTree {
52541
 
#line 52542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64370
#line 64371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64371
  friend class ::CCExprResolve;
 
64372
  friend class ::CExprResolve;
52542
64373
  friend class ::WinIfExists;
52543
64374
  friend class ::WinImportHandler;
52544
64375
  friend class ::WinMacros;
52545
 
  friend class ::CMatchSyntax;
52546
 
  friend class ::ExtGnu;
 
64376
  friend class ::WinAsm;
 
64377
  friend class ::WinDeclSpecs;
 
64378
  friend class ::WinMemberExplSpec;
 
64379
  friend class ::WinTypeKeywords;
 
64380
  friend class ::WinFriend;
52547
64381
  friend class ::ExtAC;
52548
64382
  friend class ::ExtACBuilderCoupling;
52549
64383
  friend class ::ExtACSyntaxCoupling;
52550
64384
  friend class ::ExtACTree;
52551
64385
  friend class ::ExtACKeywords;
52552
 
  friend class ::WinAsm;
52553
 
  friend class ::WinDeclSpecs;
52554
 
  friend class ::WinMemberExplSpec;
52555
 
  friend class ::WinTypeKeywords;
 
64386
  friend class ::ExtGnu;
52556
64387
  friend class ::PragmaOnceUnitState;
52557
64388
  friend class ::PragmaOnce;
52558
 
  friend class ::CCExprResolve;
52559
 
  friend class ::CExprResolve;
 
64389
  friend class ::CMatchSyntax;
52560
64390
 
52561
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64391
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52562
64392
 
52563
64393
  CTree *sons[3]; // arg1, arg2, arg3
52564
64394
 
52565
64395
public:
52566
64396
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
52567
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
64397
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
52568
64398
  }
 
64399
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52569
64400
  static const char *NodeId ();
 
64401
  /** Get the name of the node. Can be compared with NodeId(). */
52570
64402
  const char *NodeName () const { return NodeId (); }
 
64403
  /** Get the number of sons. */
52571
64404
  int Sons () const { return CTree::Sons (sons, 3); }
 
64405
  /** Get the n-th son.
 
64406
   *  \param n The index of the son.
 
64407
   *  \return The n-th son or NULL. */
52572
64408
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64409
  /** Replace a son.
 
64410
   *  \param old_son The son to replace.
 
64411
   *  \param new_son The new son. */
52573
64412
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52574
64413
    CTree::ReplaceSon (sons, 3, old_son, new_son);
52575
64414
  }
52580
64419
 
52581
64420
#endif /* __CTree_h__ */
52582
64421
 
52583
 
#line 52584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
52584
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
52585
 
 
52586
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52587
 
 
52588
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
64422
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
52589
64423
#include <stdlib.h>
52590
64424
 
52591
64425
using namespace Puma;
52696
64530
 
52697
64531
} // namespace Puma
52698
64532
 
52699
 
#line 142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
64533
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
52700
64534
/* Next is all token values, in a form suitable for use by makeheaders.
52701
64535
** This section will be null unless lemon is run with the -m switch.
52702
64536
*/
52783
64617
** point and size of each hash table.
52784
64618
*/
52785
64619
 
52786
 
#line 52787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64620
#line 64621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64621
class CCExprResolve;
 
64622
class CExprResolve;
52787
64623
class WinIfExists;
52788
64624
class WinImportHandler;
52789
64625
class WinMacros;
52790
 
class CMatchSyntax;
52791
 
class ExtGnu;
 
64626
class WinAsm;
 
64627
class WinDeclSpecs;
 
64628
class WinMemberExplSpec;
 
64629
class WinTypeKeywords;
 
64630
class WinFriend;
52792
64631
class ExtAC;
52793
64632
class ExtACBuilderCoupling;
52794
64633
class ExtACSyntaxCoupling;
52795
64634
class ExtACTree;
52796
64635
class ExtACKeywords;
52797
 
class WinAsm;
52798
 
class WinDeclSpecs;
52799
 
class WinMemberExplSpec;
52800
 
class WinTypeKeywords;
 
64636
class ExtGnu;
52801
64637
class PragmaOnceUnitState;
52802
64638
class PragmaOnce;
52803
 
class CCExprResolve;
52804
 
class CExprResolve;
 
64639
class CMatchSyntax;
52805
64640
 
52806
 
#line 227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
64641
#line 227 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
52807
64642
struct yyActionEntry {
52808
 
#line 52809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64643
#line 64644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64644
  friend class ::CCExprResolve;
 
64645
  friend class ::CExprResolve;
52809
64646
  friend class ::WinIfExists;
52810
64647
  friend class ::WinImportHandler;
52811
64648
  friend class ::WinMacros;
52812
 
  friend class ::CMatchSyntax;
52813
 
  friend class ::ExtGnu;
 
64649
  friend class ::WinAsm;
 
64650
  friend class ::WinDeclSpecs;
 
64651
  friend class ::WinMemberExplSpec;
 
64652
  friend class ::WinTypeKeywords;
 
64653
  friend class ::WinFriend;
52814
64654
  friend class ::ExtAC;
52815
64655
  friend class ::ExtACBuilderCoupling;
52816
64656
  friend class ::ExtACSyntaxCoupling;
52817
64657
  friend class ::ExtACTree;
52818
64658
  friend class ::ExtACKeywords;
52819
 
  friend class ::WinAsm;
52820
 
  friend class ::WinDeclSpecs;
52821
 
  friend class ::WinMemberExplSpec;
52822
 
  friend class ::WinTypeKeywords;
 
64659
  friend class ::ExtGnu;
52823
64660
  friend class ::PragmaOnceUnitState;
52824
64661
  friend class ::PragmaOnce;
52825
 
  friend class ::CCExprResolve;
52826
 
  friend class ::CExprResolve;
 
64662
  friend class ::CMatchSyntax;
52827
64663
 
52828
 
#line 227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
64664
#line 227 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
52829
64665
 
52830
64666
  YYCODETYPE   lookahead;   /* The value of the look-ahead token */
52831
64667
  YYACTIONTYPE action;      /* Action to take for this look-ahead */
53127
64963
**     the given look-ahead is found in the action hash table.
53128
64964
*/
53129
64965
 
53130
 
#line 53131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64966
#line 64967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64967
class CCExprResolve;
 
64968
class CExprResolve;
53131
64969
class WinIfExists;
53132
64970
class WinImportHandler;
53133
64971
class WinMacros;
53134
 
class CMatchSyntax;
53135
 
class ExtGnu;
 
64972
class WinAsm;
 
64973
class WinDeclSpecs;
 
64974
class WinMemberExplSpec;
 
64975
class WinTypeKeywords;
 
64976
class WinFriend;
53136
64977
class ExtAC;
53137
64978
class ExtACBuilderCoupling;
53138
64979
class ExtACSyntaxCoupling;
53139
64980
class ExtACTree;
53140
64981
class ExtACKeywords;
53141
 
class WinAsm;
53142
 
class WinDeclSpecs;
53143
 
class WinMemberExplSpec;
53144
 
class WinTypeKeywords;
 
64982
class ExtGnu;
53145
64983
class PragmaOnceUnitState;
53146
64984
class PragmaOnce;
53147
 
class CCExprResolve;
53148
 
class CExprResolve;
 
64985
class CMatchSyntax;
53149
64986
 
53150
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
64987
#line 527 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53151
64988
struct yyStateEntry {
53152
 
#line 53153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
64989
#line 64990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
64990
  friend class ::CCExprResolve;
 
64991
  friend class ::CExprResolve;
53153
64992
  friend class ::WinIfExists;
53154
64993
  friend class ::WinImportHandler;
53155
64994
  friend class ::WinMacros;
53156
 
  friend class ::CMatchSyntax;
53157
 
  friend class ::ExtGnu;
 
64995
  friend class ::WinAsm;
 
64996
  friend class ::WinDeclSpecs;
 
64997
  friend class ::WinMemberExplSpec;
 
64998
  friend class ::WinTypeKeywords;
 
64999
  friend class ::WinFriend;
53158
65000
  friend class ::ExtAC;
53159
65001
  friend class ::ExtACBuilderCoupling;
53160
65002
  friend class ::ExtACSyntaxCoupling;
53161
65003
  friend class ::ExtACTree;
53162
65004
  friend class ::ExtACKeywords;
53163
 
  friend class ::WinAsm;
53164
 
  friend class ::WinDeclSpecs;
53165
 
  friend class ::WinMemberExplSpec;
53166
 
  friend class ::WinTypeKeywords;
 
65005
  friend class ::ExtGnu;
53167
65006
  friend class ::PragmaOnceUnitState;
53168
65007
  friend class ::PragmaOnce;
53169
 
  friend class ::CCExprResolve;
53170
 
  friend class ::CExprResolve;
 
65008
  friend class ::CMatchSyntax;
53171
65009
 
53172
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65010
#line 527 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53173
65011
 
53174
65012
  struct yyActionEntry *hashtbl; /* Start of the hash table in yyActionTable */
53175
65013
  int mask;                      /* Mask used for hashing the look-ahead */
53233
65071
**      It is sometimes called the "minor" token.
53234
65072
*/
53235
65073
 
53236
 
#line 53237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
65074
#line 65075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
65075
class CCExprResolve;
 
65076
class CExprResolve;
53237
65077
class WinIfExists;
53238
65078
class WinImportHandler;
53239
65079
class WinMacros;
53240
 
class CMatchSyntax;
53241
 
class ExtGnu;
 
65080
class WinAsm;
 
65081
class WinDeclSpecs;
 
65082
class WinMemberExplSpec;
 
65083
class WinTypeKeywords;
 
65084
class WinFriend;
53242
65085
class ExtAC;
53243
65086
class ExtACBuilderCoupling;
53244
65087
class ExtACSyntaxCoupling;
53245
65088
class ExtACTree;
53246
65089
class ExtACKeywords;
53247
 
class WinAsm;
53248
 
class WinDeclSpecs;
53249
 
class WinMemberExplSpec;
53250
 
class WinTypeKeywords;
 
65090
class ExtGnu;
53251
65091
class PragmaOnceUnitState;
53252
65092
class PragmaOnce;
53253
 
class CCExprResolve;
53254
 
class CExprResolve;
 
65093
class CMatchSyntax;
53255
65094
 
53256
 
#line 589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65095
#line 589 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53257
65096
struct yyStackEntry {
53258
 
#line 53259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
65097
#line 65098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
65098
  friend class ::CCExprResolve;
 
65099
  friend class ::CExprResolve;
53259
65100
  friend class ::WinIfExists;
53260
65101
  friend class ::WinImportHandler;
53261
65102
  friend class ::WinMacros;
53262
 
  friend class ::CMatchSyntax;
53263
 
  friend class ::ExtGnu;
 
65103
  friend class ::WinAsm;
 
65104
  friend class ::WinDeclSpecs;
 
65105
  friend class ::WinMemberExplSpec;
 
65106
  friend class ::WinTypeKeywords;
 
65107
  friend class ::WinFriend;
53264
65108
  friend class ::ExtAC;
53265
65109
  friend class ::ExtACBuilderCoupling;
53266
65110
  friend class ::ExtACSyntaxCoupling;
53267
65111
  friend class ::ExtACTree;
53268
65112
  friend class ::ExtACKeywords;
53269
 
  friend class ::WinAsm;
53270
 
  friend class ::WinDeclSpecs;
53271
 
  friend class ::WinMemberExplSpec;
53272
 
  friend class ::WinTypeKeywords;
 
65113
  friend class ::ExtGnu;
53273
65114
  friend class ::PragmaOnceUnitState;
53274
65115
  friend class ::PragmaOnce;
53275
 
  friend class ::CCExprResolve;
53276
 
  friend class ::CExprResolve;
 
65116
  friend class ::CMatchSyntax;
53277
65117
 
53278
 
#line 589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65118
#line 589 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53279
65119
 
53280
65120
  int stateno;       /* The state-number */
53281
65121
  int major;         /* The major token value.  This is the code
53287
65127
/* The state of the parser is completely contained in an instance of
53288
65128
** the following structure */
53289
65129
 
53290
 
#line 53291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
65130
#line 65131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
65131
class CCExprResolve;
 
65132
class CExprResolve;
53291
65133
class WinIfExists;
53292
65134
class WinImportHandler;
53293
65135
class WinMacros;
53294
 
class CMatchSyntax;
53295
 
class ExtGnu;
 
65136
class WinAsm;
 
65137
class WinDeclSpecs;
 
65138
class WinMemberExplSpec;
 
65139
class WinTypeKeywords;
 
65140
class WinFriend;
53296
65141
class ExtAC;
53297
65142
class ExtACBuilderCoupling;
53298
65143
class ExtACSyntaxCoupling;
53299
65144
class ExtACTree;
53300
65145
class ExtACKeywords;
53301
 
class WinAsm;
53302
 
class WinDeclSpecs;
53303
 
class WinMemberExplSpec;
53304
 
class WinTypeKeywords;
 
65146
class ExtGnu;
53305
65147
class PragmaOnceUnitState;
53306
65148
class PragmaOnce;
53307
 
class CCExprResolve;
53308
 
class CExprResolve;
 
65149
class CMatchSyntax;
53309
65150
 
53310
 
#line 599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65151
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53311
65152
struct yyParser {
53312
 
#line 53313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
65153
#line 65154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
65154
  friend class ::CCExprResolve;
 
65155
  friend class ::CExprResolve;
53313
65156
  friend class ::WinIfExists;
53314
65157
  friend class ::WinImportHandler;
53315
65158
  friend class ::WinMacros;
53316
 
  friend class ::CMatchSyntax;
53317
 
  friend class ::ExtGnu;
 
65159
  friend class ::WinAsm;
 
65160
  friend class ::WinDeclSpecs;
 
65161
  friend class ::WinMemberExplSpec;
 
65162
  friend class ::WinTypeKeywords;
 
65163
  friend class ::WinFriend;
53318
65164
  friend class ::ExtAC;
53319
65165
  friend class ::ExtACBuilderCoupling;
53320
65166
  friend class ::ExtACSyntaxCoupling;
53321
65167
  friend class ::ExtACTree;
53322
65168
  friend class ::ExtACKeywords;
53323
 
  friend class ::WinAsm;
53324
 
  friend class ::WinDeclSpecs;
53325
 
  friend class ::WinMemberExplSpec;
53326
 
  friend class ::WinTypeKeywords;
 
65169
  friend class ::ExtGnu;
53327
65170
  friend class ::PragmaOnceUnitState;
53328
65171
  friend class ::PragmaOnce;
53329
 
  friend class ::CCExprResolve;
53330
 
  friend class ::CExprResolve;
 
65172
  friend class ::CMatchSyntax;
53331
65173
 
53332
 
#line 599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65174
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53333
65175
 
53334
65176
  int idx;                            /* Index of top element in stack */
53335
65177
  int errcnt;                         /* Shifts left before out of the error */
53543
65385
/* The following table contains information about every rule that
53544
65386
** is used during the reduce.
53545
65387
*/
53546
 
 
53547
 
#line 53548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
53548
 
class WinIfExists;
53549
 
class WinImportHandler;
53550
 
class WinMacros;
53551
 
class CMatchSyntax;
53552
 
class ExtGnu;
53553
 
class ExtAC;
53554
 
class ExtACBuilderCoupling;
53555
 
class ExtACSyntaxCoupling;
53556
 
class ExtACTree;
53557
 
class ExtACKeywords;
53558
 
class WinAsm;
53559
 
class WinDeclSpecs;
53560
 
class WinMemberExplSpec;
53561
 
class WinTypeKeywords;
53562
 
class PragmaOnceUnitState;
53563
 
class PragmaOnce;
53564
 
class CCExprResolve;
53565
 
class CExprResolve;
53566
 
 
53567
 
#line 812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
53568
65388
static struct {
53569
 
#line 53570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
53570
 
  friend class ::WinIfExists;
53571
 
  friend class ::WinImportHandler;
53572
 
  friend class ::WinMacros;
53573
 
  friend class ::CMatchSyntax;
53574
 
  friend class ::ExtGnu;
53575
 
  friend class ::ExtAC;
53576
 
  friend class ::ExtACBuilderCoupling;
53577
 
  friend class ::ExtACSyntaxCoupling;
53578
 
  friend class ::ExtACTree;
53579
 
  friend class ::ExtACKeywords;
53580
 
  friend class ::WinAsm;
53581
 
  friend class ::WinDeclSpecs;
53582
 
  friend class ::WinMemberExplSpec;
53583
 
  friend class ::WinTypeKeywords;
53584
 
  friend class ::PragmaOnceUnitState;
53585
 
  friend class ::PragmaOnce;
53586
 
  friend class ::CCExprResolve;
53587
 
  friend class ::CExprResolve;
53588
 
 
53589
 
#line 812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
53590
 
 
53591
65389
  YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
53592
65390
  unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
53593
65391
} yyRuleInfo[] = {
53652
65450
53653
65451
        mstate->value = yymsp[0].minor.yy4; 
53654
65452
    }
53655
 
#line 877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65453
#line 877 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53656
65454
        break;
53657
65455
      case 1:
53658
65456
        YYTRACE("conditional ::= M_OPEN_ROUND conditional M_CLOSE_ROUND")
53660
65458
53661
65459
        yygotominor.yy4 = yymsp[-1].minor.yy4;
53662
65460
    }
53663
 
#line 885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65461
#line 885 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53664
65462
        /* No destructor defined for M_OPEN_ROUND */
53665
65463
        /* No destructor defined for M_CLOSE_ROUND */
53666
65464
        break;
53677
65475
        /* 0 0 |  0 (!)                 */
53678
65476
        yygotominor.yy4 = yymsp[0].minor.yy4; 
53679
65477
    }
53680
 
#line 902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65478
#line 902 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53681
65479
        /* No destructor defined for conditional */
53682
65480
        /* No destructor defined for M_SEQ */
53683
65481
        break;
53694
65492
        /* 0 0 |  0         */
53695
65493
        yygotominor.yy4 = (yymsp[-2].minor.yy4 || yymsp[0].minor.yy4) ? 1 : 0; 
53696
65494
    }
53697
 
#line 919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65495
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53698
65496
        /* No destructor defined for M_OR */
53699
65497
        break;
53700
65498
      case 4:
53710
65508
        /* 0 0 |  0                   */
53711
65509
        yygotominor.yy4 = ((yymsp[-2].minor.yy4 && ! yymsp[0].minor.yy4) || (! yymsp[-2].minor.yy4 && yymsp[0].minor.yy4)) ? 1 : 0; 
53712
65510
    }
53713
 
#line 935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65511
#line 935 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53714
65512
        /* No destructor defined for M_XOR */
53715
65513
        break;
53716
65514
      case 5:
53726
65524
        /* 0 0 |  0         */
53727
65525
        yygotominor.yy4 = (yymsp[-2].minor.yy4 && yymsp[0].minor.yy4) ? 1 : 0; 
53728
65526
    }
53729
 
#line 951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65527
#line 951 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53730
65528
        /* No destructor defined for M_AND */
53731
65529
        break;
53732
65530
      case 6:
53740
65538
        /* 0 |  1        */
53741
65539
        yygotominor.yy4 = ! yymsp[0].minor.yy4; 
53742
65540
    }
53743
 
#line 965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65541
#line 965 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53744
65542
        /* No destructor defined for M_NOT */
53745
65543
        break;
53746
65544
      case 7:
53754
65552
        /* 0 |  1         */
53755
65553
        yygotominor.yy4 = 1; 
53756
65554
    }
53757
 
#line 979 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65555
#line 979 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53758
65556
        /* No destructor defined for M_COLLECT */
53759
65557
        /* No destructor defined for conditional */
53760
65558
        break;
53774
65572
        yygotominor.yy4 = yymsp[-1].minor.yy4;
53775
65573
        mstate->depth--;
53776
65574
    }
53777
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65575
#line 999 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53778
65576
        /* No destructor defined for M_IF */
53779
65577
        /* No destructor defined for M_ENDIF */
53780
65578
        break;
53790
65588
        else 
53791
65589
            yygotominor.yy4 = mstate->matcher->matchNodeName (mstate->tree, yymsp[0].minor.yy0);
53792
65590
    }
53793
 
#line 1015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65591
#line 1015 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53794
65592
        /* No destructor defined for M_NODENAME */
53795
65593
        break;
53796
65594
      case 10:
53799
65597
{
53800
65598
        yygotominor.yy4 = yymsp[0].minor.yy4;
53801
65599
    }
53802
 
#line 1024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65600
#line 1024 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53803
65601
        break;
53804
65602
      case 11:
53805
65603
        YYTRACE("selection ::= conditional")
53810
65608
        else
53811
65609
            yygotominor.yy4 = 1;
53812
65610
    }
53813
 
#line 1035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65611
#line 1035 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53814
65612
        break;
53815
65613
      case 12:
53816
65614
        YYTRACE("selection ::= selection M_ELIF conditional")
53821
65619
        else
53822
65620
            yygotominor.yy4 = 1;
53823
65621
    }
53824
 
#line 1046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65622
#line 1046 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53825
65623
        /* No destructor defined for selection */
53826
65624
        /* No destructor defined for M_ELIF */
53827
65625
        break;
53834
65632
        else 
53835
65633
            yygotominor.yy4 = mstate->matcher->matchTree (yymsp[-1].minor.yy4, *mstate, mstate->tree, yymsp[0].minor.yy0);
53836
65634
    }
53837
 
#line 1059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65635
#line 1059 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53838
65636
        break;
53839
65637
      case 14:
53840
65638
        YYTRACE("tree_match ::= M_ELEMENT match_mode MATCHTREE")
53847
65645
        else
53848
65646
            yygotominor.yy4 = mstate->matcher->matchTree (yymsp[-1].minor.yy4, *mstate, mstate->tree, yymsp[0].minor.yy0);
53849
65647
    }
53850
 
#line 1072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65648
#line 1072 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53851
65649
        /* No destructor defined for M_ELEMENT */
53852
65650
        break;
53853
65651
      case 15:
53861
65659
        else
53862
65660
            yygotominor.yy4 = mstate->matcher->matchTree (yymsp[-1].minor.yy4, *mstate, mstate->tree, yymsp[0].minor.yy0);
53863
65661
    }
53864
 
#line 1086 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65662
#line 1086 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53865
65663
        /* No destructor defined for M_ELEMENT */
53866
65664
        break;
53867
65665
      case 16:
53875
65673
        else
53876
65674
            yygotominor.yy4 = mstate->matcher->matchTree (yymsp[-1].minor.yy4, *mstate, mstate->tree, yymsp[0].minor.yy0);
53877
65675
    }
53878
 
#line 1100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65676
#line 1100 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53879
65677
        /* No destructor defined for M_ELEMENT */
53880
65678
        break;
53881
65679
      case 17:
53882
65680
        YYTRACE("match_mode ::=")
53883
65681
#line 331 "manip/CMatchParser.lem"
53884
65682
{ yygotominor.yy4 = CTreeMatcher::MATCH_ALL; }
53885
 
#line 1107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65683
#line 1107 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53886
65684
        break;
53887
65685
      case 18:
53888
65686
        YYTRACE("match_mode ::= M_EXACT")
53889
65687
#line 332 "manip/CMatchParser.lem"
53890
65688
{ yygotominor.yy4 = CTreeMatcher::MATCH_EXACT; }
53891
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65689
#line 1113 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53892
65690
        /* No destructor defined for M_EXACT */
53893
65691
        break;
53894
65692
      case 19:
53895
65693
        YYTRACE("match_mode ::= M_FIRST")
53896
65694
#line 333 "manip/CMatchParser.lem"
53897
65695
{ yygotominor.yy4 = CTreeMatcher::MATCH_FIRST; }
53898
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65696
#line 1120 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53899
65697
        /* No destructor defined for M_FIRST */
53900
65698
        break;
53901
65699
      case 20:
53902
65700
        YYTRACE("match_mode ::= M_LAST")
53903
65701
#line 334 "manip/CMatchParser.lem"
53904
65702
{ yygotominor.yy4 = CTreeMatcher::MATCH_LAST; }
53905
 
#line 1127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65703
#line 1127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53906
65704
        /* No destructor defined for M_LAST */
53907
65705
        break;
53908
65706
      case 21:
53909
65707
        YYTRACE("match_mode ::= M_LEAF")
53910
65708
#line 335 "manip/CMatchParser.lem"
53911
65709
{ yygotominor.yy4 = CTreeMatcher::MATCH_LEAF; }
53912
 
#line 1134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65710
#line 1134 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53913
65711
        /* No destructor defined for M_LEAF */
53914
65712
        break;
53915
65713
      case 22:
53916
65714
        YYTRACE("match_mode ::= M_PRUNE")
53917
65715
#line 336 "manip/CMatchParser.lem"
53918
65716
{ yygotominor.yy4 = CTreeMatcher::MATCH_PRUNE; }
53919
 
#line 1141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65717
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53920
65718
        /* No destructor defined for M_PRUNE */
53921
65719
        break;
53922
65720
  };
53963
65761
 
53964
65762
    mstate->value = -1;
53965
65763
 
53966
 
#line 1188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
65764
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
53967
65765
}
53968
65766
 
53969
65767
/*
54131
65929
  return;
54132
65930
}
54133
65931
 
54134
 
#line 54135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
65932
#line 65933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
54135
65933
 
54136
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CMatchParser_cc__
54137
 
/*** begin of aspect includes ***/
54138
 
#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__)
54139
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
65934
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CMatchParser_cc__
 
65935
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
65936
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
65937
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
65938
#include "CCExprResolveCC.ah"
 
65939
#endif
 
65940
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65941
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65942
#include "ExtACTree.ah"
 
65943
#endif
 
65944
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
65945
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
65946
#include "ExtGnu.ah"
 
65947
#endif
 
65948
#endif
 
65949
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
65950
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
65951
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
65952
#include "CCExprResolveH.ah"
 
65953
#endif
 
65954
#endif
 
65955
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
65956
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
65957
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
65958
#include "CExprResolveCC.ah"
 
65959
#endif
 
65960
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65961
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
65962
#include "ExtACTree.ah"
 
65963
#endif
 
65964
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
65965
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
65966
#include "ExtGnu.ah"
 
65967
#endif
 
65968
#endif
 
65969
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
65970
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
65971
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
65972
#include "CExprResolveH.ah"
 
65973
#endif
 
65974
#endif
 
65975
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
65976
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
65977
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
54140
65978
#include "WinIfExists.ah"
54141
65979
#endif
54142
 
#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__)
54143
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
65980
#endif
 
65981
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
65982
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
65983
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
54144
65984
#include "WinImportHandler.ah"
54145
65985
#endif
54146
 
#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__)
54147
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
 
65986
#endif
 
65987
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
65988
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
65989
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
54148
65990
#include "WinMacros.ah"
54149
65991
#endif
54150
 
#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__)
54151
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
54152
 
 
54153
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
65992
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
65993
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
65994
#include "PragmaOnceUnitState.ah"
 
65995
#endif
 
65996
#endif
 
65997
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
65998
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
65999
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
66000
#include "WinAsm.ah"
 
66001
#endif
 
66002
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66003
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66004
#include "ExtACTree.ah"
 
66005
#endif
 
66006
#endif
 
66007
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
66008
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
66009
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
66010
#include "WinDeclSpecs.ah"
 
66011
#endif
 
66012
#endif
 
66013
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
66014
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
66015
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
66016
#include "WinMemberExplSpec.ah"
 
66017
#endif
 
66018
#endif
 
66019
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
66020
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
66021
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
66022
#include "WinTypeKeywords.ah"
 
66023
#endif
 
66024
#endif
 
66025
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
66026
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
66027
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
66028
#include "WinFriend.ah"
 
66029
#endif
 
66030
#endif
 
66031
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
66032
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
66033
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
66034
 
 
66035
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
 
66036
#endif
 
66037
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66038
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66039
 
 
66040
#line 107 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
 
66041
#endif
 
66042
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
66043
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
66044
 
 
66045
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
54154
66046
// This file is part of PUMA.
54155
66047
// Copyright (C) 1999-2003  The PUMA developer team.
54156
66048
//                                                                
54169
66061
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
54170
66062
// MA  02111-1307  USA                                            
54171
66063
 
54172
 
#ifndef __CMatchSyntax_ah__
54173
 
#define __CMatchSyntax_ah__
54174
 
 
54175
 
 
54176
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54177
 
namespace Puma {
54178
 
  class CSyntax;
54179
 
  class CCSyntax;
54180
 
  class CBuilder;
54181
 
  class CSemantic;
54182
 
  class Container;
54183
 
  class CTree;
54184
 
  class CStrLiteral;
54185
 
  class CT_Any;
54186
 
  class CT_AnyList;
54187
 
  class CT_AnyExtension;
54188
 
  class CT_AnyCondition;
54189
 
  class CT_SimpleName;
54190
 
} // namespace Puma
54191
 
 
54192
 
 
54193
 
using namespace Puma;
54194
 
 
54195
 
namespace Puma {
54196
 
  
54197
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54198
 
 
54199
 
  
54200
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54201
 
 
54202
 
  
54203
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54204
 
 
 
66064
#ifndef __ext_ac_keywords_ah__
 
66065
#define __ext_ac_keywords_ah__
 
66066
 
 
66067
 
 
66068
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
66069
 
 
66070
#line 66071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66071
 
 
66072
#ifndef __ac_fwd_ExtACKeywords__
 
66073
#define __ac_fwd_ExtACKeywords__
 
66074
class ExtACKeywords;
 
66075
namespace AC {
 
66076
  template <class JoinPoint>
 
66077
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
66078
  template <class JoinPoint>
 
66079
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
66080
  template <class JoinPoint>
 
66081
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
54205
66082
}
54206
 
 
54207
 
 
54208
 
#line 54209 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54209
 
class WinIfExists;
54210
 
class WinImportHandler;
54211
 
class WinMacros;
54212
 
class ExtGnu;
54213
 
class ExtAC;
54214
 
class ExtACBuilderCoupling;
54215
 
class ExtACSyntaxCoupling;
54216
 
class ExtACTree;
54217
 
class ExtACKeywords;
54218
 
class WinAsm;
54219
 
class WinDeclSpecs;
54220
 
class WinMemberExplSpec;
54221
 
class WinTypeKeywords;
54222
 
class PragmaOnceUnitState;
54223
 
class PragmaOnce;
54224
 
class CCExprResolve;
54225
 
class CExprResolve;
54226
 
 
54227
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54228
 
class CMatchSyntax {
54229
 
#line 54230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54230
 
 
54231
 
public:
54232
 
  static CMatchSyntax *aspectof () {
54233
 
    static CMatchSyntax __instance;
 
66083
#endif
 
66084
 
 
66085
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
66086
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
66087
#endif
 
66088
 
 
66089
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
66090
// This file is part of PUMA.
 
66091
// Copyright (C) 1999-2003  The PUMA developer team.
 
66092
//                                                                
 
66093
// This program is free software;  you can redistribute it and/or 
 
66094
// modify it under the terms of the GNU General Public License as 
 
66095
// published by the Free Software Foundation; either version 2 of 
 
66096
// the License, or (at your option) any later version.            
 
66097
//                                                                
 
66098
// This program is distributed in the hope that it will be useful,
 
66099
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
66100
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
66101
// GNU General Public License for more details.                   
 
66102
//                                                                
 
66103
// You should have received a copy of the GNU General Public      
 
66104
// License along with this program; if not, write to the Free     
 
66105
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
66106
// MA  02111-1307  USA                                            
 
66107
 
 
66108
#ifndef __CProject_h__
 
66109
#define __CProject_h__
 
66110
 
 
66111
// Special project derivation for C++ sources.
 
66112
 
 
66113
#include "Puma/Config.h"
 
66114
#include "Puma/Project.h"
 
66115
#include "Puma/CScanner.h"
 
66116
#include "Puma/ErrorStream.h"
 
66117
 
 
66118
namespace Puma {
 
66119
 
 
66120
 
 
66121
class Source;
 
66122
class CTypeInfo;
 
66123
 
 
66124
 
 
66125
#line 66126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66126
} // closed Puma
 
66127
class CCExprResolve;
 
66128
class CExprResolve;
 
66129
class WinIfExists;
 
66130
class WinImportHandler;
 
66131
class WinMacros;
 
66132
class WinAsm;
 
66133
class WinDeclSpecs;
 
66134
class WinMemberExplSpec;
 
66135
class WinTypeKeywords;
 
66136
class WinFriend;
 
66137
class ExtAC;
 
66138
class ExtACBuilderCoupling;
 
66139
class ExtACSyntaxCoupling;
 
66140
class ExtACTree;
 
66141
class ExtACKeywords;
 
66142
class ExtGnu;
 
66143
class PragmaOnceUnitState;
 
66144
class PragmaOnce;
 
66145
class CMatchSyntax;
 
66146
namespace Puma {
 
66147
 
 
66148
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
66149
class CProject : public Project {
 
66150
#line 66151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66151
  friend class ::CCExprResolve;
 
66152
  friend class ::CExprResolve;
 
66153
  friend class ::WinIfExists;
 
66154
  friend class ::WinImportHandler;
 
66155
  friend class ::WinMacros;
 
66156
  friend class ::WinAsm;
 
66157
  friend class ::WinDeclSpecs;
 
66158
  friend class ::WinMemberExplSpec;
 
66159
  friend class ::WinTypeKeywords;
 
66160
  friend class ::WinFriend;
 
66161
  friend class ::ExtAC;
 
66162
  friend class ::ExtACBuilderCoupling;
 
66163
  friend class ::ExtACSyntaxCoupling;
 
66164
  friend class ::ExtACTree;
 
66165
  friend class ::ExtACKeywords;
 
66166
  friend class ::ExtGnu;
 
66167
  friend class ::PragmaOnceUnitState;
 
66168
  friend class ::PragmaOnce;
 
66169
  friend class ::CMatchSyntax;
 
66170
 
 
66171
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
66172
 
 
66173
  Config _config;
 
66174
  CScanner _scanner;
 
66175
 
 
66176
public:
 
66177
  CProject (ErrorStream &e);
 
66178
 
 
66179
  // Constructor: Add some source directories.
 
66180
  CProject (ErrorStream &, const char *defs, 
 
66181
               const char *decls = (const char*)0); 
 
66182
 
 
66183
  // Constructor: Setup preprocessor configuration according to
 
66184
  // command line parameter and the global config file and
 
66185
  // add some source directories.
 
66186
  CProject (ErrorStream &, int &argc, char **&argv, 
 
66187
            const char *defs = (const char*)0, 
 
66188
            const char *decls = (const char*)0);
 
66189
 
 
66190
public: // Project configuration 
 
66191
  // Get the preprocessor configuration.
 
66192
  Config &config ();
 
66193
 
 
66194
  // Configure the project from the command line or a file.
 
66195
  virtual void configure (Config &);
 
66196
 
 
66197
  // Add a new file to the project.
 
66198
  Unit *addFile (Filename file);
 
66199
 
 
66200
public: // Scanner interface
 
66201
  // Get the scanner.
 
66202
  CScanner &scanner ();
 
66203
 
 
66204
  // Scan the file `file' or the source if given. When
 
66205
  // scanning a source the resulting unit gets the name `file'.
 
66206
  
 
66207
#line 66208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66208
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
66209
 
 
66210
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
66211
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
66212
                          bool isFile = true);
 
66213
        
 
66214
  // Scan a string. The resulting unit gets the name `name'.
 
66215
  // (and will not be registered at the unit manager!)
 
66216
  virtual Unit *scanString (const char *str, 
 
66217
                            const char *name = (const char*)0);
 
66218
 
 
66219
public: // Miscellaneous Functions
 
66220
 
 
66221
  // Give the filename needed to include a particular header file
 
66222
  Filename getInclString (Filename filename);
 
66223
 
 
66224
private:
 
66225
  // Map the type string from --size-type and --ptrdiff-type
 
66226
  // to real Puma type.
 
66227
  CTypeInfo *mapType (const char *) const;
 
66228
};
 
66229
 
 
66230
inline Config &CProject::config () 
 
66231
 { return _config; }
 
66232
inline CScanner &CProject::scanner () 
 
66233
 { return _scanner; }
 
66234
 
 
66235
 
 
66236
} // namespace Puma
 
66237
 
 
66238
#endif /* __CProject_h__ */
 
66239
 
 
66240
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
66241
// This file is part of PUMA.
 
66242
// Copyright (C) 1999-2003  The PUMA developer team.
 
66243
//                                                                
 
66244
// This program is free software;  you can redistribute it and/or 
 
66245
// modify it under the terms of the GNU General Public License as 
 
66246
// published by the Free Software Foundation; either version 2 of 
 
66247
// the License, or (at your option) any later version.            
 
66248
//                                                                
 
66249
// This program is distributed in the hope that it will be useful,
 
66250
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
66251
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
66252
// GNU General Public License for more details.                   
 
66253
//                                                                
 
66254
// You should have received a copy of the GNU General Public      
 
66255
// License along with this program; if not, write to the Free     
 
66256
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
66257
// MA  02111-1307  USA                                            
 
66258
 
 
66259
#ifndef __FileUnit__
 
66260
#define __FileUnit__
 
66261
 
 
66262
// Special Unit for files. Knows its last save location and the
 
66263
// absolute path of the corresponding file.
 
66264
 
 
66265
 
 
66266
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
66267
namespace Puma {
 
66268
 
 
66269
 
 
66270
class Project;
 
66271
 
 
66272
 
 
66273
#line 66274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66274
} // closed Puma
 
66275
class CCExprResolve;
 
66276
class CExprResolve;
 
66277
class WinIfExists;
 
66278
class WinImportHandler;
 
66279
class WinMacros;
 
66280
class WinAsm;
 
66281
class WinDeclSpecs;
 
66282
class WinMemberExplSpec;
 
66283
class WinTypeKeywords;
 
66284
class WinFriend;
 
66285
class ExtAC;
 
66286
class ExtACBuilderCoupling;
 
66287
class ExtACSyntaxCoupling;
 
66288
class ExtACTree;
 
66289
class ExtACKeywords;
 
66290
class ExtGnu;
 
66291
class PragmaOnceUnitState;
 
66292
class PragmaOnce;
 
66293
class CMatchSyntax;
 
66294
namespace Puma {
 
66295
 
 
66296
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
66297
class FileUnit : public Unit {
 
66298
#line 66299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66299
  friend class ::CCExprResolve;
 
66300
  friend class ::CExprResolve;
 
66301
  friend class ::WinIfExists;
 
66302
  friend class ::WinImportHandler;
 
66303
  friend class ::WinMacros;
 
66304
  friend class ::WinAsm;
 
66305
  friend class ::WinDeclSpecs;
 
66306
  friend class ::WinMemberExplSpec;
 
66307
  friend class ::WinTypeKeywords;
 
66308
  friend class ::WinFriend;
 
66309
  friend class ::ExtAC;
 
66310
  friend class ::ExtACBuilderCoupling;
 
66311
  friend class ::ExtACSyntaxCoupling;
 
66312
  friend class ::ExtACTree;
 
66313
  friend class ::ExtACKeywords;
 
66314
  friend class ::ExtGnu;
 
66315
  friend class ::PragmaOnceUnitState;
 
66316
  friend class ::PragmaOnce;
 
66317
  friend class ::CMatchSyntax;
 
66318
 
 
66319
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
66320
 
 
66321
  char *_lastLocation; 
 
66322
  char *_absolutePath;
 
66323
  
 
66324
  Project *_project;
 
66325
  bool _isBelow;
 
66326
 
 
66327
public:
 
66328
  FileUnit ();
 
66329
  FileUnit (Unit &);
 
66330
  FileUnit (const List &);
 
66331
  virtual ~FileUnit ();
 
66332
            
 
66333
  virtual void name (const char *);        
 
66334
  void setLocation (const char *);    
 
66335
        
 
66336
  char *lastLocation () const;
 
66337
  char *absolutePath () const;
 
66338
  bool isFile () const;
 
66339
  
 
66340
  // Generates the absolute pathname to the file.
 
66341
  static char *absolutePath (const char *);
 
66342
  static char *resolvePath (const char *);
 
66343
  
 
66344
  // File belongs to given project?
 
66345
  bool belongsTo (Project &);
 
66346
};
 
66347
 
 
66348
inline FileUnit::FileUnit () : 
 
66349
  Unit (), 
 
66350
  _lastLocation ((char*)0), 
 
66351
  _absolutePath ((char*)0),
 
66352
  _project (0),
 
66353
  _isBelow (false)
 
66354
 {}
 
66355
inline FileUnit::FileUnit (Unit &unit) : 
 
66356
  Unit (unit), 
 
66357
  _lastLocation ((char*)0), 
 
66358
  _absolutePath ((char*)0),
 
66359
  _project (0),
 
66360
  _isBelow (false)
 
66361
 {}
 
66362
inline FileUnit::FileUnit (const List &list) : 
 
66363
  Unit (list), 
 
66364
  _lastLocation ((char*)0), 
 
66365
  _absolutePath ((char*)0),
 
66366
  _project (0),
 
66367
  _isBelow (false)  
 
66368
 {}
 
66369
inline FileUnit::~FileUnit () 
 
66370
 { if (_lastLocation) delete[] _lastLocation; 
 
66371
   if (_absolutePath) delete[] _absolutePath; }
 
66372
            
 
66373
inline char *FileUnit::lastLocation () const 
 
66374
 { return _lastLocation; }
 
66375
inline char *FileUnit::absolutePath () const 
 
66376
 { return _absolutePath; }
 
66377
inline bool FileUnit::isFile () const 
 
66378
 { return true; }
 
66379
 
 
66380
 
 
66381
} // namespace Puma
 
66382
 
 
66383
#endif /* __FileUnit__ */
 
66384
 
 
66385
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66386
// *****************************************
 
66387
// AspectC++ keyword handling in the scanner
 
66388
// *****************************************
 
66389
 
 
66390
#line 66391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66391
class CCExprResolve;
 
66392
class CExprResolve;
 
66393
class WinIfExists;
 
66394
class WinImportHandler;
 
66395
class WinMacros;
 
66396
class WinAsm;
 
66397
class WinDeclSpecs;
 
66398
class WinMemberExplSpec;
 
66399
class WinTypeKeywords;
 
66400
class WinFriend;
 
66401
class ExtAC;
 
66402
class ExtACBuilderCoupling;
 
66403
class ExtACSyntaxCoupling;
 
66404
class ExtACTree;
 
66405
class ExtGnu;
 
66406
class PragmaOnceUnitState;
 
66407
class PragmaOnce;
 
66408
class CMatchSyntax;
 
66409
 
 
66410
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66411
class ExtACKeywords {
 
66412
#line 66413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66413
 
 
66414
public:
 
66415
  static ExtACKeywords *aspectof () {
 
66416
    static ExtACKeywords __instance;
54234
66417
    return &__instance;
54235
66418
  }
54236
 
  static CMatchSyntax *aspectOf () {
 
66419
  static ExtACKeywords *aspectOf () {
54237
66420
    return aspectof ();
54238
66421
  }
54239
66422
private:
54240
66423
 
54241
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
66424
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
54242
66425
 
54243
 
#line 54244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
66426
#line 66427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66427
  friend class ::CCExprResolve;
 
66428
  friend class ::CExprResolve;
54244
66429
  friend class ::WinIfExists;
54245
66430
  friend class ::WinImportHandler;
54246
66431
  friend class ::WinMacros;
54247
 
  friend class ::ExtGnu;
 
66432
  friend class ::WinAsm;
 
66433
  friend class ::WinDeclSpecs;
 
66434
  friend class ::WinMemberExplSpec;
 
66435
  friend class ::WinTypeKeywords;
 
66436
  friend class ::WinFriend;
54248
66437
  friend class ::ExtAC;
54249
66438
  friend class ::ExtACBuilderCoupling;
54250
66439
  friend class ::ExtACSyntaxCoupling;
54251
66440
  friend class ::ExtACTree;
54252
 
  friend class ::ExtACKeywords;
54253
 
  friend class ::WinAsm;
54254
 
  friend class ::WinDeclSpecs;
54255
 
  friend class ::WinMemberExplSpec;
54256
 
  friend class ::WinTypeKeywords;
 
66441
  friend class ::ExtGnu;
54257
66442
  friend class ::PragmaOnceUnitState;
54258
66443
  friend class ::PragmaOnce;
54259
 
  friend class ::CCExprResolve;
54260
 
  friend class ::CExprResolve;
54261
 
 
54262
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54263
 
 
54264
 
  
54265
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54266
 
 
54267
 
  
54268
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54269
 
  
54270
 
  
54271
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54272
 
 
54273
 
  
54274
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54275
 
 
54276
 
 
54277
 
protected:
54278
 
  // flag to enable/disable parsing match expressions
54279
 
  bool match_expr;
54280
 
 
54281
 
protected:
54282
 
  CMatchSyntax () : match_expr (false) {}
54283
 
  
54284
 
  // introduce wildcard rules to CSyntax and CCSyntax
54285
 
  
54286
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54287
 
 
54288
 
  
54289
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54290
 
 
54291
 
 
54292
 
  // extend CBuilder
54293
 
  
54294
 
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54295
 
 
54296
 
 
54297
 
  // extend CSemantic
54298
 
  
54299
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54300
 
 
54301
 
 
54302
 
  // let first parse wildcards before parsing anything else
54303
 
  
54304
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54305
 
 
54306
 
public: template<class JoinPoint> void __a0_around 
54307
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54308
 
 
54309
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54310
 
(JoinPoint *tjp)
54311
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54312
 
 {
54313
 
#line 54314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54314
 
 
54315
 
  JoinPoint *&thisJoinPoint = tjp;
54316
 
 
54317
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54318
 
 
54319
 
#line 54320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54320
 
 
54321
 
  typedef typename JoinPoint::That __JP_That;
54322
 
  typedef typename JoinPoint::Target __JP_Target;
54323
 
  typedef typename JoinPoint::Result __JP_Result;
54324
 
 
54325
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54326
 
 
54327
 
    if (match_expr &&
54328
 
        thisJoinPoint->that ()->parse (&__JP_That
54329
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54330
 
::wildcards)) 
54331
 
      *(CTree**)thisJoinPoint->result () = 
54332
 
        thisJoinPoint->that ()->builder ().get_node (); 
54333
 
    else 
54334
 
      thisJoinPoint->action ().trigger (); 
54335
 
  }
54336
 
#line 54337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54337
 
 
54338
 
protected:
54339
 
 
54340
 
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54341
 
 
54342
 
 
54343
 
  // extend the syntax to parse ANYs
54344
 
 
54345
 
  
54346
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54347
 
 
54348
 
public: template<class JoinPoint> void __a1_around 
54349
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54350
 
 
54351
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54352
 
(JoinPoint *tjp)
54353
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54354
 
 {
54355
 
#line 54356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54356
 
 
54357
 
  JoinPoint *&thisJoinPoint = tjp;
54358
 
 
54359
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54360
 
 
54361
 
#line 54362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54362
 
 
54363
 
  typedef typename JoinPoint::That __JP_That;
54364
 
  typedef typename JoinPoint::Target __JP_Target;
54365
 
  typedef typename JoinPoint::Result __JP_Result;
54366
 
 
54367
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54368
 
 
54369
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR)) {
54370
 
      thisJoinPoint->that ()->parse (&__JP_That
54371
 
#line 103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54372
 
::wc_extension); 
54373
 
      *(CTree**)thisJoinPoint->result () = 
54374
 
        thisJoinPoint->that ()->builder ().any (); 
54375
 
    } else 
54376
 
      thisJoinPoint->action ().trigger (); 
54377
 
  }
54378
 
#line 54379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54379
 
 
54380
 
protected:
54381
 
 
54382
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54383
 
 
54384
 
 
54385
 
  
54386
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54387
 
 
54388
 
public: template<class JoinPoint> void __a2_around 
54389
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54390
 
 
54391
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54392
 
(JoinPoint *tjp)
54393
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54394
 
 {
54395
 
#line 54396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54396
 
 
54397
 
  JoinPoint *&thisJoinPoint = tjp;
54398
 
 
54399
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54400
 
 
54401
 
#line 54402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54402
 
 
54403
 
  typedef typename JoinPoint::That __JP_That;
54404
 
  typedef typename JoinPoint::Target __JP_Target;
54405
 
  typedef typename JoinPoint::Result __JP_Result;
54406
 
 
54407
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54408
 
 
54409
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR_LIST)) {
54410
 
      thisJoinPoint->that ()->parse (&__JP_That
54411
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54412
 
::wc_extension); 
54413
 
      *(CTree**)thisJoinPoint->result () = 
54414
 
        thisJoinPoint->that ()->builder ().any_list (); 
54415
 
    } else 
54416
 
      thisJoinPoint->action ().trigger (); 
54417
 
  }
54418
 
#line 54419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54419
 
 
54420
 
protected:
54421
 
 
54422
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54423
 
 
54424
 
 
54425
 
  
54426
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54427
 
 
54428
 
public: template<class JoinPoint> void __a3_around 
54429
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54430
 
 
54431
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54432
 
(JoinPoint *tjp)
54433
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54434
 
 {
54435
 
#line 54436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54436
 
 
54437
 
  JoinPoint *&thisJoinPoint = tjp;
54438
 
 
54439
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54440
 
 
54441
 
#line 54442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54442
 
 
54443
 
  typedef typename JoinPoint::That __JP_That;
54444
 
  typedef typename JoinPoint::Target __JP_Target;
54445
 
  typedef typename JoinPoint::Result __JP_Result;
54446
 
 
54447
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54448
 
 
54449
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ID_EXPR)) {
54450
 
      thisJoinPoint->that ()->parse (&__JP_That
54451
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54452
 
::wc_extension); 
54453
 
      *(CTree**)thisJoinPoint->result () = 
54454
 
        thisJoinPoint->that ()->builder ().any (); 
54455
 
    } else 
54456
 
      thisJoinPoint->action ().trigger (); 
54457
 
  }
54458
 
#line 54459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54459
 
 
54460
 
protected:
54461
 
 
54462
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54463
 
 
54464
 
 
54465
 
  
54466
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54467
 
 
54468
 
public: template<class JoinPoint> void __a4_around 
54469
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54470
 
 
54471
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54472
 
(JoinPoint *tjp)
54473
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54474
 
 {
54475
 
#line 54476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54476
 
 
54477
 
  JoinPoint *&thisJoinPoint = tjp;
54478
 
 
54479
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54480
 
 
54481
 
#line 54482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54482
 
 
54483
 
  typedef typename JoinPoint::That __JP_That;
54484
 
  typedef typename JoinPoint::Target __JP_Target;
54485
 
  typedef typename JoinPoint::Result __JP_Result;
54486
 
 
54487
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54488
 
 
54489
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_IDENTIFIER)) {
54490
 
      thisJoinPoint->that ()->parse (&__JP_That
54491
 
#line 133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54492
 
::wc_extension); 
54493
 
      *(CTree**)thisJoinPoint->result () = 
54494
 
        thisJoinPoint->that ()->builder ().any (); 
54495
 
    } else 
54496
 
      thisJoinPoint->action ().trigger (); 
54497
 
  }
54498
 
#line 54499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54499
 
 
54500
 
protected:
54501
 
 
54502
 
#line 138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54503
 
 
54504
 
 
54505
 
  
54506
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54507
 
 
54508
 
public: template<class JoinPoint> void __a5_after 
54509
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54510
 
 
54511
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54512
 
(JoinPoint *tjp)
54513
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54514
 
 {
54515
 
#line 54516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54516
 
 
54517
 
  typedef typename JoinPoint::That __JP_That;
54518
 
  typedef typename JoinPoint::Target __JP_Target;
54519
 
  typedef typename JoinPoint::Result __JP_Result;
54520
 
 
54521
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54522
 
 
54523
 
      tjp->that ()->_decl_spec_1.set (TOK_ANY_DECL_SPEC);
54524
 
  }
54525
 
#line 54526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54526
 
 
54527
 
protected:
54528
 
 
54529
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54530
 
 
54531
 
  
54532
 
  
54533
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54534
 
 
54535
 
public: template<class JoinPoint> void __a6_after 
54536
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54537
 
 
54538
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54539
 
(JoinPoint *tjp)
54540
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54541
 
 {
54542
 
#line 54543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54543
 
 
54544
 
  typedef typename JoinPoint::That __JP_That;
54545
 
  typedef typename JoinPoint::Target __JP_Target;
54546
 
  typedef typename JoinPoint::Result __JP_Result;
54547
 
 
54548
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54549
 
 
54550
 
    CTree *&result = *(CTree**)tjp->result ();
54551
 
    if (match_expr && !result &&
54552
 
        tjp->that ()->parse (TOK_ANY_DECL_SPEC) &&
54553
 
        tjp->that ()->parse (&__JP_That
54554
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54555
 
::wc_extension)) {
54556
 
      result = tjp->that ()->builder().any ();
54557
 
    }
54558
 
  }
54559
 
#line 54560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54560
 
 
54561
 
protected:
54562
 
 
54563
 
#line 153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54564
 
 
54565
 
 
54566
 
  
54567
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54568
 
 
54569
 
public: template<class JoinPoint> void __a7_around 
54570
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54571
 
 
54572
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54573
 
(JoinPoint *tjp)
54574
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54575
 
 {
54576
 
#line 54577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54577
 
 
54578
 
  JoinPoint *&thisJoinPoint = tjp;
54579
 
 
54580
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54581
 
 
54582
 
#line 54583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54583
 
 
54584
 
  typedef typename JoinPoint::That __JP_That;
54585
 
  typedef typename JoinPoint::Target __JP_Target;
54586
 
  typedef typename JoinPoint::Result __JP_Result;
54587
 
 
54588
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54589
 
 
54590
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECL_SPEC_SEQ)) {
54591
 
      thisJoinPoint->that ()->parse (&__JP_That
54592
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54593
 
::wc_extension); 
54594
 
      *(CTree**)thisJoinPoint->result () = 
54595
 
        thisJoinPoint->that ()->builder ().any_list (); 
54596
 
    } else 
54597
 
      thisJoinPoint->action ().trigger (); 
54598
 
  }
54599
 
#line 54600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54600
 
 
54601
 
protected:
54602
 
 
54603
 
#line 163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54604
 
 
54605
 
 
54606
 
  
54607
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54608
 
 
54609
 
public: template<class JoinPoint> void __a8_around 
54610
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54611
 
 
54612
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54613
 
(JoinPoint *tjp)
54614
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54615
 
 {
54616
 
#line 54617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54617
 
 
54618
 
  JoinPoint *&thisJoinPoint = tjp;
54619
 
 
54620
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54621
 
 
54622
 
#line 54623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54623
 
 
54624
 
  typedef typename JoinPoint::That __JP_That;
54625
 
  typedef typename JoinPoint::Target __JP_Target;
54626
 
  typedef typename JoinPoint::Result __JP_Result;
54627
 
 
54628
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54629
 
 
54630
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR_LIST)) {
54631
 
      thisJoinPoint->that ()->parse (&__JP_That
54632
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54633
 
::wc_extension); 
54634
 
      *(CTree**)thisJoinPoint->result () = 
54635
 
        thisJoinPoint->that ()->builder ().any_list (); 
54636
 
    } else 
54637
 
      thisJoinPoint->action ().trigger (); 
54638
 
  }
54639
 
#line 54640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54640
 
 
54641
 
protected:
54642
 
 
54643
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54644
 
 
54645
 
 
54646
 
  
54647
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54648
 
 
54649
 
public: template<class JoinPoint> void __a9_around 
54650
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54651
 
 
54652
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54653
 
(JoinPoint *tjp)
54654
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54655
 
 {
54656
 
#line 54657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54657
 
 
54658
 
  JoinPoint *&thisJoinPoint = tjp;
54659
 
 
54660
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54661
 
 
54662
 
#line 54663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54663
 
 
54664
 
  typedef typename JoinPoint::That __JP_That;
54665
 
  typedef typename JoinPoint::Target __JP_Target;
54666
 
  typedef typename JoinPoint::Result __JP_Result;
54667
 
 
54668
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54669
 
 
54670
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR)) {
54671
 
      thisJoinPoint->that ()->parse (&__JP_That
54672
 
#line 178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54673
 
::wc_extension); 
54674
 
      *(CTree**)thisJoinPoint->result () = 
54675
 
        thisJoinPoint->that ()->builder ().any (); 
54676
 
    } else 
54677
 
      thisJoinPoint->action ().trigger (); 
54678
 
  }
54679
 
#line 54680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54680
 
 
54681
 
protected:
54682
 
 
54683
 
#line 183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54684
 
 
54685
 
 
54686
 
  
54687
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54688
 
 
54689
 
public: template<class JoinPoint> void __a10_around 
54690
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54691
 
 
54692
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54693
 
(JoinPoint *tjp)
54694
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54695
 
 {
54696
 
#line 54697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54697
 
 
54698
 
  JoinPoint *&thisJoinPoint = tjp;
54699
 
 
54700
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54701
 
 
54702
 
#line 54703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54703
 
 
54704
 
  typedef typename JoinPoint::That __JP_That;
54705
 
  typedef typename JoinPoint::Target __JP_Target;
54706
 
  typedef typename JoinPoint::Result __JP_Result;
54707
 
 
54708
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54709
 
 
54710
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECLARATOR)) {
54711
 
      thisJoinPoint->that ()->parse (&__JP_That
54712
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54713
 
::wc_extension); 
54714
 
      *(CTree**)thisJoinPoint->result () = 
54715
 
        thisJoinPoint->that ()->builder ().any (); 
54716
 
    } else 
54717
 
      thisJoinPoint->action ().trigger (); 
54718
 
  }
54719
 
#line 54720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54720
 
 
54721
 
protected:
54722
 
 
54723
 
#line 193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54724
 
 
54725
 
 
54726
 
  
54727
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54728
 
 
54729
 
public: template<class JoinPoint> void __a11_around 
54730
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54731
 
 
54732
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54733
 
(JoinPoint *tjp)
54734
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54735
 
 {
54736
 
#line 54737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54737
 
 
54738
 
  JoinPoint *&thisJoinPoint = tjp;
54739
 
 
54740
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54741
 
 
54742
 
#line 54743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54743
 
 
54744
 
  typedef typename JoinPoint::That __JP_That;
54745
 
  typedef typename JoinPoint::Target __JP_Target;
54746
 
  typedef typename JoinPoint::Result __JP_Result;
54747
 
 
54748
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54749
 
 
54750
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT)) {
54751
 
      thisJoinPoint->that ()->parse (&__JP_That
54752
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54753
 
::wc_extension); 
54754
 
      *(CTree**)thisJoinPoint->result () = 
54755
 
        thisJoinPoint->that ()->builder ().any (); 
54756
 
    } else 
54757
 
      thisJoinPoint->action ().trigger (); 
54758
 
  }
54759
 
#line 54760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54760
 
 
54761
 
protected:
54762
 
 
54763
 
#line 203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54764
 
 
54765
 
 
54766
 
  
54767
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54768
 
 
54769
 
public: template<class JoinPoint> void __a12_around 
54770
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54771
 
 
54772
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54773
 
(JoinPoint *tjp)
54774
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54775
 
 {
54776
 
#line 54777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54777
 
 
54778
 
  JoinPoint *&thisJoinPoint = tjp;
54779
 
 
54780
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54781
 
 
54782
 
#line 54783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54783
 
 
54784
 
  typedef typename JoinPoint::That __JP_That;
54785
 
  typedef typename JoinPoint::Target __JP_Target;
54786
 
  typedef typename JoinPoint::Result __JP_Result;
54787
 
 
54788
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54789
 
 
54790
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ARG_DECL_SEQ)) {
54791
 
      thisJoinPoint->that ()->parse (&__JP_That
54792
 
#line 208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54793
 
::wc_extension); 
54794
 
      *(CTree**)thisJoinPoint->result () = 
54795
 
        thisJoinPoint->that ()->builder ().any_list (); 
54796
 
    } else 
54797
 
      thisJoinPoint->action ().trigger (); 
54798
 
  }
54799
 
#line 54800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54800
 
 
54801
 
protected:
54802
 
 
54803
 
#line 213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54804
 
 
54805
 
 
54806
 
  
54807
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54808
 
 
54809
 
public: template<class JoinPoint> void __a13_around 
54810
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54811
 
 
54812
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54813
 
(JoinPoint *tjp)
54814
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54815
 
 {
54816
 
#line 54817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54817
 
 
54818
 
  JoinPoint *&thisJoinPoint = tjp;
54819
 
 
54820
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54821
 
 
54822
 
#line 54823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54823
 
 
54824
 
  typedef typename JoinPoint::That __JP_That;
54825
 
  typedef typename JoinPoint::Target __JP_Target;
54826
 
  typedef typename JoinPoint::Result __JP_Result;
54827
 
 
54828
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54829
 
 
54830
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_FCT_BODY)) {
54831
 
      thisJoinPoint->that ()->parse (&__JP_That
54832
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54833
 
::wc_extension); 
54834
 
      *(CTree**)thisJoinPoint->result () = 
54835
 
        thisJoinPoint->that ()->builder ().any (); 
54836
 
    } else 
54837
 
      thisJoinPoint->action ().trigger (); 
54838
 
  }
54839
 
#line 54840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54840
 
 
54841
 
protected:
54842
 
 
54843
 
#line 223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54844
 
 
54845
 
 
54846
 
  
54847
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54848
 
 
54849
 
public: template<class JoinPoint> void __a14_around 
54850
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54851
 
 
54852
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54853
 
(JoinPoint *tjp)
54854
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54855
 
 {
54856
 
#line 54857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54857
 
 
54858
 
  JoinPoint *&thisJoinPoint = tjp;
54859
 
 
54860
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54861
 
 
54862
 
#line 54863 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54863
 
 
54864
 
  typedef typename JoinPoint::That __JP_That;
54865
 
  typedef typename JoinPoint::Target __JP_Target;
54866
 
  typedef typename JoinPoint::Result __JP_Result;
54867
 
 
54868
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54869
 
 
54870
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CLASS_SPEC)) {
54871
 
      thisJoinPoint->that ()->parse (&__JP_That
54872
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54873
 
::wc_extension); 
54874
 
      *(CTree**)thisJoinPoint->result () = 
54875
 
        thisJoinPoint->that ()->builder ().any (); 
54876
 
    } else 
54877
 
      thisJoinPoint->action ().trigger (); 
54878
 
  }
54879
 
#line 54880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54880
 
 
54881
 
protected:
54882
 
 
54883
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54884
 
 
54885
 
 
54886
 
  
54887
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54888
 
 
54889
 
public: template<class JoinPoint> void __a15_around 
54890
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54891
 
 
54892
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54893
 
(JoinPoint *tjp)
54894
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54895
 
 {
54896
 
#line 54897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54897
 
 
54898
 
  JoinPoint *&thisJoinPoint = tjp;
54899
 
 
54900
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54901
 
 
54902
 
#line 54903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54903
 
 
54904
 
  typedef typename JoinPoint::That __JP_That;
54905
 
  typedef typename JoinPoint::Target __JP_Target;
54906
 
  typedef typename JoinPoint::Result __JP_Result;
54907
 
 
54908
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54909
 
 
54910
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_SPEC)) {
54911
 
      thisJoinPoint->that ()->parse (&__JP_That
54912
 
#line 238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54913
 
::wc_extension); 
54914
 
      *(CTree**)thisJoinPoint->result () = 
54915
 
        thisJoinPoint->that ()->builder ().any_list (); 
54916
 
    } else 
54917
 
      thisJoinPoint->action ().trigger (); 
54918
 
  }
54919
 
#line 54920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54920
 
 
54921
 
protected:
54922
 
 
54923
 
#line 243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54924
 
 
54925
 
 
54926
 
  
54927
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54928
 
 
54929
 
public: template<class JoinPoint> void __a16_around 
54930
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54931
 
 
54932
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54933
 
(JoinPoint *tjp)
54934
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54935
 
 {
54936
 
#line 54937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54937
 
 
54938
 
  JoinPoint *&thisJoinPoint = tjp;
54939
 
 
54940
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54941
 
 
54942
 
#line 54943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54943
 
 
54944
 
  typedef typename JoinPoint::That __JP_That;
54945
 
  typedef typename JoinPoint::Target __JP_Target;
54946
 
  typedef typename JoinPoint::Result __JP_Result;
54947
 
 
54948
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54949
 
 
54950
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_DECL)) {
54951
 
      thisJoinPoint->that ()->parse (&__JP_That
54952
 
#line 248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54953
 
::wc_extension); 
54954
 
      *(CTree**)thisJoinPoint->result () = 
54955
 
        thisJoinPoint->that ()->builder ().any (); 
54956
 
    } else 
54957
 
      thisJoinPoint->action ().trigger (); 
54958
 
  }
54959
 
#line 54960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54960
 
 
54961
 
protected:
54962
 
 
54963
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54964
 
 
54965
 
 
54966
 
  
54967
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54968
 
 
54969
 
public: template<class JoinPoint> void __a17_around 
54970
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54971
 
 
54972
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54973
 
(JoinPoint *tjp)
54974
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54975
 
 {
54976
 
#line 54977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54977
 
 
54978
 
  JoinPoint *&thisJoinPoint = tjp;
54979
 
 
54980
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54981
 
 
54982
 
#line 54983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
54983
 
 
54984
 
  typedef typename JoinPoint::That __JP_That;
54985
 
  typedef typename JoinPoint::Target __JP_Target;
54986
 
  typedef typename JoinPoint::Result __JP_Result;
54987
 
 
54988
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54989
 
 
54990
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT)) {
54991
 
      thisJoinPoint->that ()->parse (&__JP_That
54992
 
#line 258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
54993
 
::wc_extension); 
54994
 
      *(CTree**)thisJoinPoint->result () = 
54995
 
        thisJoinPoint->that ()->builder ().any (); 
54996
 
    } else 
54997
 
      thisJoinPoint->action ().trigger (); 
54998
 
  }
54999
 
#line 55000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55000
 
 
55001
 
protected:
55002
 
 
55003
 
#line 263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55004
 
 
55005
 
 
55006
 
  
55007
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55008
 
 
55009
 
public: template<class JoinPoint> void __a18_around 
55010
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55011
 
 
55012
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55013
 
(JoinPoint *tjp)
55014
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55015
 
 {
55016
 
#line 55017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55017
 
 
55018
 
  JoinPoint *&thisJoinPoint = tjp;
55019
 
 
55020
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55021
 
 
55022
 
#line 55023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55023
 
 
55024
 
  typedef typename JoinPoint::That __JP_That;
55025
 
  typedef typename JoinPoint::Target __JP_Target;
55026
 
  typedef typename JoinPoint::Result __JP_Result;
55027
 
 
55028
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55029
 
 
55030
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT_SEQ)) {
55031
 
      thisJoinPoint->that ()->parse (&__JP_That
55032
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55033
 
::wc_extension); 
55034
 
      *(CTree**)thisJoinPoint->result () = 
55035
 
        thisJoinPoint->that ()->builder ().any_list (); 
55036
 
    } else 
55037
 
      thisJoinPoint->action ().trigger (); 
55038
 
  }
55039
 
#line 55040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55040
 
 
55041
 
protected:
55042
 
 
55043
 
#line 273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55044
 
 
55045
 
 
55046
 
  
55047
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55048
 
 
55049
 
public: template<class JoinPoint> void __a19_around 
55050
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55051
 
 
55052
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55053
 
(JoinPoint *tjp)
55054
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55055
 
 {
55056
 
#line 55057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55057
 
 
55058
 
  JoinPoint *&thisJoinPoint = tjp;
55059
 
 
55060
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55061
 
 
55062
 
#line 55063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55063
 
 
55064
 
  typedef typename JoinPoint::That __JP_That;
55065
 
  typedef typename JoinPoint::Target __JP_Target;
55066
 
  typedef typename JoinPoint::Result __JP_Result;
55067
 
 
55068
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55069
 
 
55070
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_BASE_CLAUSE)) {
55071
 
      thisJoinPoint->that ()->parse (&__JP_That
55072
 
#line 278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55073
 
::wc_extension); 
55074
 
      *(CTree**)thisJoinPoint->result () = 
55075
 
        thisJoinPoint->that ()->builder ().any_list (); 
55076
 
    } else 
55077
 
      thisJoinPoint->action ().trigger (); 
55078
 
  }
55079
 
#line 55080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55080
 
 
55081
 
protected:
55082
 
 
55083
 
#line 283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55084
 
 
55085
 
 
55086
 
  
55087
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55088
 
 
55089
 
public: template<class JoinPoint> void __a20_around 
55090
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55091
 
 
55092
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55093
 
(JoinPoint *tjp)
55094
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55095
 
 {
55096
 
#line 55097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55097
 
 
55098
 
  JoinPoint *&thisJoinPoint = tjp;
55099
 
 
55100
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55101
 
 
55102
 
#line 55103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55103
 
 
55104
 
  typedef typename JoinPoint::That __JP_That;
55105
 
  typedef typename JoinPoint::Target __JP_Target;
55106
 
  typedef typename JoinPoint::Result __JP_Result;
55107
 
 
55108
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55109
 
 
55110
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CTOR_INIT)) {
55111
 
      thisJoinPoint->that ()->parse (&__JP_That
55112
 
#line 288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55113
 
::wc_extension); 
55114
 
      *(CTree**)thisJoinPoint->result () = 
55115
 
        thisJoinPoint->that ()->builder ().any (); 
55116
 
    } else 
55117
 
      thisJoinPoint->action ().trigger (); 
55118
 
  }
55119
 
#line 55120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55120
 
 
55121
 
protected:
55122
 
 
55123
 
#line 293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55124
 
 
55125
 
 
55126
 
  
55127
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55128
 
 
55129
 
public: template<class JoinPoint> void __a21_around 
55130
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55131
 
 
55132
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55133
 
(JoinPoint *tjp)
55134
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55135
 
 {
55136
 
#line 55137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55137
 
 
55138
 
  JoinPoint *&thisJoinPoint = tjp;
55139
 
 
55140
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55141
 
 
55142
 
#line 55143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55143
 
 
55144
 
  typedef typename JoinPoint::That __JP_That;
55145
 
  typedef typename JoinPoint::Target __JP_Target;
55146
 
  typedef typename JoinPoint::Result __JP_Result;
55147
 
 
55148
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55149
 
 
55150
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEM_INIT)) {
55151
 
      thisJoinPoint->that ()->parse (&__JP_That
55152
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55153
 
::wc_extension); 
55154
 
      *(CTree**)thisJoinPoint->result () = 
55155
 
        thisJoinPoint->that ()->builder ().any (); 
55156
 
    } else 
55157
 
      thisJoinPoint->action ().trigger (); 
55158
 
  }
55159
 
#line 55160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55160
 
 
55161
 
protected:
55162
 
 
55163
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55164
 
 
55165
 
 
55166
 
  // extend the syntax to be able to parse match trees
55167
 
 
55168
 
  
55169
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55170
 
 
55171
 
public: template<class JoinPoint> void __a22_around 
55172
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55173
 
 
55174
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55175
 
(JoinPoint *tjp)
55176
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55177
 
 {
55178
 
#line 55179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55179
 
 
55180
 
  JoinPoint *&thisJoinPoint = tjp;
55181
 
 
55182
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55183
 
 
55184
 
#line 55185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55185
 
 
55186
 
  typedef typename JoinPoint::That __JP_That;
55187
 
  typedef typename JoinPoint::Target __JP_Target;
55188
 
  typedef typename JoinPoint::Result __JP_Result;
55189
 
 
55190
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55191
 
 
55192
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_TYPEDEF)) {
55193
 
      *(CTree**)thisJoinPoint->result () = 
55194
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
55195
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
55196
 
    } else 
55197
 
      thisJoinPoint->action ().trigger (); 
55198
 
  }
55199
 
#line 55200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55200
 
 
55201
 
protected:
55202
 
 
55203
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55204
 
 
55205
 
 
55206
 
  
55207
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55208
 
 
55209
 
public: template<class JoinPoint> void __a23_around 
55210
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55211
 
 
55212
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55213
 
(JoinPoint *tjp)
55214
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55215
 
 {
55216
 
#line 55217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55217
 
 
55218
 
  JoinPoint *&thisJoinPoint = tjp;
55219
 
 
55220
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55221
 
 
55222
 
#line 55223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55223
 
 
55224
 
  typedef typename JoinPoint::That __JP_That;
55225
 
  typedef typename JoinPoint::Target __JP_Target;
55226
 
  typedef typename JoinPoint::Result __JP_Result;
55227
 
 
55228
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55229
 
 
55230
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_CLASS)) {
55231
 
      *(CTree**)thisJoinPoint->result () = 
55232
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
55233
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
55234
 
    } else 
55235
 
      thisJoinPoint->action ().trigger (); 
55236
 
  }
55237
 
#line 55238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55238
 
 
55239
 
protected:
55240
 
 
55241
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55242
 
 
55243
 
 
55244
 
  
55245
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55246
 
 
55247
 
public: template<class JoinPoint> void __a24_around 
55248
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55249
 
 
55250
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55251
 
(JoinPoint *tjp)
55252
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55253
 
 {
55254
 
#line 55255 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55255
 
 
55256
 
  JoinPoint *&thisJoinPoint = tjp;
55257
 
 
55258
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55259
 
 
55260
 
#line 55261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55261
 
 
55262
 
  typedef typename JoinPoint::That __JP_That;
55263
 
  typedef typename JoinPoint::Target __JP_Target;
55264
 
  typedef typename JoinPoint::Result __JP_Result;
55265
 
 
55266
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55267
 
 
55268
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_ENUM)) {
55269
 
      *(CTree**)thisJoinPoint->result () = 
55270
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
55271
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
55272
 
    } else 
55273
 
      thisJoinPoint->action ().trigger (); 
55274
 
  }
55275
 
#line 55276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55276
 
 
55277
 
protected:
55278
 
 
55279
 
#line 335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55280
 
 
55281
 
 
55282
 
  // configure parsing match expressions
55283
 
  
55284
 
  
55285
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55286
 
 
55287
 
public: void __a25_before 
55288
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55289
 
 
55290
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55291
 
(Config &config)
55292
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55293
 
 {
55294
 
    match_expr = (config.Option ("--match-expr"));
55295
 
  }
55296
 
#line 55297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55297
 
 
55298
 
protected:
55299
 
 
55300
 
#line 342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55301
 
 
 
66444
  friend class ::CMatchSyntax;
 
66445
 
 
66446
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66447
 
 
66448
 
 
66449
  bool _prj_keywords;
 
66450
  Puma::CProject *_project; // active project
 
66451
  
 
66452
protected:
 
66453
  ExtACKeywords () : _prj_keywords (false) {}
 
66454
  
 
66455
public:
 
66456
  // allow/forbid AspectC++ keywords in normal project files
 
66457
  void prj_keywords (bool kw) { _prj_keywords = kw; }
 
66458
  
 
66459
  
 
66460
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66461
 
 
66462
public: void __a0_before 
 
66463
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66464
 
 
66465
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66466
(Puma::CProject &project)
 
66467
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66468
 {
 
66469
    _project = &project;
 
66470
  }
 
66471
  
 
66472
  
 
66473
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66474
 
 
66475
public: template<class JoinPoint> void __a1_before 
 
66476
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66477
 
 
66478
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66479
(JoinPoint *tjp, Puma::Unit &unit)
 
66480
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66481
 {
 
66482
#line 66483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66483
 
 
66484
  typedef typename JoinPoint::That __JP_That;
 
66485
  typedef typename JoinPoint::Target __JP_Target;
 
66486
  typedef typename JoinPoint::Result __JP_Result;
 
66487
 
 
66488
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66489
 
 
66490
    if (!unit.isFile ())
 
66491
      return;
 
66492
      
 
66493
    bool ac_kw = _prj_keywords;
 
66494
    // in external files the AspectC++ keywords are always identifiers
 
66495
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
 
66496
      ac_kw = false;
 
66497
    }
 
66498
    // in aspect headers keywords are keywords
 
66499
    else if (unit.name () &&
 
66500
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
 
66501
      ac_kw = true;
 
66502
    }
 
66503
    // finally the right flag
 
66504
    tjp->that ()->allow_aspectc (ac_kw);
 
66505
  }
 
66506
  
 
66507
  
 
66508
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66509
 
 
66510
public: template<class JoinPoint> void __a2_before 
 
66511
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66512
 
 
66513
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66514
(JoinPoint *tjp)
 
66515
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66516
 {
 
66517
#line 66518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66518
 
 
66519
  typedef typename JoinPoint::That __JP_That;
 
66520
  typedef typename JoinPoint::Target __JP_Target;
 
66521
  typedef typename JoinPoint::Result __JP_Result;
 
66522
 
 
66523
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66524
 
 
66525
    _project = tjp->that ();
 
66526
  }
55302
66527
};
55303
 
#line 55304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
66528
#line 66529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
55304
66529
 
55305
66530
namespace AC {
55306
66531
  template <class JoinPoint>
55307
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
55308
 
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
55309
 
  }
55310
 
  template <class JoinPoint>
55311
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
55312
 
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
55313
 
  }
55314
 
  template <class JoinPoint>
55315
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
55316
 
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
55317
 
  }
55318
 
  template <class JoinPoint>
55319
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
55320
 
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
55321
 
  }
55322
 
  template <class JoinPoint>
55323
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
55324
 
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
55325
 
  }
55326
 
  template <class JoinPoint>
55327
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
55328
 
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
55329
 
  }
55330
 
  template <class JoinPoint>
55331
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
55332
 
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
55333
 
  }
55334
 
  template <class JoinPoint>
55335
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
55336
 
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
55337
 
  }
55338
 
  template <class JoinPoint>
55339
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
55340
 
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
55341
 
  }
55342
 
  template <class JoinPoint>
55343
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
55344
 
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
55345
 
  }
55346
 
  template <class JoinPoint>
55347
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
55348
 
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
55349
 
  }
55350
 
  template <class JoinPoint>
55351
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
55352
 
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
55353
 
  }
55354
 
  template <class JoinPoint>
55355
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
55356
 
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
55357
 
  }
55358
 
  template <class JoinPoint>
55359
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
55360
 
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
55361
 
  }
55362
 
  template <class JoinPoint>
55363
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
55364
 
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
55365
 
  }
55366
 
  template <class JoinPoint>
55367
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
55368
 
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
55369
 
  }
55370
 
  template <class JoinPoint>
55371
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
55372
 
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
55373
 
  }
55374
 
  template <class JoinPoint>
55375
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
55376
 
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
55377
 
  }
55378
 
  template <class JoinPoint>
55379
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
55380
 
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
55381
 
  }
55382
 
  template <class JoinPoint>
55383
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
55384
 
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
55385
 
  }
55386
 
  template <class JoinPoint>
55387
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
55388
 
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
55389
 
  }
55390
 
  template <class JoinPoint>
55391
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
55392
 
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
55393
 
  }
55394
 
  template <class JoinPoint>
55395
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
55396
 
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
55397
 
  }
55398
 
  template <class JoinPoint>
55399
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
55400
 
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
55401
 
  }
55402
 
  template <class JoinPoint>
55403
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
55404
 
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
55405
 
  }
55406
 
  template <class JoinPoint, class Binding>
55407
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
55408
 
    typedef typename Binding::template Arg<0> Arg0;
55409
 
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
66532
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
66533
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
 
66534
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
 
66535
  }
 
66536
  template <class JoinPoint>
 
66537
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
66538
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
 
66539
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
 
66540
  }
 
66541
  template <class JoinPoint>
 
66542
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
66543
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
55410
66544
  }
55411
66545
55412
66546
 
55413
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55414
 
 
55415
 
 
55416
 
// introduce wildcard rules to CSyntax
55417
 
 
55418
 
#line 356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55419
 
 
55420
 
 
55421
 
// introduce wildcard rules to CCSyntax
55422
 
 
55423
 
#line 362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55424
 
 
55425
 
 
55426
 
// extend CBuilder
55427
 
 
55428
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55429
 
 
55430
 
 
55431
 
 
55432
 
#line 400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55433
 
 
55434
 
         
55435
 
 
55436
 
#line 414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55437
 
 
55438
 
 
55439
 
 
55440
 
#line 420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55441
 
 
55442
 
 
55443
 
 
55444
 
#line 426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55445
 
 
55446
 
 
55447
 
 
55448
 
#line 432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55449
 
 
55450
 
 
55451
 
 
55452
 
#line 437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55453
 
 
55454
 
 
55455
 
/*****************************************************************************/
55456
 
/*                                                                           */
55457
 
/*                              wildcard rules                               */
55458
 
/*                                                                           */
55459
 
/*****************************************************************************/
55460
 
 
55461
 
 
55462
 
#line 449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55463
 
 
55464
 
 
55465
 
 
55466
 
#line 470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55467
 
 
55468
 
 
55469
 
 
55470
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55471
 
 
55472
 
 
55473
 
 
55474
 
#line 481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55475
 
 
55476
 
 
55477
 
 
55478
 
#line 487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55479
 
 
55480
 
 
55481
 
 
55482
 
#line 494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55483
 
 
55484
 
 
55485
 
 
55486
 
#line 510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55487
 
 
55488
 
            
55489
 
 
55490
 
#line 523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55491
 
 
55492
 
 
55493
 
 
55494
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55495
 
 
55496
 
 
55497
 
 
55498
 
#line 540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55499
 
 
55500
 
 
55501
 
 
55502
 
#line 550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55503
 
 
55504
 
 
55505
 
 
55506
 
#line 563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55507
 
 
55508
 
 
55509
 
 
55510
 
#line 569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55511
 
 
55512
 
 
55513
 
 
55514
 
#line 575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
55515
 
 
55516
 
 
55517
 
#endif /* __CMatchSyntax_ah__ */
55518
 
 
55519
 
#line 19 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
 
66547
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
66548
  
 
66549
 
 
66550
#endif /* __ext_ac_keywords_ah__ */
 
66551
 
 
66552
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
55520
66553
#endif
55521
 
#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__)
55522
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
66554
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
66555
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
55523
66556
 
55524
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
66557
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
55525
66558
// This file is part of PUMA.
55526
66559
// Copyright (C) 1999-2003  The PUMA developer team.
55527
66560
//                                                                
55544
66577
#define __ext_gnu_h__
55545
66578
 
55546
66579
 
55547
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
55548
 
 
55549
 
#line 55550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55550
 
 
55551
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
55552
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
55553
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
55554
 
 
55555
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
66580
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
55556
66581
// This file is part of PUMA.
55557
66582
// Copyright (C) 1999-2003  The PUMA developer team.
55558
66583
//                                                                
55577
66602
namespace Puma {
55578
66603
 
55579
66604
// Syntax tree node hierarchy:
 
66605
class   CT_GnuAsmSpec;       // derived from CTree
55580
66606
class   CT_GnuAsmDef;        // derived from CT_AsmDef
55581
66607
class   CT_GnuAsmOperand;    // derived from CTree
55582
66608
class     CT_GnuAsmOperands; // derived from CT_List
55586
66612
} // namespace Puma
55587
66613
 
55588
66614
 
55589
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66615
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55590
66616
 
55591
 
#line 55592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
66617
#line 66618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
55592
66618
 
55593
66619
#ifndef __ac_fwd_ExtACTree__
55594
66620
#define __ac_fwd_ExtACTree__
55595
66621
class ExtACTree;
55596
66622
namespace AC {
55597
66623
  template <class JoinPoint>
55598
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
66624
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
55599
66625
  template <class JoinPoint>
55600
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
66626
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
55601
66627
}
55602
66628
#endif
55603
66629
 
55604
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
55605
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66630
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
66631
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
55606
66632
#endif
55607
66633
 
55608
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55609
 
 
55610
 
#line 55611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
55611
 
 
55612
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55613
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
55614
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
55615
 
 
55616
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66634
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55617
66635
// This file is part of PUMA.
55618
66636
// Copyright (C) 1999-2003  The PUMA developer team.
55619
66637
//                                                                
55658
66676
class     CT_DefaultStmt;
55659
66677
class     CT_TryStmt;
55660
66678
class   CT_Expression;
 
66679
class     CT_Call;
 
66680
class       CT_CallExpr;
 
66681
class       CT_ImplicitCall;
55661
66682
class     CT_ThrowExpr;
55662
66683
class     CT_NewExpr;
55663
66684
class     CT_DeleteExpr;
55678
66699
class     CT_IfThenExpr;
55679
66700
class     CT_CmpdLiteral;
55680
66701
class     CT_IndexExpr;
55681
 
class     CT_CallExpr;
55682
66702
class     CT_CastExpr;
55683
66703
class     CT_StaticCast;
55684
66704
class       CT_ConstCast;
55725
66745
class     CT_NamespaceDef;
55726
66746
class     CT_NamespaceAliasDef;
55727
66747
class     CT_UsingDirective;
 
66748
class     CT_Condition;
55728
66749
class   CT_List;
55729
66750
class     CT_CmpdStmt;
55730
66751
class     CT_DeclSpecSeq;
55755
66776
class     CT_TemplateArgList;
55756
66777
class   CT_Token;
55757
66778
class   CT_Error;
55758
 
class   CT_Condition;
55759
66779
class   CT_BaseSpec;
55760
66780
class   CT_AccessSpec;
55761
66781
class   CT_ArrayDelimiter;
55795
66815
/*                                                                           */
55796
66816
/*****************************************************************************/
55797
66817
 
55798
 
 
55799
 
#line 55800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
66818
/** \file
 
66819
 *  C/C++ syntax tree classes.
 
66820
 *  \see Puma::CTree */
 
66821
 
 
66822
/** \class CTree CTree.h Puma/CTree.h
 
66823
 *  Base class for all C/C++ syntax tree classes. */
 
66824
 
 
66825
#line 66826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
55800
66826
} // closed Puma
 
66827
class CCExprResolve;
 
66828
class CExprResolve;
55801
66829
class WinIfExists;
55802
66830
class WinImportHandler;
55803
66831
class WinMacros;
55804
 
class CMatchSyntax;
55805
 
class ExtGnu;
 
66832
class WinAsm;
 
66833
class WinDeclSpecs;
 
66834
class WinMemberExplSpec;
 
66835
class WinTypeKeywords;
 
66836
class WinFriend;
55806
66837
class ExtAC;
55807
66838
class ExtACBuilderCoupling;
55808
66839
class ExtACSyntaxCoupling;
55809
66840
class ExtACTree;
55810
66841
class ExtACKeywords;
55811
 
class WinAsm;
55812
 
class WinDeclSpecs;
55813
 
class WinMemberExplSpec;
55814
 
class WinTypeKeywords;
 
66842
class ExtGnu;
55815
66843
class PragmaOnceUnitState;
55816
66844
class PragmaOnce;
55817
 
class CCExprResolve;
55818
 
class CExprResolve;
55819
 
namespace Puma {
55820
 
 
55821
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66845
class CMatchSyntax;
 
66846
namespace Puma {
 
66847
 
 
66848
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66849
 
 
66850
#line 66851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66851
} // closed Puma
 
66852
 
 
66853
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
66854
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
66855
#include "CCExprResolveH.ah"
 
66856
#endif
 
66857
namespace Puma {
 
66858
 
 
66859
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66860
 
 
66861
#line 66862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66862
} // closed Puma
 
66863
 
 
66864
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
66865
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
66866
#include "CExprResolveH.ah"
 
66867
#endif
 
66868
namespace Puma {
 
66869
 
 
66870
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55822
66871
class CTree {
55823
 
#line 55824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
66872
#line 66873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
66873
  friend class ::CCExprResolve;
 
66874
  friend class ::CExprResolve;
55824
66875
  friend class ::WinIfExists;
55825
66876
  friend class ::WinImportHandler;
55826
66877
  friend class ::WinMacros;
55827
 
  friend class ::CMatchSyntax;
55828
 
  friend class ::ExtGnu;
 
66878
  friend class ::WinAsm;
 
66879
  friend class ::WinDeclSpecs;
 
66880
  friend class ::WinMemberExplSpec;
 
66881
  friend class ::WinTypeKeywords;
 
66882
  friend class ::WinFriend;
55829
66883
  friend class ::ExtAC;
55830
66884
  friend class ::ExtACBuilderCoupling;
55831
66885
  friend class ::ExtACSyntaxCoupling;
55832
66886
  friend class ::ExtACTree;
55833
66887
  friend class ::ExtACKeywords;
55834
 
  friend class ::WinAsm;
55835
 
  friend class ::WinDeclSpecs;
55836
 
  friend class ::WinMemberExplSpec;
55837
 
  friend class ::WinTypeKeywords;
 
66888
  friend class ::ExtGnu;
55838
66889
  friend class ::PragmaOnceUnitState;
55839
66890
  friend class ::PragmaOnce;
55840
 
  friend class ::CCExprResolve;
55841
 
  friend class ::CExprResolve;
55842
 
 
55843
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66891
  friend class ::CMatchSyntax;
 
66892
 
 
66893
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66894
 
 
66895
  CTree * _parent;
55844
66896
 
55845
66897
public:
55846
66898
  /*DEBUG*/static int alloc;
55847
66899
  /*DEBUG*/static int release;
55848
66900
 
55849
66901
protected:
55850
 
  CTree *Son (CTree * const *, int, int) const;
55851
 
  int Sons (CTree * const *, int) const;
55852
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
66902
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
66903
   *  \param sons The sons array.
 
66904
   *  \param len Length of the sons array.
 
66905
   *  \param n Index of the son.
 
66906
   *  \return The n-th son or NULL. */
 
66907
  CTree *Son (CTree * const *sons, int len, int n) const;
 
66908
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
66909
   *  \param sons The sons array.
 
66910
   *  \param len Length of the sons array. */
 
66911
  int Sons (CTree * const *sons, int len) const;
 
66912
  /** Replace a son.
 
66913
   *  \param sons The sons array.
 
66914
   *  \param len Length of the sons array.
 
66915
   *  \param old_son The son to replace.
 
66916
   *  \param new_son The new son. */
 
66917
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
66918
  /** Replace a son if it equals the given son.
 
66919
   *  \param son The actual son.
 
66920
   *  \param old_son The son to replace, must match the actual son.
 
66921
   *  \param new_son The new son, overwrites the actual son. */
 
66922
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
66923
  /** Add a new son.
 
66924
   *  \param son The actual son.
 
66925
   *  \param new_son The new son, overwrites the actual son. */
 
66926
  void AddSon (CTree *&son, CTree *new_son);
 
66927
  /** Set the parent tree node.
 
66928
   *  \param parent The new parent tree node. */
 
66929
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
66930
  /** Set the parent tree node of the given tree node.
 
66931
   *  \param node The tree node.
 
66932
   *  \param parent The new parent. */
 
66933
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
55853
66934
  
55854
66935
protected:
55855
 
  CTree () { /*DEBUG*/alloc++; }
 
66936
  /** Default constructor. */
 
66937
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
55856
66938
 
55857
66939
public:
 
66940
  /** Destructor. */
55858
66941
  virtual ~CTree () { /*DEBUG*/release++; }
 
66942
  /** Get the number of sons. */
55859
66943
  virtual int Sons () const = 0;
 
66944
  /** Get the n-th son.
 
66945
   *  \param n The index of the son.
 
66946
   *  \return The n-th son or NULL. */
55860
66947
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
66948
  /** Get the node name (node identifier). */
55861
66949
  virtual const char *NodeName () const = 0;
 
66950
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
66951
   *  \return The token or NULL. */
55862
66952
  virtual Token *token () const;
 
66953
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
66954
   *  \return The token or NULL. */
55863
66955
  virtual Token *end_token () const;
 
66956
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
66957
   *  \return The token node or NULL. */
55864
66958
  virtual CT_Token *token_node () const;
 
66959
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
66960
   *  \return The token node or NULL. */
55865
66961
  virtual CT_Token *end_token_node () const;
55866
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
66962
  /** Replace a son.
 
66963
   *  \param old_son The son to replace.
 
66964
   *  \param new_son The son with which to replace. */
 
66965
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
66966
  /** Get the parent node.
 
66967
   *  \return The parent node or NULL. */
 
66968
  virtual CTree *Parent () const { return (CTree*)_parent; }
55867
66969
 
55868
66970
public: // semantic information
 
66971
  /** Get the semantic type of the node.
 
66972
   *  \return The type object or NULL. */
55869
66973
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
66974
  /** Get the calculated value of the expression.
 
66975
   *  \return The value object or NULL. */
55870
66976
  virtual CExprValue *Value () const { return (CExprValue*)0; }
55871
66977
  
 
66978
  /** Get the semantic scope of the node.
 
66979
   *  \return The scope object or NULL. */
 
66980
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
66981
  /** Get the semantic value of the node.
 
66982
   *  \return The value object or NULL. */
55872
66983
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
66984
  /** Get the semantic object of the node.
 
66985
   *  \return The semantic object or NULL. */
55873
66986
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
55874
66987
  
55875
66988
public: // node classification function
 
66989
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
66990
   *  \return The CT_SimpleName node or NULL. */
55876
66991
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
66992
  /** Get a pointer to CT_String if the current node represents a string.
 
66993
   *  \return The CT_String node or NULL. */
 
66994
  virtual CT_String *IsString () { return 0; }
 
66995
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
66996
   *  \return The CT_Declarator pointer or NULL. */
55877
66997
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
66998
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
66999
   *  \return The CT_Statement pointer or NULL. */
 
67000
  virtual CT_Statement *IsStatement () { return 0; }
 
67001
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
67002
   *  \return The CT_Expression pointer or NULL. */
 
67003
  virtual CT_Expression *IsExpression () { return 0; }
 
67004
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
67005
   *  \return The CT_Decl pointer or NULL. */
 
67006
  virtual CT_Decl *IsDeclaration () { return 0; }
 
67007
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
67008
   *  \return The CT_Call pointer or NULL. */
 
67009
  virtual CT_Call *IsCall () { return 0; }
55878
67010
   private:
55879
67011
  typedef CTree CCExprResolveCTree;
55880
67012
 
55881
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67013
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
55882
67014
 public :
55883
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67015
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
55884
67016
  typedef CTree CExprResolveCTree;
55885
67017
 
55886
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67018
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
55887
67019
 public :
55888
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
55889
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67020
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67021
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55890
67022
};
55891
67023
 
 
67024
/** \class CT_Error CTree.h Puma/CTree.h
 
67025
 *  Error tree node that is inserted into the tree for syntactic constructs
 
67026
 *  that could not be parsed. */
55892
67027
 
55893
 
#line 55894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67028
#line 67029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
55894
67029
} // closed Puma
 
67030
class CCExprResolve;
 
67031
class CExprResolve;
55895
67032
class WinIfExists;
55896
67033
class WinImportHandler;
55897
67034
class WinMacros;
55898
 
class CMatchSyntax;
55899
 
class ExtGnu;
 
67035
class WinAsm;
 
67036
class WinDeclSpecs;
 
67037
class WinMemberExplSpec;
 
67038
class WinTypeKeywords;
 
67039
class WinFriend;
55900
67040
class ExtAC;
55901
67041
class ExtACBuilderCoupling;
55902
67042
class ExtACSyntaxCoupling;
55903
67043
class ExtACTree;
55904
67044
class ExtACKeywords;
55905
 
class WinAsm;
55906
 
class WinDeclSpecs;
55907
 
class WinMemberExplSpec;
55908
 
class WinTypeKeywords;
 
67045
class ExtGnu;
55909
67046
class PragmaOnceUnitState;
55910
67047
class PragmaOnce;
55911
 
class CCExprResolve;
55912
 
class CExprResolve;
 
67048
class CMatchSyntax;
55913
67049
namespace Puma {
55914
67050
 
55915
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67051
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55916
67052
class CT_Error : public CTree {
55917
 
#line 55918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67053
#line 67054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67054
  friend class ::CCExprResolve;
 
67055
  friend class ::CExprResolve;
55918
67056
  friend class ::WinIfExists;
55919
67057
  friend class ::WinImportHandler;
55920
67058
  friend class ::WinMacros;
55921
 
  friend class ::CMatchSyntax;
55922
 
  friend class ::ExtGnu;
 
67059
  friend class ::WinAsm;
 
67060
  friend class ::WinDeclSpecs;
 
67061
  friend class ::WinMemberExplSpec;
 
67062
  friend class ::WinTypeKeywords;
 
67063
  friend class ::WinFriend;
55923
67064
  friend class ::ExtAC;
55924
67065
  friend class ::ExtACBuilderCoupling;
55925
67066
  friend class ::ExtACSyntaxCoupling;
55926
67067
  friend class ::ExtACTree;
55927
67068
  friend class ::ExtACKeywords;
55928
 
  friend class ::WinAsm;
55929
 
  friend class ::WinDeclSpecs;
55930
 
  friend class ::WinMemberExplSpec;
55931
 
  friend class ::WinTypeKeywords;
 
67069
  friend class ::ExtGnu;
55932
67070
  friend class ::PragmaOnceUnitState;
55933
67071
  friend class ::PragmaOnce;
55934
 
  friend class ::CCExprResolve;
55935
 
  friend class ::CExprResolve;
 
67072
  friend class ::CMatchSyntax;
55936
67073
 
55937
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67074
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55938
67075
 
55939
67076
public:
 
67077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55940
67078
  static const char *NodeId ();
 
67079
  /** Get the name of the node. Can be compared with NodeId(). */
55941
67080
  const char *NodeName () const { return NodeId (); }
 
67081
  /** Get the number of sons. */
55942
67082
  int Sons () const { return 0; }
55943
67083
};
55944
67084
 
 
67085
/** \class CT_Token CTree.h Puma/CTree.h
 
67086
 *  Tree node representing a single token in the source code. */
55945
67087
 
55946
 
#line 55947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67088
#line 67089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
55947
67089
} // closed Puma
 
67090
class CCExprResolve;
 
67091
class CExprResolve;
55948
67092
class WinIfExists;
55949
67093
class WinImportHandler;
55950
67094
class WinMacros;
55951
 
class CMatchSyntax;
55952
 
class ExtGnu;
 
67095
class WinAsm;
 
67096
class WinDeclSpecs;
 
67097
class WinMemberExplSpec;
 
67098
class WinTypeKeywords;
 
67099
class WinFriend;
55953
67100
class ExtAC;
55954
67101
class ExtACBuilderCoupling;
55955
67102
class ExtACSyntaxCoupling;
55956
67103
class ExtACTree;
55957
67104
class ExtACKeywords;
55958
 
class WinAsm;
55959
 
class WinDeclSpecs;
55960
 
class WinMemberExplSpec;
55961
 
class WinTypeKeywords;
 
67105
class ExtGnu;
55962
67106
class PragmaOnceUnitState;
55963
67107
class PragmaOnce;
55964
 
class CCExprResolve;
55965
 
class CExprResolve;
 
67108
class CMatchSyntax;
55966
67109
namespace Puma {
55967
67110
 
55968
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67111
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55969
67112
class CT_Token : public CTree {
55970
 
#line 55971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67113
#line 67114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67114
  friend class ::CCExprResolve;
 
67115
  friend class ::CExprResolve;
55971
67116
  friend class ::WinIfExists;
55972
67117
  friend class ::WinImportHandler;
55973
67118
  friend class ::WinMacros;
55974
 
  friend class ::CMatchSyntax;
55975
 
  friend class ::ExtGnu;
 
67119
  friend class ::WinAsm;
 
67120
  friend class ::WinDeclSpecs;
 
67121
  friend class ::WinMemberExplSpec;
 
67122
  friend class ::WinTypeKeywords;
 
67123
  friend class ::WinFriend;
55976
67124
  friend class ::ExtAC;
55977
67125
  friend class ::ExtACBuilderCoupling;
55978
67126
  friend class ::ExtACSyntaxCoupling;
55979
67127
  friend class ::ExtACTree;
55980
67128
  friend class ::ExtACKeywords;
55981
 
  friend class ::WinAsm;
55982
 
  friend class ::WinDeclSpecs;
55983
 
  friend class ::WinMemberExplSpec;
55984
 
  friend class ::WinTypeKeywords;
 
67129
  friend class ::ExtGnu;
55985
67130
  friend class ::PragmaOnceUnitState;
55986
67131
  friend class ::PragmaOnce;
55987
 
  friend class ::CCExprResolve;
55988
 
  friend class ::CExprResolve;
 
67132
  friend class ::CMatchSyntax;
55989
67133
 
55990
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67134
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55991
67135
 
55992
67136
  Token *_token;
55993
67137
  unsigned long int _number;
55994
67138
  
55995
67139
public:
55996
 
  CT_Token (Token *t, unsigned long int n = 0) : 
55997
 
    _token (t), _number (n) {}
 
67140
  /** Constructor. 
 
67141
   *  \param token The represented token.
 
67142
   *  \param number The token number (a consecutive number). */
 
67143
  CT_Token (Token *token, unsigned long int number = 0) : 
 
67144
    _token (token), _number (number) {}
 
67145
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55998
67146
  static const char *NodeId ();
 
67147
  /** Get the name of the node. Can be compared with NodeId(). */
55999
67148
  const char *NodeName () const { return NodeId (); }
 
67149
  /** Get the number of sons. */
56000
67150
  int Sons () const { return 0; }
 
67151
  /** Get the represented token. */
56001
67152
  Token *token () const { return _token; }
 
67153
  /** Get the represented token. */
56002
67154
  Token *end_token () const { return _token; }
 
67155
  /** Get this. */
56003
67156
  CT_Token *token_node () const { return (CT_Token*)this; }
 
67157
  /** Get this. */
56004
67158
  CT_Token *end_token_node () const { return (CT_Token*)this; }
56005
 
  void Number (unsigned long int n) { _number = n; }
 
67159
  /** Set the token number. 
 
67160
   *  \param number The token number. */ 
 
67161
  void Number (unsigned long int number) { _number = number; }
 
67162
  /** Get the token number. Can be used to indentify this token. */
56006
67163
  unsigned long int Number () const { return _number; }
56007
 
  // special new / delete with reusing memory
 
67164
  
 
67165
public:
 
67166
  /** Own new operator reusing memory. */
56008
67167
  void *operator new (size_t);
56009
 
  void  operator delete (void *);
 
67168
  /** Own delete operator. */
 
67169
  void operator delete (void *);
56010
67170
};
56011
67171
 
56012
67172
/*****************************************************************************/
56015
67175
/*                                                                           */
56016
67176
/*****************************************************************************/
56017
67177
 
 
67178
/** \class CT_List CTree.h Puma/CTree.h
 
67179
 *  Base class for tree nodes representing lists. */
56018
67180
 
56019
 
#line 56020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67181
#line 67182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56020
67182
} // closed Puma
 
67183
class CCExprResolve;
 
67184
class CExprResolve;
56021
67185
class WinIfExists;
56022
67186
class WinImportHandler;
56023
67187
class WinMacros;
56024
 
class CMatchSyntax;
56025
 
class ExtGnu;
 
67188
class WinAsm;
 
67189
class WinDeclSpecs;
 
67190
class WinMemberExplSpec;
 
67191
class WinTypeKeywords;
 
67192
class WinFriend;
56026
67193
class ExtAC;
56027
67194
class ExtACBuilderCoupling;
56028
67195
class ExtACSyntaxCoupling;
56029
67196
class ExtACTree;
56030
67197
class ExtACKeywords;
56031
 
class WinAsm;
56032
 
class WinDeclSpecs;
56033
 
class WinMemberExplSpec;
56034
 
class WinTypeKeywords;
 
67198
class ExtGnu;
56035
67199
class PragmaOnceUnitState;
56036
67200
class PragmaOnce;
56037
 
class CCExprResolve;
56038
 
class CExprResolve;
 
67201
class CMatchSyntax;
56039
67202
namespace Puma {
56040
67203
 
56041
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67204
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56042
67205
class CT_List : public CTree {
56043
 
#line 56044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67206
#line 67207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67207
  friend class ::CCExprResolve;
 
67208
  friend class ::CExprResolve;
56044
67209
  friend class ::WinIfExists;
56045
67210
  friend class ::WinImportHandler;
56046
67211
  friend class ::WinMacros;
56047
 
  friend class ::CMatchSyntax;
56048
 
  friend class ::ExtGnu;
 
67212
  friend class ::WinAsm;
 
67213
  friend class ::WinDeclSpecs;
 
67214
  friend class ::WinMemberExplSpec;
 
67215
  friend class ::WinTypeKeywords;
 
67216
  friend class ::WinFriend;
56049
67217
  friend class ::ExtAC;
56050
67218
  friend class ::ExtACBuilderCoupling;
56051
67219
  friend class ::ExtACSyntaxCoupling;
56052
67220
  friend class ::ExtACTree;
56053
67221
  friend class ::ExtACKeywords;
56054
 
  friend class ::WinAsm;
56055
 
  friend class ::WinDeclSpecs;
56056
 
  friend class ::WinMemberExplSpec;
56057
 
  friend class ::WinTypeKeywords;
 
67222
  friend class ::ExtGnu;
56058
67223
  friend class ::PragmaOnceUnitState;
56059
67224
  friend class ::PragmaOnce;
56060
 
  friend class ::CCExprResolve;
56061
 
  friend class ::CExprResolve;
 
67225
  friend class ::CMatchSyntax;
56062
67226
 
56063
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67227
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56064
67228
 
56065
67229
  Array<CTree*> _sons;
56066
67230
  int _properties;
56067
67231
 
56068
67232
protected:
 
67233
  /** Constructor.
 
67234
   *  \param size The initial list size.
 
67235
   *  \param incr The initial increment count. 
 
67236
   *  \param props The list properties (bit array). */
56069
67237
  CT_List(int size = 5, int incr = 5, int props = 0) : 
56070
67238
    _sons (size, incr), _properties (props) {}
56071
67239
 
56072
67240
public:
 
67241
  /** List properties. */
56073
67242
  enum {
56074
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
56075
 
    CLOSE = 2,
56076
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
56077
 
    SEPARATORS = 4,   // the list has separators like ','
56078
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
56079
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
56080
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
56081
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
67243
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
67244
    CLOSE = 2,        /** List has an end token */
 
67245
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
67246
    SEPARATORS = 4,   /** List has separators, like ',' */
 
67247
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
67248
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
67249
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
67250
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
56082
67251
  };
56083
67252
 
 
67253
  /** Get the number of list entries. */
56084
67254
  int Entries () const;
56085
 
  CTree *Entry (int no) const;
 
67255
  /** Get the n-th list entry.
 
67256
   *  \param n The index of the entry. 
 
67257
   *  \return The list entry or NULL. */
 
67258
  CTree *Entry (int n) const;
 
67259
  /** Get the number of sons. */
56086
67260
  int Sons () const { return _sons.length (); }
 
67261
  /** Get the n-th son.
 
67262
   *  \param n The index of the son. 
 
67263
   *  \return The n-th son or NULL. */
56087
67264
  CTree *Son (int n) const { return _sons.lookup (n); }
 
67265
  /** Get the list properties. */
56088
67266
  int GetProperties () const { return _properties; }
 
67267
  /** Add a list property.
 
67268
   *  \param p The property to add. */
56089
67269
  void AddProperties (int p) { _properties |= p; }
56090
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
56091
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
56092
 
  void InsertSon (CTree *, CTree *);  // before given son
56093
 
  void ReplaceSon (CTree *, CTree *);
56094
 
  void RemoveSon (CTree *);
 
67270
  /** Add a son.
 
67271
   *  \param s The son to add. */
 
67272
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
67273
  /** Prepend a son.
 
67274
   *  \param s The son to prepend. */
 
67275
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
67276
  /** Insert a son before another son.
 
67277
   *  \param before The son to insert the new son before.
 
67278
   *  \param son The son to insert. */
 
67279
  void InsertSon (CTree *before, CTree *son); 
 
67280
  /** Replace a son.
 
67281
   *  \param old_son The son to replace.
 
67282
   *  \param new_son The new son. */
 
67283
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
67284
  /** Remove a son.
 
67285
   *  \param son The son to remove. */
 
67286
  void RemoveSon (CTree *son);
 
67287
  /** Insert a son at the given index. 
 
67288
   *  \param idx The index at which to insert.
 
67289
   *  \param s The son to insert. */
56095
67290
  void InsertSon (int idx, CTree *s)
56096
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
67291
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
67292
  /** Replace the son at the given index.
 
67293
   *  \param idx The index of the son to replace.
 
67294
   *  \param s The new son. */
56097
67295
  void ReplaceSon (int idx, CTree *s) 
56098
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
67296
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
67297
  /** Remove the son at the given index. 
 
67298
   *  \param idx The index of the son to remove. */
56099
67299
  void RemoveSon (int idx) 
56100
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
67300
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
56101
67301
};
56102
67302
 
 
67303
/** \class CT_ExprList CTree.h Puma/CTree.h
 
67304
 *  Tree node representing an expression list. */
56103
67305
 
56104
 
#line 56105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67306
#line 67307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56105
67307
} // closed Puma
 
67308
class CCExprResolve;
 
67309
class CExprResolve;
56106
67310
class WinIfExists;
56107
67311
class WinImportHandler;
56108
67312
class WinMacros;
56109
 
class CMatchSyntax;
56110
 
class ExtGnu;
 
67313
class WinAsm;
 
67314
class WinDeclSpecs;
 
67315
class WinMemberExplSpec;
 
67316
class WinTypeKeywords;
 
67317
class WinFriend;
56111
67318
class ExtAC;
56112
67319
class ExtACBuilderCoupling;
56113
67320
class ExtACSyntaxCoupling;
56114
67321
class ExtACTree;
56115
67322
class ExtACKeywords;
56116
 
class WinAsm;
56117
 
class WinDeclSpecs;
56118
 
class WinMemberExplSpec;
56119
 
class WinTypeKeywords;
 
67323
class ExtGnu;
56120
67324
class PragmaOnceUnitState;
56121
67325
class PragmaOnce;
56122
 
class CCExprResolve;
56123
 
class CExprResolve;
 
67326
class CMatchSyntax;
56124
67327
namespace Puma {
56125
67328
 
56126
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67329
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56127
67330
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
56128
 
#line 56129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67331
#line 67332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67332
  friend class ::CCExprResolve;
 
67333
  friend class ::CExprResolve;
56129
67334
  friend class ::WinIfExists;
56130
67335
  friend class ::WinImportHandler;
56131
67336
  friend class ::WinMacros;
56132
 
  friend class ::CMatchSyntax;
56133
 
  friend class ::ExtGnu;
 
67337
  friend class ::WinAsm;
 
67338
  friend class ::WinDeclSpecs;
 
67339
  friend class ::WinMemberExplSpec;
 
67340
  friend class ::WinTypeKeywords;
 
67341
  friend class ::WinFriend;
56134
67342
  friend class ::ExtAC;
56135
67343
  friend class ::ExtACBuilderCoupling;
56136
67344
  friend class ::ExtACSyntaxCoupling;
56137
67345
  friend class ::ExtACTree;
56138
67346
  friend class ::ExtACKeywords;
56139
 
  friend class ::WinAsm;
56140
 
  friend class ::WinDeclSpecs;
56141
 
  friend class ::WinMemberExplSpec;
56142
 
  friend class ::WinTypeKeywords;
 
67347
  friend class ::ExtGnu;
56143
67348
  friend class ::PragmaOnceUnitState;
56144
67349
  friend class ::PragmaOnce;
56145
 
  friend class ::CCExprResolve;
56146
 
  friend class ::CExprResolve;
 
67350
  friend class ::CMatchSyntax;
56147
67351
 
56148
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67352
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56149
67353
 
56150
67354
public:
 
67355
  /** Constructor. */
56151
67356
  CT_ExprList () { AddProperties (SEPARATORS); }
 
67357
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56152
67358
  static const char *NodeId ();
 
67359
  /** Get the name of the node. Can be compared with NodeId(). */
56153
67360
  const char *NodeName () const { return NodeId (); }
56154
67361
 
 
67362
  /** Get the type of the last expression in the expression list.
 
67363
   *  \return The type or NULL. */
56155
67364
  CTypeInfo *Type () const { return type; }
 
67365
  /** Get the value of the last expression in the expression list.
 
67366
   *  \return The value of NULL. */
56156
67367
  CExprValue *Value () const { return value; }
 
67368
  /** Get the semantic value of the node. */
56157
67369
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
67370
  /** Get the semantic object of the node. */
56158
67371
  CSemObject *SemObject () const { return (CSemObject*)this; }
56159
67372
};
56160
67373
 
 
67374
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
67375
 *  Tree node representing a list of declarators. */
56161
67376
 
56162
 
#line 56163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67377
#line 67378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56163
67378
} // closed Puma
 
67379
class CCExprResolve;
 
67380
class CExprResolve;
56164
67381
class WinIfExists;
56165
67382
class WinImportHandler;
56166
67383
class WinMacros;
56167
 
class CMatchSyntax;
56168
 
class ExtGnu;
 
67384
class WinAsm;
 
67385
class WinDeclSpecs;
 
67386
class WinMemberExplSpec;
 
67387
class WinTypeKeywords;
 
67388
class WinFriend;
56169
67389
class ExtAC;
56170
67390
class ExtACBuilderCoupling;
56171
67391
class ExtACSyntaxCoupling;
56172
67392
class ExtACTree;
56173
67393
class ExtACKeywords;
56174
 
class WinAsm;
56175
 
class WinDeclSpecs;
56176
 
class WinMemberExplSpec;
56177
 
class WinTypeKeywords;
 
67394
class ExtGnu;
56178
67395
class PragmaOnceUnitState;
56179
67396
class PragmaOnce;
56180
 
class CCExprResolve;
56181
 
class CExprResolve;
 
67397
class CMatchSyntax;
56182
67398
namespace Puma {
56183
67399
 
56184
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67400
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56185
67401
class CT_DeclaratorList : public CT_List {
56186
 
#line 56187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67402
#line 67403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67403
  friend class ::CCExprResolve;
 
67404
  friend class ::CExprResolve;
56187
67405
  friend class ::WinIfExists;
56188
67406
  friend class ::WinImportHandler;
56189
67407
  friend class ::WinMacros;
56190
 
  friend class ::CMatchSyntax;
56191
 
  friend class ::ExtGnu;
 
67408
  friend class ::WinAsm;
 
67409
  friend class ::WinDeclSpecs;
 
67410
  friend class ::WinMemberExplSpec;
 
67411
  friend class ::WinTypeKeywords;
 
67412
  friend class ::WinFriend;
56192
67413
  friend class ::ExtAC;
56193
67414
  friend class ::ExtACBuilderCoupling;
56194
67415
  friend class ::ExtACSyntaxCoupling;
56195
67416
  friend class ::ExtACTree;
56196
67417
  friend class ::ExtACKeywords;
56197
 
  friend class ::WinAsm;
56198
 
  friend class ::WinDeclSpecs;
56199
 
  friend class ::WinMemberExplSpec;
56200
 
  friend class ::WinTypeKeywords;
 
67418
  friend class ::ExtGnu;
56201
67419
  friend class ::PragmaOnceUnitState;
56202
67420
  friend class ::PragmaOnce;
56203
 
  friend class ::CCExprResolve;
56204
 
  friend class ::CExprResolve;
 
67421
  friend class ::CMatchSyntax;
56205
67422
 
56206
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67423
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56207
67424
 
56208
67425
public:
 
67426
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56209
67427
  static const char *NodeId ();
 
67428
  /** Get the name of the node. Can be compared with NodeId(). */
56210
67429
  const char *NodeName () const { return NodeId (); }
56211
67430
};
56212
67431
 
 
67432
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
67433
 *  Tree node representing a list of enumerator constants. */
56213
67434
 
56214
 
#line 56215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67435
#line 67436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56215
67436
} // closed Puma
 
67437
class CCExprResolve;
 
67438
class CExprResolve;
56216
67439
class WinIfExists;
56217
67440
class WinImportHandler;
56218
67441
class WinMacros;
56219
 
class CMatchSyntax;
56220
 
class ExtGnu;
 
67442
class WinAsm;
 
67443
class WinDeclSpecs;
 
67444
class WinMemberExplSpec;
 
67445
class WinTypeKeywords;
 
67446
class WinFriend;
56221
67447
class ExtAC;
56222
67448
class ExtACBuilderCoupling;
56223
67449
class ExtACSyntaxCoupling;
56224
67450
class ExtACTree;
56225
67451
class ExtACKeywords;
56226
 
class WinAsm;
56227
 
class WinDeclSpecs;
56228
 
class WinMemberExplSpec;
56229
 
class WinTypeKeywords;
 
67452
class ExtGnu;
56230
67453
class PragmaOnceUnitState;
56231
67454
class PragmaOnce;
56232
 
class CCExprResolve;
56233
 
class CExprResolve;
 
67455
class CMatchSyntax;
56234
67456
namespace Puma {
56235
67457
 
56236
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67458
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56237
67459
class CT_EnumeratorList : public CT_List {
56238
 
#line 56239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67460
#line 67461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67461
  friend class ::CCExprResolve;
 
67462
  friend class ::CExprResolve;
56239
67463
  friend class ::WinIfExists;
56240
67464
  friend class ::WinImportHandler;
56241
67465
  friend class ::WinMacros;
56242
 
  friend class ::CMatchSyntax;
56243
 
  friend class ::ExtGnu;
 
67466
  friend class ::WinAsm;
 
67467
  friend class ::WinDeclSpecs;
 
67468
  friend class ::WinMemberExplSpec;
 
67469
  friend class ::WinTypeKeywords;
 
67470
  friend class ::WinFriend;
56244
67471
  friend class ::ExtAC;
56245
67472
  friend class ::ExtACBuilderCoupling;
56246
67473
  friend class ::ExtACSyntaxCoupling;
56247
67474
  friend class ::ExtACTree;
56248
67475
  friend class ::ExtACKeywords;
56249
 
  friend class ::WinAsm;
56250
 
  friend class ::WinDeclSpecs;
56251
 
  friend class ::WinMemberExplSpec;
56252
 
  friend class ::WinTypeKeywords;
 
67476
  friend class ::ExtGnu;
56253
67477
  friend class ::PragmaOnceUnitState;
56254
67478
  friend class ::PragmaOnce;
56255
 
  friend class ::CCExprResolve;
56256
 
  friend class ::CExprResolve;
 
67479
  friend class ::CMatchSyntax;
56257
67480
 
56258
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67481
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56259
67482
 
56260
67483
public:
 
67484
  /** Constructor. */
56261
67485
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
67486
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56262
67487
  static const char *NodeId ();
 
67488
  /** Get the name of the node. Can be compared with NodeId(). */
56263
67489
  const char *NodeName () const { return NodeId (); }
56264
67490
};
56265
67491
   
 
67492
/** \class CT_DeclList CTree.h Puma/CTree.h
 
67493
 *  Tree node representing a list of declarations. */
56266
67494
 
56267
 
#line 56268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67495
#line 67496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56268
67496
} // closed Puma
 
67497
class CCExprResolve;
 
67498
class CExprResolve;
56269
67499
class WinIfExists;
56270
67500
class WinImportHandler;
56271
67501
class WinMacros;
56272
 
class CMatchSyntax;
56273
 
class ExtGnu;
 
67502
class WinAsm;
 
67503
class WinDeclSpecs;
 
67504
class WinMemberExplSpec;
 
67505
class WinTypeKeywords;
 
67506
class WinFriend;
56274
67507
class ExtAC;
56275
67508
class ExtACBuilderCoupling;
56276
67509
class ExtACSyntaxCoupling;
56277
67510
class ExtACTree;
56278
67511
class ExtACKeywords;
56279
 
class WinAsm;
56280
 
class WinDeclSpecs;
56281
 
class WinMemberExplSpec;
56282
 
class WinTypeKeywords;
 
67512
class ExtGnu;
56283
67513
class PragmaOnceUnitState;
56284
67514
class PragmaOnce;
56285
 
class CCExprResolve;
56286
 
class CExprResolve;
 
67515
class CMatchSyntax;
56287
67516
namespace Puma {
56288
67517
 
56289
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67518
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56290
67519
class CT_DeclList : public CT_List {
56291
 
#line 56292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67520
#line 67521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67521
  friend class ::CCExprResolve;
 
67522
  friend class ::CExprResolve;
56292
67523
  friend class ::WinIfExists;
56293
67524
  friend class ::WinImportHandler;
56294
67525
  friend class ::WinMacros;
56295
 
  friend class ::CMatchSyntax;
56296
 
  friend class ::ExtGnu;
 
67526
  friend class ::WinAsm;
 
67527
  friend class ::WinDeclSpecs;
 
67528
  friend class ::WinMemberExplSpec;
 
67529
  friend class ::WinTypeKeywords;
 
67530
  friend class ::WinFriend;
56297
67531
  friend class ::ExtAC;
56298
67532
  friend class ::ExtACBuilderCoupling;
56299
67533
  friend class ::ExtACSyntaxCoupling;
56300
67534
  friend class ::ExtACTree;
56301
67535
  friend class ::ExtACKeywords;
56302
 
  friend class ::WinAsm;
56303
 
  friend class ::WinDeclSpecs;
56304
 
  friend class ::WinMemberExplSpec;
56305
 
  friend class ::WinTypeKeywords;
 
67536
  friend class ::ExtGnu;
56306
67537
  friend class ::PragmaOnceUnitState;
56307
67538
  friend class ::PragmaOnce;
56308
 
  friend class ::CCExprResolve;
56309
 
  friend class ::CExprResolve;
 
67539
  friend class ::CMatchSyntax;
56310
67540
 
56311
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67541
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56312
67542
 
56313
67543
public:
 
67544
  /** Constructor. 
 
67545
   *  \param size The initial size of the list.
 
67546
   *  \param incr The initial increment count of the list. */
56314
67547
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
67548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56315
67549
  static const char *NodeId ();
 
67550
  /** Get the name of the node. Can be compared with NodeId(). */
56316
67551
  const char *NodeName () const { return NodeId (); }
 
67552
  /** Set the linkage specifiers to each declaration in the list.
 
67553
   *  \param l The linkage specifiers node. */
56317
67554
  void Linkage (CT_LinkageSpec *l);
56318
67555
};
56319
67556
 
 
67557
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
67558
 *  Tree node representing a sequence of declaration specifiers. */
56320
67559
 
56321
 
#line 56322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67560
#line 67561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56322
67561
} // closed Puma
 
67562
class CCExprResolve;
 
67563
class CExprResolve;
56323
67564
class WinIfExists;
56324
67565
class WinImportHandler;
56325
67566
class WinMacros;
56326
 
class CMatchSyntax;
56327
 
class ExtGnu;
 
67567
class WinAsm;
 
67568
class WinDeclSpecs;
 
67569
class WinMemberExplSpec;
 
67570
class WinTypeKeywords;
 
67571
class WinFriend;
56328
67572
class ExtAC;
56329
67573
class ExtACBuilderCoupling;
56330
67574
class ExtACSyntaxCoupling;
56331
67575
class ExtACTree;
56332
67576
class ExtACKeywords;
56333
 
class WinAsm;
56334
 
class WinDeclSpecs;
56335
 
class WinMemberExplSpec;
56336
 
class WinTypeKeywords;
 
67577
class ExtGnu;
56337
67578
class PragmaOnceUnitState;
56338
67579
class PragmaOnce;
56339
 
class CCExprResolve;
56340
 
class CExprResolve;
 
67580
class CMatchSyntax;
56341
67581
namespace Puma {
56342
67582
 
56343
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67583
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56344
67584
class CT_DeclSpecSeq : public CT_List {
56345
 
#line 56346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67585
#line 67586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67586
  friend class ::CCExprResolve;
 
67587
  friend class ::CExprResolve;
56346
67588
  friend class ::WinIfExists;
56347
67589
  friend class ::WinImportHandler;
56348
67590
  friend class ::WinMacros;
56349
 
  friend class ::CMatchSyntax;
56350
 
  friend class ::ExtGnu;
 
67591
  friend class ::WinAsm;
 
67592
  friend class ::WinDeclSpecs;
 
67593
  friend class ::WinMemberExplSpec;
 
67594
  friend class ::WinTypeKeywords;
 
67595
  friend class ::WinFriend;
56351
67596
  friend class ::ExtAC;
56352
67597
  friend class ::ExtACBuilderCoupling;
56353
67598
  friend class ::ExtACSyntaxCoupling;
56354
67599
  friend class ::ExtACTree;
56355
67600
  friend class ::ExtACKeywords;
56356
 
  friend class ::WinAsm;
56357
 
  friend class ::WinDeclSpecs;
56358
 
  friend class ::WinMemberExplSpec;
56359
 
  friend class ::WinTypeKeywords;
 
67601
  friend class ::ExtGnu;
56360
67602
  friend class ::PragmaOnceUnitState;
56361
67603
  friend class ::PragmaOnce;
56362
 
  friend class ::CCExprResolve;
56363
 
  friend class ::CExprResolve;
 
67604
  friend class ::CMatchSyntax;
56364
67605
 
56365
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67606
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56366
67607
 
56367
67608
public:
 
67609
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56368
67610
  static const char *NodeId ();
 
67611
  /** Get the name of the node. Can be compared with NodeId(). */
56369
67612
  const char *NodeName () const { return NodeId (); }
56370
67613
};
56371
67614
 
 
67615
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
67616
 *  Tree node representing a compound statement. */
56372
67617
 
56373
 
#line 56374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67618
#line 67619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56374
67619
} // closed Puma
 
67620
class CCExprResolve;
 
67621
class CExprResolve;
56375
67622
class WinIfExists;
56376
67623
class WinImportHandler;
56377
67624
class WinMacros;
56378
 
class CMatchSyntax;
56379
 
class ExtGnu;
 
67625
class WinAsm;
 
67626
class WinDeclSpecs;
 
67627
class WinMemberExplSpec;
 
67628
class WinTypeKeywords;
 
67629
class WinFriend;
56380
67630
class ExtAC;
56381
67631
class ExtACBuilderCoupling;
56382
67632
class ExtACSyntaxCoupling;
56383
67633
class ExtACTree;
56384
67634
class ExtACKeywords;
56385
 
class WinAsm;
56386
 
class WinDeclSpecs;
56387
 
class WinMemberExplSpec;
56388
 
class WinTypeKeywords;
 
67635
class ExtGnu;
56389
67636
class PragmaOnceUnitState;
56390
67637
class PragmaOnce;
56391
 
class CCExprResolve;
56392
 
class CExprResolve;
 
67638
class CMatchSyntax;
56393
67639
namespace Puma {
56394
67640
 
56395
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67641
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56396
67642
class CT_CmpdStmt : public CT_List, public CSemScope {
56397
 
#line 56398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67643
#line 67644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67644
  friend class ::CCExprResolve;
 
67645
  friend class ::CExprResolve;
56398
67646
  friend class ::WinIfExists;
56399
67647
  friend class ::WinImportHandler;
56400
67648
  friend class ::WinMacros;
56401
 
  friend class ::CMatchSyntax;
56402
 
  friend class ::ExtGnu;
 
67649
  friend class ::WinAsm;
 
67650
  friend class ::WinDeclSpecs;
 
67651
  friend class ::WinMemberExplSpec;
 
67652
  friend class ::WinTypeKeywords;
 
67653
  friend class ::WinFriend;
56403
67654
  friend class ::ExtAC;
56404
67655
  friend class ::ExtACBuilderCoupling;
56405
67656
  friend class ::ExtACSyntaxCoupling;
56406
67657
  friend class ::ExtACTree;
56407
67658
  friend class ::ExtACKeywords;
56408
 
  friend class ::WinAsm;
56409
 
  friend class ::WinDeclSpecs;
56410
 
  friend class ::WinMemberExplSpec;
56411
 
  friend class ::WinTypeKeywords;
 
67659
  friend class ::ExtGnu;
56412
67660
  friend class ::PragmaOnceUnitState;
56413
67661
  friend class ::PragmaOnce;
56414
 
  friend class ::CCExprResolve;
56415
 
  friend class ::CExprResolve;
 
67662
  friend class ::CMatchSyntax;
56416
67663
 
56417
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67664
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56418
67665
 
56419
67666
public:
 
67667
  /* Constructor. */
56420
67668
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
67669
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56421
67670
  static const char *NodeId ();
 
67671
  /** Get the name of the node. Can be compared with NodeId(). */
56422
67672
  const char *NodeName () const { return NodeId (); }
 
67673
  /** Get the local scope of the compound statement. */
 
67674
  CSemScope *SemScope () const { return (CSemScope*)this; }
56423
67675
};
56424
67676
 
 
67677
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
67678
 *  Tree node representing an exception handler sequence. */
56425
67679
 
56426
 
#line 56427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67680
#line 67681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56427
67681
} // closed Puma
 
67682
class CCExprResolve;
 
67683
class CExprResolve;
56428
67684
class WinIfExists;
56429
67685
class WinImportHandler;
56430
67686
class WinMacros;
56431
 
class CMatchSyntax;
56432
 
class ExtGnu;
 
67687
class WinAsm;
 
67688
class WinDeclSpecs;
 
67689
class WinMemberExplSpec;
 
67690
class WinTypeKeywords;
 
67691
class WinFriend;
56433
67692
class ExtAC;
56434
67693
class ExtACBuilderCoupling;
56435
67694
class ExtACSyntaxCoupling;
56436
67695
class ExtACTree;
56437
67696
class ExtACKeywords;
56438
 
class WinAsm;
56439
 
class WinDeclSpecs;
56440
 
class WinMemberExplSpec;
56441
 
class WinTypeKeywords;
 
67697
class ExtGnu;
56442
67698
class PragmaOnceUnitState;
56443
67699
class PragmaOnce;
56444
 
class CCExprResolve;
56445
 
class CExprResolve;
 
67700
class CMatchSyntax;
56446
67701
namespace Puma {
56447
67702
 
56448
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67703
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56449
67704
class CT_HandlerSeq : public CT_List {
56450
 
#line 56451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67705
#line 67706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67706
  friend class ::CCExprResolve;
 
67707
  friend class ::CExprResolve;
56451
67708
  friend class ::WinIfExists;
56452
67709
  friend class ::WinImportHandler;
56453
67710
  friend class ::WinMacros;
56454
 
  friend class ::CMatchSyntax;
56455
 
  friend class ::ExtGnu;
 
67711
  friend class ::WinAsm;
 
67712
  friend class ::WinDeclSpecs;
 
67713
  friend class ::WinMemberExplSpec;
 
67714
  friend class ::WinTypeKeywords;
 
67715
  friend class ::WinFriend;
56456
67716
  friend class ::ExtAC;
56457
67717
  friend class ::ExtACBuilderCoupling;
56458
67718
  friend class ::ExtACSyntaxCoupling;
56459
67719
  friend class ::ExtACTree;
56460
67720
  friend class ::ExtACKeywords;
56461
 
  friend class ::WinAsm;
56462
 
  friend class ::WinDeclSpecs;
56463
 
  friend class ::WinMemberExplSpec;
56464
 
  friend class ::WinTypeKeywords;
 
67721
  friend class ::ExtGnu;
56465
67722
  friend class ::PragmaOnceUnitState;
56466
67723
  friend class ::PragmaOnce;
56467
 
  friend class ::CCExprResolve;
56468
 
  friend class ::CExprResolve;
 
67724
  friend class ::CMatchSyntax;
56469
67725
 
56470
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67726
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56471
67727
 
56472
67728
public:
 
67729
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56473
67730
  static const char *NodeId ();
 
67731
  /** Get the name of the node. Can be compared with NodeId(). */
56474
67732
  const char *NodeName () const { return NodeId (); }
56475
67733
};
56476
67734
 
 
67735
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
67736
 *  Tree node representing a template parameter list. */
56477
67737
 
56478
 
#line 56479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67738
#line 67739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56479
67739
} // closed Puma
 
67740
class CCExprResolve;
 
67741
class CExprResolve;
56480
67742
class WinIfExists;
56481
67743
class WinImportHandler;
56482
67744
class WinMacros;
56483
 
class CMatchSyntax;
56484
 
class ExtGnu;
 
67745
class WinAsm;
 
67746
class WinDeclSpecs;
 
67747
class WinMemberExplSpec;
 
67748
class WinTypeKeywords;
 
67749
class WinFriend;
56485
67750
class ExtAC;
56486
67751
class ExtACBuilderCoupling;
56487
67752
class ExtACSyntaxCoupling;
56488
67753
class ExtACTree;
56489
67754
class ExtACKeywords;
56490
 
class WinAsm;
56491
 
class WinDeclSpecs;
56492
 
class WinMemberExplSpec;
56493
 
class WinTypeKeywords;
 
67755
class ExtGnu;
56494
67756
class PragmaOnceUnitState;
56495
67757
class PragmaOnce;
56496
 
class CCExprResolve;
56497
 
class CExprResolve;
 
67758
class CMatchSyntax;
56498
67759
namespace Puma {
56499
67760
 
56500
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67761
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56501
67762
class CT_TemplateParamList : public CT_List, public CSemScope {
56502
 
#line 56503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67763
#line 67764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67764
  friend class ::CCExprResolve;
 
67765
  friend class ::CExprResolve;
56503
67766
  friend class ::WinIfExists;
56504
67767
  friend class ::WinImportHandler;
56505
67768
  friend class ::WinMacros;
56506
 
  friend class ::CMatchSyntax;
56507
 
  friend class ::ExtGnu;
 
67769
  friend class ::WinAsm;
 
67770
  friend class ::WinDeclSpecs;
 
67771
  friend class ::WinMemberExplSpec;
 
67772
  friend class ::WinTypeKeywords;
 
67773
  friend class ::WinFriend;
56508
67774
  friend class ::ExtAC;
56509
67775
  friend class ::ExtACBuilderCoupling;
56510
67776
  friend class ::ExtACSyntaxCoupling;
56511
67777
  friend class ::ExtACTree;
56512
67778
  friend class ::ExtACKeywords;
56513
 
  friend class ::WinAsm;
56514
 
  friend class ::WinDeclSpecs;
56515
 
  friend class ::WinMemberExplSpec;
56516
 
  friend class ::WinTypeKeywords;
 
67779
  friend class ::ExtGnu;
56517
67780
  friend class ::PragmaOnceUnitState;
56518
67781
  friend class ::PragmaOnce;
56519
 
  friend class ::CCExprResolve;
56520
 
  friend class ::CExprResolve;
 
67782
  friend class ::CMatchSyntax;
56521
67783
 
56522
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67784
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56523
67785
 
56524
67786
public:
56525
67787
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
67788
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56526
67789
  static const char *NodeId ();
 
67790
  /** Get the name of the node. Can be compared with NodeId(). */
56527
67791
  const char *NodeName () const { return NodeId (); }
 
67792
  /** Get the scope of the template parameter list. */
 
67793
  CSemScope *SemScope () const { return (CSemScope*)this; }
56528
67794
};
56529
67795
 
 
67796
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
67797
 *  Tree node representing a template argument list. */
56530
67798
 
56531
 
#line 56532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67799
#line 67800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56532
67800
} // closed Puma
 
67801
class CCExprResolve;
 
67802
class CExprResolve;
56533
67803
class WinIfExists;
56534
67804
class WinImportHandler;
56535
67805
class WinMacros;
56536
 
class CMatchSyntax;
56537
 
class ExtGnu;
 
67806
class WinAsm;
 
67807
class WinDeclSpecs;
 
67808
class WinMemberExplSpec;
 
67809
class WinTypeKeywords;
 
67810
class WinFriend;
56538
67811
class ExtAC;
56539
67812
class ExtACBuilderCoupling;
56540
67813
class ExtACSyntaxCoupling;
56541
67814
class ExtACTree;
56542
67815
class ExtACKeywords;
56543
 
class WinAsm;
56544
 
class WinDeclSpecs;
56545
 
class WinMemberExplSpec;
56546
 
class WinTypeKeywords;
 
67816
class ExtGnu;
56547
67817
class PragmaOnceUnitState;
56548
67818
class PragmaOnce;
56549
 
class CCExprResolve;
56550
 
class CExprResolve;
 
67819
class CMatchSyntax;
56551
67820
namespace Puma {
56552
67821
 
56553
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67822
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56554
67823
class CT_TemplateArgList : public CT_List {
56555
 
#line 56556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67824
#line 67825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67825
  friend class ::CCExprResolve;
 
67826
  friend class ::CExprResolve;
56556
67827
  friend class ::WinIfExists;
56557
67828
  friend class ::WinImportHandler;
56558
67829
  friend class ::WinMacros;
56559
 
  friend class ::CMatchSyntax;
56560
 
  friend class ::ExtGnu;
 
67830
  friend class ::WinAsm;
 
67831
  friend class ::WinDeclSpecs;
 
67832
  friend class ::WinMemberExplSpec;
 
67833
  friend class ::WinTypeKeywords;
 
67834
  friend class ::WinFriend;
56561
67835
  friend class ::ExtAC;
56562
67836
  friend class ::ExtACBuilderCoupling;
56563
67837
  friend class ::ExtACSyntaxCoupling;
56564
67838
  friend class ::ExtACTree;
56565
67839
  friend class ::ExtACKeywords;
56566
 
  friend class ::WinAsm;
56567
 
  friend class ::WinDeclSpecs;
56568
 
  friend class ::WinMemberExplSpec;
56569
 
  friend class ::WinTypeKeywords;
 
67840
  friend class ::ExtGnu;
56570
67841
  friend class ::PragmaOnceUnitState;
56571
67842
  friend class ::PragmaOnce;
56572
 
  friend class ::CCExprResolve;
56573
 
  friend class ::CExprResolve;
 
67843
  friend class ::CMatchSyntax;
56574
67844
 
56575
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67845
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56576
67846
 
56577
67847
public:
 
67848
  /** Constructor. */
56578
67849
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
67850
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56579
67851
  static const char *NodeId ();
 
67852
  /** Get the name of the node. Can be compared with NodeId(). */
56580
67853
  const char *NodeName () const { return NodeId (); }
56581
67854
};
56582
67855
 
56586
67859
/*                                                                           */
56587
67860
/*****************************************************************************/
56588
67861
 
 
67862
/** \class CT_Expression CTree.h Puma/CTree.h
 
67863
 *  Base class for all expression tree nodes. */
56589
67864
 
56590
 
#line 56591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67865
#line 67866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56591
67866
} // closed Puma
 
67867
class CCExprResolve;
 
67868
class CExprResolve;
56592
67869
class WinIfExists;
56593
67870
class WinImportHandler;
56594
67871
class WinMacros;
56595
 
class CMatchSyntax;
56596
 
class ExtGnu;
 
67872
class WinAsm;
 
67873
class WinDeclSpecs;
 
67874
class WinMemberExplSpec;
 
67875
class WinTypeKeywords;
 
67876
class WinFriend;
56597
67877
class ExtAC;
56598
67878
class ExtACBuilderCoupling;
56599
67879
class ExtACSyntaxCoupling;
56600
67880
class ExtACTree;
56601
67881
class ExtACKeywords;
56602
 
class WinAsm;
56603
 
class WinDeclSpecs;
56604
 
class WinMemberExplSpec;
56605
 
class WinTypeKeywords;
 
67882
class ExtGnu;
56606
67883
class PragmaOnceUnitState;
56607
67884
class PragmaOnce;
56608
 
class CCExprResolve;
56609
 
class CExprResolve;
56610
 
namespace Puma {
56611
 
 
56612
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67885
class CMatchSyntax;
 
67886
namespace Puma {
 
67887
 
 
67888
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67889
 
 
67890
#line 67891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67891
} // closed Puma
 
67892
 
 
67893
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67894
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
67895
#include "CCExprResolveH.ah"
 
67896
#endif
 
67897
namespace Puma {
 
67898
 
 
67899
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67900
 
 
67901
#line 67902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67902
} // closed Puma
 
67903
 
 
67904
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67905
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
67906
#include "CExprResolveH.ah"
 
67907
#endif
 
67908
namespace Puma {
 
67909
 
 
67910
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56613
67911
class CT_Expression : public CTree, public CSemValue {
56614
 
#line 56615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
67912
#line 67913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67913
  friend class ::CCExprResolve;
 
67914
  friend class ::CExprResolve;
56615
67915
  friend class ::WinIfExists;
56616
67916
  friend class ::WinImportHandler;
56617
67917
  friend class ::WinMacros;
56618
 
  friend class ::CMatchSyntax;
56619
 
  friend class ::ExtGnu;
 
67918
  friend class ::WinAsm;
 
67919
  friend class ::WinDeclSpecs;
 
67920
  friend class ::WinMemberExplSpec;
 
67921
  friend class ::WinTypeKeywords;
 
67922
  friend class ::WinFriend;
56620
67923
  friend class ::ExtAC;
56621
67924
  friend class ::ExtACBuilderCoupling;
56622
67925
  friend class ::ExtACSyntaxCoupling;
56623
67926
  friend class ::ExtACTree;
56624
67927
  friend class ::ExtACKeywords;
56625
 
  friend class ::WinAsm;
56626
 
  friend class ::WinDeclSpecs;
56627
 
  friend class ::WinMemberExplSpec;
56628
 
  friend class ::WinTypeKeywords;
 
67928
  friend class ::ExtGnu;
56629
67929
  friend class ::PragmaOnceUnitState;
56630
67930
  friend class ::PragmaOnce;
56631
 
  friend class ::CCExprResolve;
56632
 
  friend class ::CExprResolve;
 
67931
  friend class ::CMatchSyntax;
56633
67932
 
56634
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67933
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56635
67934
 
56636
67935
protected:
 
67936
  /** Constructor. */
56637
67937
  CT_Expression () {}
56638
67938
 
56639
67939
public:
 
67940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56640
67941
  static const char *NodeId ();
 
67942
  /** Get the name of the node. Can be compared with NodeId(). */
56641
67943
  const char *NodeName () const { return NodeId (); }
 
67944
  /** Get the type of the expression.
 
67945
   *  \return The type information object or NULL. */
56642
67946
  CTypeInfo *Type () const { return type; }
 
67947
  /** Get the value of the expression.
 
67948
   *  \return The value object or NULL. */
56643
67949
  CExprValue *Value () const { return value; }
 
67950
  /** Get the semantic value information of the expression.
 
67951
   *  \return The value object or NULL. */
56644
67952
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
67953
  /** Get this. */
 
67954
  virtual CT_Expression *IsExpression () { return this; }
56645
67955
   private:
56646
67956
  typedef CT_Expression CCExprResolveExpr;
56647
67957
 
56648
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
67958
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56649
67959
 public :
56650
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
67960
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56651
67961
  typedef CT_Expression CExprResolveExpr;
56652
67962
 
56653
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56654
 
 public :
56655
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56656
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56657
 
};
56658
 
 
56659
 
 
56660
 
#line 56661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
56661
 
} // closed Puma
56662
 
class WinIfExists;
56663
 
class WinImportHandler;
56664
 
class WinMacros;
56665
 
class CMatchSyntax;
56666
 
class ExtGnu;
56667
 
class ExtAC;
56668
 
class ExtACBuilderCoupling;
56669
 
class ExtACSyntaxCoupling;
56670
 
class ExtACTree;
56671
 
class ExtACKeywords;
56672
 
class WinAsm;
56673
 
class WinDeclSpecs;
56674
 
class WinMemberExplSpec;
56675
 
class WinTypeKeywords;
56676
 
class PragmaOnceUnitState;
56677
 
class PragmaOnce;
56678
 
class CCExprResolve;
56679
 
class CExprResolve;
56680
 
namespace Puma {
56681
 
 
56682
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
67964
 public :
 
67965
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
67966
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67967
};
 
67968
 
 
67969
/** \class CT_Call CTree.h Puma/CTree.h
 
67970
 *  Tree node representing explicit or implicit function calls 
 
67971
 *  including built-in or user-defined functions and overloaded
 
67972
 *  operators. */
 
67973
 
 
67974
#line 67975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
67975
} // closed Puma
 
67976
class CCExprResolve;
 
67977
class CExprResolve;
 
67978
class WinIfExists;
 
67979
class WinImportHandler;
 
67980
class WinMacros;
 
67981
class WinAsm;
 
67982
class WinDeclSpecs;
 
67983
class WinMemberExplSpec;
 
67984
class WinTypeKeywords;
 
67985
class WinFriend;
 
67986
class ExtAC;
 
67987
class ExtACBuilderCoupling;
 
67988
class ExtACSyntaxCoupling;
 
67989
class ExtACTree;
 
67990
class ExtACKeywords;
 
67991
class ExtGnu;
 
67992
class PragmaOnceUnitState;
 
67993
class PragmaOnce;
 
67994
class CMatchSyntax;
 
67995
namespace Puma {
 
67996
 
 
67997
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67998
 
 
67999
#line 68000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68000
} // closed Puma
 
68001
 
 
68002
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68003
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68004
#include "CCExprResolveH.ah"
 
68005
#endif
 
68006
namespace Puma {
 
68007
 
 
68008
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68009
 
 
68010
#line 68011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68011
} // closed Puma
 
68012
 
 
68013
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68014
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68015
#include "CExprResolveH.ah"
 
68016
#endif
 
68017
namespace Puma {
 
68018
 
 
68019
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68020
class CT_Call : public CT_Expression, public CSemObject {
 
68021
#line 68022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68022
  friend class ::CCExprResolve;
 
68023
  friend class ::CExprResolve;
 
68024
  friend class ::WinIfExists;
 
68025
  friend class ::WinImportHandler;
 
68026
  friend class ::WinMacros;
 
68027
  friend class ::WinAsm;
 
68028
  friend class ::WinDeclSpecs;
 
68029
  friend class ::WinMemberExplSpec;
 
68030
  friend class ::WinTypeKeywords;
 
68031
  friend class ::WinFriend;
 
68032
  friend class ::ExtAC;
 
68033
  friend class ::ExtACBuilderCoupling;
 
68034
  friend class ::ExtACSyntaxCoupling;
 
68035
  friend class ::ExtACTree;
 
68036
  friend class ::ExtACKeywords;
 
68037
  friend class ::ExtGnu;
 
68038
  friend class ::PragmaOnceUnitState;
 
68039
  friend class ::PragmaOnce;
 
68040
  friend class ::CMatchSyntax;
 
68041
 
 
68042
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68043
 
 
68044
protected:
 
68045
  /** Constructor. */
 
68046
  CT_Call () {}
 
68047
  
 
68048
public:
 
68049
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
68050
  static const char *NodeId ();
 
68051
  /** Get the name of the node. Can be compared with NodeId(). */
 
68052
  const char *NodeName () const { return NodeId (); }
 
68053
  /** Get the semantic information of the call.
 
68054
   *  \return The semantic information or NULL. */
 
68055
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
68056
  /** Get this. */
 
68057
  CT_Call *IsCall () { return this; }
 
68058
   private:
 
68059
  typedef CT_Call CCExprResolveExpr;
 
68060
 
 
68061
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68062
 public :
 
68063
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
68064
  typedef CT_Call CExprResolveExpr;
 
68065
 
 
68066
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68067
 public :
 
68068
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68069
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68070
};
 
68071
 
 
68072
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
68073
 *  Tree node representing implicit function calls detected by
 
68074
 *  the semantic analysis. */
 
68075
 
 
68076
#line 68077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68077
} // closed Puma
 
68078
class CCExprResolve;
 
68079
class CExprResolve;
 
68080
class WinIfExists;
 
68081
class WinImportHandler;
 
68082
class WinMacros;
 
68083
class WinAsm;
 
68084
class WinDeclSpecs;
 
68085
class WinMemberExplSpec;
 
68086
class WinTypeKeywords;
 
68087
class WinFriend;
 
68088
class ExtAC;
 
68089
class ExtACBuilderCoupling;
 
68090
class ExtACSyntaxCoupling;
 
68091
class ExtACTree;
 
68092
class ExtACKeywords;
 
68093
class ExtGnu;
 
68094
class PragmaOnceUnitState;
 
68095
class PragmaOnce;
 
68096
class CMatchSyntax;
 
68097
namespace Puma {
 
68098
 
 
68099
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68100
 
 
68101
#line 68102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68102
} // closed Puma
 
68103
 
 
68104
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68105
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68106
#include "CCExprResolveH.ah"
 
68107
#endif
 
68108
namespace Puma {
 
68109
 
 
68110
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68111
 
 
68112
#line 68113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68113
} // closed Puma
 
68114
 
 
68115
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68116
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68117
#include "CExprResolveH.ah"
 
68118
#endif
 
68119
namespace Puma {
 
68120
 
 
68121
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68122
class CT_ImplicitCall : public CT_Call {
 
68123
#line 68124 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68124
  friend class ::CCExprResolve;
 
68125
  friend class ::CExprResolve;
 
68126
  friend class ::WinIfExists;
 
68127
  friend class ::WinImportHandler;
 
68128
  friend class ::WinMacros;
 
68129
  friend class ::WinAsm;
 
68130
  friend class ::WinDeclSpecs;
 
68131
  friend class ::WinMemberExplSpec;
 
68132
  friend class ::WinTypeKeywords;
 
68133
  friend class ::WinFriend;
 
68134
  friend class ::ExtAC;
 
68135
  friend class ::ExtACBuilderCoupling;
 
68136
  friend class ::ExtACSyntaxCoupling;
 
68137
  friend class ::ExtACTree;
 
68138
  friend class ::ExtACKeywords;
 
68139
  friend class ::ExtGnu;
 
68140
  friend class ::PragmaOnceUnitState;
 
68141
  friend class ::PragmaOnce;
 
68142
  friend class ::CMatchSyntax;
 
68143
 
 
68144
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68145
 
 
68146
  CTree *_arg;
 
68147
 
 
68148
public:
 
68149
  /** Constructor.
 
68150
   *  \param arg The call argument. */
 
68151
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
68152
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
68153
  static const char *NodeId ();
 
68154
  /** Get the name of the node. Can be compared with NodeId(). */
 
68155
  const char *NodeName () const { return NodeId (); }
 
68156
  /** Get the number of sons. */
 
68157
  int Sons () const { return 1; }
 
68158
  /** Get the n-th son.
 
68159
   *  \param n The index of the son.
 
68160
   *  \return The n-th son or NULL. */
 
68161
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
68162
  /** Replace a son.
 
68163
   *  \param old_son The son to replace.
 
68164
   *  \param new_son The new son. */
 
68165
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
68166
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
68167
   private:
 
68168
  typedef CT_ImplicitCall CCExprResolveExpr;
 
68169
 
 
68170
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68171
 public :
 
68172
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
68173
  typedef CT_ImplicitCall CExprResolveExpr;
 
68174
 
 
68175
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68176
 public :
 
68177
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68178
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68179
};
 
68180
 
 
68181
/** \class CT_String CTree.h Puma/CTree.h
 
68182
 *  Tree node representing a string literal. */
 
68183
 
 
68184
#line 68185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68185
} // closed Puma
 
68186
class CCExprResolve;
 
68187
class CExprResolve;
 
68188
class WinIfExists;
 
68189
class WinImportHandler;
 
68190
class WinMacros;
 
68191
class WinAsm;
 
68192
class WinDeclSpecs;
 
68193
class WinMemberExplSpec;
 
68194
class WinTypeKeywords;
 
68195
class WinFriend;
 
68196
class ExtAC;
 
68197
class ExtACBuilderCoupling;
 
68198
class ExtACSyntaxCoupling;
 
68199
class ExtACTree;
 
68200
class ExtACKeywords;
 
68201
class ExtGnu;
 
68202
class PragmaOnceUnitState;
 
68203
class PragmaOnce;
 
68204
class CMatchSyntax;
 
68205
namespace Puma {
 
68206
 
 
68207
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68208
 
 
68209
#line 68210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68210
} // closed Puma
 
68211
 
 
68212
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68213
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68214
#include "CCExprResolveH.ah"
 
68215
#endif
 
68216
namespace Puma {
 
68217
 
 
68218
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68219
 
 
68220
#line 68221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68221
} // closed Puma
 
68222
 
 
68223
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68224
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68225
#include "CExprResolveH.ah"
 
68226
#endif
 
68227
namespace Puma {
 
68228
 
 
68229
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56683
68230
class CT_String : public CT_List, public CSemValue {
56684
 
#line 56685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68231
#line 68232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68232
  friend class ::CCExprResolve;
 
68233
  friend class ::CExprResolve;
56685
68234
  friend class ::WinIfExists;
56686
68235
  friend class ::WinImportHandler;
56687
68236
  friend class ::WinMacros;
56688
 
  friend class ::CMatchSyntax;
56689
 
  friend class ::ExtGnu;
 
68237
  friend class ::WinAsm;
 
68238
  friend class ::WinDeclSpecs;
 
68239
  friend class ::WinMemberExplSpec;
 
68240
  friend class ::WinTypeKeywords;
 
68241
  friend class ::WinFriend;
56690
68242
  friend class ::ExtAC;
56691
68243
  friend class ::ExtACBuilderCoupling;
56692
68244
  friend class ::ExtACSyntaxCoupling;
56693
68245
  friend class ::ExtACTree;
56694
68246
  friend class ::ExtACKeywords;
56695
 
  friend class ::WinAsm;
56696
 
  friend class ::WinDeclSpecs;
56697
 
  friend class ::WinMemberExplSpec;
56698
 
  friend class ::WinTypeKeywords;
 
68247
  friend class ::ExtGnu;
56699
68248
  friend class ::PragmaOnceUnitState;
56700
68249
  friend class ::PragmaOnce;
56701
 
  friend class ::CCExprResolve;
56702
 
  friend class ::CExprResolve;
 
68250
  friend class ::CMatchSyntax;
56703
68251
 
56704
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68252
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56705
68253
 
56706
68254
public:
 
68255
  /** Constructor. 
 
68256
   *  \param size The number of sub-strings. */
56707
68257
  CT_String (int size) : CT_List (size, 1) {}
 
68258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56708
68259
  static const char *NodeId ();
 
68260
  /** Get the name of the node. Can be compared with NodeId(). */
56709
68261
  const char *NodeName () const { return NodeId (); }
56710
68262
 
 
68263
  /** Get the type of the string. 
 
68264
   *  \return The type or NULL. */
56711
68265
  CTypeInfo *Type () const { return type; }
 
68266
  /** Get the string value.
 
68267
   *  \return The value or NULL. */
56712
68268
  CExprValue *Value () const { return value; }
 
68269
  /** Get the semantic value info object.
 
68270
   *  \return The semantic value object or NULL. */
56713
68271
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
68272
  /** Get this. */
 
68273
  virtual CT_String *IsString () { return this; }
56714
68274
   private:
56715
68275
  typedef CT_String CCExprResolveExpr;
56716
68276
 
56717
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68277
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56718
68278
 public :
56719
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68279
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56720
68280
  typedef CT_String CExprResolveExpr;
56721
68281
 
56722
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68282
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56723
68283
 public :
56724
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56725
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68284
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68285
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56726
68286
};
56727
68287
 
 
68288
/** \class CT_WideString CTree.h Puma/CTree.h
 
68289
 *  Tree node representing a wide string literal. */
56728
68290
 
56729
 
#line 56730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68291
#line 68292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56730
68292
} // closed Puma
 
68293
class CCExprResolve;
 
68294
class CExprResolve;
56731
68295
class WinIfExists;
56732
68296
class WinImportHandler;
56733
68297
class WinMacros;
56734
 
class CMatchSyntax;
56735
 
class ExtGnu;
 
68298
class WinAsm;
 
68299
class WinDeclSpecs;
 
68300
class WinMemberExplSpec;
 
68301
class WinTypeKeywords;
 
68302
class WinFriend;
56736
68303
class ExtAC;
56737
68304
class ExtACBuilderCoupling;
56738
68305
class ExtACSyntaxCoupling;
56739
68306
class ExtACTree;
56740
68307
class ExtACKeywords;
56741
 
class WinAsm;
56742
 
class WinDeclSpecs;
56743
 
class WinMemberExplSpec;
56744
 
class WinTypeKeywords;
 
68308
class ExtGnu;
56745
68309
class PragmaOnceUnitState;
56746
68310
class PragmaOnce;
56747
 
class CCExprResolve;
56748
 
class CExprResolve;
56749
 
namespace Puma {
56750
 
 
56751
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68311
class CMatchSyntax;
 
68312
namespace Puma {
 
68313
 
 
68314
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68315
 
 
68316
#line 68317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68317
} // closed Puma
 
68318
 
 
68319
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68320
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68321
#include "CCExprResolveH.ah"
 
68322
#endif
 
68323
namespace Puma {
 
68324
 
 
68325
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68326
 
 
68327
#line 68328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68328
} // closed Puma
 
68329
 
 
68330
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68331
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68332
#include "CExprResolveH.ah"
 
68333
#endif
 
68334
namespace Puma {
 
68335
 
 
68336
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56752
68337
class CT_WideString : public CT_String {
56753
 
#line 56754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68338
#line 68339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68339
  friend class ::CCExprResolve;
 
68340
  friend class ::CExprResolve;
56754
68341
  friend class ::WinIfExists;
56755
68342
  friend class ::WinImportHandler;
56756
68343
  friend class ::WinMacros;
56757
 
  friend class ::CMatchSyntax;
56758
 
  friend class ::ExtGnu;
 
68344
  friend class ::WinAsm;
 
68345
  friend class ::WinDeclSpecs;
 
68346
  friend class ::WinMemberExplSpec;
 
68347
  friend class ::WinTypeKeywords;
 
68348
  friend class ::WinFriend;
56759
68349
  friend class ::ExtAC;
56760
68350
  friend class ::ExtACBuilderCoupling;
56761
68351
  friend class ::ExtACSyntaxCoupling;
56762
68352
  friend class ::ExtACTree;
56763
68353
  friend class ::ExtACKeywords;
56764
 
  friend class ::WinAsm;
56765
 
  friend class ::WinDeclSpecs;
56766
 
  friend class ::WinMemberExplSpec;
56767
 
  friend class ::WinTypeKeywords;
 
68354
  friend class ::ExtGnu;
56768
68355
  friend class ::PragmaOnceUnitState;
56769
68356
  friend class ::PragmaOnce;
56770
 
  friend class ::CCExprResolve;
56771
 
  friend class ::CExprResolve;
 
68357
  friend class ::CMatchSyntax;
56772
68358
 
56773
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68359
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56774
68360
 
56775
68361
public:
 
68362
  /** Constructor.
 
68363
   *  \param size The number of sub-strings. */
56776
68364
  CT_WideString (int size) : CT_String (size) {}
 
68365
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56777
68366
  static const char *NodeId ();
 
68367
  /** Get the name of the node. Can be compared with NodeId(). */
56778
68368
  const char *NodeName () const { return NodeId (); }
56779
68369
   private:
56780
68370
  typedef CT_WideString CCExprResolveExpr;
56781
68371
 
56782
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68372
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56783
68373
 public :
56784
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68374
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56785
68375
  typedef CT_WideString CExprResolveExpr;
56786
68376
 
56787
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68377
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56788
68378
 public :
56789
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56790
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68379
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68380
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56791
68381
};
56792
68382
 
 
68383
/** \class CT_Integer CTree.h Puma/CTree.h
 
68384
 *  Tree node representing an integer constant. */
56793
68385
 
56794
 
#line 56795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68386
#line 68387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56795
68387
} // closed Puma
 
68388
class CCExprResolve;
 
68389
class CExprResolve;
56796
68390
class WinIfExists;
56797
68391
class WinImportHandler;
56798
68392
class WinMacros;
56799
 
class CMatchSyntax;
56800
 
class ExtGnu;
 
68393
class WinAsm;
 
68394
class WinDeclSpecs;
 
68395
class WinMemberExplSpec;
 
68396
class WinTypeKeywords;
 
68397
class WinFriend;
56801
68398
class ExtAC;
56802
68399
class ExtACBuilderCoupling;
56803
68400
class ExtACSyntaxCoupling;
56804
68401
class ExtACTree;
56805
68402
class ExtACKeywords;
56806
 
class WinAsm;
56807
 
class WinDeclSpecs;
56808
 
class WinMemberExplSpec;
56809
 
class WinTypeKeywords;
 
68403
class ExtGnu;
56810
68404
class PragmaOnceUnitState;
56811
68405
class PragmaOnce;
56812
 
class CCExprResolve;
56813
 
class CExprResolve;
56814
 
namespace Puma {
56815
 
 
56816
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68406
class CMatchSyntax;
 
68407
namespace Puma {
 
68408
 
 
68409
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68410
 
 
68411
#line 68412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68412
} // closed Puma
 
68413
 
 
68414
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68415
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68416
#include "CCExprResolveH.ah"
 
68417
#endif
 
68418
namespace Puma {
 
68419
 
 
68420
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68421
 
 
68422
#line 68423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68423
} // closed Puma
 
68424
 
 
68425
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68426
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68427
#include "CExprResolveH.ah"
 
68428
#endif
 
68429
namespace Puma {
 
68430
 
 
68431
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56817
68432
class CT_Integer : public CT_Expression {
56818
 
#line 56819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68433
#line 68434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68434
  friend class ::CCExprResolve;
 
68435
  friend class ::CExprResolve;
56819
68436
  friend class ::WinIfExists;
56820
68437
  friend class ::WinImportHandler;
56821
68438
  friend class ::WinMacros;
56822
 
  friend class ::CMatchSyntax;
56823
 
  friend class ::ExtGnu;
 
68439
  friend class ::WinAsm;
 
68440
  friend class ::WinDeclSpecs;
 
68441
  friend class ::WinMemberExplSpec;
 
68442
  friend class ::WinTypeKeywords;
 
68443
  friend class ::WinFriend;
56824
68444
  friend class ::ExtAC;
56825
68445
  friend class ::ExtACBuilderCoupling;
56826
68446
  friend class ::ExtACSyntaxCoupling;
56827
68447
  friend class ::ExtACTree;
56828
68448
  friend class ::ExtACKeywords;
56829
 
  friend class ::WinAsm;
56830
 
  friend class ::WinDeclSpecs;
56831
 
  friend class ::WinMemberExplSpec;
56832
 
  friend class ::WinTypeKeywords;
 
68449
  friend class ::ExtGnu;
56833
68450
  friend class ::PragmaOnceUnitState;
56834
68451
  friend class ::PragmaOnce;
56835
 
  friend class ::CCExprResolve;
56836
 
  friend class ::CExprResolve;
 
68452
  friend class ::CMatchSyntax;
56837
68453
 
56838
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68454
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56839
68455
 
56840
68456
  CTree *_value;  // CT_Token
56841
68457
 
56842
68458
public:
56843
 
  CT_Integer (CTree *t) : _value (t) {}
 
68459
  /** Constructor.
 
68460
   *  \param token The token containing the integer value. */
 
68461
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
68462
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56844
68463
  static const char *NodeId ();
 
68464
  /** Get the name of the node. Can be compared with NodeId(). */
56845
68465
  const char *NodeName () const { return NodeId (); }
 
68466
  /** Get the number of sons. */
56846
68467
  int Sons () const { return _value ? 1 : 0; }
 
68468
  /** Get the n-th son.
 
68469
   *  \param n The index of the son.
 
68470
   *  \return The n-th son or NULL. */
56847
68471
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
68472
  /** Replace a son.
 
68473
   *  \param old_son The son to replace.
 
68474
   *  \param new_son The new son. */
56848
68475
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56849
 
   { if (old_son == _value) _value = new_son; }
 
68476
   { CTree::ReplaceSon (_value, old_son, new_son); }
56850
68477
   private:
56851
68478
  typedef CT_Integer CCExprResolveExpr;
56852
68479
 
56853
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68480
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56854
68481
 public :
56855
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68482
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56856
68483
  typedef CT_Integer CExprResolveExpr;
56857
68484
 
56858
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68485
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56859
68486
 public :
56860
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56861
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68487
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68488
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56862
68489
};
56863
68490
 
 
68491
/** \class CT_Character CTree.h Puma/CTree.h
 
68492
 *  Tree node representing a single character constant. */
56864
68493
 
56865
 
#line 56866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68494
#line 68495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56866
68495
} // closed Puma
 
68496
class CCExprResolve;
 
68497
class CExprResolve;
56867
68498
class WinIfExists;
56868
68499
class WinImportHandler;
56869
68500
class WinMacros;
56870
 
class CMatchSyntax;
56871
 
class ExtGnu;
 
68501
class WinAsm;
 
68502
class WinDeclSpecs;
 
68503
class WinMemberExplSpec;
 
68504
class WinTypeKeywords;
 
68505
class WinFriend;
56872
68506
class ExtAC;
56873
68507
class ExtACBuilderCoupling;
56874
68508
class ExtACSyntaxCoupling;
56875
68509
class ExtACTree;
56876
68510
class ExtACKeywords;
56877
 
class WinAsm;
56878
 
class WinDeclSpecs;
56879
 
class WinMemberExplSpec;
56880
 
class WinTypeKeywords;
 
68511
class ExtGnu;
56881
68512
class PragmaOnceUnitState;
56882
68513
class PragmaOnce;
56883
 
class CCExprResolve;
56884
 
class CExprResolve;
56885
 
namespace Puma {
56886
 
 
56887
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68514
class CMatchSyntax;
 
68515
namespace Puma {
 
68516
 
 
68517
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68518
 
 
68519
#line 68520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68520
} // closed Puma
 
68521
 
 
68522
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68523
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68524
#include "CCExprResolveH.ah"
 
68525
#endif
 
68526
namespace Puma {
 
68527
 
 
68528
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68529
 
 
68530
#line 68531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68531
} // closed Puma
 
68532
 
 
68533
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68534
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68535
#include "CExprResolveH.ah"
 
68536
#endif
 
68537
namespace Puma {
 
68538
 
 
68539
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56888
68540
class CT_Character : public CT_Expression {
56889
 
#line 56890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68541
#line 68542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68542
  friend class ::CCExprResolve;
 
68543
  friend class ::CExprResolve;
56890
68544
  friend class ::WinIfExists;
56891
68545
  friend class ::WinImportHandler;
56892
68546
  friend class ::WinMacros;
56893
 
  friend class ::CMatchSyntax;
56894
 
  friend class ::ExtGnu;
 
68547
  friend class ::WinAsm;
 
68548
  friend class ::WinDeclSpecs;
 
68549
  friend class ::WinMemberExplSpec;
 
68550
  friend class ::WinTypeKeywords;
 
68551
  friend class ::WinFriend;
56895
68552
  friend class ::ExtAC;
56896
68553
  friend class ::ExtACBuilderCoupling;
56897
68554
  friend class ::ExtACSyntaxCoupling;
56898
68555
  friend class ::ExtACTree;
56899
68556
  friend class ::ExtACKeywords;
56900
 
  friend class ::WinAsm;
56901
 
  friend class ::WinDeclSpecs;
56902
 
  friend class ::WinMemberExplSpec;
56903
 
  friend class ::WinTypeKeywords;
 
68557
  friend class ::ExtGnu;
56904
68558
  friend class ::PragmaOnceUnitState;
56905
68559
  friend class ::PragmaOnce;
56906
 
  friend class ::CCExprResolve;
56907
 
  friend class ::CExprResolve;
 
68560
  friend class ::CMatchSyntax;
56908
68561
 
56909
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68562
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56910
68563
 
56911
68564
  CTree *_value;  // CT_Token
56912
68565
 
56913
68566
public:
56914
 
  CT_Character (CTree *t) : _value (t) {}
 
68567
  /** Constructor.
 
68568
   *  \param token The token containing the character value. */
 
68569
  CT_Character (CTree *token) { AddSon (_value, token); }
 
68570
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56915
68571
  static const char *NodeId ();
 
68572
  /** Get the name of the node. Can be compared with NodeId(). */
56916
68573
  const char *NodeName () const { return NodeId (); }
 
68574
  /** Get the number of sons. */
56917
68575
  int Sons () const { return 1; }
 
68576
  /** Get the n-th son.
 
68577
   *  \param n The index of the son.
 
68578
   *  \return The n-th son or NULL. */
56918
68579
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
68580
  /** Replace a son.
 
68581
   *  \param old_son The son to replace.
 
68582
   *  \param new_son The new son. */
56919
68583
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56920
 
   { if (old_son == _value) _value = new_son; }
 
68584
   { CTree::ReplaceSon (_value, old_son, new_son); }
56921
68585
   private:
56922
68586
  typedef CT_Character CCExprResolveExpr;
56923
68587
 
56924
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68588
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56925
68589
 public :
56926
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68590
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56927
68591
  typedef CT_Character CExprResolveExpr;
56928
68592
 
56929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68593
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56930
68594
 public :
56931
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
56932
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68595
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68596
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56933
68597
};
56934
68598
 
 
68599
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
68600
 *  Tree node representing a wide character constant. */
56935
68601
 
56936
 
#line 56937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68602
#line 68603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
56937
68603
} // closed Puma
 
68604
class CCExprResolve;
 
68605
class CExprResolve;
56938
68606
class WinIfExists;
56939
68607
class WinImportHandler;
56940
68608
class WinMacros;
56941
 
class CMatchSyntax;
56942
 
class ExtGnu;
 
68609
class WinAsm;
 
68610
class WinDeclSpecs;
 
68611
class WinMemberExplSpec;
 
68612
class WinTypeKeywords;
 
68613
class WinFriend;
56943
68614
class ExtAC;
56944
68615
class ExtACBuilderCoupling;
56945
68616
class ExtACSyntaxCoupling;
56946
68617
class ExtACTree;
56947
68618
class ExtACKeywords;
56948
 
class WinAsm;
56949
 
class WinDeclSpecs;
56950
 
class WinMemberExplSpec;
56951
 
class WinTypeKeywords;
 
68619
class ExtGnu;
56952
68620
class PragmaOnceUnitState;
56953
68621
class PragmaOnce;
56954
 
class CCExprResolve;
56955
 
class CExprResolve;
56956
 
namespace Puma {
56957
 
 
56958
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68622
class CMatchSyntax;
 
68623
namespace Puma {
 
68624
 
 
68625
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68626
 
 
68627
#line 68628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68628
} // closed Puma
 
68629
 
 
68630
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68631
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68632
#include "CCExprResolveH.ah"
 
68633
#endif
 
68634
namespace Puma {
 
68635
 
 
68636
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68637
 
 
68638
#line 68639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68639
} // closed Puma
 
68640
 
 
68641
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68642
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68643
#include "CExprResolveH.ah"
 
68644
#endif
 
68645
namespace Puma {
 
68646
 
 
68647
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56959
68648
class CT_WideCharacter : public CT_Character {
56960
 
#line 56961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68649
#line 68650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68650
  friend class ::CCExprResolve;
 
68651
  friend class ::CExprResolve;
56961
68652
  friend class ::WinIfExists;
56962
68653
  friend class ::WinImportHandler;
56963
68654
  friend class ::WinMacros;
56964
 
  friend class ::CMatchSyntax;
56965
 
  friend class ::ExtGnu;
 
68655
  friend class ::WinAsm;
 
68656
  friend class ::WinDeclSpecs;
 
68657
  friend class ::WinMemberExplSpec;
 
68658
  friend class ::WinTypeKeywords;
 
68659
  friend class ::WinFriend;
56966
68660
  friend class ::ExtAC;
56967
68661
  friend class ::ExtACBuilderCoupling;
56968
68662
  friend class ::ExtACSyntaxCoupling;
56969
68663
  friend class ::ExtACTree;
56970
68664
  friend class ::ExtACKeywords;
56971
 
  friend class ::WinAsm;
56972
 
  friend class ::WinDeclSpecs;
56973
 
  friend class ::WinMemberExplSpec;
56974
 
  friend class ::WinTypeKeywords;
 
68665
  friend class ::ExtGnu;
56975
68666
  friend class ::PragmaOnceUnitState;
56976
68667
  friend class ::PragmaOnce;
56977
 
  friend class ::CCExprResolve;
56978
 
  friend class ::CExprResolve;
56979
 
 
56980
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
56981
 
 
56982
 
  CTree *_value;  // CT_Token
 
68668
  friend class ::CMatchSyntax;
 
68669
 
 
68670
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56983
68671
 
56984
68672
public:
56985
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
68673
  /** Constructor.
 
68674
   *  \param token The token containing the wide character value. */
 
68675
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
68676
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56986
68677
  static const char *NodeId ();
 
68678
  /** Get the name of the node. Can be compared with NodeId(). */
56987
68679
  const char *NodeName () const { return NodeId (); }
56988
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56989
 
   { if (old_son == _value) _value = new_son; }
56990
68680
   private:
56991
68681
  typedef CT_WideCharacter CCExprResolveExpr;
56992
68682
 
56993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68683
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
56994
68684
 public :
56995
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68685
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
56996
68686
  typedef CT_WideCharacter CExprResolveExpr;
56997
68687
 
56998
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68688
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
56999
68689
 public :
57000
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57001
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68690
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68691
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57002
68692
};
57003
68693
 
 
68694
/** \class CT_Float CTree.h Puma/CTree.h
 
68695
 *  Tree node representing a floating point constant. */
57004
68696
 
57005
 
#line 57006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68697
#line 68698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57006
68698
} // closed Puma
 
68699
class CCExprResolve;
 
68700
class CExprResolve;
57007
68701
class WinIfExists;
57008
68702
class WinImportHandler;
57009
68703
class WinMacros;
57010
 
class CMatchSyntax;
57011
 
class ExtGnu;
 
68704
class WinAsm;
 
68705
class WinDeclSpecs;
 
68706
class WinMemberExplSpec;
 
68707
class WinTypeKeywords;
 
68708
class WinFriend;
57012
68709
class ExtAC;
57013
68710
class ExtACBuilderCoupling;
57014
68711
class ExtACSyntaxCoupling;
57015
68712
class ExtACTree;
57016
68713
class ExtACKeywords;
57017
 
class WinAsm;
57018
 
class WinDeclSpecs;
57019
 
class WinMemberExplSpec;
57020
 
class WinTypeKeywords;
 
68714
class ExtGnu;
57021
68715
class PragmaOnceUnitState;
57022
68716
class PragmaOnce;
57023
 
class CCExprResolve;
57024
 
class CExprResolve;
57025
 
namespace Puma {
57026
 
 
57027
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68717
class CMatchSyntax;
 
68718
namespace Puma {
 
68719
 
 
68720
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68721
 
 
68722
#line 68723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68723
} // closed Puma
 
68724
 
 
68725
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68726
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68727
#include "CCExprResolveH.ah"
 
68728
#endif
 
68729
namespace Puma {
 
68730
 
 
68731
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68732
 
 
68733
#line 68734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68734
} // closed Puma
 
68735
 
 
68736
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68737
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68738
#include "CExprResolveH.ah"
 
68739
#endif
 
68740
namespace Puma {
 
68741
 
 
68742
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57028
68743
class CT_Float : public CT_Expression {
57029
 
#line 57030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68744
#line 68745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68745
  friend class ::CCExprResolve;
 
68746
  friend class ::CExprResolve;
57030
68747
  friend class ::WinIfExists;
57031
68748
  friend class ::WinImportHandler;
57032
68749
  friend class ::WinMacros;
57033
 
  friend class ::CMatchSyntax;
57034
 
  friend class ::ExtGnu;
 
68750
  friend class ::WinAsm;
 
68751
  friend class ::WinDeclSpecs;
 
68752
  friend class ::WinMemberExplSpec;
 
68753
  friend class ::WinTypeKeywords;
 
68754
  friend class ::WinFriend;
57035
68755
  friend class ::ExtAC;
57036
68756
  friend class ::ExtACBuilderCoupling;
57037
68757
  friend class ::ExtACSyntaxCoupling;
57038
68758
  friend class ::ExtACTree;
57039
68759
  friend class ::ExtACKeywords;
57040
 
  friend class ::WinAsm;
57041
 
  friend class ::WinDeclSpecs;
57042
 
  friend class ::WinMemberExplSpec;
57043
 
  friend class ::WinTypeKeywords;
 
68760
  friend class ::ExtGnu;
57044
68761
  friend class ::PragmaOnceUnitState;
57045
68762
  friend class ::PragmaOnce;
57046
 
  friend class ::CCExprResolve;
57047
 
  friend class ::CExprResolve;
 
68763
  friend class ::CMatchSyntax;
57048
68764
 
57049
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68765
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57050
68766
 
57051
68767
  CTree *_value;  // CT_Token
57052
68768
 
57053
68769
public:
57054
 
  CT_Float (CTree *t) : _value (t) {}
 
68770
  /** Constructor.
 
68771
   *  \param token The token containing the floating point value. */
 
68772
  CT_Float (CTree *token) { AddSon (_value, token); }
 
68773
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57055
68774
  static const char *NodeId ();
 
68775
  /** Get the name of the node. Can be compared with NodeId(). */
57056
68776
  const char *NodeName () const { return NodeId (); }
 
68777
  /** Get the number of sons. */
57057
68778
  int Sons () const { return 1; }
 
68779
  /** Get the n-th son.
 
68780
   *  \param n The index of the son.
 
68781
   *  \return The n-th son or NULL. */
57058
68782
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
68783
  /** Replace a son.
 
68784
   *  \param old_son The son to replace.
 
68785
   *  \param new_son The new son. */
57059
68786
  void ReplaceSon (CTree *old_son, CTree *new_son) 
57060
 
   { if (old_son == _value) _value = new_son; }
 
68787
   { CTree::ReplaceSon (_value, old_son, new_son); }
57061
68788
   private:
57062
68789
  typedef CT_Float CCExprResolveExpr;
57063
68790
 
57064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68791
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57065
68792
 public :
57066
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68793
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57067
68794
  typedef CT_Float CExprResolveExpr;
57068
68795
 
57069
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57070
68797
 public :
57071
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57072
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68798
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68799
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57073
68800
};
57074
68801
 
 
68802
/** \class CT_Bool CTree.h Puma/CTree.h
 
68803
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
57075
68804
 
57076
 
#line 57077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68805
#line 68806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57077
68806
} // closed Puma
 
68807
class CCExprResolve;
 
68808
class CExprResolve;
57078
68809
class WinIfExists;
57079
68810
class WinImportHandler;
57080
68811
class WinMacros;
57081
 
class CMatchSyntax;
57082
 
class ExtGnu;
 
68812
class WinAsm;
 
68813
class WinDeclSpecs;
 
68814
class WinMemberExplSpec;
 
68815
class WinTypeKeywords;
 
68816
class WinFriend;
57083
68817
class ExtAC;
57084
68818
class ExtACBuilderCoupling;
57085
68819
class ExtACSyntaxCoupling;
57086
68820
class ExtACTree;
57087
68821
class ExtACKeywords;
57088
 
class WinAsm;
57089
 
class WinDeclSpecs;
57090
 
class WinMemberExplSpec;
57091
 
class WinTypeKeywords;
 
68822
class ExtGnu;
57092
68823
class PragmaOnceUnitState;
57093
68824
class PragmaOnce;
57094
 
class CCExprResolve;
57095
 
class CExprResolve;
57096
 
namespace Puma {
57097
 
 
57098
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68825
class CMatchSyntax;
 
68826
namespace Puma {
 
68827
 
 
68828
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68829
 
 
68830
#line 68831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68831
} // closed Puma
 
68832
 
 
68833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68835
#include "CCExprResolveH.ah"
 
68836
#endif
 
68837
namespace Puma {
 
68838
 
 
68839
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68840
 
 
68841
#line 68842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68842
} // closed Puma
 
68843
 
 
68844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68846
#include "CExprResolveH.ah"
 
68847
#endif
 
68848
namespace Puma {
 
68849
 
 
68850
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57099
68851
class CT_Bool : public CT_Expression {
57100
 
#line 57101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68852
#line 68853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68853
  friend class ::CCExprResolve;
 
68854
  friend class ::CExprResolve;
57101
68855
  friend class ::WinIfExists;
57102
68856
  friend class ::WinImportHandler;
57103
68857
  friend class ::WinMacros;
57104
 
  friend class ::CMatchSyntax;
57105
 
  friend class ::ExtGnu;
 
68858
  friend class ::WinAsm;
 
68859
  friend class ::WinDeclSpecs;
 
68860
  friend class ::WinMemberExplSpec;
 
68861
  friend class ::WinTypeKeywords;
 
68862
  friend class ::WinFriend;
57106
68863
  friend class ::ExtAC;
57107
68864
  friend class ::ExtACBuilderCoupling;
57108
68865
  friend class ::ExtACSyntaxCoupling;
57109
68866
  friend class ::ExtACTree;
57110
68867
  friend class ::ExtACKeywords;
57111
 
  friend class ::WinAsm;
57112
 
  friend class ::WinDeclSpecs;
57113
 
  friend class ::WinMemberExplSpec;
57114
 
  friend class ::WinTypeKeywords;
 
68868
  friend class ::ExtGnu;
57115
68869
  friend class ::PragmaOnceUnitState;
57116
68870
  friend class ::PragmaOnce;
57117
 
  friend class ::CCExprResolve;
57118
 
  friend class ::CExprResolve;
 
68871
  friend class ::CMatchSyntax;
57119
68872
 
57120
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68873
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57121
68874
 
57122
68875
  CTree *_value;  // CT_Token
57123
68876
 
57124
68877
public:
57125
 
  CT_Bool (CTree *t) : _value (t) {}
 
68878
  /** Constructor.
 
68879
   *  \param token The token containing the boolean value. */
 
68880
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
68881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57126
68882
  static const char *NodeId ();
 
68883
  /** Get the name of the node. Can be compared with NodeId(). */
57127
68884
  const char *NodeName () const { return NodeId (); }
 
68885
  /** Get the number of sons. */
57128
68886
  int Sons () const { return 1; }
 
68887
  /** Get the n-th son.
 
68888
   *  \param n The index of the son.
 
68889
   *  \return The n-th son or NULL. */
57129
68890
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
68891
  /** Replace a son.
 
68892
   *  \param old_son The son to replace.
 
68893
   *  \param new_son The new son. */
57130
68894
  void ReplaceSon (CTree *old_son, CTree *new_son) 
57131
 
   { if (old_son == _value) _value = new_son; }
 
68895
   { CTree::ReplaceSon (_value, old_son, new_son); }
57132
68896
   private:
57133
68897
  typedef CT_Bool CCExprResolveExpr;
57134
68898
 
57135
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68899
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57136
68900
 public :
57137
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68901
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57138
68902
  typedef CT_Bool CExprResolveExpr;
57139
68903
 
57140
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68904
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57141
68905
 public :
57142
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57143
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68906
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68907
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57144
68908
};
57145
68909
 
 
68910
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
68911
 *  Tree node representing a braced expression, e.g. (a+b). */
57146
68912
 
57147
 
#line 57148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68913
#line 68914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57148
68914
} // closed Puma
 
68915
class CCExprResolve;
 
68916
class CExprResolve;
57149
68917
class WinIfExists;
57150
68918
class WinImportHandler;
57151
68919
class WinMacros;
57152
 
class CMatchSyntax;
57153
 
class ExtGnu;
 
68920
class WinAsm;
 
68921
class WinDeclSpecs;
 
68922
class WinMemberExplSpec;
 
68923
class WinTypeKeywords;
 
68924
class WinFriend;
57154
68925
class ExtAC;
57155
68926
class ExtACBuilderCoupling;
57156
68927
class ExtACSyntaxCoupling;
57157
68928
class ExtACTree;
57158
68929
class ExtACKeywords;
57159
 
class WinAsm;
57160
 
class WinDeclSpecs;
57161
 
class WinMemberExplSpec;
57162
 
class WinTypeKeywords;
 
68930
class ExtGnu;
57163
68931
class PragmaOnceUnitState;
57164
68932
class PragmaOnce;
57165
 
class CCExprResolve;
57166
 
class CExprResolve;
57167
 
namespace Puma {
57168
 
 
57169
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68933
class CMatchSyntax;
 
68934
namespace Puma {
 
68935
 
 
68936
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68937
 
 
68938
#line 68939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68939
} // closed Puma
 
68940
 
 
68941
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68942
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68943
#include "CCExprResolveH.ah"
 
68944
#endif
 
68945
namespace Puma {
 
68946
 
 
68947
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68948
 
 
68949
#line 68950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68950
} // closed Puma
 
68951
 
 
68952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68954
#include "CExprResolveH.ah"
 
68955
#endif
 
68956
namespace Puma {
 
68957
 
 
68958
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57170
68959
class CT_BracedExpr : public CT_Expression {
57171
 
#line 57172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
68960
#line 68961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
68961
  friend class ::CCExprResolve;
 
68962
  friend class ::CExprResolve;
57172
68963
  friend class ::WinIfExists;
57173
68964
  friend class ::WinImportHandler;
57174
68965
  friend class ::WinMacros;
57175
 
  friend class ::CMatchSyntax;
57176
 
  friend class ::ExtGnu;
 
68966
  friend class ::WinAsm;
 
68967
  friend class ::WinDeclSpecs;
 
68968
  friend class ::WinMemberExplSpec;
 
68969
  friend class ::WinTypeKeywords;
 
68970
  friend class ::WinFriend;
57177
68971
  friend class ::ExtAC;
57178
68972
  friend class ::ExtACBuilderCoupling;
57179
68973
  friend class ::ExtACSyntaxCoupling;
57180
68974
  friend class ::ExtACTree;
57181
68975
  friend class ::ExtACKeywords;
57182
 
  friend class ::WinAsm;
57183
 
  friend class ::WinDeclSpecs;
57184
 
  friend class ::WinMemberExplSpec;
57185
 
  friend class ::WinTypeKeywords;
 
68976
  friend class ::ExtGnu;
57186
68977
  friend class ::PragmaOnceUnitState;
57187
68978
  friend class ::PragmaOnce;
57188
 
  friend class ::CCExprResolve;
57189
 
  friend class ::CExprResolve;
 
68979
  friend class ::CMatchSyntax;
57190
68980
 
57191
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68981
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57192
68982
 
57193
68983
  CTree *sons[3]; // open, expr, close
57194
68984
 
57195
68985
public:
 
68986
  /** Constructor.
 
68987
   *  \param o The opening brace.
 
68988
   *  \param e The enclosed expression.
 
68989
   *  \param c The closing brace. */
57196
68990
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
57197
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
68991
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
57198
68992
  }
 
68993
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57199
68994
  static const char *NodeId ();
 
68995
  /** Get the name of the node. Can be compared with NodeId(). */
57200
68996
  const char *NodeName () const { return NodeId (); }
 
68997
  /** Get the number of sons. */
57201
68998
  int Sons () const { return 3; }
 
68999
  /** Get the n-th son.
 
69000
   *  \param n The index of the son.
 
69001
   *  \return The n-th son or NULL. */
57202
69002
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
69003
  /** Get the enclosed expression. */
57203
69004
  CTree *Expr () const { return sons[1]; }
 
69005
  /** Get the type of the enclosed expression. */
57204
69006
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
69007
  /** Get the value of the enclosed expression. */
57205
69008
  CExprValue *Value () const { return Expr ()->Value (); }
 
69009
  /** Get the semantic value object. */
57206
69010
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
69011
  /** Replace a son.
 
69012
   *  \param old_son The son to replace.
 
69013
   *  \param new_son The new son. */
57207
69014
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57208
69015
    CTree::ReplaceSon (sons, 3, old_son, new_son);
57209
69016
  }
57210
69017
   private:
57211
69018
  typedef CT_BracedExpr CCExprResolveExpr;
57212
69019
 
57213
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57214
69021
 public :
57215
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69022
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57216
69023
  typedef CT_BracedExpr CExprResolveExpr;
57217
69024
 
57218
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57219
69026
 public :
57220
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57221
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69027
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69028
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57222
69029
};
57223
69030
 
 
69031
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
69032
 *  Base class for all tree nodes representing a name. */
57224
69033
 
57225
 
#line 57226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69034
#line 69035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57226
69035
} // closed Puma
 
69036
class CCExprResolve;
 
69037
class CExprResolve;
57227
69038
class WinIfExists;
57228
69039
class WinImportHandler;
57229
69040
class WinMacros;
57230
 
class CMatchSyntax;
57231
 
class ExtGnu;
 
69041
class WinAsm;
 
69042
class WinDeclSpecs;
 
69043
class WinMemberExplSpec;
 
69044
class WinTypeKeywords;
 
69045
class WinFriend;
57232
69046
class ExtAC;
57233
69047
class ExtACBuilderCoupling;
57234
69048
class ExtACSyntaxCoupling;
57235
69049
class ExtACTree;
57236
69050
class ExtACKeywords;
57237
 
class WinAsm;
57238
 
class WinDeclSpecs;
57239
 
class WinMemberExplSpec;
57240
 
class WinTypeKeywords;
 
69051
class ExtGnu;
57241
69052
class PragmaOnceUnitState;
57242
69053
class PragmaOnce;
57243
 
class CCExprResolve;
57244
 
class CExprResolve;
57245
 
namespace Puma {
57246
 
 
57247
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69054
class CMatchSyntax;
 
69055
namespace Puma {
 
69056
 
 
69057
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69058
 
 
69059
#line 69060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69060
} // closed Puma
 
69061
 
 
69062
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69063
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69064
#include "CCExprResolveH.ah"
 
69065
#endif
 
69066
namespace Puma {
 
69067
 
 
69068
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69069
 
 
69070
#line 69071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69071
} // closed Puma
 
69072
 
 
69073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69075
#include "CExprResolveH.ah"
 
69076
#endif
 
69077
namespace Puma {
 
69078
 
 
69079
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57248
69080
class CT_SimpleName : public CT_List, public Printable, 
57249
69081
                      public CSemValue, public CSemObject {
57250
 
#line 57251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69082
#line 69083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69083
  friend class ::CCExprResolve;
 
69084
  friend class ::CExprResolve;
57251
69085
  friend class ::WinIfExists;
57252
69086
  friend class ::WinImportHandler;
57253
69087
  friend class ::WinMacros;
57254
 
  friend class ::CMatchSyntax;
57255
 
  friend class ::ExtGnu;
 
69088
  friend class ::WinAsm;
 
69089
  friend class ::WinDeclSpecs;
 
69090
  friend class ::WinMemberExplSpec;
 
69091
  friend class ::WinTypeKeywords;
 
69092
  friend class ::WinFriend;
57256
69093
  friend class ::ExtAC;
57257
69094
  friend class ::ExtACBuilderCoupling;
57258
69095
  friend class ::ExtACSyntaxCoupling;
57259
69096
  friend class ::ExtACTree;
57260
69097
  friend class ::ExtACKeywords;
57261
 
  friend class ::WinAsm;
57262
 
  friend class ::WinDeclSpecs;
57263
 
  friend class ::WinMemberExplSpec;
57264
 
  friend class ::WinTypeKeywords;
 
69098
  friend class ::ExtGnu;
57265
69099
  friend class ::PragmaOnceUnitState;
57266
69100
  friend class ::PragmaOnce;
57267
 
  friend class ::CCExprResolve;
57268
 
  friend class ::CExprResolve;
 
69101
  friend class ::CMatchSyntax;
57269
69102
 
57270
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69103
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57271
69104
 
57272
69105
protected:
 
69106
  /** Constructor.
 
69107
   *  \param size The number of sub-names (for qualified names). */
57273
69108
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
69109
  /** Constructor.
 
69110
   *  \param size The number of sub-names (for qualified names). 
 
69111
   *  \param properties Additional name list properties (for root qualified names). */
57274
69112
  CT_SimpleName (int size, int properties) : 
57275
69113
    CT_List (size, 2, properties) {}
57276
69114
  
57277
69115
public:
 
69116
  /** Constructor.
 
69117
   *  \param n The sub-tree containing the name. */
57278
69118
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
69119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57279
69120
  static const char *NodeId ();
 
69121
  /** Get the name of the node. Can be compared with NodeId(). */
57280
69122
  const char *NodeName () const { return NodeId (); }
 
69123
  /** Get the string containing the name. */
57281
69124
  virtual const char *Text () const 
57282
69125
   { return Son (Sons ()-1)->token ()->text (); }
 
69126
  /** Print the name on the given stream. 
 
69127
   *  \param os The output stream. */
57283
69128
  virtual void print (ostream &os) const { os << Text (); }
 
69129
  /** Get this. */
57284
69130
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
69131
  /** Get the type of the entity represented by the name. */
57285
69132
  CTypeInfo *Type () const { return type; }
 
69133
  /** Get the value of the entity represented by the name. */ 
57286
69134
  CExprValue *Value () const { return value; }
 
69135
  /** Get the sematic value information object. */
57287
69136
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
69137
  /** Get the sematic information object. */
57288
69138
  CSemObject *SemObject () const { return (CSemObject*)this; }
57289
 
  // special new / delete with reusing memory
57290
 
  void *operator new (size_t);
57291
 
  void  operator delete (void *);
57292
 
  // classification function
 
69139
  /** Get this. */
57293
69140
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
69141
 
 
69142
public:
 
69143
  /** Own new operator reusing memory. */
 
69144
  void *operator new (size_t);
 
69145
  /** Own delete operator. */
 
69146
  void operator delete (void *);
57294
69147
   private:
57295
69148
  typedef CT_SimpleName CCExprResolveExpr;
57296
69149
 
57297
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69150
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57298
69151
 public :
57299
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69152
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57300
69153
  typedef CT_SimpleName CExprResolveExpr;
57301
69154
 
57302
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69155
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57303
69156
 public :
57304
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57305
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69157
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69158
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57306
69159
};
57307
69160
 
 
69161
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
69162
 *  Base class for tree nodes representing a special name, like destructor names. */
57308
69163
 
57309
 
#line 57310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69164
#line 69165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57310
69165
} // closed Puma
 
69166
class CCExprResolve;
 
69167
class CExprResolve;
57311
69168
class WinIfExists;
57312
69169
class WinImportHandler;
57313
69170
class WinMacros;
57314
 
class CMatchSyntax;
57315
 
class ExtGnu;
 
69171
class WinAsm;
 
69172
class WinDeclSpecs;
 
69173
class WinMemberExplSpec;
 
69174
class WinTypeKeywords;
 
69175
class WinFriend;
57316
69176
class ExtAC;
57317
69177
class ExtACBuilderCoupling;
57318
69178
class ExtACSyntaxCoupling;
57319
69179
class ExtACTree;
57320
69180
class ExtACKeywords;
57321
 
class WinAsm;
57322
 
class WinDeclSpecs;
57323
 
class WinMemberExplSpec;
57324
 
class WinTypeKeywords;
 
69181
class ExtGnu;
57325
69182
class PragmaOnceUnitState;
57326
69183
class PragmaOnce;
57327
 
class CCExprResolve;
57328
 
class CExprResolve;
57329
 
namespace Puma {
57330
 
 
57331
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69184
class CMatchSyntax;
 
69185
namespace Puma {
 
69186
 
 
69187
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69188
 
 
69189
#line 69190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69190
} // closed Puma
 
69191
 
 
69192
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69193
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69194
#include "CCExprResolveH.ah"
 
69195
#endif
 
69196
namespace Puma {
 
69197
 
 
69198
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69199
 
 
69200
#line 69201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69201
} // closed Puma
 
69202
 
 
69203
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69204
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69205
#include "CExprResolveH.ah"
 
69206
#endif
 
69207
namespace Puma {
 
69208
 
 
69209
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57332
69210
class CT_SpecialName : public CT_SimpleName {
57333
 
#line 57334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69211
#line 69212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69212
  friend class ::CCExprResolve;
 
69213
  friend class ::CExprResolve;
57334
69214
  friend class ::WinIfExists;
57335
69215
  friend class ::WinImportHandler;
57336
69216
  friend class ::WinMacros;
57337
 
  friend class ::CMatchSyntax;
57338
 
  friend class ::ExtGnu;
 
69217
  friend class ::WinAsm;
 
69218
  friend class ::WinDeclSpecs;
 
69219
  friend class ::WinMemberExplSpec;
 
69220
  friend class ::WinTypeKeywords;
 
69221
  friend class ::WinFriend;
57339
69222
  friend class ::ExtAC;
57340
69223
  friend class ::ExtACBuilderCoupling;
57341
69224
  friend class ::ExtACSyntaxCoupling;
57342
69225
  friend class ::ExtACTree;
57343
69226
  friend class ::ExtACKeywords;
57344
 
  friend class ::WinAsm;
57345
 
  friend class ::WinDeclSpecs;
57346
 
  friend class ::WinMemberExplSpec;
57347
 
  friend class ::WinTypeKeywords;
 
69227
  friend class ::ExtGnu;
57348
69228
  friend class ::PragmaOnceUnitState;
57349
69229
  friend class ::PragmaOnce;
57350
 
  friend class ::CCExprResolve;
57351
 
  friend class ::CExprResolve;
 
69230
  friend class ::CMatchSyntax;
57352
69231
 
57353
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69232
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57354
69233
 
57355
69234
  char *_name;
57356
69235
  
57357
69236
protected:
 
69237
  /** Constructor.
 
69238
   *  \param size The number of sub-names (for qualified names). */
57358
69239
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
57359
69240
  
57360
69241
public:
 
69242
  /** Destructor. Deletes the name string. */
57361
69243
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
69244
  /** Get the string containing the name. */
57362
69245
  const char *Text () const { return _name; }
 
69246
  /** Set the name. The name is copied.
 
69247
   *  \param n The name. */
57363
69248
  void Name (const char *n) { 
57364
69249
    if (n) { 
57365
69250
      _name = new char[strlen(n) + 1];
57366
69251
      strcpy (_name,n);
57367
69252
    }
57368
69253
  }
57369
 
  // special new / delete with reusing memory
 
69254
 
 
69255
public:
 
69256
  /** Own new operator reusing memory. */
57370
69257
  void *operator new (size_t);
57371
 
  void  operator delete (void *);
 
69258
  /** Own delete operator. */
 
69259
  void operator delete (void *);
57372
69260
   private:
57373
69261
  typedef CT_SpecialName CCExprResolveExpr;
57374
69262
 
57375
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69263
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57376
69264
 public :
57377
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69265
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57378
69266
  typedef CT_SpecialName CExprResolveExpr;
57379
69267
 
57380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69268
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57381
69269
 public :
57382
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57383
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69270
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69271
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57384
69272
};
57385
69273
 
 
69274
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
69275
 *  Tree node representing a private name. Private names 
 
69276
 *  are generated names for abstract declarators etc. */
57386
69277
 
57387
 
#line 57388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69278
#line 69279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57388
69279
} // closed Puma
 
69280
class CCExprResolve;
 
69281
class CExprResolve;
57389
69282
class WinIfExists;
57390
69283
class WinImportHandler;
57391
69284
class WinMacros;
57392
 
class CMatchSyntax;
57393
 
class ExtGnu;
 
69285
class WinAsm;
 
69286
class WinDeclSpecs;
 
69287
class WinMemberExplSpec;
 
69288
class WinTypeKeywords;
 
69289
class WinFriend;
57394
69290
class ExtAC;
57395
69291
class ExtACBuilderCoupling;
57396
69292
class ExtACSyntaxCoupling;
57397
69293
class ExtACTree;
57398
69294
class ExtACKeywords;
57399
 
class WinAsm;
57400
 
class WinDeclSpecs;
57401
 
class WinMemberExplSpec;
57402
 
class WinTypeKeywords;
 
69295
class ExtGnu;
57403
69296
class PragmaOnceUnitState;
57404
69297
class PragmaOnce;
57405
 
class CCExprResolve;
57406
 
class CExprResolve;
57407
 
namespace Puma {
57408
 
 
57409
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69298
class CMatchSyntax;
 
69299
namespace Puma {
 
69300
 
 
69301
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69302
 
 
69303
#line 69304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69304
} // closed Puma
 
69305
 
 
69306
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69307
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69308
#include "CCExprResolveH.ah"
 
69309
#endif
 
69310
namespace Puma {
 
69311
 
 
69312
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69313
 
 
69314
#line 69315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69315
} // closed Puma
 
69316
 
 
69317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69319
#include "CExprResolveH.ah"
 
69320
#endif
 
69321
namespace Puma {
 
69322
 
 
69323
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57410
69324
class CT_PrivateName : public CT_SpecialName {
57411
 
#line 57412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69325
#line 69326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69326
  friend class ::CCExprResolve;
 
69327
  friend class ::CExprResolve;
57412
69328
  friend class ::WinIfExists;
57413
69329
  friend class ::WinImportHandler;
57414
69330
  friend class ::WinMacros;
57415
 
  friend class ::CMatchSyntax;
57416
 
  friend class ::ExtGnu;
 
69331
  friend class ::WinAsm;
 
69332
  friend class ::WinDeclSpecs;
 
69333
  friend class ::WinMemberExplSpec;
 
69334
  friend class ::WinTypeKeywords;
 
69335
  friend class ::WinFriend;
57417
69336
  friend class ::ExtAC;
57418
69337
  friend class ::ExtACBuilderCoupling;
57419
69338
  friend class ::ExtACSyntaxCoupling;
57420
69339
  friend class ::ExtACTree;
57421
69340
  friend class ::ExtACKeywords;
57422
 
  friend class ::WinAsm;
57423
 
  friend class ::WinDeclSpecs;
57424
 
  friend class ::WinMemberExplSpec;
57425
 
  friend class ::WinTypeKeywords;
 
69341
  friend class ::ExtGnu;
57426
69342
  friend class ::PragmaOnceUnitState;
57427
69343
  friend class ::PragmaOnce;
57428
 
  friend class ::CCExprResolve;
57429
 
  friend class ::CExprResolve;
 
69344
  friend class ::CMatchSyntax;
57430
69345
 
57431
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69346
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57432
69347
 
57433
69348
public:
 
69349
  /** Constructor.
 
69350
   *  \param n The private (generated) name. */
57434
69351
  CT_PrivateName (const char *n) { Name (n); }
 
69352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57435
69353
  static const char *NodeId ();
 
69354
  /** Get the name of the node. Can be compared with NodeId(). */
57436
69355
  const char *NodeName () const { return NodeId (); }
 
69356
  /** Get the number of sons. */
57437
69357
  int Sons () const { return 0; }
 
69358
  /** Get the n-th son.
 
69359
   *  \param n The index of the son.
 
69360
   *  \return The n-th son or NULL. */
57438
69361
  CTree *Son (int n) const { return (CTree*)0; }
57439
 
  // special new / delete with reusing memory
 
69362
 
 
69363
public:
 
69364
  /** Own new operator reusing memory. */
57440
69365
  void *operator new (size_t);
57441
 
  void  operator delete (void *);
 
69366
  /** Own delete operator. */
 
69367
  void operator delete (void *);
57442
69368
   private:
57443
69369
  typedef CT_PrivateName CCExprResolveExpr;
57444
69370
 
57445
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57446
69372
 public :
57447
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69373
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57448
69374
  typedef CT_PrivateName CExprResolveExpr;
57449
69375
 
57450
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69376
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57451
69377
 public :
57452
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57453
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69378
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69379
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57454
69380
};
57455
69381
 
 
69382
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
69383
 *  Tree node representing a destructor name. */
57456
69384
 
57457
 
#line 57458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69385
#line 69386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57458
69386
} // closed Puma
 
69387
class CCExprResolve;
 
69388
class CExprResolve;
57459
69389
class WinIfExists;
57460
69390
class WinImportHandler;
57461
69391
class WinMacros;
57462
 
class CMatchSyntax;
57463
 
class ExtGnu;
 
69392
class WinAsm;
 
69393
class WinDeclSpecs;
 
69394
class WinMemberExplSpec;
 
69395
class WinTypeKeywords;
 
69396
class WinFriend;
57464
69397
class ExtAC;
57465
69398
class ExtACBuilderCoupling;
57466
69399
class ExtACSyntaxCoupling;
57467
69400
class ExtACTree;
57468
69401
class ExtACKeywords;
57469
 
class WinAsm;
57470
 
class WinDeclSpecs;
57471
 
class WinMemberExplSpec;
57472
 
class WinTypeKeywords;
 
69402
class ExtGnu;
57473
69403
class PragmaOnceUnitState;
57474
69404
class PragmaOnce;
57475
 
class CCExprResolve;
57476
 
class CExprResolve;
57477
 
namespace Puma {
57478
 
 
57479
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69405
class CMatchSyntax;
 
69406
namespace Puma {
 
69407
 
 
69408
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69409
 
 
69410
#line 69411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69411
} // closed Puma
 
69412
 
 
69413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69415
#include "CCExprResolveH.ah"
 
69416
#endif
 
69417
namespace Puma {
 
69418
 
 
69419
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69420
 
 
69421
#line 69422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69422
} // closed Puma
 
69423
 
 
69424
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69425
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69426
#include "CExprResolveH.ah"
 
69427
#endif
 
69428
namespace Puma {
 
69429
 
 
69430
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57480
69431
class CT_DestructorName : public CT_SpecialName {
57481
 
#line 57482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69432
#line 69433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69433
  friend class ::CCExprResolve;
 
69434
  friend class ::CExprResolve;
57482
69435
  friend class ::WinIfExists;
57483
69436
  friend class ::WinImportHandler;
57484
69437
  friend class ::WinMacros;
57485
 
  friend class ::CMatchSyntax;
57486
 
  friend class ::ExtGnu;
 
69438
  friend class ::WinAsm;
 
69439
  friend class ::WinDeclSpecs;
 
69440
  friend class ::WinMemberExplSpec;
 
69441
  friend class ::WinTypeKeywords;
 
69442
  friend class ::WinFriend;
57487
69443
  friend class ::ExtAC;
57488
69444
  friend class ::ExtACBuilderCoupling;
57489
69445
  friend class ::ExtACSyntaxCoupling;
57490
69446
  friend class ::ExtACTree;
57491
69447
  friend class ::ExtACKeywords;
57492
 
  friend class ::WinAsm;
57493
 
  friend class ::WinDeclSpecs;
57494
 
  friend class ::WinMemberExplSpec;
57495
 
  friend class ::WinTypeKeywords;
 
69448
  friend class ::ExtGnu;
57496
69449
  friend class ::PragmaOnceUnitState;
57497
69450
  friend class ::PragmaOnce;
57498
 
  friend class ::CCExprResolve;
57499
 
  friend class ::CExprResolve;
 
69451
  friend class ::CMatchSyntax;
57500
69452
 
57501
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69453
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57502
69454
 
57503
69455
public:
57504
 
  CT_DestructorName (CTree *, CTree *);
 
69456
  /** Constructor.
 
69457
   *  \param t The tilde operator.
 
69458
   *  \param n The class name. */
 
69459
  CT_DestructorName (CTree *t, CTree *n);
 
69460
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57505
69461
  static const char *NodeId ();
 
69462
  /** Get the name of the node. Can be compared with NodeId(). */
57506
69463
  const char *NodeName () const { return NodeId (); }
57507
 
  // special new / delete with reusing memory
 
69464
 
 
69465
public:
 
69466
  /** Own new operator reusing memory. */
57508
69467
  void *operator new (size_t);
57509
 
  void  operator delete (void *);
 
69468
  /** Own delete operator. */
 
69469
  void operator delete (void *);
57510
69470
   private:
57511
69471
  typedef CT_DestructorName CCExprResolveExpr;
57512
69472
 
57513
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69473
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57514
69474
 public :
57515
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69475
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57516
69476
  typedef CT_DestructorName CExprResolveExpr;
57517
69477
 
57518
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69478
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57519
69479
 public :
57520
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57521
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69480
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69481
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57522
69482
};
57523
69483
 
 
69484
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
69485
 *  Tree node representing a template name. */
57524
69486
 
57525
 
#line 57526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69487
#line 69488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57526
69488
} // closed Puma
 
69489
class CCExprResolve;
 
69490
class CExprResolve;
57527
69491
class WinIfExists;
57528
69492
class WinImportHandler;
57529
69493
class WinMacros;
57530
 
class CMatchSyntax;
57531
 
class ExtGnu;
 
69494
class WinAsm;
 
69495
class WinDeclSpecs;
 
69496
class WinMemberExplSpec;
 
69497
class WinTypeKeywords;
 
69498
class WinFriend;
57532
69499
class ExtAC;
57533
69500
class ExtACBuilderCoupling;
57534
69501
class ExtACSyntaxCoupling;
57535
69502
class ExtACTree;
57536
69503
class ExtACKeywords;
57537
 
class WinAsm;
57538
 
class WinDeclSpecs;
57539
 
class WinMemberExplSpec;
57540
 
class WinTypeKeywords;
 
69504
class ExtGnu;
57541
69505
class PragmaOnceUnitState;
57542
69506
class PragmaOnce;
57543
 
class CCExprResolve;
57544
 
class CExprResolve;
57545
 
namespace Puma {
57546
 
 
57547
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69507
class CMatchSyntax;
 
69508
namespace Puma {
 
69509
 
 
69510
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69511
 
 
69512
#line 69513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69513
} // closed Puma
 
69514
 
 
69515
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69516
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69517
#include "CCExprResolveH.ah"
 
69518
#endif
 
69519
namespace Puma {
 
69520
 
 
69521
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69522
 
 
69523
#line 69524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69524
} // closed Puma
 
69525
 
 
69526
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69527
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69528
#include "CExprResolveH.ah"
 
69529
#endif
 
69530
namespace Puma {
 
69531
 
 
69532
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57548
69533
class CT_TemplateName : public CT_SpecialName {
57549
 
#line 57550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69534
#line 69535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69535
  friend class ::CCExprResolve;
 
69536
  friend class ::CExprResolve;
57550
69537
  friend class ::WinIfExists;
57551
69538
  friend class ::WinImportHandler;
57552
69539
  friend class ::WinMacros;
57553
 
  friend class ::CMatchSyntax;
57554
 
  friend class ::ExtGnu;
 
69540
  friend class ::WinAsm;
 
69541
  friend class ::WinDeclSpecs;
 
69542
  friend class ::WinMemberExplSpec;
 
69543
  friend class ::WinTypeKeywords;
 
69544
  friend class ::WinFriend;
57555
69545
  friend class ::ExtAC;
57556
69546
  friend class ::ExtACBuilderCoupling;
57557
69547
  friend class ::ExtACSyntaxCoupling;
57558
69548
  friend class ::ExtACTree;
57559
69549
  friend class ::ExtACKeywords;
57560
 
  friend class ::WinAsm;
57561
 
  friend class ::WinDeclSpecs;
57562
 
  friend class ::WinMemberExplSpec;
57563
 
  friend class ::WinTypeKeywords;
 
69550
  friend class ::ExtGnu;
57564
69551
  friend class ::PragmaOnceUnitState;
57565
69552
  friend class ::PragmaOnce;
57566
 
  friend class ::CCExprResolve;
57567
 
  friend class ::CExprResolve;
 
69553
  friend class ::CMatchSyntax;
57568
69554
 
57569
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69555
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57570
69556
 
57571
69557
public:
 
69558
  /** Constructor.
 
69559
   *  \param n The template class or function name.
 
69560
   *  \param a The template argument list. */
57572
69561
  CT_TemplateName (CTree *n, CTree *a) 
57573
69562
   { AddSon (n); AddSon (a); }
 
69563
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57574
69564
  static const char *NodeId ();
 
69565
  /** Get the name of the node. Can be compared with NodeId(). */
57575
69566
  const char *NodeName () const { return NodeId (); }
 
69567
  /** Get the template argument list. */
57576
69568
  CT_TemplateArgList *Arguments () const 
57577
69569
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
69570
  /** Get the template class or function name. */
57578
69571
  CT_SimpleName *TemplateName () const 
57579
69572
   { return (CT_SimpleName*)Son (Sons ()-2); }
57580
69573
  // may change in the future
57581
69574
  const char *Text () const { return TemplateName ()->Text (); }
57582
 
  // special new / delete with reusing memory
 
69575
 
 
69576
public:
 
69577
  /** Own new operator reusing memory. */
57583
69578
  void *operator new (size_t);
57584
 
  void  operator delete (void *);
 
69579
  /** Own delete operator. */
 
69580
  void operator delete (void *);
57585
69581
   private:
57586
69582
  typedef CT_TemplateName CCExprResolveExpr;
57587
69583
 
57588
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69584
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57589
69585
 public :
57590
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69586
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57591
69587
  typedef CT_TemplateName CExprResolveExpr;
57592
69588
 
57593
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57594
69590
 public :
57595
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57596
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69591
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69592
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57597
69593
};
57598
69594
 
 
69595
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
69596
 *  Tree node representing the name of an overloaded operator. */
57599
69597
 
57600
 
#line 57601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69598
#line 69599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57601
69599
} // closed Puma
 
69600
class CCExprResolve;
 
69601
class CExprResolve;
57602
69602
class WinIfExists;
57603
69603
class WinImportHandler;
57604
69604
class WinMacros;
57605
 
class CMatchSyntax;
57606
 
class ExtGnu;
 
69605
class WinAsm;
 
69606
class WinDeclSpecs;
 
69607
class WinMemberExplSpec;
 
69608
class WinTypeKeywords;
 
69609
class WinFriend;
57607
69610
class ExtAC;
57608
69611
class ExtACBuilderCoupling;
57609
69612
class ExtACSyntaxCoupling;
57610
69613
class ExtACTree;
57611
69614
class ExtACKeywords;
57612
 
class WinAsm;
57613
 
class WinDeclSpecs;
57614
 
class WinMemberExplSpec;
57615
 
class WinTypeKeywords;
 
69615
class ExtGnu;
57616
69616
class PragmaOnceUnitState;
57617
69617
class PragmaOnce;
57618
 
class CCExprResolve;
57619
 
class CExprResolve;
57620
 
namespace Puma {
57621
 
 
57622
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69618
class CMatchSyntax;
 
69619
namespace Puma {
 
69620
 
 
69621
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69622
 
 
69623
#line 69624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69624
} // closed Puma
 
69625
 
 
69626
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69627
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69628
#include "CCExprResolveH.ah"
 
69629
#endif
 
69630
namespace Puma {
 
69631
 
 
69632
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69633
 
 
69634
#line 69635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69635
} // closed Puma
 
69636
 
 
69637
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69638
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69639
#include "CExprResolveH.ah"
 
69640
#endif
 
69641
namespace Puma {
 
69642
 
 
69643
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57623
69644
class CT_OperatorName : public CT_SpecialName {
57624
 
#line 57625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69645
#line 69646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69646
  friend class ::CCExprResolve;
 
69647
  friend class ::CExprResolve;
57625
69648
  friend class ::WinIfExists;
57626
69649
  friend class ::WinImportHandler;
57627
69650
  friend class ::WinMacros;
57628
 
  friend class ::CMatchSyntax;
57629
 
  friend class ::ExtGnu;
 
69651
  friend class ::WinAsm;
 
69652
  friend class ::WinDeclSpecs;
 
69653
  friend class ::WinMemberExplSpec;
 
69654
  friend class ::WinTypeKeywords;
 
69655
  friend class ::WinFriend;
57630
69656
  friend class ::ExtAC;
57631
69657
  friend class ::ExtACBuilderCoupling;
57632
69658
  friend class ::ExtACSyntaxCoupling;
57633
69659
  friend class ::ExtACTree;
57634
69660
  friend class ::ExtACKeywords;
57635
 
  friend class ::WinAsm;
57636
 
  friend class ::WinDeclSpecs;
57637
 
  friend class ::WinMemberExplSpec;
57638
 
  friend class ::WinTypeKeywords;
 
69661
  friend class ::ExtGnu;
57639
69662
  friend class ::PragmaOnceUnitState;
57640
69663
  friend class ::PragmaOnce;
57641
 
  friend class ::CCExprResolve;
57642
 
  friend class ::CExprResolve;
 
69664
  friend class ::CMatchSyntax;
57643
69665
 
57644
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69666
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57645
69667
 
57646
69668
  int _oper;
57647
69669
 
57648
69670
public:
57649
 
  enum { // complex operators
57650
 
    FCT_CALL = -100,
57651
 
    SUBSCRIPT,
57652
 
    NEW_ARRAY,
57653
 
    DEL_ARRAY
 
69671
  /** Complex operator types. */
 
69672
  enum { 
 
69673
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
69674
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
69675
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
69676
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
57654
69677
  };
57655
69678
 
57656
69679
public:
57657
 
  CT_OperatorName (CTree *);
57658
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
69680
  /** Constructor.
 
69681
   *  \param op The token containing the operator. */
 
69682
  CT_OperatorName (CTree *op);
 
69683
  /** Constructor.
 
69684
   *  \param f The operator function keyword 'operator'.
 
69685
   *  \param op The token containing the operator. 
 
69686
   *  \param o The token of '[' or '('.
 
69687
   *  \param c The token of ']' or ')'. */
 
69688
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
69689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57659
69690
  static const char *NodeId ();
 
69691
  /** Get the name of the node. Can be compared with NodeId(). */
57660
69692
  const char *NodeName () const { return NodeId (); }
 
69693
  /** Get the operator type (either the token type or one of 
 
69694
   *  the complex operator types). */
57661
69695
  int Operator () const { return _oper; }
57662
 
  // special new / delete with reusing memory
 
69696
 
 
69697
public:
 
69698
  /** Own new operator reusing memory. */
57663
69699
  void *operator new (size_t);
57664
 
  void  operator delete (void *);
 
69700
  /** Own delete operator. */
 
69701
  void operator delete (void *);
57665
69702
   private:
57666
69703
  typedef CT_OperatorName CCExprResolveExpr;
57667
69704
 
57668
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69705
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57669
69706
 public :
57670
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69707
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57671
69708
  typedef CT_OperatorName CExprResolveExpr;
57672
69709
 
57673
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69710
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57674
69711
 public :
57675
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57676
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69712
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69713
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57677
69714
};
57678
69715
 
 
69716
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
69717
 *  Tree node representing the name of a conversion function. */
57679
69718
 
57680
 
#line 57681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69719
#line 69720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57681
69720
} // closed Puma
 
69721
class CCExprResolve;
 
69722
class CExprResolve;
57682
69723
class WinIfExists;
57683
69724
class WinImportHandler;
57684
69725
class WinMacros;
57685
 
class CMatchSyntax;
57686
 
class ExtGnu;
 
69726
class WinAsm;
 
69727
class WinDeclSpecs;
 
69728
class WinMemberExplSpec;
 
69729
class WinTypeKeywords;
 
69730
class WinFriend;
57687
69731
class ExtAC;
57688
69732
class ExtACBuilderCoupling;
57689
69733
class ExtACSyntaxCoupling;
57690
69734
class ExtACTree;
57691
69735
class ExtACKeywords;
57692
 
class WinAsm;
57693
 
class WinDeclSpecs;
57694
 
class WinMemberExplSpec;
57695
 
class WinTypeKeywords;
 
69736
class ExtGnu;
57696
69737
class PragmaOnceUnitState;
57697
69738
class PragmaOnce;
57698
 
class CCExprResolve;
57699
 
class CExprResolve;
57700
 
namespace Puma {
57701
 
 
57702
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69739
class CMatchSyntax;
 
69740
namespace Puma {
 
69741
 
 
69742
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69743
 
 
69744
#line 69745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69745
} // closed Puma
 
69746
 
 
69747
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69748
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69749
#include "CCExprResolveH.ah"
 
69750
#endif
 
69751
namespace Puma {
 
69752
 
 
69753
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69754
 
 
69755
#line 69756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69756
} // closed Puma
 
69757
 
 
69758
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69759
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69760
#include "CExprResolveH.ah"
 
69761
#endif
 
69762
namespace Puma {
 
69763
 
 
69764
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57703
69765
class CT_ConversionName : public CT_SpecialName {
57704
 
#line 57705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69766
#line 69767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69767
  friend class ::CCExprResolve;
 
69768
  friend class ::CExprResolve;
57705
69769
  friend class ::WinIfExists;
57706
69770
  friend class ::WinImportHandler;
57707
69771
  friend class ::WinMacros;
57708
 
  friend class ::CMatchSyntax;
57709
 
  friend class ::ExtGnu;
 
69772
  friend class ::WinAsm;
 
69773
  friend class ::WinDeclSpecs;
 
69774
  friend class ::WinMemberExplSpec;
 
69775
  friend class ::WinTypeKeywords;
 
69776
  friend class ::WinFriend;
57710
69777
  friend class ::ExtAC;
57711
69778
  friend class ::ExtACBuilderCoupling;
57712
69779
  friend class ::ExtACSyntaxCoupling;
57713
69780
  friend class ::ExtACTree;
57714
69781
  friend class ::ExtACKeywords;
57715
 
  friend class ::WinAsm;
57716
 
  friend class ::WinDeclSpecs;
57717
 
  friend class ::WinMemberExplSpec;
57718
 
  friend class ::WinTypeKeywords;
 
69782
  friend class ::ExtGnu;
57719
69783
  friend class ::PragmaOnceUnitState;
57720
69784
  friend class ::PragmaOnce;
57721
 
  friend class ::CCExprResolve;
57722
 
  friend class ::CExprResolve;
 
69785
  friend class ::CMatchSyntax;
57723
69786
 
57724
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69787
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57725
69788
 
57726
69789
public:
57727
 
  CT_ConversionName (CTree *, CTree *);
 
69790
  /** Constructor.
 
69791
   *  \param f The operator function keyword 'operator'.
 
69792
   *  \param t The sub-tree containing the conversion type. */
 
69793
  CT_ConversionName (CTree *f, CTree *t);
 
69794
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57728
69795
  static const char *NodeId ();
 
69796
  /** Get the name of the node. Can be compared with NodeId(). */
57729
69797
  const char *NodeName () const { return NodeId (); }
 
69798
  /** Get the conversion type. */
57730
69799
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
57731
 
  // special new / delete with reusing memory
 
69800
 
 
69801
public:
 
69802
  /** Own new operator reusing memory. */
57732
69803
  void *operator new (size_t);
57733
 
  void  operator delete (void *);
 
69804
  /** Own delete operator. */
 
69805
  void operator delete (void *);
57734
69806
   private:
57735
69807
  typedef CT_ConversionName CCExprResolveExpr;
57736
69808
 
57737
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69809
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57738
69810
 public :
57739
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69811
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57740
69812
  typedef CT_ConversionName CExprResolveExpr;
57741
69813
 
57742
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69814
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57743
69815
 public :
57744
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57745
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69816
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69817
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57746
69818
};
57747
69819
 
 
69820
/** \class CT_QualName CTree.h Puma/CTree.h
 
69821
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
57748
69822
 
57749
 
#line 57750 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69823
#line 69824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57750
69824
} // closed Puma
 
69825
class CCExprResolve;
 
69826
class CExprResolve;
57751
69827
class WinIfExists;
57752
69828
class WinImportHandler;
57753
69829
class WinMacros;
57754
 
class CMatchSyntax;
57755
 
class ExtGnu;
 
69830
class WinAsm;
 
69831
class WinDeclSpecs;
 
69832
class WinMemberExplSpec;
 
69833
class WinTypeKeywords;
 
69834
class WinFriend;
57756
69835
class ExtAC;
57757
69836
class ExtACBuilderCoupling;
57758
69837
class ExtACSyntaxCoupling;
57759
69838
class ExtACTree;
57760
69839
class ExtACKeywords;
57761
 
class WinAsm;
57762
 
class WinDeclSpecs;
57763
 
class WinMemberExplSpec;
57764
 
class WinTypeKeywords;
 
69840
class ExtGnu;
57765
69841
class PragmaOnceUnitState;
57766
69842
class PragmaOnce;
57767
 
class CCExprResolve;
57768
 
class CExprResolve;
57769
 
namespace Puma {
57770
 
 
57771
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69843
class CMatchSyntax;
 
69844
namespace Puma {
 
69845
 
 
69846
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69847
 
 
69848
#line 69849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69849
} // closed Puma
 
69850
 
 
69851
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69852
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69853
#include "CCExprResolveH.ah"
 
69854
#endif
 
69855
namespace Puma {
 
69856
 
 
69857
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69858
 
 
69859
#line 69860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69860
} // closed Puma
 
69861
 
 
69862
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69863
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69864
#include "CExprResolveH.ah"
 
69865
#endif
 
69866
namespace Puma {
 
69867
 
 
69868
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57772
69869
class CT_QualName : public CT_SimpleName {
57773
 
#line 57774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69870
#line 69871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69871
  friend class ::CCExprResolve;
 
69872
  friend class ::CExprResolve;
57774
69873
  friend class ::WinIfExists;
57775
69874
  friend class ::WinImportHandler;
57776
69875
  friend class ::WinMacros;
57777
 
  friend class ::CMatchSyntax;
57778
 
  friend class ::ExtGnu;
 
69876
  friend class ::WinAsm;
 
69877
  friend class ::WinDeclSpecs;
 
69878
  friend class ::WinMemberExplSpec;
 
69879
  friend class ::WinTypeKeywords;
 
69880
  friend class ::WinFriend;
57779
69881
  friend class ::ExtAC;
57780
69882
  friend class ::ExtACBuilderCoupling;
57781
69883
  friend class ::ExtACSyntaxCoupling;
57782
69884
  friend class ::ExtACTree;
57783
69885
  friend class ::ExtACKeywords;
57784
 
  friend class ::WinAsm;
57785
 
  friend class ::WinDeclSpecs;
57786
 
  friend class ::WinMemberExplSpec;
57787
 
  friend class ::WinTypeKeywords;
 
69886
  friend class ::ExtGnu;
57788
69887
  friend class ::PragmaOnceUnitState;
57789
69888
  friend class ::PragmaOnce;
57790
 
  friend class ::CCExprResolve;
57791
 
  friend class ::CExprResolve;
 
69889
  friend class ::CMatchSyntax;
57792
69890
 
57793
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69891
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57794
69892
 
57795
69893
public:
 
69894
  /** Constructor.
 
69895
   *  \param size The initial number sub-names plus separators. */
57796
69896
  CT_QualName (int size = 3) : 
57797
69897
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
69898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57798
69899
  static const char *NodeId ();
 
69900
  /** Get the name of the node. Can be compared with NodeId(). */
57799
69901
  const char *NodeName () const { return NodeId (); }
57800
 
  void print (ostream &) const;
 
69902
  /** Print the qualified name on the given stream. 
 
69903
   *  \param os The output stream. */
 
69904
  void print (ostream &os) const;
 
69905
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
57801
69906
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
69907
  /** Get the string containing the last name of the qualified name. */
57802
69908
  const char *Text () const { return Name ()->Text (); }
 
69909
  /** Get the type of the last name. */
57803
69910
  CTypeInfo *Type () const { return Name ()->Type (); }
 
69911
  /** Get the value of the last name. */
57804
69912
  CExprValue *Value () const { return Name ()->Value (); }
 
69913
  /** Get the semantic value object of the last name. */
57805
69914
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
69915
  /** Get the semantic information object of the last name. */
57806
69916
  CSemObject *SemObject () const { return Name ()->SemObject (); }
57807
 
  // special new / delete with reusing memory
 
69917
 
 
69918
public:
 
69919
  /** Own new operator reusing memory. */
57808
69920
  void *operator new (size_t);
57809
 
  void  operator delete (void *);
 
69921
  /** Own delete operator. */
 
69922
  void operator delete (void *);
57810
69923
   private:
57811
69924
  typedef CT_QualName CCExprResolveExpr;
57812
69925
 
57813
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
69926
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57814
69927
 public :
57815
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
69928
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57816
69929
  typedef CT_QualName CExprResolveExpr;
57817
69930
 
57818
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
69931
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57819
69932
 public :
57820
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57821
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69933
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
69934
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57822
69935
};
57823
69936
 
 
69937
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
69938
 *  Tree node representing a qualified name with introducing name separator,
 
69939
 *  e.g. ::X::Y::Z. */
57824
69940
 
57825
 
#line 57826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69941
#line 69942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57826
69942
} // closed Puma
 
69943
class CCExprResolve;
 
69944
class CExprResolve;
57827
69945
class WinIfExists;
57828
69946
class WinImportHandler;
57829
69947
class WinMacros;
57830
 
class CMatchSyntax;
57831
 
class ExtGnu;
 
69948
class WinAsm;
 
69949
class WinDeclSpecs;
 
69950
class WinMemberExplSpec;
 
69951
class WinTypeKeywords;
 
69952
class WinFriend;
57832
69953
class ExtAC;
57833
69954
class ExtACBuilderCoupling;
57834
69955
class ExtACSyntaxCoupling;
57835
69956
class ExtACTree;
57836
69957
class ExtACKeywords;
57837
 
class WinAsm;
57838
 
class WinDeclSpecs;
57839
 
class WinMemberExplSpec;
57840
 
class WinTypeKeywords;
 
69958
class ExtGnu;
57841
69959
class PragmaOnceUnitState;
57842
69960
class PragmaOnce;
57843
 
class CCExprResolve;
57844
 
class CExprResolve;
57845
 
namespace Puma {
57846
 
 
57847
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69961
class CMatchSyntax;
 
69962
namespace Puma {
 
69963
 
 
69964
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69965
 
 
69966
#line 69967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69967
} // closed Puma
 
69968
 
 
69969
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69970
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69971
#include "CCExprResolveH.ah"
 
69972
#endif
 
69973
namespace Puma {
 
69974
 
 
69975
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69976
 
 
69977
#line 69978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69978
} // closed Puma
 
69979
 
 
69980
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69981
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69982
#include "CExprResolveH.ah"
 
69983
#endif
 
69984
namespace Puma {
 
69985
 
 
69986
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57848
69987
class CT_RootQualName : public CT_QualName {
57849
 
#line 57850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
69988
#line 69989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
69989
  friend class ::CCExprResolve;
 
69990
  friend class ::CExprResolve;
57850
69991
  friend class ::WinIfExists;
57851
69992
  friend class ::WinImportHandler;
57852
69993
  friend class ::WinMacros;
57853
 
  friend class ::CMatchSyntax;
57854
 
  friend class ::ExtGnu;
 
69994
  friend class ::WinAsm;
 
69995
  friend class ::WinDeclSpecs;
 
69996
  friend class ::WinMemberExplSpec;
 
69997
  friend class ::WinTypeKeywords;
 
69998
  friend class ::WinFriend;
57855
69999
  friend class ::ExtAC;
57856
70000
  friend class ::ExtACBuilderCoupling;
57857
70001
  friend class ::ExtACSyntaxCoupling;
57858
70002
  friend class ::ExtACTree;
57859
70003
  friend class ::ExtACKeywords;
57860
 
  friend class ::WinAsm;
57861
 
  friend class ::WinDeclSpecs;
57862
 
  friend class ::WinMemberExplSpec;
57863
 
  friend class ::WinTypeKeywords;
 
70004
  friend class ::ExtGnu;
57864
70005
  friend class ::PragmaOnceUnitState;
57865
70006
  friend class ::PragmaOnce;
57866
 
  friend class ::CCExprResolve;
57867
 
  friend class ::CExprResolve;
 
70007
  friend class ::CMatchSyntax;
57868
70008
 
57869
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70009
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57870
70010
 
57871
70011
public:
 
70012
  /** Constructor.
 
70013
   *  \param size Initial number of sub-name plus separator. */
57872
70014
  CT_RootQualName (int size = 2) : 
57873
70015
    CT_QualName (size) { AddProperties (INTRO); }
 
70016
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57874
70017
  static const char *NodeId ();
 
70018
  /** Get the name of the node. Can be compared with NodeId(). */
57875
70019
  const char *NodeName () const { return NodeId (); }
57876
 
  // special new / delete with reusing memory
 
70020
 
 
70021
public:
 
70022
  /** Own new operator reusing memory. */
57877
70023
  void *operator new (size_t);
57878
 
  void  operator delete (void *);
 
70024
  /** Own delete operator. */
 
70025
  void operator delete (void *);
57879
70026
   private:
57880
70027
  typedef CT_RootQualName CCExprResolveExpr;
57881
70028
 
57882
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70029
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57883
70030
 public :
57884
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70031
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57885
70032
  typedef CT_RootQualName CExprResolveExpr;
57886
70033
 
57887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70034
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57888
70035
 public :
57889
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57890
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70036
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70037
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57891
70038
};
57892
70039
 
 
70040
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
70041
 *  Tree node representing a binary expression, e.g. a+b. */
57893
70042
 
57894
 
#line 57895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70043
#line 70044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57895
70044
} // closed Puma
 
70045
class CCExprResolve;
 
70046
class CExprResolve;
57896
70047
class WinIfExists;
57897
70048
class WinImportHandler;
57898
70049
class WinMacros;
57899
 
class CMatchSyntax;
57900
 
class ExtGnu;
 
70050
class WinAsm;
 
70051
class WinDeclSpecs;
 
70052
class WinMemberExplSpec;
 
70053
class WinTypeKeywords;
 
70054
class WinFriend;
57901
70055
class ExtAC;
57902
70056
class ExtACBuilderCoupling;
57903
70057
class ExtACSyntaxCoupling;
57904
70058
class ExtACTree;
57905
70059
class ExtACKeywords;
57906
 
class WinAsm;
57907
 
class WinDeclSpecs;
57908
 
class WinMemberExplSpec;
57909
 
class WinTypeKeywords;
 
70060
class ExtGnu;
57910
70061
class PragmaOnceUnitState;
57911
70062
class PragmaOnce;
57912
 
class CCExprResolve;
57913
 
class CExprResolve;
57914
 
namespace Puma {
57915
 
 
57916
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57917
 
class CT_BinaryExpr : public CT_Expression {
57918
 
#line 57919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70063
class CMatchSyntax;
 
70064
namespace Puma {
 
70065
 
 
70066
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70067
 
 
70068
#line 70069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70069
} // closed Puma
 
70070
 
 
70071
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70072
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70073
#include "CCExprResolveH.ah"
 
70074
#endif
 
70075
namespace Puma {
 
70076
 
 
70077
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70078
 
 
70079
#line 70080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70080
} // closed Puma
 
70081
 
 
70082
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70083
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70084
#include "CExprResolveH.ah"
 
70085
#endif
 
70086
namespace Puma {
 
70087
 
 
70088
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70089
class CT_BinaryExpr : public CT_Call {
 
70090
#line 70091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70091
  friend class ::CCExprResolve;
 
70092
  friend class ::CExprResolve;
57919
70093
  friend class ::WinIfExists;
57920
70094
  friend class ::WinImportHandler;
57921
70095
  friend class ::WinMacros;
57922
 
  friend class ::CMatchSyntax;
57923
 
  friend class ::ExtGnu;
 
70096
  friend class ::WinAsm;
 
70097
  friend class ::WinDeclSpecs;
 
70098
  friend class ::WinMemberExplSpec;
 
70099
  friend class ::WinTypeKeywords;
 
70100
  friend class ::WinFriend;
57924
70101
  friend class ::ExtAC;
57925
70102
  friend class ::ExtACBuilderCoupling;
57926
70103
  friend class ::ExtACSyntaxCoupling;
57927
70104
  friend class ::ExtACTree;
57928
70105
  friend class ::ExtACKeywords;
57929
 
  friend class ::WinAsm;
57930
 
  friend class ::WinDeclSpecs;
57931
 
  friend class ::WinMemberExplSpec;
57932
 
  friend class ::WinTypeKeywords;
 
70106
  friend class ::ExtGnu;
57933
70107
  friend class ::PragmaOnceUnitState;
57934
70108
  friend class ::PragmaOnce;
57935
 
  friend class ::CCExprResolve;
57936
 
  friend class ::CExprResolve;
 
70109
  friend class ::CMatchSyntax;
57937
70110
 
57938
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70111
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57939
70112
 
57940
70113
  CTree *sons[3]; // expr, oper, expr
57941
70114
 
57942
70115
public:
 
70116
  /** Constructor. 
 
70117
   *  \param l Left hand side of the expression. 
 
70118
   *  \param o The operator token. 
 
70119
   *  \param r Right hand side of the expression. */
57943
70120
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
57944
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
70121
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
57945
70122
  }
 
70123
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57946
70124
  static const char *NodeId ();
 
70125
  /** Get the name of the node. Can be compared with NodeId(). */
57947
70126
  const char *NodeName () const { return NodeId (); }
 
70127
  /** Get the number of sons. */
57948
70128
  int Sons () const { return 3; }
 
70129
  /** Get the n-th son.
 
70130
   *  \param n The index of the son.
 
70131
   *  \return The n-th son or NULL. */
57949
70132
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
70133
  /** Replace a son.
 
70134
   *  \param old_son The son to replace.
 
70135
   *  \param new_son The new son. */
57950
70136
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57951
70137
    CTree::ReplaceSon (sons, 3, old_son, new_son);
57952
70138
  }
57953
70139
   private:
57954
70140
  typedef CT_BinaryExpr CCExprResolveExpr;
57955
70141
 
57956
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70142
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57957
70143
 public :
57958
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70144
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57959
70145
  typedef CT_BinaryExpr CExprResolveExpr;
57960
70146
 
57961
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70147
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57962
70148
 public :
57963
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57964
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70149
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70150
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57965
70151
};
57966
70152
 
 
70153
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
70154
 *  Tree node representing a member pointer expression, e.g. a->b. */
57967
70155
 
57968
 
#line 57969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70156
#line 70157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
57969
70157
} // closed Puma
 
70158
class CCExprResolve;
 
70159
class CExprResolve;
57970
70160
class WinIfExists;
57971
70161
class WinImportHandler;
57972
70162
class WinMacros;
57973
 
class CMatchSyntax;
57974
 
class ExtGnu;
 
70163
class WinAsm;
 
70164
class WinDeclSpecs;
 
70165
class WinMemberExplSpec;
 
70166
class WinTypeKeywords;
 
70167
class WinFriend;
57975
70168
class ExtAC;
57976
70169
class ExtACBuilderCoupling;
57977
70170
class ExtACSyntaxCoupling;
57978
70171
class ExtACTree;
57979
70172
class ExtACKeywords;
57980
 
class WinAsm;
57981
 
class WinDeclSpecs;
57982
 
class WinMemberExplSpec;
57983
 
class WinTypeKeywords;
 
70173
class ExtGnu;
57984
70174
class PragmaOnceUnitState;
57985
70175
class PragmaOnce;
57986
 
class CCExprResolve;
57987
 
class CExprResolve;
57988
 
namespace Puma {
57989
 
 
57990
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57991
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
57992
 
#line 57993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70176
class CMatchSyntax;
 
70177
namespace Puma {
 
70178
 
 
70179
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70180
 
 
70181
#line 70182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70182
} // closed Puma
 
70183
 
 
70184
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70185
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70186
#include "CCExprResolveH.ah"
 
70187
#endif
 
70188
namespace Puma {
 
70189
 
 
70190
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70191
 
 
70192
#line 70193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70193
} // closed Puma
 
70194
 
 
70195
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70196
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70197
#include "CExprResolveH.ah"
 
70198
#endif
 
70199
namespace Puma {
 
70200
 
 
70201
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70202
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
70203
#line 70204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70204
  friend class ::CCExprResolve;
 
70205
  friend class ::CExprResolve;
57993
70206
  friend class ::WinIfExists;
57994
70207
  friend class ::WinImportHandler;
57995
70208
  friend class ::WinMacros;
57996
 
  friend class ::CMatchSyntax;
57997
 
  friend class ::ExtGnu;
 
70209
  friend class ::WinAsm;
 
70210
  friend class ::WinDeclSpecs;
 
70211
  friend class ::WinMemberExplSpec;
 
70212
  friend class ::WinTypeKeywords;
 
70213
  friend class ::WinFriend;
57998
70214
  friend class ::ExtAC;
57999
70215
  friend class ::ExtACBuilderCoupling;
58000
70216
  friend class ::ExtACSyntaxCoupling;
58001
70217
  friend class ::ExtACTree;
58002
70218
  friend class ::ExtACKeywords;
58003
 
  friend class ::WinAsm;
58004
 
  friend class ::WinDeclSpecs;
58005
 
  friend class ::WinMemberExplSpec;
58006
 
  friend class ::WinTypeKeywords;
 
70219
  friend class ::ExtGnu;
58007
70220
  friend class ::PragmaOnceUnitState;
58008
70221
  friend class ::PragmaOnce;
58009
 
  friend class ::CCExprResolve;
58010
 
  friend class ::CExprResolve;
58011
 
 
58012
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58013
 
 
 
70222
  friend class ::CMatchSyntax;
 
70223
 
 
70224
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70225
 
 
70226
  CTree *sons[3]; // expr, oper, expr
 
70227
  
58014
70228
public:
58015
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
58016
 
    CT_BinaryExpr (e, o, i) {}
 
70229
  /** Constructor.
 
70230
   *  \param e Expression on which to call the member.
 
70231
   *  \param o The arrow operator token.
 
70232
   *  \param i The member name. */
 
70233
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
70234
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
70235
  }
 
70236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58017
70237
  static const char *NodeId ();
 
70238
  /** Get the name of the node. Can be compared with NodeId(). */
58018
70239
  const char *NodeName () const { return NodeId (); }
58019
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
70240
  /** Get the number of sons. */
 
70241
  int Sons () const { return 3; }
 
70242
  /** Get the n-th son.
 
70243
   *  \param n The index of the son.
 
70244
   *  \return The n-th son or NULL. */
 
70245
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
70246
  /** Replace a son.
 
70247
   *  \param old_son The son to replace.
 
70248
   *  \param new_son The new son. */
 
70249
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
70250
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
70251
  }
58020
70252
   private:
58021
70253
  typedef CT_MembPtrExpr CCExprResolveExpr;
58022
70254
 
58023
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70255
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58024
70256
 public :
58025
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70257
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58026
70258
  typedef CT_MembPtrExpr CExprResolveExpr;
58027
70259
 
58028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70260
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58029
70261
 public :
58030
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58031
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70262
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70263
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58032
70264
};
58033
70265
 
 
70266
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
70267
 *  Tree node representing a member reference expression, e.g. a.b. */
58034
70268
 
58035
 
#line 58036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70269
#line 70270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58036
70270
} // closed Puma
 
70271
class CCExprResolve;
 
70272
class CExprResolve;
58037
70273
class WinIfExists;
58038
70274
class WinImportHandler;
58039
70275
class WinMacros;
58040
 
class CMatchSyntax;
58041
 
class ExtGnu;
 
70276
class WinAsm;
 
70277
class WinDeclSpecs;
 
70278
class WinMemberExplSpec;
 
70279
class WinTypeKeywords;
 
70280
class WinFriend;
58042
70281
class ExtAC;
58043
70282
class ExtACBuilderCoupling;
58044
70283
class ExtACSyntaxCoupling;
58045
70284
class ExtACTree;
58046
70285
class ExtACKeywords;
58047
 
class WinAsm;
58048
 
class WinDeclSpecs;
58049
 
class WinMemberExplSpec;
58050
 
class WinTypeKeywords;
 
70286
class ExtGnu;
58051
70287
class PragmaOnceUnitState;
58052
70288
class PragmaOnce;
58053
 
class CCExprResolve;
58054
 
class CExprResolve;
58055
 
namespace Puma {
58056
 
 
58057
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70289
class CMatchSyntax;
 
70290
namespace Puma {
 
70291
 
 
70292
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70293
 
 
70294
#line 70295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70295
} // closed Puma
 
70296
 
 
70297
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70298
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70299
#include "CCExprResolveH.ah"
 
70300
#endif
 
70301
namespace Puma {
 
70302
 
 
70303
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70304
 
 
70305
#line 70306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70306
} // closed Puma
 
70307
 
 
70308
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70309
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70310
#include "CExprResolveH.ah"
 
70311
#endif
 
70312
namespace Puma {
 
70313
 
 
70314
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58058
70315
class CT_MembRefExpr : public CT_MembPtrExpr {
58059
 
#line 58060 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70316
#line 70317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70317
  friend class ::CCExprResolve;
 
70318
  friend class ::CExprResolve;
58060
70319
  friend class ::WinIfExists;
58061
70320
  friend class ::WinImportHandler;
58062
70321
  friend class ::WinMacros;
58063
 
  friend class ::CMatchSyntax;
58064
 
  friend class ::ExtGnu;
 
70322
  friend class ::WinAsm;
 
70323
  friend class ::WinDeclSpecs;
 
70324
  friend class ::WinMemberExplSpec;
 
70325
  friend class ::WinTypeKeywords;
 
70326
  friend class ::WinFriend;
58065
70327
  friend class ::ExtAC;
58066
70328
  friend class ::ExtACBuilderCoupling;
58067
70329
  friend class ::ExtACSyntaxCoupling;
58068
70330
  friend class ::ExtACTree;
58069
70331
  friend class ::ExtACKeywords;
58070
 
  friend class ::WinAsm;
58071
 
  friend class ::WinDeclSpecs;
58072
 
  friend class ::WinMemberExplSpec;
58073
 
  friend class ::WinTypeKeywords;
 
70332
  friend class ::ExtGnu;
58074
70333
  friend class ::PragmaOnceUnitState;
58075
70334
  friend class ::PragmaOnce;
58076
 
  friend class ::CCExprResolve;
58077
 
  friend class ::CExprResolve;
 
70335
  friend class ::CMatchSyntax;
58078
70336
 
58079
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70337
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58080
70338
 
58081
70339
public:
 
70340
  /** Constructor.
 
70341
   *  \param e Expression on which to call the member.
 
70342
   *  \param o The dot operator.
 
70343
   *  \param i The member name. */
58082
70344
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
58083
70345
    CT_MembPtrExpr (e, o, i) {}
 
70346
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58084
70347
  static const char *NodeId ();
 
70348
  /** Get the name of the node. Can be compared with NodeId(). */
58085
70349
  const char *NodeName () const { return NodeId (); }
58086
70350
   private:
58087
70351
  typedef CT_MembRefExpr CCExprResolveExpr;
58088
70352
 
58089
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70353
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58090
70354
 public :
58091
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70355
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58092
70356
  typedef CT_MembRefExpr CExprResolveExpr;
58093
70357
 
58094
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70358
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58095
70359
 public :
58096
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58097
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70360
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70361
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58098
70362
};
58099
70363
 
 
70364
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
70365
 *  Base class for tree nodes representing unary expressions. */
58100
70366
 
58101
 
#line 58102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70367
#line 70368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58102
70368
} // closed Puma
 
70369
class CCExprResolve;
 
70370
class CExprResolve;
58103
70371
class WinIfExists;
58104
70372
class WinImportHandler;
58105
70373
class WinMacros;
58106
 
class CMatchSyntax;
58107
 
class ExtGnu;
 
70374
class WinAsm;
 
70375
class WinDeclSpecs;
 
70376
class WinMemberExplSpec;
 
70377
class WinTypeKeywords;
 
70378
class WinFriend;
58108
70379
class ExtAC;
58109
70380
class ExtACBuilderCoupling;
58110
70381
class ExtACSyntaxCoupling;
58111
70382
class ExtACTree;
58112
70383
class ExtACKeywords;
58113
 
class WinAsm;
58114
 
class WinDeclSpecs;
58115
 
class WinMemberExplSpec;
58116
 
class WinTypeKeywords;
 
70384
class ExtGnu;
58117
70385
class PragmaOnceUnitState;
58118
70386
class PragmaOnce;
58119
 
class CCExprResolve;
58120
 
class CExprResolve;
58121
 
namespace Puma {
58122
 
 
58123
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58124
 
class CT_UnaryExpr : public CT_Expression {
58125
 
#line 58126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70387
class CMatchSyntax;
 
70388
namespace Puma {
 
70389
 
 
70390
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70391
 
 
70392
#line 70393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70393
} // closed Puma
 
70394
 
 
70395
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70396
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70397
#include "CCExprResolveH.ah"
 
70398
#endif
 
70399
namespace Puma {
 
70400
 
 
70401
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70402
 
 
70403
#line 70404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70404
} // closed Puma
 
70405
 
 
70406
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70407
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70408
#include "CExprResolveH.ah"
 
70409
#endif
 
70410
namespace Puma {
 
70411
 
 
70412
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70413
class CT_UnaryExpr : public CT_Call {
 
70414
#line 70415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70415
  friend class ::CCExprResolve;
 
70416
  friend class ::CExprResolve;
58126
70417
  friend class ::WinIfExists;
58127
70418
  friend class ::WinImportHandler;
58128
70419
  friend class ::WinMacros;
58129
 
  friend class ::CMatchSyntax;
58130
 
  friend class ::ExtGnu;
 
70420
  friend class ::WinAsm;
 
70421
  friend class ::WinDeclSpecs;
 
70422
  friend class ::WinMemberExplSpec;
 
70423
  friend class ::WinTypeKeywords;
 
70424
  friend class ::WinFriend;
58131
70425
  friend class ::ExtAC;
58132
70426
  friend class ::ExtACBuilderCoupling;
58133
70427
  friend class ::ExtACSyntaxCoupling;
58134
70428
  friend class ::ExtACTree;
58135
70429
  friend class ::ExtACKeywords;
58136
 
  friend class ::WinAsm;
58137
 
  friend class ::WinDeclSpecs;
58138
 
  friend class ::WinMemberExplSpec;
58139
 
  friend class ::WinTypeKeywords;
 
70430
  friend class ::ExtGnu;
58140
70431
  friend class ::PragmaOnceUnitState;
58141
70432
  friend class ::PragmaOnce;
58142
 
  friend class ::CCExprResolve;
58143
 
  friend class ::CExprResolve;
 
70433
  friend class ::CMatchSyntax;
58144
70434
 
58145
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70435
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58146
70436
 
58147
70437
  CTree *sons[2]; // oper, expr
58148
70438
 
58149
70439
public:
58150
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
70440
  /** Constructor.
 
70441
   *  \param o The unary operator.
 
70442
   *  \param e The expression on which the operator is invoked. */
 
70443
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
70444
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58151
70445
  static const char *NodeId ();
 
70446
  /** Get the name of the node. Can be compared with NodeId(). */
58152
70447
  const char *NodeName () const { return NodeId (); }
 
70448
  /** Get the number of sons. */
58153
70449
  int Sons () const { return 2; }
 
70450
  /** Get the n-th son.
 
70451
   *  \param n The index of the son.
 
70452
   *  \return The n-th son or NULL. */
58154
70453
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
70454
  /** Replace a son.
 
70455
   *  \param old_son The son to replace.
 
70456
   *  \param new_son The new son. */
58155
70457
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58156
70458
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58157
70459
  }
 
70460
  /** Get the expression node. */
58158
70461
  CTree *Expr () const { return sons[1]; }
58159
70462
   private:
58160
70463
  typedef CT_UnaryExpr CCExprResolveExpr;
58161
70464
 
58162
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70465
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58163
70466
 public :
58164
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70467
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58165
70468
  typedef CT_UnaryExpr CExprResolveExpr;
58166
70469
 
58167
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70470
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58168
70471
 public :
58169
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58170
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70472
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70473
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58171
70474
};
58172
70475
 
 
70476
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
70477
 *  Tree node representing a postfix expression, e.g. a++. */
58173
70478
 
58174
 
#line 58175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70479
#line 70480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58175
70480
} // closed Puma
 
70481
class CCExprResolve;
 
70482
class CExprResolve;
58176
70483
class WinIfExists;
58177
70484
class WinImportHandler;
58178
70485
class WinMacros;
58179
 
class CMatchSyntax;
58180
 
class ExtGnu;
 
70486
class WinAsm;
 
70487
class WinDeclSpecs;
 
70488
class WinMemberExplSpec;
 
70489
class WinTypeKeywords;
 
70490
class WinFriend;
58181
70491
class ExtAC;
58182
70492
class ExtACBuilderCoupling;
58183
70493
class ExtACSyntaxCoupling;
58184
70494
class ExtACTree;
58185
70495
class ExtACKeywords;
58186
 
class WinAsm;
58187
 
class WinDeclSpecs;
58188
 
class WinMemberExplSpec;
58189
 
class WinTypeKeywords;
 
70496
class ExtGnu;
58190
70497
class PragmaOnceUnitState;
58191
70498
class PragmaOnce;
58192
 
class CCExprResolve;
58193
 
class CExprResolve;
58194
 
namespace Puma {
58195
 
 
58196
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70499
class CMatchSyntax;
 
70500
namespace Puma {
 
70501
 
 
70502
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70503
 
 
70504
#line 70505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70505
} // closed Puma
 
70506
 
 
70507
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70508
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70509
#include "CCExprResolveH.ah"
 
70510
#endif
 
70511
namespace Puma {
 
70512
 
 
70513
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70514
 
 
70515
#line 70516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70516
} // closed Puma
 
70517
 
 
70518
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70519
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70520
#include "CExprResolveH.ah"
 
70521
#endif
 
70522
namespace Puma {
 
70523
 
 
70524
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58197
70525
class CT_PostfixExpr : public CT_UnaryExpr {
58198
 
#line 58199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70526
#line 70527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70527
  friend class ::CCExprResolve;
 
70528
  friend class ::CExprResolve;
58199
70529
  friend class ::WinIfExists;
58200
70530
  friend class ::WinImportHandler;
58201
70531
  friend class ::WinMacros;
58202
 
  friend class ::CMatchSyntax;
58203
 
  friend class ::ExtGnu;
 
70532
  friend class ::WinAsm;
 
70533
  friend class ::WinDeclSpecs;
 
70534
  friend class ::WinMemberExplSpec;
 
70535
  friend class ::WinTypeKeywords;
 
70536
  friend class ::WinFriend;
58204
70537
  friend class ::ExtAC;
58205
70538
  friend class ::ExtACBuilderCoupling;
58206
70539
  friend class ::ExtACSyntaxCoupling;
58207
70540
  friend class ::ExtACTree;
58208
70541
  friend class ::ExtACKeywords;
58209
 
  friend class ::WinAsm;
58210
 
  friend class ::WinDeclSpecs;
58211
 
  friend class ::WinMemberExplSpec;
58212
 
  friend class ::WinTypeKeywords;
 
70542
  friend class ::ExtGnu;
58213
70543
  friend class ::PragmaOnceUnitState;
58214
70544
  friend class ::PragmaOnce;
58215
 
  friend class ::CCExprResolve;
58216
 
  friend class ::CExprResolve;
 
70545
  friend class ::CMatchSyntax;
58217
70546
 
58218
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70547
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58219
70548
 
58220
70549
public:
 
70550
  /** Constructor.
 
70551
   *  \param e The expression on which to invoke the operator. 
 
70552
   *  \param o The postfix operator. */
58221
70553
  CT_PostfixExpr (CTree *e, CTree *o) :
58222
70554
    CT_UnaryExpr (e, o) {}
 
70555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58223
70556
  static const char *NodeId ();
 
70557
  /** Get the name of the node. Can be compared with NodeId(). */
58224
70558
  const char *NodeName () const { return NodeId (); }
58225
70559
   private:
58226
70560
  typedef CT_PostfixExpr CCExprResolveExpr;
58227
70561
 
58228
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70562
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58229
70563
 public :
58230
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70564
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58231
70565
  typedef CT_PostfixExpr CExprResolveExpr;
58232
70566
 
58233
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70567
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58234
70568
 public :
58235
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58236
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70569
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70570
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58237
70571
};
58238
70572
 
 
70573
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
70574
 *  Tree node representing an address expression, e.g. &a. */
58239
70575
 
58240
 
#line 58241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70576
#line 70577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58241
70577
} // closed Puma
 
70578
class CCExprResolve;
 
70579
class CExprResolve;
58242
70580
class WinIfExists;
58243
70581
class WinImportHandler;
58244
70582
class WinMacros;
58245
 
class CMatchSyntax;
58246
 
class ExtGnu;
 
70583
class WinAsm;
 
70584
class WinDeclSpecs;
 
70585
class WinMemberExplSpec;
 
70586
class WinTypeKeywords;
 
70587
class WinFriend;
58247
70588
class ExtAC;
58248
70589
class ExtACBuilderCoupling;
58249
70590
class ExtACSyntaxCoupling;
58250
70591
class ExtACTree;
58251
70592
class ExtACKeywords;
58252
 
class WinAsm;
58253
 
class WinDeclSpecs;
58254
 
class WinMemberExplSpec;
58255
 
class WinTypeKeywords;
 
70593
class ExtGnu;
58256
70594
class PragmaOnceUnitState;
58257
70595
class PragmaOnce;
58258
 
class CCExprResolve;
58259
 
class CExprResolve;
58260
 
namespace Puma {
58261
 
 
58262
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70596
class CMatchSyntax;
 
70597
namespace Puma {
 
70598
 
 
70599
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70600
 
 
70601
#line 70602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70602
} // closed Puma
 
70603
 
 
70604
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70605
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70606
#include "CCExprResolveH.ah"
 
70607
#endif
 
70608
namespace Puma {
 
70609
 
 
70610
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70611
 
 
70612
#line 70613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70613
} // closed Puma
 
70614
 
 
70615
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70616
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70617
#include "CExprResolveH.ah"
 
70618
#endif
 
70619
namespace Puma {
 
70620
 
 
70621
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58263
70622
class CT_AddrExpr : public CT_UnaryExpr {
58264
 
#line 58265 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70623
#line 70624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70624
  friend class ::CCExprResolve;
 
70625
  friend class ::CExprResolve;
58265
70626
  friend class ::WinIfExists;
58266
70627
  friend class ::WinImportHandler;
58267
70628
  friend class ::WinMacros;
58268
 
  friend class ::CMatchSyntax;
58269
 
  friend class ::ExtGnu;
 
70629
  friend class ::WinAsm;
 
70630
  friend class ::WinDeclSpecs;
 
70631
  friend class ::WinMemberExplSpec;
 
70632
  friend class ::WinTypeKeywords;
 
70633
  friend class ::WinFriend;
58270
70634
  friend class ::ExtAC;
58271
70635
  friend class ::ExtACBuilderCoupling;
58272
70636
  friend class ::ExtACSyntaxCoupling;
58273
70637
  friend class ::ExtACTree;
58274
70638
  friend class ::ExtACKeywords;
58275
 
  friend class ::WinAsm;
58276
 
  friend class ::WinDeclSpecs;
58277
 
  friend class ::WinMemberExplSpec;
58278
 
  friend class ::WinTypeKeywords;
 
70639
  friend class ::ExtGnu;
58279
70640
  friend class ::PragmaOnceUnitState;
58280
70641
  friend class ::PragmaOnce;
58281
 
  friend class ::CCExprResolve;
58282
 
  friend class ::CExprResolve;
 
70642
  friend class ::CMatchSyntax;
58283
70643
 
58284
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70644
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58285
70645
 
58286
70646
public:
 
70647
  /** Constructor.
 
70648
   *  \param o The address operator, i.e. '&'.
 
70649
   *  \param e The expression from which to take the address. */
58287
70650
  CT_AddrExpr (CTree *o, CTree *e) :
58288
70651
    CT_UnaryExpr (o, e) {}
 
70652
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58289
70653
  static const char *NodeId ();
 
70654
  /** Get the name of the node. Can be compared with NodeId(). */
58290
70655
  const char *NodeName () const { return NodeId (); }
58291
70656
   private:
58292
70657
  typedef CT_AddrExpr CCExprResolveExpr;
58293
70658
 
58294
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70659
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58295
70660
 public :
58296
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70661
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58297
70662
  typedef CT_AddrExpr CExprResolveExpr;
58298
70663
 
58299
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70664
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58300
70665
 public :
58301
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58302
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70666
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70667
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58303
70668
};
58304
70669
 
 
70670
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
70671
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
58305
70672
 
58306
 
#line 58307 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70673
#line 70674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58307
70674
} // closed Puma
 
70675
class CCExprResolve;
 
70676
class CExprResolve;
58308
70677
class WinIfExists;
58309
70678
class WinImportHandler;
58310
70679
class WinMacros;
58311
 
class CMatchSyntax;
58312
 
class ExtGnu;
 
70680
class WinAsm;
 
70681
class WinDeclSpecs;
 
70682
class WinMemberExplSpec;
 
70683
class WinTypeKeywords;
 
70684
class WinFriend;
58313
70685
class ExtAC;
58314
70686
class ExtACBuilderCoupling;
58315
70687
class ExtACSyntaxCoupling;
58316
70688
class ExtACTree;
58317
70689
class ExtACKeywords;
58318
 
class WinAsm;
58319
 
class WinDeclSpecs;
58320
 
class WinMemberExplSpec;
58321
 
class WinTypeKeywords;
 
70690
class ExtGnu;
58322
70691
class PragmaOnceUnitState;
58323
70692
class PragmaOnce;
58324
 
class CCExprResolve;
58325
 
class CExprResolve;
58326
 
namespace Puma {
58327
 
 
58328
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70693
class CMatchSyntax;
 
70694
namespace Puma {
 
70695
 
 
70696
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70697
 
 
70698
#line 70699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70699
} // closed Puma
 
70700
 
 
70701
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70702
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70703
#include "CCExprResolveH.ah"
 
70704
#endif
 
70705
namespace Puma {
 
70706
 
 
70707
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70708
 
 
70709
#line 70710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70710
} // closed Puma
 
70711
 
 
70712
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70713
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70714
#include "CExprResolveH.ah"
 
70715
#endif
 
70716
namespace Puma {
 
70717
 
 
70718
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58329
70719
class CT_DerefExpr : public CT_UnaryExpr {
58330
 
#line 58331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70720
#line 70721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70721
  friend class ::CCExprResolve;
 
70722
  friend class ::CExprResolve;
58331
70723
  friend class ::WinIfExists;
58332
70724
  friend class ::WinImportHandler;
58333
70725
  friend class ::WinMacros;
58334
 
  friend class ::CMatchSyntax;
58335
 
  friend class ::ExtGnu;
 
70726
  friend class ::WinAsm;
 
70727
  friend class ::WinDeclSpecs;
 
70728
  friend class ::WinMemberExplSpec;
 
70729
  friend class ::WinTypeKeywords;
 
70730
  friend class ::WinFriend;
58336
70731
  friend class ::ExtAC;
58337
70732
  friend class ::ExtACBuilderCoupling;
58338
70733
  friend class ::ExtACSyntaxCoupling;
58339
70734
  friend class ::ExtACTree;
58340
70735
  friend class ::ExtACKeywords;
58341
 
  friend class ::WinAsm;
58342
 
  friend class ::WinDeclSpecs;
58343
 
  friend class ::WinMemberExplSpec;
58344
 
  friend class ::WinTypeKeywords;
 
70736
  friend class ::ExtGnu;
58345
70737
  friend class ::PragmaOnceUnitState;
58346
70738
  friend class ::PragmaOnce;
58347
 
  friend class ::CCExprResolve;
58348
 
  friend class ::CExprResolve;
 
70739
  friend class ::CMatchSyntax;
58349
70740
 
58350
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70741
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58351
70742
 
58352
70743
public:
 
70744
  /** Constructor.
 
70745
   *  \param o The dereferencing operator, i.e. '*'.
 
70746
   *  \param e The expression to dereference. */
58353
70747
  CT_DerefExpr (CTree *o, CTree *e) :
58354
70748
    CT_UnaryExpr (o, e) {}
 
70749
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58355
70750
  static const char *NodeId ();
 
70751
  /** Get the name of the node. Can be compared with NodeId(). */
58356
70752
  const char *NodeName () const { return NodeId (); }
58357
70753
   private:
58358
70754
  typedef CT_DerefExpr CCExprResolveExpr;
58359
70755
 
58360
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70756
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58361
70757
 public :
58362
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70758
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58363
70759
  typedef CT_DerefExpr CExprResolveExpr;
58364
70760
 
58365
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70761
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58366
70762
 public :
58367
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58368
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70763
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70764
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58369
70765
};
58370
70766
 
 
70767
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
70768
 *  Tree node representing a delete expression, e.g. delete a. */
58371
70769
 
58372
 
#line 58373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70770
#line 70771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58373
70771
} // closed Puma
 
70772
class CCExprResolve;
 
70773
class CExprResolve;
58374
70774
class WinIfExists;
58375
70775
class WinImportHandler;
58376
70776
class WinMacros;
58377
 
class CMatchSyntax;
58378
 
class ExtGnu;
 
70777
class WinAsm;
 
70778
class WinDeclSpecs;
 
70779
class WinMemberExplSpec;
 
70780
class WinTypeKeywords;
 
70781
class WinFriend;
58379
70782
class ExtAC;
58380
70783
class ExtACBuilderCoupling;
58381
70784
class ExtACSyntaxCoupling;
58382
70785
class ExtACTree;
58383
70786
class ExtACKeywords;
58384
 
class WinAsm;
58385
 
class WinDeclSpecs;
58386
 
class WinMemberExplSpec;
58387
 
class WinTypeKeywords;
 
70787
class ExtGnu;
58388
70788
class PragmaOnceUnitState;
58389
70789
class PragmaOnce;
58390
 
class CCExprResolve;
58391
 
class CExprResolve;
58392
 
namespace Puma {
58393
 
 
58394
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70790
class CMatchSyntax;
 
70791
namespace Puma {
 
70792
 
 
70793
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70794
 
 
70795
#line 70796 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70796
} // closed Puma
 
70797
 
 
70798
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70799
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70800
#include "CCExprResolveH.ah"
 
70801
#endif
 
70802
namespace Puma {
 
70803
 
 
70804
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70805
 
 
70806
#line 70807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70807
} // closed Puma
 
70808
 
 
70809
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70810
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70811
#include "CExprResolveH.ah"
 
70812
#endif
 
70813
namespace Puma {
 
70814
 
 
70815
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58395
70816
class CT_DeleteExpr : public CT_Expression, public CSemObject {
58396
 
#line 58397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70817
#line 70818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70818
  friend class ::CCExprResolve;
 
70819
  friend class ::CExprResolve;
58397
70820
  friend class ::WinIfExists;
58398
70821
  friend class ::WinImportHandler;
58399
70822
  friend class ::WinMacros;
58400
 
  friend class ::CMatchSyntax;
58401
 
  friend class ::ExtGnu;
 
70823
  friend class ::WinAsm;
 
70824
  friend class ::WinDeclSpecs;
 
70825
  friend class ::WinMemberExplSpec;
 
70826
  friend class ::WinTypeKeywords;
 
70827
  friend class ::WinFriend;
58402
70828
  friend class ::ExtAC;
58403
70829
  friend class ::ExtACBuilderCoupling;
58404
70830
  friend class ::ExtACSyntaxCoupling;
58405
70831
  friend class ::ExtACTree;
58406
70832
  friend class ::ExtACKeywords;
58407
 
  friend class ::WinAsm;
58408
 
  friend class ::WinDeclSpecs;
58409
 
  friend class ::WinMemberExplSpec;
58410
 
  friend class ::WinTypeKeywords;
 
70833
  friend class ::ExtGnu;
58411
70834
  friend class ::PragmaOnceUnitState;
58412
70835
  friend class ::PragmaOnce;
58413
 
  friend class ::CCExprResolve;
58414
 
  friend class ::CExprResolve;
 
70836
  friend class ::CMatchSyntax;
58415
70837
 
58416
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70838
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58417
70839
 
58418
70840
  CTree *sons[2]; // oper, expr
58419
70841
 
58420
70842
public:
58421
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
70843
  /** Constructor.
 
70844
   *  \param op The delete operator.
 
70845
   *  \param e The expression representing the object to delete. */
 
70846
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
70847
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58422
70848
  static const char *NodeId ();
 
70849
  /** Get the name of the node. Can be compared with NodeId(). */
58423
70850
  const char *NodeName () const { return NodeId (); }
 
70851
  /** Get the number of sons. */
58424
70852
  int Sons () const { return 2; }
 
70853
  /** Get the n-th son.
 
70854
   *  \param n The index of the son.
 
70855
   *  \return The n-th son or NULL. */
58425
70856
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
70857
  /** Replace a son.
 
70858
   *  \param old_son The son to replace.
 
70859
   *  \param new_son The new son. */
58426
70860
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58427
70861
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58428
70862
  }
 
70863
  /** Get the expression. */
58429
70864
  CTree *Expr () const { return sons[1]; }
 
70865
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
58430
70866
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
70867
  /** Get the semantic information object. */
58431
70868
  CSemObject *SemObject () const { return (CSemObject*)this; }
58432
70869
   private:
58433
70870
  typedef CT_DeleteExpr CCExprResolveExpr;
58434
70871
 
58435
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70872
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58436
70873
 public :
58437
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70874
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58438
70875
  typedef CT_DeleteExpr CExprResolveExpr;
58439
70876
 
58440
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70877
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58441
70878
 public :
58442
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58443
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70879
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70880
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58444
70881
};
58445
70882
 
 
70883
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
70884
 *  Tree node representing a new expression, e.g. new A(). */
58446
70885
 
58447
 
#line 58448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70886
#line 70887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58448
70887
} // closed Puma
 
70888
class CCExprResolve;
 
70889
class CExprResolve;
58449
70890
class WinIfExists;
58450
70891
class WinImportHandler;
58451
70892
class WinMacros;
58452
 
class CMatchSyntax;
58453
 
class ExtGnu;
 
70893
class WinAsm;
 
70894
class WinDeclSpecs;
 
70895
class WinMemberExplSpec;
 
70896
class WinTypeKeywords;
 
70897
class WinFriend;
58454
70898
class ExtAC;
58455
70899
class ExtACBuilderCoupling;
58456
70900
class ExtACSyntaxCoupling;
58457
70901
class ExtACTree;
58458
70902
class ExtACKeywords;
58459
 
class WinAsm;
58460
 
class WinDeclSpecs;
58461
 
class WinMemberExplSpec;
58462
 
class WinTypeKeywords;
 
70903
class ExtGnu;
58463
70904
class PragmaOnceUnitState;
58464
70905
class PragmaOnce;
58465
 
class CCExprResolve;
58466
 
class CExprResolve;
58467
 
namespace Puma {
58468
 
 
58469
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70906
class CMatchSyntax;
 
70907
namespace Puma {
 
70908
 
 
70909
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70910
 
 
70911
#line 70912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70912
} // closed Puma
 
70913
 
 
70914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
70916
#include "CCExprResolveH.ah"
 
70917
#endif
 
70918
namespace Puma {
 
70919
 
 
70920
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70921
 
 
70922
#line 70923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70923
} // closed Puma
 
70924
 
 
70925
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70926
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70927
#include "CExprResolveH.ah"
 
70928
#endif
 
70929
namespace Puma {
 
70930
 
 
70931
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58470
70932
class CT_NewExpr : public CT_Expression, public CSemObject {
58471
 
#line 58472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
70933
#line 70934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
70934
  friend class ::CCExprResolve;
 
70935
  friend class ::CExprResolve;
58472
70936
  friend class ::WinIfExists;
58473
70937
  friend class ::WinImportHandler;
58474
70938
  friend class ::WinMacros;
58475
 
  friend class ::CMatchSyntax;
58476
 
  friend class ::ExtGnu;
 
70939
  friend class ::WinAsm;
 
70940
  friend class ::WinDeclSpecs;
 
70941
  friend class ::WinMemberExplSpec;
 
70942
  friend class ::WinTypeKeywords;
 
70943
  friend class ::WinFriend;
58477
70944
  friend class ::ExtAC;
58478
70945
  friend class ::ExtACBuilderCoupling;
58479
70946
  friend class ::ExtACSyntaxCoupling;
58480
70947
  friend class ::ExtACTree;
58481
70948
  friend class ::ExtACKeywords;
58482
 
  friend class ::WinAsm;
58483
 
  friend class ::WinDeclSpecs;
58484
 
  friend class ::WinMemberExplSpec;
58485
 
  friend class ::WinTypeKeywords;
 
70949
  friend class ::ExtGnu;
58486
70950
  friend class ::PragmaOnceUnitState;
58487
70951
  friend class ::PragmaOnce;
58488
 
  friend class ::CCExprResolve;
58489
 
  friend class ::CExprResolve;
 
70952
  friend class ::CMatchSyntax;
58490
70953
 
58491
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70954
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58492
70955
 
58493
70956
  CTree *sons[6]; // oper, placement, open, type, close, init
58494
70957
 
58495
70958
public:
 
70959
  /** Constructor.
 
70960
   *  \param op The new operator.
 
70961
   *  \param p The optional placement expression.
 
70962
   *  \param o The optional left parenthesis around the type identifier.
 
70963
   *  \param t The type identifier specifying the type of the object to create.
 
70964
   *  \param c The optional right parenthesis around the type identifier.
 
70965
   *  \param i The optional initializer. */
58496
70966
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
58497
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
70967
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
70968
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
58498
70969
  }
 
70970
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58499
70971
  static const char *NodeId ();
 
70972
  /** Get the name of the node. Can be compared with NodeId(). */
58500
70973
  const char *NodeName () const { return NodeId (); }
 
70974
  /** Get the number of sons. */
58501
70975
  int Sons () const { return CTree::Sons (sons, 6); }
 
70976
  /** Get the n-th son.
 
70977
   *  \param n The index of the son.
 
70978
   *  \return The n-th son or NULL. */
58502
70979
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
70980
  /** Replace a son.
 
70981
   *  \param old_son The son to replace.
 
70982
   *  \param new_son The new son. */
58503
70983
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58504
70984
    CTree::ReplaceSon (sons, 6, old_son, new_son);
58505
70985
  }
 
70986
  /** Get the operator name. */
58506
70987
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
70988
  /** Get the placement expression. */
58507
70989
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
70990
  /** Get the initializer. */
58508
70991
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
70992
  /** Get the type of the object to create. */
58509
70993
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
70994
  /** Get the semantic information object. */
58510
70995
  CSemObject *SemObject () const { return (CSemObject*)this; }
58511
70996
   private:
58512
70997
  typedef CT_NewExpr CCExprResolveExpr;
58513
70998
 
58514
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70999
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58515
71000
 public :
58516
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71001
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58517
71002
  typedef CT_NewExpr CExprResolveExpr;
58518
71003
 
58519
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71004
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58520
71005
 public :
58521
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58522
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71006
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71007
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58523
71008
};
58524
71009
 
 
71010
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
71011
 *  Tree node representing an if-then expression, 
 
71012
 *  e.g. a>0?a:b or a?:b. */
58525
71013
 
58526
 
#line 58527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71014
#line 71015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58527
71015
} // closed Puma
 
71016
class CCExprResolve;
 
71017
class CExprResolve;
58528
71018
class WinIfExists;
58529
71019
class WinImportHandler;
58530
71020
class WinMacros;
58531
 
class CMatchSyntax;
58532
 
class ExtGnu;
 
71021
class WinAsm;
 
71022
class WinDeclSpecs;
 
71023
class WinMemberExplSpec;
 
71024
class WinTypeKeywords;
 
71025
class WinFriend;
58533
71026
class ExtAC;
58534
71027
class ExtACBuilderCoupling;
58535
71028
class ExtACSyntaxCoupling;
58536
71029
class ExtACTree;
58537
71030
class ExtACKeywords;
58538
 
class WinAsm;
58539
 
class WinDeclSpecs;
58540
 
class WinMemberExplSpec;
58541
 
class WinTypeKeywords;
 
71031
class ExtGnu;
58542
71032
class PragmaOnceUnitState;
58543
71033
class PragmaOnce;
58544
 
class CCExprResolve;
58545
 
class CExprResolve;
58546
 
namespace Puma {
58547
 
 
58548
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71034
class CMatchSyntax;
 
71035
namespace Puma {
 
71036
 
 
71037
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71038
 
 
71039
#line 71040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71040
} // closed Puma
 
71041
 
 
71042
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71043
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71044
#include "CCExprResolveH.ah"
 
71045
#endif
 
71046
namespace Puma {
 
71047
 
 
71048
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71049
 
 
71050
#line 71051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71051
} // closed Puma
 
71052
 
 
71053
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71054
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71055
#include "CExprResolveH.ah"
 
71056
#endif
 
71057
namespace Puma {
 
71058
 
 
71059
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58549
71060
class CT_IfThenExpr : public CT_Expression {
58550
 
#line 58551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71061
#line 71062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71062
  friend class ::CCExprResolve;
 
71063
  friend class ::CExprResolve;
58551
71064
  friend class ::WinIfExists;
58552
71065
  friend class ::WinImportHandler;
58553
71066
  friend class ::WinMacros;
58554
 
  friend class ::CMatchSyntax;
58555
 
  friend class ::ExtGnu;
 
71067
  friend class ::WinAsm;
 
71068
  friend class ::WinDeclSpecs;
 
71069
  friend class ::WinMemberExplSpec;
 
71070
  friend class ::WinTypeKeywords;
 
71071
  friend class ::WinFriend;
58556
71072
  friend class ::ExtAC;
58557
71073
  friend class ::ExtACBuilderCoupling;
58558
71074
  friend class ::ExtACSyntaxCoupling;
58559
71075
  friend class ::ExtACTree;
58560
71076
  friend class ::ExtACKeywords;
58561
 
  friend class ::WinAsm;
58562
 
  friend class ::WinDeclSpecs;
58563
 
  friend class ::WinMemberExplSpec;
58564
 
  friend class ::WinTypeKeywords;
 
71077
  friend class ::ExtGnu;
58565
71078
  friend class ::PragmaOnceUnitState;
58566
71079
  friend class ::PragmaOnce;
58567
 
  friend class ::CCExprResolve;
58568
 
  friend class ::CExprResolve;
 
71080
  friend class ::CMatchSyntax;
58569
71081
 
58570
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71082
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58571
71083
 
58572
71084
  CTree *sons[5]; // cond, oper, left, colon, right
58573
71085
 
58574
71086
public:
 
71087
  /** Constructor.
 
71088
   *  \param c1 The condition expression.
 
71089
   *  \param o The question mark operator. 
 
71090
   *  \param l The expression to the left of the colon.
 
71091
   *  \param c2 The colon operator.
 
71092
   *  \param r The expression to the right of the colon. */ 
58575
71093
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
58576
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
71094
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
71095
    AddSon (sons[3], c2); AddSon (sons[4], r);
58577
71096
  }
 
71097
  /** Constructor.
 
71098
   *  \param c1 The condition expression.
 
71099
   *  \param o The question mark operator. 
 
71100
   *  \param c2 The colon operator.
 
71101
   *  \param r The expression to the right of the colon. */ 
58578
71102
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
58579
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
71103
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
71104
    AddSon (sons[3], c2); AddSon (sons[4], r);
58580
71105
  }
 
71106
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58581
71107
  static const char *NodeId ();
 
71108
  /** Get the name of the node. Can be compared with NodeId(). */
58582
71109
  const char *NodeName () const { return NodeId (); }
 
71110
  /** Get the number of sons. */
58583
71111
  int Sons () const { return CTree::Sons (sons, 5); }
 
71112
  /** Get the n-th son.
 
71113
   *  \param n The index of the son.
 
71114
   *  \return The n-th son or NULL. */
58584
71115
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
71116
  /** Get the condition expression. */
58585
71117
  CTree *Condition () const { return sons[0]; }
 
71118
  /** Get the left expression (condition=true). */
58586
71119
  CTree *LeftOperand () const { return sons[2]; }
 
71120
  /** Get the right expression (condition=false). */
58587
71121
  CTree *RightOperand () const { return sons[4]; }
 
71122
  /** Replace a son.
 
71123
   *  \param old_son The son to replace.
 
71124
   *  \param new_son The new son. */
58588
71125
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58589
71126
    CTree::ReplaceSon (sons, 5, old_son, new_son);
58590
71127
  }
58591
71128
   private:
58592
71129
  typedef CT_IfThenExpr CCExprResolveExpr;
58593
71130
 
58594
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71131
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58595
71132
 public :
58596
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71133
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58597
71134
  typedef CT_IfThenExpr CExprResolveExpr;
58598
71135
 
58599
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71136
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58600
71137
 public :
58601
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58602
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71138
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71139
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58603
71140
};
58604
71141
 
 
71142
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
71143
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
58605
71144
 
58606
 
#line 58607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71145
#line 71146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58607
71146
} // closed Puma
 
71147
class CCExprResolve;
 
71148
class CExprResolve;
58608
71149
class WinIfExists;
58609
71150
class WinImportHandler;
58610
71151
class WinMacros;
58611
 
class CMatchSyntax;
58612
 
class ExtGnu;
 
71152
class WinAsm;
 
71153
class WinDeclSpecs;
 
71154
class WinMemberExplSpec;
 
71155
class WinTypeKeywords;
 
71156
class WinFriend;
58613
71157
class ExtAC;
58614
71158
class ExtACBuilderCoupling;
58615
71159
class ExtACSyntaxCoupling;
58616
71160
class ExtACTree;
58617
71161
class ExtACKeywords;
58618
 
class WinAsm;
58619
 
class WinDeclSpecs;
58620
 
class WinMemberExplSpec;
58621
 
class WinTypeKeywords;
 
71162
class ExtGnu;
58622
71163
class PragmaOnceUnitState;
58623
71164
class PragmaOnce;
58624
 
class CCExprResolve;
58625
 
class CExprResolve;
58626
 
namespace Puma {
58627
 
 
58628
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71165
class CMatchSyntax;
 
71166
namespace Puma {
 
71167
 
 
71168
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71169
 
 
71170
#line 71171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71171
} // closed Puma
 
71172
 
 
71173
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71174
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71175
#include "CCExprResolveH.ah"
 
71176
#endif
 
71177
namespace Puma {
 
71178
 
 
71179
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71180
 
 
71181
#line 71182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71182
} // closed Puma
 
71183
 
 
71184
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71185
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71186
#include "CExprResolveH.ah"
 
71187
#endif
 
71188
namespace Puma {
 
71189
 
 
71190
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58629
71191
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
58630
 
#line 58631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71192
#line 71193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71193
  friend class ::CCExprResolve;
 
71194
  friend class ::CExprResolve;
58631
71195
  friend class ::WinIfExists;
58632
71196
  friend class ::WinImportHandler;
58633
71197
  friend class ::WinMacros;
58634
 
  friend class ::CMatchSyntax;
58635
 
  friend class ::ExtGnu;
 
71198
  friend class ::WinAsm;
 
71199
  friend class ::WinDeclSpecs;
 
71200
  friend class ::WinMemberExplSpec;
 
71201
  friend class ::WinTypeKeywords;
 
71202
  friend class ::WinFriend;
58636
71203
  friend class ::ExtAC;
58637
71204
  friend class ::ExtACBuilderCoupling;
58638
71205
  friend class ::ExtACSyntaxCoupling;
58639
71206
  friend class ::ExtACTree;
58640
71207
  friend class ::ExtACKeywords;
58641
 
  friend class ::WinAsm;
58642
 
  friend class ::WinDeclSpecs;
58643
 
  friend class ::WinMemberExplSpec;
58644
 
  friend class ::WinTypeKeywords;
 
71208
  friend class ::ExtGnu;
58645
71209
  friend class ::PragmaOnceUnitState;
58646
71210
  friend class ::PragmaOnce;
58647
 
  friend class ::CCExprResolve;
58648
 
  friend class ::CExprResolve;
 
71211
  friend class ::CMatchSyntax;
58649
71212
 
58650
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71213
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58651
71214
 
58652
71215
  CTree *sons[4]; // open, type, close, init
58653
71216
 
58654
71217
public:
 
71218
  /** Constructor.
 
71219
   *  \param r Left parenthesis of the type name.
 
71220
   *  \param t The type name.
 
71221
   *  \param cr Right parenthesis of the type name.
 
71222
   *  \param i The initializer list. */
58655
71223
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
58656
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
71224
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
71225
    AddSon (sons[2], cr); AddSon (sons[3], i);
58657
71226
  }
 
71227
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58658
71228
  static const char *NodeId ();
 
71229
  /** Get the name of the node. Can be compared with NodeId(). */
58659
71230
  const char *NodeName () const { return NodeId (); }
 
71231
  /** Get the number of sons. */
58660
71232
  int Sons () const { return 4; }
 
71233
  /** Get the n-th son.
 
71234
   *  \param n The index of the son.
 
71235
   *  \return The n-th son or NULL. */
58661
71236
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
71237
  /** Replace a son.
 
71238
   *  \param old_son The son to replace.
 
71239
   *  \param new_son The new son. */
58662
71240
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58663
71241
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58664
71242
  }
 
71243
  /** Get the type name. */
58665
71244
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
71245
  /** Get the initializer list. */
58666
71246
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
71247
  /** Get the semantic information object. */
58667
71248
  CSemObject *SemObject () const { return (CSemObject*)this; }
58668
71249
   private:
58669
71250
  typedef CT_CmpdLiteral CCExprResolveExpr;
58670
71251
 
58671
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71252
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58672
71253
 public :
58673
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71254
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58674
71255
  typedef CT_CmpdLiteral CExprResolveExpr;
58675
71256
 
58676
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71257
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58677
71258
 public :
58678
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58679
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71259
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71260
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58680
71261
};
58681
71262
 
 
71263
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
71264
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
58682
71265
 
58683
 
#line 58684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71266
#line 71267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58684
71267
} // closed Puma
 
71268
class CCExprResolve;
 
71269
class CExprResolve;
58685
71270
class WinIfExists;
58686
71271
class WinImportHandler;
58687
71272
class WinMacros;
58688
 
class CMatchSyntax;
58689
 
class ExtGnu;
 
71273
class WinAsm;
 
71274
class WinDeclSpecs;
 
71275
class WinMemberExplSpec;
 
71276
class WinTypeKeywords;
 
71277
class WinFriend;
58690
71278
class ExtAC;
58691
71279
class ExtACBuilderCoupling;
58692
71280
class ExtACSyntaxCoupling;
58693
71281
class ExtACTree;
58694
71282
class ExtACKeywords;
58695
 
class WinAsm;
58696
 
class WinDeclSpecs;
58697
 
class WinMemberExplSpec;
58698
 
class WinTypeKeywords;
 
71283
class ExtGnu;
58699
71284
class PragmaOnceUnitState;
58700
71285
class PragmaOnce;
58701
 
class CCExprResolve;
58702
 
class CExprResolve;
58703
 
namespace Puma {
58704
 
 
58705
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71286
class CMatchSyntax;
 
71287
namespace Puma {
 
71288
 
 
71289
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71290
 
 
71291
#line 71292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71292
} // closed Puma
 
71293
 
 
71294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71296
#include "CCExprResolveH.ah"
 
71297
#endif
 
71298
namespace Puma {
 
71299
 
 
71300
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71301
 
 
71302
#line 71303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71303
} // closed Puma
 
71304
 
 
71305
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71306
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71307
#include "CExprResolveH.ah"
 
71308
#endif
 
71309
namespace Puma {
 
71310
 
 
71311
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58706
71312
class CT_ConstructExpr : public CT_Expression, public CSemObject {
58707
 
#line 58708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71313
#line 71314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71314
  friend class ::CCExprResolve;
 
71315
  friend class ::CExprResolve;
58708
71316
  friend class ::WinIfExists;
58709
71317
  friend class ::WinImportHandler;
58710
71318
  friend class ::WinMacros;
58711
 
  friend class ::CMatchSyntax;
58712
 
  friend class ::ExtGnu;
 
71319
  friend class ::WinAsm;
 
71320
  friend class ::WinDeclSpecs;
 
71321
  friend class ::WinMemberExplSpec;
 
71322
  friend class ::WinTypeKeywords;
 
71323
  friend class ::WinFriend;
58713
71324
  friend class ::ExtAC;
58714
71325
  friend class ::ExtACBuilderCoupling;
58715
71326
  friend class ::ExtACSyntaxCoupling;
58716
71327
  friend class ::ExtACTree;
58717
71328
  friend class ::ExtACKeywords;
58718
 
  friend class ::WinAsm;
58719
 
  friend class ::WinDeclSpecs;
58720
 
  friend class ::WinMemberExplSpec;
58721
 
  friend class ::WinTypeKeywords;
 
71329
  friend class ::ExtGnu;
58722
71330
  friend class ::PragmaOnceUnitState;
58723
71331
  friend class ::PragmaOnce;
58724
 
  friend class ::CCExprResolve;
58725
 
  friend class ::CExprResolve;
 
71332
  friend class ::CMatchSyntax;
58726
71333
 
58727
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71334
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58728
71335
 
58729
71336
  CTree *sons[2]; // type, init
58730
71337
 
58731
71338
public:
58732
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
71339
  /** Constructor.
 
71340
   *  \param t The type name.
 
71341
   *  \param i The initializer list. */
 
71342
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
71343
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58733
71344
  static const char *NodeId ();
 
71345
  /** Get the name of the node. Can be compared with NodeId(). */
58734
71346
  const char *NodeName () const { return NodeId (); }
 
71347
  /** Get the number of sons. */
58735
71348
  int Sons () const { return 2; }
 
71349
  /** Get the n-th son.
 
71350
   *  \param n The index of the son.
 
71351
   *  \return The n-th son or NULL. */
58736
71352
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
71353
  /** Replace a son.
 
71354
   *  \param old_son The son to replace.
 
71355
   *  \param new_son The new son. */
58737
71356
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58738
71357
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58739
71358
  }
 
71359
  /** Get the type name. */
58740
71360
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
71361
  /** Get the initializer. */
58741
71362
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
71363
  /** Get the semantic information object. */
58742
71364
  CSemObject *SemObject () const { return (CSemObject*)this; }
58743
71365
   private:
58744
71366
  typedef CT_ConstructExpr CCExprResolveExpr;
58745
71367
 
58746
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71368
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58747
71369
 public :
58748
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71370
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58749
71371
  typedef CT_ConstructExpr CExprResolveExpr;
58750
71372
 
58751
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71373
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58752
71374
 public :
58753
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58754
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71375
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71376
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58755
71377
};
58756
71378
 
 
71379
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
71380
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
58757
71381
 
58758
 
#line 58759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71382
#line 71383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58759
71383
} // closed Puma
 
71384
class CCExprResolve;
 
71385
class CExprResolve;
58760
71386
class WinIfExists;
58761
71387
class WinImportHandler;
58762
71388
class WinMacros;
58763
 
class CMatchSyntax;
58764
 
class ExtGnu;
 
71389
class WinAsm;
 
71390
class WinDeclSpecs;
 
71391
class WinMemberExplSpec;
 
71392
class WinTypeKeywords;
 
71393
class WinFriend;
58765
71394
class ExtAC;
58766
71395
class ExtACBuilderCoupling;
58767
71396
class ExtACSyntaxCoupling;
58768
71397
class ExtACTree;
58769
71398
class ExtACKeywords;
58770
 
class WinAsm;
58771
 
class WinDeclSpecs;
58772
 
class WinMemberExplSpec;
58773
 
class WinTypeKeywords;
 
71399
class ExtGnu;
58774
71400
class PragmaOnceUnitState;
58775
71401
class PragmaOnce;
58776
 
class CCExprResolve;
58777
 
class CExprResolve;
58778
 
namespace Puma {
58779
 
 
58780
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71402
class CMatchSyntax;
 
71403
namespace Puma {
 
71404
 
 
71405
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71406
 
 
71407
#line 71408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71408
} // closed Puma
 
71409
 
 
71410
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71411
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71412
#include "CCExprResolveH.ah"
 
71413
#endif
 
71414
namespace Puma {
 
71415
 
 
71416
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71417
 
 
71418
#line 71419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71419
} // closed Puma
 
71420
 
 
71421
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71422
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71423
#include "CExprResolveH.ah"
 
71424
#endif
 
71425
namespace Puma {
 
71426
 
 
71427
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58781
71428
class CT_ThrowExpr : public CT_Expression {
58782
 
#line 58783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71429
#line 71430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71430
  friend class ::CCExprResolve;
 
71431
  friend class ::CExprResolve;
58783
71432
  friend class ::WinIfExists;
58784
71433
  friend class ::WinImportHandler;
58785
71434
  friend class ::WinMacros;
58786
 
  friend class ::CMatchSyntax;
58787
 
  friend class ::ExtGnu;
 
71435
  friend class ::WinAsm;
 
71436
  friend class ::WinDeclSpecs;
 
71437
  friend class ::WinMemberExplSpec;
 
71438
  friend class ::WinTypeKeywords;
 
71439
  friend class ::WinFriend;
58788
71440
  friend class ::ExtAC;
58789
71441
  friend class ::ExtACBuilderCoupling;
58790
71442
  friend class ::ExtACSyntaxCoupling;
58791
71443
  friend class ::ExtACTree;
58792
71444
  friend class ::ExtACKeywords;
58793
 
  friend class ::WinAsm;
58794
 
  friend class ::WinDeclSpecs;
58795
 
  friend class ::WinMemberExplSpec;
58796
 
  friend class ::WinTypeKeywords;
 
71445
  friend class ::ExtGnu;
58797
71446
  friend class ::PragmaOnceUnitState;
58798
71447
  friend class ::PragmaOnce;
58799
 
  friend class ::CCExprResolve;
58800
 
  friend class ::CExprResolve;
 
71448
  friend class ::CMatchSyntax;
58801
71449
 
58802
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71450
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58803
71451
 
58804
71452
  CTree *sons[2]; // throw, expr
58805
71453
 
58806
71454
public:
58807
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
71455
  /** Constructor.
 
71456
   *  \param t The 'throw' keyword.
 
71457
   *  \param e The expression. */
 
71458
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
71459
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58808
71460
  static const char *NodeId ();
 
71461
  /** Get the name of the node. Can be compared with NodeId(). */
58809
71462
  const char *NodeName () const { return NodeId (); }
 
71463
  /** Get the number of sons. */
58810
71464
  int Sons () const { return CTree::Sons (sons, 2); }
 
71465
  /** Get the n-th son.
 
71466
   *  \param n The index of the son.
 
71467
   *  \return The n-th son or NULL. */
58811
71468
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
71469
  /** Replace a son.
 
71470
   *  \param old_son The son to replace.
 
71471
   *  \param new_son The new son. */
58812
71472
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58813
71473
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58814
71474
  }
 
71475
  /** Get the expression. */
58815
71476
  CTree *Expr () const { return sons[1]; }
58816
71477
   private:
58817
71478
  typedef CT_ThrowExpr CCExprResolveExpr;
58818
71479
 
58819
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71480
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58820
71481
 public :
58821
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71482
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58822
71483
  typedef CT_ThrowExpr CExprResolveExpr;
58823
71484
 
58824
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71485
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58825
71486
 public :
58826
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58827
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71487
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71488
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58828
71489
};
58829
71490
 
 
71491
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
71492
 *  Tree node representing an index expression. */
58830
71493
 
58831
 
#line 58832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71494
#line 71495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58832
71495
} // closed Puma
 
71496
class CCExprResolve;
 
71497
class CExprResolve;
58833
71498
class WinIfExists;
58834
71499
class WinImportHandler;
58835
71500
class WinMacros;
58836
 
class CMatchSyntax;
58837
 
class ExtGnu;
 
71501
class WinAsm;
 
71502
class WinDeclSpecs;
 
71503
class WinMemberExplSpec;
 
71504
class WinTypeKeywords;
 
71505
class WinFriend;
58838
71506
class ExtAC;
58839
71507
class ExtACBuilderCoupling;
58840
71508
class ExtACSyntaxCoupling;
58841
71509
class ExtACTree;
58842
71510
class ExtACKeywords;
58843
 
class WinAsm;
58844
 
class WinDeclSpecs;
58845
 
class WinMemberExplSpec;
58846
 
class WinTypeKeywords;
 
71511
class ExtGnu;
58847
71512
class PragmaOnceUnitState;
58848
71513
class PragmaOnce;
58849
 
class CCExprResolve;
58850
 
class CExprResolve;
58851
 
namespace Puma {
58852
 
 
58853
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58854
 
class CT_IndexExpr : public CT_Expression {
58855
 
#line 58856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71514
class CMatchSyntax;
 
71515
namespace Puma {
 
71516
 
 
71517
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71518
 
 
71519
#line 71520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71520
} // closed Puma
 
71521
 
 
71522
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71523
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71524
#include "CCExprResolveH.ah"
 
71525
#endif
 
71526
namespace Puma {
 
71527
 
 
71528
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71529
 
 
71530
#line 71531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71531
} // closed Puma
 
71532
 
 
71533
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71534
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71535
#include "CExprResolveH.ah"
 
71536
#endif
 
71537
namespace Puma {
 
71538
 
 
71539
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71540
class CT_IndexExpr : public CT_Call {
 
71541
#line 71542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71542
  friend class ::CCExprResolve;
 
71543
  friend class ::CExprResolve;
58856
71544
  friend class ::WinIfExists;
58857
71545
  friend class ::WinImportHandler;
58858
71546
  friend class ::WinMacros;
58859
 
  friend class ::CMatchSyntax;
58860
 
  friend class ::ExtGnu;
 
71547
  friend class ::WinAsm;
 
71548
  friend class ::WinDeclSpecs;
 
71549
  friend class ::WinMemberExplSpec;
 
71550
  friend class ::WinTypeKeywords;
 
71551
  friend class ::WinFriend;
58861
71552
  friend class ::ExtAC;
58862
71553
  friend class ::ExtACBuilderCoupling;
58863
71554
  friend class ::ExtACSyntaxCoupling;
58864
71555
  friend class ::ExtACTree;
58865
71556
  friend class ::ExtACKeywords;
58866
 
  friend class ::WinAsm;
58867
 
  friend class ::WinDeclSpecs;
58868
 
  friend class ::WinMemberExplSpec;
58869
 
  friend class ::WinTypeKeywords;
 
71557
  friend class ::ExtGnu;
58870
71558
  friend class ::PragmaOnceUnitState;
58871
71559
  friend class ::PragmaOnce;
58872
 
  friend class ::CCExprResolve;
58873
 
  friend class ::CExprResolve;
 
71560
  friend class ::CMatchSyntax;
58874
71561
 
58875
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71562
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58876
71563
 
58877
71564
  CTree *sons[4]; // expr, open, index, close
58878
71565
 
58879
71566
public:
 
71567
  /** Constructor.
 
71568
   *  \param e The expression on which to invoke the index operator.
 
71569
   *  \param o Left parenthesis of the index expression.
 
71570
   *  \param i The index expression. 
 
71571
   *  \param c Right parenthesis of the index expression. */
58880
71572
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
58881
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
71573
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
71574
    AddSon (sons[2], i); AddSon (sons[3], c);
58882
71575
  }
 
71576
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58883
71577
  static const char *NodeId ();
 
71578
  /** Get the name of the node. Can be compared with NodeId(). */
58884
71579
  const char *NodeName () const { return NodeId (); }
 
71580
  /** Get the number of sons. */
58885
71581
  int Sons () const { return 4; }
 
71582
  /** Get the n-th son.
 
71583
   *  \param n The index of the son.
 
71584
   *  \return The n-th son or NULL. */
58886
71585
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
71586
  /** Replace a son.
 
71587
   *  \param old_son The son to replace.
 
71588
   *  \param new_son The new son. */
58887
71589
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58888
71590
    CTree::ReplaceSon (sons, 4, old_son, new_son);
58889
71591
  }
58890
71592
   private:
58891
71593
  typedef CT_IndexExpr CCExprResolveExpr;
58892
71594
 
58893
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71595
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58894
71596
 public :
58895
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71597
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58896
71598
  typedef CT_IndexExpr CExprResolveExpr;
58897
71599
 
58898
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71600
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58899
71601
 public :
58900
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58901
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71602
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71603
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58902
71604
};
58903
71605
 
 
71606
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
71607
 *  Tree node representing a function call expression, e.g. f(i). */
58904
71608
 
58905
 
#line 58906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71609
#line 71610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58906
71610
} // closed Puma
 
71611
class CCExprResolve;
 
71612
class CExprResolve;
58907
71613
class WinIfExists;
58908
71614
class WinImportHandler;
58909
71615
class WinMacros;
58910
 
class CMatchSyntax;
58911
 
class ExtGnu;
 
71616
class WinAsm;
 
71617
class WinDeclSpecs;
 
71618
class WinMemberExplSpec;
 
71619
class WinTypeKeywords;
 
71620
class WinFriend;
58912
71621
class ExtAC;
58913
71622
class ExtACBuilderCoupling;
58914
71623
class ExtACSyntaxCoupling;
58915
71624
class ExtACTree;
58916
71625
class ExtACKeywords;
58917
 
class WinAsm;
58918
 
class WinDeclSpecs;
58919
 
class WinMemberExplSpec;
58920
 
class WinTypeKeywords;
 
71626
class ExtGnu;
58921
71627
class PragmaOnceUnitState;
58922
71628
class PragmaOnce;
58923
 
class CCExprResolve;
58924
 
class CExprResolve;
58925
 
namespace Puma {
58926
 
 
58927
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58928
 
class CT_CallExpr : public CT_Expression, public CSemObject {
58929
 
#line 58930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71629
class CMatchSyntax;
 
71630
namespace Puma {
 
71631
 
 
71632
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71633
 
 
71634
#line 71635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71635
} // closed Puma
 
71636
 
 
71637
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71638
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71639
#include "CCExprResolveH.ah"
 
71640
#endif
 
71641
namespace Puma {
 
71642
 
 
71643
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71644
 
 
71645
#line 71646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71646
} // closed Puma
 
71647
 
 
71648
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71649
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71650
#include "CExprResolveH.ah"
 
71651
#endif
 
71652
namespace Puma {
 
71653
 
 
71654
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71655
class CT_CallExpr : public CT_Call {
 
71656
#line 71657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71657
  friend class ::CCExprResolve;
 
71658
  friend class ::CExprResolve;
58930
71659
  friend class ::WinIfExists;
58931
71660
  friend class ::WinImportHandler;
58932
71661
  friend class ::WinMacros;
58933
 
  friend class ::CMatchSyntax;
58934
 
  friend class ::ExtGnu;
 
71662
  friend class ::WinAsm;
 
71663
  friend class ::WinDeclSpecs;
 
71664
  friend class ::WinMemberExplSpec;
 
71665
  friend class ::WinTypeKeywords;
 
71666
  friend class ::WinFriend;
58935
71667
  friend class ::ExtAC;
58936
71668
  friend class ::ExtACBuilderCoupling;
58937
71669
  friend class ::ExtACSyntaxCoupling;
58938
71670
  friend class ::ExtACTree;
58939
71671
  friend class ::ExtACKeywords;
58940
 
  friend class ::WinAsm;
58941
 
  friend class ::WinDeclSpecs;
58942
 
  friend class ::WinMemberExplSpec;
58943
 
  friend class ::WinTypeKeywords;
 
71672
  friend class ::ExtGnu;
58944
71673
  friend class ::PragmaOnceUnitState;
58945
71674
  friend class ::PragmaOnce;
58946
 
  friend class ::CCExprResolve;
58947
 
  friend class ::CExprResolve;
 
71675
  friend class ::CMatchSyntax;
58948
71676
 
58949
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71677
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58950
71678
 
58951
71679
  CTree *sons[2]; // expr, args
58952
71680
 
58953
71681
public:
58954
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
58955
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
71682
  /** Constructor.
 
71683
   *  \param e The expression on which the call is invoked. */
 
71684
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
71685
  /** Constructor.
 
71686
   *  \param e The expression on which the call is invoked.
 
71687
   *  \param l The argument list of the call. */
 
71688
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
71689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58956
71690
  static const char *NodeId ();
 
71691
  /** Get the name of the node. Can be compared with NodeId(). */
58957
71692
  const char *NodeName () const { return NodeId (); }
 
71693
  /** Get the number of sons. */
58958
71694
  int Sons () const { return CTree::Sons (sons, 2); }
 
71695
  /** Get the n-th son.
 
71696
   *  \param n The index of the son.
 
71697
   *  \return The n-th son or NULL. */
58959
71698
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
71699
  /** Replace a son.
 
71700
   *  \param old_son The son to replace.
 
71701
   *  \param new_son The new son. */
58960
71702
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58961
71703
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58962
71704
  }
58963
71705
  CTree *Expr () const { return sons[0]; }
58964
71706
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
58965
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
58966
71707
   private:
58967
71708
  typedef CT_CallExpr CCExprResolveExpr;
58968
71709
 
58969
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71710
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58970
71711
 public :
58971
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71712
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58972
71713
  typedef CT_CallExpr CExprResolveExpr;
58973
71714
 
58974
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71715
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58975
71716
 public :
58976
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58977
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71717
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71718
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58978
71719
};
58979
71720
 
 
71721
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
71722
 *  Tree node representing a cast expression, e.g. (int)a. */
58980
71723
 
58981
 
#line 58982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71724
#line 71725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
58982
71725
} // closed Puma
 
71726
class CCExprResolve;
 
71727
class CExprResolve;
58983
71728
class WinIfExists;
58984
71729
class WinImportHandler;
58985
71730
class WinMacros;
58986
 
class CMatchSyntax;
58987
 
class ExtGnu;
 
71731
class WinAsm;
 
71732
class WinDeclSpecs;
 
71733
class WinMemberExplSpec;
 
71734
class WinTypeKeywords;
 
71735
class WinFriend;
58988
71736
class ExtAC;
58989
71737
class ExtACBuilderCoupling;
58990
71738
class ExtACSyntaxCoupling;
58991
71739
class ExtACTree;
58992
71740
class ExtACKeywords;
58993
 
class WinAsm;
58994
 
class WinDeclSpecs;
58995
 
class WinMemberExplSpec;
58996
 
class WinTypeKeywords;
 
71741
class ExtGnu;
58997
71742
class PragmaOnceUnitState;
58998
71743
class PragmaOnce;
58999
 
class CCExprResolve;
59000
 
class CExprResolve;
59001
 
namespace Puma {
59002
 
 
59003
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71744
class CMatchSyntax;
 
71745
namespace Puma {
 
71746
 
 
71747
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71748
 
 
71749
#line 71750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71750
} // closed Puma
 
71751
 
 
71752
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71753
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71754
#include "CCExprResolveH.ah"
 
71755
#endif
 
71756
namespace Puma {
 
71757
 
 
71758
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71759
 
 
71760
#line 71761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71761
} // closed Puma
 
71762
 
 
71763
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71764
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71765
#include "CExprResolveH.ah"
 
71766
#endif
 
71767
namespace Puma {
 
71768
 
 
71769
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59004
71770
class CT_CastExpr : public CT_Expression {
59005
 
#line 59006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71771
#line 71772 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71772
  friend class ::CCExprResolve;
 
71773
  friend class ::CExprResolve;
59006
71774
  friend class ::WinIfExists;
59007
71775
  friend class ::WinImportHandler;
59008
71776
  friend class ::WinMacros;
59009
 
  friend class ::CMatchSyntax;
59010
 
  friend class ::ExtGnu;
 
71777
  friend class ::WinAsm;
 
71778
  friend class ::WinDeclSpecs;
 
71779
  friend class ::WinMemberExplSpec;
 
71780
  friend class ::WinTypeKeywords;
 
71781
  friend class ::WinFriend;
59011
71782
  friend class ::ExtAC;
59012
71783
  friend class ::ExtACBuilderCoupling;
59013
71784
  friend class ::ExtACSyntaxCoupling;
59014
71785
  friend class ::ExtACTree;
59015
71786
  friend class ::ExtACKeywords;
59016
 
  friend class ::WinAsm;
59017
 
  friend class ::WinDeclSpecs;
59018
 
  friend class ::WinMemberExplSpec;
59019
 
  friend class ::WinTypeKeywords;
 
71787
  friend class ::ExtGnu;
59020
71788
  friend class ::PragmaOnceUnitState;
59021
71789
  friend class ::PragmaOnce;
59022
 
  friend class ::CCExprResolve;
59023
 
  friend class ::CExprResolve;
 
71790
  friend class ::CMatchSyntax;
59024
71791
 
59025
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71792
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59026
71793
 
59027
71794
  CTree *sons[4]; // open, type, close, expr
59028
71795
 
59029
71796
public:
 
71797
  /** Constructor.
 
71798
   *  \param o Left parenthesis of the type name.
 
71799
   *  \param t The type to cast to.
 
71800
   *  \param c Right parenthesis of the type name. 
 
71801
   *  \param e The expression to cast. */
59030
71802
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
59031
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
71803
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
71804
    AddSon (sons[2], c); AddSon (sons[3], e);
59032
71805
  }
 
71806
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59033
71807
  static const char *NodeId ();
 
71808
  /** Get the name of the node. Can be compared with NodeId(). */
59034
71809
  const char *NodeName () const { return NodeId (); }
 
71810
  /** Get the number of sons. */
59035
71811
  int Sons () const { return 4; }
 
71812
  /** Get the n-th son.
 
71813
   *  \param n The index of the son.
 
71814
   *  \return The n-th son or NULL. */
59036
71815
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
71816
  /** Replace a son.
 
71817
   *  \param old_son The son to replace.
 
71818
   *  \param new_son The new son. */
59037
71819
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59038
71820
    CTree::ReplaceSon (sons, 4, old_son, new_son);
59039
71821
  }
 
71822
  /** Get the casted expression. */
59040
71823
  CTree *Expr () const { return sons[3]; }
 
71824
  /** Get the type to cast to. */
59041
71825
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
59042
71826
   private:
59043
71827
  typedef CT_CastExpr CCExprResolveExpr;
59044
71828
 
59045
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71829
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59046
71830
 public :
59047
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71831
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59048
71832
  typedef CT_CastExpr CExprResolveExpr;
59049
71833
 
59050
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71834
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59051
71835
 public :
59052
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59053
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71836
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71837
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59054
71838
};
59055
71839
 
 
71840
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
71841
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
59056
71842
 
59057
 
#line 59058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71843
#line 71844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59058
71844
} // closed Puma
 
71845
class CCExprResolve;
 
71846
class CExprResolve;
59059
71847
class WinIfExists;
59060
71848
class WinImportHandler;
59061
71849
class WinMacros;
59062
 
class CMatchSyntax;
59063
 
class ExtGnu;
 
71850
class WinAsm;
 
71851
class WinDeclSpecs;
 
71852
class WinMemberExplSpec;
 
71853
class WinTypeKeywords;
 
71854
class WinFriend;
59064
71855
class ExtAC;
59065
71856
class ExtACBuilderCoupling;
59066
71857
class ExtACSyntaxCoupling;
59067
71858
class ExtACTree;
59068
71859
class ExtACKeywords;
59069
 
class WinAsm;
59070
 
class WinDeclSpecs;
59071
 
class WinMemberExplSpec;
59072
 
class WinTypeKeywords;
 
71860
class ExtGnu;
59073
71861
class PragmaOnceUnitState;
59074
71862
class PragmaOnce;
59075
 
class CCExprResolve;
59076
 
class CExprResolve;
59077
 
namespace Puma {
59078
 
 
59079
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71863
class CMatchSyntax;
 
71864
namespace Puma {
 
71865
 
 
71866
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71867
 
 
71868
#line 71869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71869
} // closed Puma
 
71870
 
 
71871
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71872
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71873
#include "CCExprResolveH.ah"
 
71874
#endif
 
71875
namespace Puma {
 
71876
 
 
71877
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71878
 
 
71879
#line 71880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71880
} // closed Puma
 
71881
 
 
71882
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71883
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71884
#include "CExprResolveH.ah"
 
71885
#endif
 
71886
namespace Puma {
 
71887
 
 
71888
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59080
71889
class CT_StaticCast : public CT_Expression {
59081
 
#line 59082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71890
#line 71891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71891
  friend class ::CCExprResolve;
 
71892
  friend class ::CExprResolve;
59082
71893
  friend class ::WinIfExists;
59083
71894
  friend class ::WinImportHandler;
59084
71895
  friend class ::WinMacros;
59085
 
  friend class ::CMatchSyntax;
59086
 
  friend class ::ExtGnu;
 
71896
  friend class ::WinAsm;
 
71897
  friend class ::WinDeclSpecs;
 
71898
  friend class ::WinMemberExplSpec;
 
71899
  friend class ::WinTypeKeywords;
 
71900
  friend class ::WinFriend;
59087
71901
  friend class ::ExtAC;
59088
71902
  friend class ::ExtACBuilderCoupling;
59089
71903
  friend class ::ExtACSyntaxCoupling;
59090
71904
  friend class ::ExtACTree;
59091
71905
  friend class ::ExtACKeywords;
59092
 
  friend class ::WinAsm;
59093
 
  friend class ::WinDeclSpecs;
59094
 
  friend class ::WinMemberExplSpec;
59095
 
  friend class ::WinTypeKeywords;
 
71906
  friend class ::ExtGnu;
59096
71907
  friend class ::PragmaOnceUnitState;
59097
71908
  friend class ::PragmaOnce;
59098
 
  friend class ::CCExprResolve;
59099
 
  friend class ::CExprResolve;
 
71909
  friend class ::CMatchSyntax;
59100
71910
 
59101
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71911
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59102
71912
 
59103
71913
  CTree *sons[5]; // cast, open, type, close, expr
59104
71914
 
59105
71915
public:
 
71916
  /** Constructor.
 
71917
   *  \param cst The cast operator, i.e. 'static_cast'.
 
71918
   *  \param o Left arrow bracket of the type name.
 
71919
   *  \param t The type to cast to.
 
71920
   *  \param c Right array bracket of the type name.
 
71921
   *  \param e The expression to cast. */
59106
71922
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
59107
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
71923
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
71924
    AddSon (sons[3], c); AddSon (sons[4], e);
59108
71925
  }
 
71926
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59109
71927
  static const char *NodeId ();
 
71928
  /** Get the name of the node. Can be compared with NodeId(). */
59110
71929
  const char *NodeName () const { return NodeId (); }
 
71930
  /** Get the number of sons. */
59111
71931
  int Sons () const { return 5; }
 
71932
  /** Get the n-th son.
 
71933
   *  \param n The index of the son.
 
71934
   *  \return The n-th son or NULL. */
59112
71935
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
71936
  /** Replace a son.
 
71937
   *  \param old_son The son to replace.
 
71938
   *  \param new_son The new son. */
59113
71939
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59114
71940
    CTree::ReplaceSon (sons, 5, old_son, new_son);
59115
71941
  }
 
71942
  /** Get the casted expression. */
59116
71943
  CTree *Expr () const { return sons[4]; }
 
71944
  /** Get the type to cast to. */
59117
71945
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
59118
71946
   private:
59119
71947
  typedef CT_StaticCast CCExprResolveExpr;
59120
71948
 
59121
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71949
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59122
71950
 public :
59123
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71951
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59124
71952
  typedef CT_StaticCast CExprResolveExpr;
59125
71953
 
59126
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71954
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59127
71955
 public :
59128
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59129
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71956
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71957
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59130
71958
};
59131
71959
 
 
71960
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
71961
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
59132
71962
 
59133
 
#line 59134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
71963
#line 71964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59134
71964
} // closed Puma
 
71965
class CCExprResolve;
 
71966
class CExprResolve;
59135
71967
class WinIfExists;
59136
71968
class WinImportHandler;
59137
71969
class WinMacros;
59138
 
class CMatchSyntax;
59139
 
class ExtGnu;
 
71970
class WinAsm;
 
71971
class WinDeclSpecs;
 
71972
class WinMemberExplSpec;
 
71973
class WinTypeKeywords;
 
71974
class WinFriend;
59140
71975
class ExtAC;
59141
71976
class ExtACBuilderCoupling;
59142
71977
class ExtACSyntaxCoupling;
59143
71978
class ExtACTree;
59144
71979
class ExtACKeywords;
59145
 
class WinAsm;
59146
 
class WinDeclSpecs;
59147
 
class WinMemberExplSpec;
59148
 
class WinTypeKeywords;
 
71980
class ExtGnu;
59149
71981
class PragmaOnceUnitState;
59150
71982
class PragmaOnce;
59151
 
class CCExprResolve;
59152
 
class CExprResolve;
59153
 
namespace Puma {
59154
 
 
59155
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71983
class CMatchSyntax;
 
71984
namespace Puma {
 
71985
 
 
71986
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71987
 
 
71988
#line 71989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
71989
} // closed Puma
 
71990
 
 
71991
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71992
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71993
#include "CCExprResolveH.ah"
 
71994
#endif
 
71995
namespace Puma {
 
71996
 
 
71997
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71998
 
 
71999
#line 72000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72000
} // closed Puma
 
72001
 
 
72002
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72003
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72004
#include "CExprResolveH.ah"
 
72005
#endif
 
72006
namespace Puma {
 
72007
 
 
72008
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59156
72009
class CT_ConstCast : public CT_StaticCast {
59157
 
#line 59158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72010
#line 72011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72011
  friend class ::CCExprResolve;
 
72012
  friend class ::CExprResolve;
59158
72013
  friend class ::WinIfExists;
59159
72014
  friend class ::WinImportHandler;
59160
72015
  friend class ::WinMacros;
59161
 
  friend class ::CMatchSyntax;
59162
 
  friend class ::ExtGnu;
 
72016
  friend class ::WinAsm;
 
72017
  friend class ::WinDeclSpecs;
 
72018
  friend class ::WinMemberExplSpec;
 
72019
  friend class ::WinTypeKeywords;
 
72020
  friend class ::WinFriend;
59163
72021
  friend class ::ExtAC;
59164
72022
  friend class ::ExtACBuilderCoupling;
59165
72023
  friend class ::ExtACSyntaxCoupling;
59166
72024
  friend class ::ExtACTree;
59167
72025
  friend class ::ExtACKeywords;
59168
 
  friend class ::WinAsm;
59169
 
  friend class ::WinDeclSpecs;
59170
 
  friend class ::WinMemberExplSpec;
59171
 
  friend class ::WinTypeKeywords;
 
72026
  friend class ::ExtGnu;
59172
72027
  friend class ::PragmaOnceUnitState;
59173
72028
  friend class ::PragmaOnce;
59174
 
  friend class ::CCExprResolve;
59175
 
  friend class ::CExprResolve;
 
72029
  friend class ::CMatchSyntax;
59176
72030
 
59177
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72031
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59178
72032
 
59179
72033
public:
 
72034
  /** Constructor.
 
72035
   *  \param cst The cast operator, i.e. 'const_cast'.
 
72036
   *  \param o Left arrow bracket of the type name.
 
72037
   *  \param t The type to cast to.
 
72038
   *  \param c Right array bracket of the type name.
 
72039
   *  \param e The expression to cast. */
59180
72040
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
59181
72041
    CT_StaticCast (cst, o, t, c, e) {}
 
72042
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59182
72043
  static const char *NodeId ();
 
72044
  /** Get the name of the node. Can be compared with NodeId(). */
59183
72045
  const char *NodeName () const { return NodeId (); }
59184
72046
   private:
59185
72047
  typedef CT_ConstCast CCExprResolveExpr;
59186
72048
 
59187
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72049
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59188
72050
 public :
59189
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72051
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59190
72052
  typedef CT_ConstCast CExprResolveExpr;
59191
72053
 
59192
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72054
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59193
72055
 public :
59194
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59195
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72056
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72057
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59196
72058
};
59197
72059
 
 
72060
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
72061
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
59198
72062
 
59199
 
#line 59200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72063
#line 72064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59200
72064
} // closed Puma
 
72065
class CCExprResolve;
 
72066
class CExprResolve;
59201
72067
class WinIfExists;
59202
72068
class WinImportHandler;
59203
72069
class WinMacros;
59204
 
class CMatchSyntax;
59205
 
class ExtGnu;
 
72070
class WinAsm;
 
72071
class WinDeclSpecs;
 
72072
class WinMemberExplSpec;
 
72073
class WinTypeKeywords;
 
72074
class WinFriend;
59206
72075
class ExtAC;
59207
72076
class ExtACBuilderCoupling;
59208
72077
class ExtACSyntaxCoupling;
59209
72078
class ExtACTree;
59210
72079
class ExtACKeywords;
59211
 
class WinAsm;
59212
 
class WinDeclSpecs;
59213
 
class WinMemberExplSpec;
59214
 
class WinTypeKeywords;
 
72080
class ExtGnu;
59215
72081
class PragmaOnceUnitState;
59216
72082
class PragmaOnce;
59217
 
class CCExprResolve;
59218
 
class CExprResolve;
59219
 
namespace Puma {
59220
 
 
59221
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72083
class CMatchSyntax;
 
72084
namespace Puma {
 
72085
 
 
72086
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72087
 
 
72088
#line 72089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72089
} // closed Puma
 
72090
 
 
72091
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72092
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72093
#include "CCExprResolveH.ah"
 
72094
#endif
 
72095
namespace Puma {
 
72096
 
 
72097
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72098
 
 
72099
#line 72100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72100
} // closed Puma
 
72101
 
 
72102
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72103
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72104
#include "CExprResolveH.ah"
 
72105
#endif
 
72106
namespace Puma {
 
72107
 
 
72108
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59222
72109
class CT_ReintCast : public CT_StaticCast {
59223
 
#line 59224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72110
#line 72111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72111
  friend class ::CCExprResolve;
 
72112
  friend class ::CExprResolve;
59224
72113
  friend class ::WinIfExists;
59225
72114
  friend class ::WinImportHandler;
59226
72115
  friend class ::WinMacros;
59227
 
  friend class ::CMatchSyntax;
59228
 
  friend class ::ExtGnu;
 
72116
  friend class ::WinAsm;
 
72117
  friend class ::WinDeclSpecs;
 
72118
  friend class ::WinMemberExplSpec;
 
72119
  friend class ::WinTypeKeywords;
 
72120
  friend class ::WinFriend;
59229
72121
  friend class ::ExtAC;
59230
72122
  friend class ::ExtACBuilderCoupling;
59231
72123
  friend class ::ExtACSyntaxCoupling;
59232
72124
  friend class ::ExtACTree;
59233
72125
  friend class ::ExtACKeywords;
59234
 
  friend class ::WinAsm;
59235
 
  friend class ::WinDeclSpecs;
59236
 
  friend class ::WinMemberExplSpec;
59237
 
  friend class ::WinTypeKeywords;
 
72126
  friend class ::ExtGnu;
59238
72127
  friend class ::PragmaOnceUnitState;
59239
72128
  friend class ::PragmaOnce;
59240
 
  friend class ::CCExprResolve;
59241
 
  friend class ::CExprResolve;
 
72129
  friend class ::CMatchSyntax;
59242
72130
 
59243
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72131
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59244
72132
 
59245
72133
public:
 
72134
  /** Constructor.
 
72135
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
72136
   *  \param o Left arrow bracket of the type name.
 
72137
   *  \param t The type to cast to.
 
72138
   *  \param c Right array bracket of the type name.
 
72139
   *  \param e The expression to cast. */
59246
72140
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
59247
72141
    CT_StaticCast (cst, o, t, c, e) {}
 
72142
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59248
72143
  static const char *NodeId ();
 
72144
  /** Get the name of the node. Can be compared with NodeId(). */
59249
72145
  const char *NodeName () const { return NodeId (); }
59250
72146
   private:
59251
72147
  typedef CT_ReintCast CCExprResolveExpr;
59252
72148
 
59253
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72149
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59254
72150
 public :
59255
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72151
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59256
72152
  typedef CT_ReintCast CExprResolveExpr;
59257
72153
 
59258
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72154
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59259
72155
 public :
59260
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59261
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72156
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72157
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59262
72158
};
59263
72159
 
 
72160
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
72161
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
59264
72162
 
59265
 
#line 59266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72163
#line 72164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59266
72164
} // closed Puma
 
72165
class CCExprResolve;
 
72166
class CExprResolve;
59267
72167
class WinIfExists;
59268
72168
class WinImportHandler;
59269
72169
class WinMacros;
59270
 
class CMatchSyntax;
59271
 
class ExtGnu;
 
72170
class WinAsm;
 
72171
class WinDeclSpecs;
 
72172
class WinMemberExplSpec;
 
72173
class WinTypeKeywords;
 
72174
class WinFriend;
59272
72175
class ExtAC;
59273
72176
class ExtACBuilderCoupling;
59274
72177
class ExtACSyntaxCoupling;
59275
72178
class ExtACTree;
59276
72179
class ExtACKeywords;
59277
 
class WinAsm;
59278
 
class WinDeclSpecs;
59279
 
class WinMemberExplSpec;
59280
 
class WinTypeKeywords;
 
72180
class ExtGnu;
59281
72181
class PragmaOnceUnitState;
59282
72182
class PragmaOnce;
59283
 
class CCExprResolve;
59284
 
class CExprResolve;
59285
 
namespace Puma {
59286
 
 
59287
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72183
class CMatchSyntax;
 
72184
namespace Puma {
 
72185
 
 
72186
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72187
 
 
72188
#line 72189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72189
} // closed Puma
 
72190
 
 
72191
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72192
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72193
#include "CCExprResolveH.ah"
 
72194
#endif
 
72195
namespace Puma {
 
72196
 
 
72197
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72198
 
 
72199
#line 72200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72200
} // closed Puma
 
72201
 
 
72202
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72203
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72204
#include "CExprResolveH.ah"
 
72205
#endif
 
72206
namespace Puma {
 
72207
 
 
72208
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59288
72209
class CT_DynamicCast : public CT_StaticCast {
59289
 
#line 59290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72210
#line 72211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72211
  friend class ::CCExprResolve;
 
72212
  friend class ::CExprResolve;
59290
72213
  friend class ::WinIfExists;
59291
72214
  friend class ::WinImportHandler;
59292
72215
  friend class ::WinMacros;
59293
 
  friend class ::CMatchSyntax;
59294
 
  friend class ::ExtGnu;
 
72216
  friend class ::WinAsm;
 
72217
  friend class ::WinDeclSpecs;
 
72218
  friend class ::WinMemberExplSpec;
 
72219
  friend class ::WinTypeKeywords;
 
72220
  friend class ::WinFriend;
59295
72221
  friend class ::ExtAC;
59296
72222
  friend class ::ExtACBuilderCoupling;
59297
72223
  friend class ::ExtACSyntaxCoupling;
59298
72224
  friend class ::ExtACTree;
59299
72225
  friend class ::ExtACKeywords;
59300
 
  friend class ::WinAsm;
59301
 
  friend class ::WinDeclSpecs;
59302
 
  friend class ::WinMemberExplSpec;
59303
 
  friend class ::WinTypeKeywords;
 
72226
  friend class ::ExtGnu;
59304
72227
  friend class ::PragmaOnceUnitState;
59305
72228
  friend class ::PragmaOnce;
59306
 
  friend class ::CCExprResolve;
59307
 
  friend class ::CExprResolve;
 
72229
  friend class ::CMatchSyntax;
59308
72230
 
59309
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72231
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59310
72232
 
59311
72233
public:
 
72234
  /** Constructor.
 
72235
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
72236
   *  \param o Left arrow bracket of the type name.
 
72237
   *  \param t The type to cast to.
 
72238
   *  \param c Right array bracket of the type name.
 
72239
   *  \param e The expression to cast. */
59312
72240
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
59313
72241
    CT_StaticCast (cst, o, t, c, e) {}
 
72242
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59314
72243
  static const char *NodeId ();
 
72244
  /** Get the name of the node. Can be compared with NodeId(). */
59315
72245
  const char *NodeName () const { return NodeId (); }
59316
72246
   private:
59317
72247
  typedef CT_DynamicCast CCExprResolveExpr;
59318
72248
 
59319
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72249
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59320
72250
 public :
59321
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72251
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59322
72252
  typedef CT_DynamicCast CExprResolveExpr;
59323
72253
 
59324
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72254
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59325
72255
 public :
59326
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59327
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72256
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72257
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59328
72258
};
59329
72259
 
 
72260
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
72261
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
72262
 *  where 1.2 is implicitely casted from float to int. */
59330
72263
 
59331
 
#line 59332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72264
#line 72265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59332
72265
} // closed Puma
 
72266
class CCExprResolve;
 
72267
class CExprResolve;
59333
72268
class WinIfExists;
59334
72269
class WinImportHandler;
59335
72270
class WinMacros;
59336
 
class CMatchSyntax;
59337
 
class ExtGnu;
 
72271
class WinAsm;
 
72272
class WinDeclSpecs;
 
72273
class WinMemberExplSpec;
 
72274
class WinTypeKeywords;
 
72275
class WinFriend;
59338
72276
class ExtAC;
59339
72277
class ExtACBuilderCoupling;
59340
72278
class ExtACSyntaxCoupling;
59341
72279
class ExtACTree;
59342
72280
class ExtACKeywords;
59343
 
class WinAsm;
59344
 
class WinDeclSpecs;
59345
 
class WinMemberExplSpec;
59346
 
class WinTypeKeywords;
 
72281
class ExtGnu;
59347
72282
class PragmaOnceUnitState;
59348
72283
class PragmaOnce;
59349
 
class CCExprResolve;
59350
 
class CExprResolve;
59351
 
namespace Puma {
59352
 
 
59353
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72284
class CMatchSyntax;
 
72285
namespace Puma {
 
72286
 
 
72287
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72288
 
 
72289
#line 72290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72290
} // closed Puma
 
72291
 
 
72292
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72293
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72294
#include "CCExprResolveH.ah"
 
72295
#endif
 
72296
namespace Puma {
 
72297
 
 
72298
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72299
 
 
72300
#line 72301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72301
} // closed Puma
 
72302
 
 
72303
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72304
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72305
#include "CExprResolveH.ah"
 
72306
#endif
 
72307
namespace Puma {
 
72308
 
 
72309
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59354
72310
class CT_ImplicitCast : public CT_Expression {
59355
 
#line 59356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72311
#line 72312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72312
  friend class ::CCExprResolve;
 
72313
  friend class ::CExprResolve;
59356
72314
  friend class ::WinIfExists;
59357
72315
  friend class ::WinImportHandler;
59358
72316
  friend class ::WinMacros;
59359
 
  friend class ::CMatchSyntax;
59360
 
  friend class ::ExtGnu;
 
72317
  friend class ::WinAsm;
 
72318
  friend class ::WinDeclSpecs;
 
72319
  friend class ::WinMemberExplSpec;
 
72320
  friend class ::WinTypeKeywords;
 
72321
  friend class ::WinFriend;
59361
72322
  friend class ::ExtAC;
59362
72323
  friend class ::ExtACBuilderCoupling;
59363
72324
  friend class ::ExtACSyntaxCoupling;
59364
72325
  friend class ::ExtACTree;
59365
72326
  friend class ::ExtACKeywords;
59366
 
  friend class ::WinAsm;
59367
 
  friend class ::WinDeclSpecs;
59368
 
  friend class ::WinMemberExplSpec;
59369
 
  friend class ::WinTypeKeywords;
 
72327
  friend class ::ExtGnu;
59370
72328
  friend class ::PragmaOnceUnitState;
59371
72329
  friend class ::PragmaOnce;
59372
 
  friend class ::CCExprResolve;
59373
 
  friend class ::CExprResolve;
 
72330
  friend class ::CMatchSyntax;
59374
72331
 
59375
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72332
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59376
72333
 
59377
72334
  CTree *_expr; // casted expression
59378
72335
 
59379
72336
public:
59380
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
72337
  /** Constructor.
 
72338
   *  \param e The expression that is implicitely casted. */
 
72339
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
72340
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59381
72341
  static const char *NodeId ();
 
72342
  /** Get the name of the node. Can be compared with NodeId(). */
59382
72343
  const char *NodeName () const { return NodeId (); }
 
72344
  /** Get the number of sons. */
59383
72345
  int Sons () const { return 1; }
 
72346
  /** Get the n-th son.
 
72347
   *  \param n The index of the son.
 
72348
   *  \return The n-th son or NULL. */
59384
72349
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
72350
  /** Get the casted expression. */
59385
72351
  CTree *Expr () const { return _expr; }
 
72352
  /** Replace a son.
 
72353
   *  \param old_son The son to replace.
 
72354
   *  \param new_son The new son. */
59386
72355
  void ReplaceSon (CTree *old_son, CTree *new_son) 
59387
 
   { if (old_son == _expr) _expr = new_son; }
 
72356
   { CTree::ReplaceSon (_expr, old_son, new_son); }
59388
72357
   private:
59389
72358
  typedef CT_ImplicitCast CCExprResolveExpr;
59390
72359
 
59391
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72360
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59392
72361
 public :
59393
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72362
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59394
72363
  typedef CT_ImplicitCast CExprResolveExpr;
59395
72364
 
59396
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72365
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59397
72366
 public :
59398
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59399
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72367
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72368
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59400
72369
};
59401
72370
 
 
72371
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
72372
 *  Tree node representing a typeid expression, e.g. typeid(X). */
59402
72373
 
59403
 
#line 59404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72374
#line 72375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59404
72375
} // closed Puma
 
72376
class CCExprResolve;
 
72377
class CExprResolve;
59405
72378
class WinIfExists;
59406
72379
class WinImportHandler;
59407
72380
class WinMacros;
59408
 
class CMatchSyntax;
59409
 
class ExtGnu;
 
72381
class WinAsm;
 
72382
class WinDeclSpecs;
 
72383
class WinMemberExplSpec;
 
72384
class WinTypeKeywords;
 
72385
class WinFriend;
59410
72386
class ExtAC;
59411
72387
class ExtACBuilderCoupling;
59412
72388
class ExtACSyntaxCoupling;
59413
72389
class ExtACTree;
59414
72390
class ExtACKeywords;
59415
 
class WinAsm;
59416
 
class WinDeclSpecs;
59417
 
class WinMemberExplSpec;
59418
 
class WinTypeKeywords;
 
72391
class ExtGnu;
59419
72392
class PragmaOnceUnitState;
59420
72393
class PragmaOnce;
59421
 
class CCExprResolve;
59422
 
class CExprResolve;
59423
 
namespace Puma {
59424
 
 
59425
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72394
class CMatchSyntax;
 
72395
namespace Puma {
 
72396
 
 
72397
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72398
 
 
72399
#line 72400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72400
} // closed Puma
 
72401
 
 
72402
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72403
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72404
#include "CCExprResolveH.ah"
 
72405
#endif
 
72406
namespace Puma {
 
72407
 
 
72408
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72409
 
 
72410
#line 72411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72411
} // closed Puma
 
72412
 
 
72413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72415
#include "CExprResolveH.ah"
 
72416
#endif
 
72417
namespace Puma {
 
72418
 
 
72419
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59426
72420
class CT_TypeidExpr : public CT_Expression {
59427
 
#line 59428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72421
#line 72422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72422
  friend class ::CCExprResolve;
 
72423
  friend class ::CExprResolve;
59428
72424
  friend class ::WinIfExists;
59429
72425
  friend class ::WinImportHandler;
59430
72426
  friend class ::WinMacros;
59431
 
  friend class ::CMatchSyntax;
59432
 
  friend class ::ExtGnu;
 
72427
  friend class ::WinAsm;
 
72428
  friend class ::WinDeclSpecs;
 
72429
  friend class ::WinMemberExplSpec;
 
72430
  friend class ::WinTypeKeywords;
 
72431
  friend class ::WinFriend;
59433
72432
  friend class ::ExtAC;
59434
72433
  friend class ::ExtACBuilderCoupling;
59435
72434
  friend class ::ExtACSyntaxCoupling;
59436
72435
  friend class ::ExtACTree;
59437
72436
  friend class ::ExtACKeywords;
59438
 
  friend class ::WinAsm;
59439
 
  friend class ::WinDeclSpecs;
59440
 
  friend class ::WinMemberExplSpec;
59441
 
  friend class ::WinTypeKeywords;
 
72437
  friend class ::ExtGnu;
59442
72438
  friend class ::PragmaOnceUnitState;
59443
72439
  friend class ::PragmaOnce;
59444
 
  friend class ::CCExprResolve;
59445
 
  friend class ::CExprResolve;
 
72440
  friend class ::CMatchSyntax;
59446
72441
 
59447
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72442
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59448
72443
 
59449
72444
  CTree *sons[4]; // typeid, open, type_id/expr, close
59450
72445
 
59451
72446
public:
 
72447
  /** Constructor.
 
72448
   *  \param tid The 'typeid' operator.
 
72449
   *  \param o The left parenthesis of the type name or expression.
 
72450
   *  \param e The expression or type name for which to get the type identifier.
 
72451
   *  \param c The right parenthesis of the type name or expression. */
59452
72452
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
59453
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
72453
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
72454
    AddSon (sons[2], e); AddSon (sons[3], c);
59454
72455
  }
 
72456
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59455
72457
  static const char *NodeId ();
 
72458
  /** Get the name of the node. Can be compared with NodeId(). */
59456
72459
  const char *NodeName () const { return NodeId (); }
 
72460
  /** Get the number of sons. */
59457
72461
  int Sons () const { return 4; }
 
72462
  /** Get the n-th son.
 
72463
   *  \param n The index of the son.
 
72464
   *  \return The n-th son or NULL. */
59458
72465
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
72466
  /** Replace a son.
 
72467
   *  \param old_son The son to replace.
 
72468
   *  \param new_son The new son. */
59459
72469
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59460
72470
    CTree::ReplaceSon (sons, 4, old_son, new_son);
59461
72471
  }
 
72472
  /** Get the typeid argument, i.e. the expression or type name for
 
72473
   *  which to get the type identifier. */
59462
72474
  CTree *Arg () const { return sons[2]; }
59463
72475
   private:
59464
72476
  typedef CT_TypeidExpr CCExprResolveExpr;
59465
72477
 
59466
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72478
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59467
72479
 public :
59468
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72480
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59469
72481
  typedef CT_TypeidExpr CExprResolveExpr;
59470
72482
 
59471
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72483
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59472
72484
 public :
59473
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59474
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72485
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72486
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59475
72487
};
59476
72488
 
 
72489
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
72490
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
59477
72491
 
59478
 
#line 59479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72492
#line 72493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59479
72493
} // closed Puma
 
72494
class CCExprResolve;
 
72495
class CExprResolve;
59480
72496
class WinIfExists;
59481
72497
class WinImportHandler;
59482
72498
class WinMacros;
59483
 
class CMatchSyntax;
59484
 
class ExtGnu;
 
72499
class WinAsm;
 
72500
class WinDeclSpecs;
 
72501
class WinMemberExplSpec;
 
72502
class WinTypeKeywords;
 
72503
class WinFriend;
59485
72504
class ExtAC;
59486
72505
class ExtACBuilderCoupling;
59487
72506
class ExtACSyntaxCoupling;
59488
72507
class ExtACTree;
59489
72508
class ExtACKeywords;
59490
 
class WinAsm;
59491
 
class WinDeclSpecs;
59492
 
class WinMemberExplSpec;
59493
 
class WinTypeKeywords;
 
72509
class ExtGnu;
59494
72510
class PragmaOnceUnitState;
59495
72511
class PragmaOnce;
59496
 
class CCExprResolve;
59497
 
class CExprResolve;
59498
 
namespace Puma {
59499
 
 
59500
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72512
class CMatchSyntax;
 
72513
namespace Puma {
 
72514
 
 
72515
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72516
 
 
72517
#line 72518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72518
} // closed Puma
 
72519
 
 
72520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72522
#include "CCExprResolveH.ah"
 
72523
#endif
 
72524
namespace Puma {
 
72525
 
 
72526
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72527
 
 
72528
#line 72529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72529
} // closed Puma
 
72530
 
 
72531
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72532
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72533
#include "CExprResolveH.ah"
 
72534
#endif
 
72535
namespace Puma {
 
72536
 
 
72537
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59501
72538
class CT_SizeofExpr : public CT_Expression {
59502
 
#line 59503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72539
#line 72540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72540
  friend class ::CCExprResolve;
 
72541
  friend class ::CExprResolve;
59503
72542
  friend class ::WinIfExists;
59504
72543
  friend class ::WinImportHandler;
59505
72544
  friend class ::WinMacros;
59506
 
  friend class ::CMatchSyntax;
59507
 
  friend class ::ExtGnu;
 
72545
  friend class ::WinAsm;
 
72546
  friend class ::WinDeclSpecs;
 
72547
  friend class ::WinMemberExplSpec;
 
72548
  friend class ::WinTypeKeywords;
 
72549
  friend class ::WinFriend;
59508
72550
  friend class ::ExtAC;
59509
72551
  friend class ::ExtACBuilderCoupling;
59510
72552
  friend class ::ExtACSyntaxCoupling;
59511
72553
  friend class ::ExtACTree;
59512
72554
  friend class ::ExtACKeywords;
59513
 
  friend class ::WinAsm;
59514
 
  friend class ::WinDeclSpecs;
59515
 
  friend class ::WinMemberExplSpec;
59516
 
  friend class ::WinTypeKeywords;
 
72555
  friend class ::ExtGnu;
59517
72556
  friend class ::PragmaOnceUnitState;
59518
72557
  friend class ::PragmaOnce;
59519
 
  friend class ::CCExprResolve;
59520
 
  friend class ::CExprResolve;
 
72558
  friend class ::CMatchSyntax;
59521
72559
 
59522
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72560
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59523
72561
 
59524
72562
  CTree *sons[5]; // key, open, type, close, expr
59525
72563
 
59526
72564
public:
 
72565
  /** Constructor.
 
72566
   *  \param k The 'sizeof' keyword.
 
72567
   *  \param o Left parenthesis around the type name.
 
72568
   *  \param t The type from which to get the size.
 
72569
   *  \param c Right parenthesis around the type name. */
59527
72570
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
59528
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
72571
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
72572
    AddSon (sons[3], c); AddSon (sons[4], 0);
59529
72573
  }
 
72574
  /** Constructor.
 
72575
   *  \param k The 'sizeof' keyword.
 
72576
   *  \param e The expression from which to get the size. */
59530
72577
  CT_SizeofExpr (CTree *k, CTree *e) {
59531
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
72578
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
72579
    AddSon (sons[3], 0); AddSon (sons[4], e);
59532
72580
  }
 
72581
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59533
72582
  static const char *NodeId ();
 
72583
  /** Get the name of the node. Can be compared with NodeId(). */
59534
72584
  const char *NodeName () const { return NodeId (); }
 
72585
  /** Get the number of sons. */
59535
72586
  int Sons () const { return CTree::Sons (sons, 5); }
 
72587
  /** Get the n-th son.
 
72588
   *  \param n The index of the son.
 
72589
   *  \return The n-th son or NULL. */
59536
72590
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
72591
  /** Replace a son.
 
72592
   *  \param old_son The son to replace.
 
72593
   *  \param new_son The new son. */
59537
72594
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59538
72595
    CTree::ReplaceSon (sons, 5, old_son, new_son);
59539
72596
  }
 
72597
  /** Get the expression. */
59540
72598
  CTree *Expr () const { return sons[4]; }
 
72599
  /** Get the type name. */
59541
72600
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
59542
72601
   private:
59543
72602
  typedef CT_SizeofExpr CCExprResolveExpr;
59544
72603
 
59545
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72604
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59546
72605
 public :
59547
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72606
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59548
72607
  typedef CT_SizeofExpr CExprResolveExpr;
59549
72608
 
59550
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72609
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59551
72610
 public :
59552
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59553
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72611
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72612
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59554
72613
};
59555
72614
 
 
72615
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
72616
 *  Tree node representing an index designator, i.e. [1]. */
59556
72617
 
59557
 
#line 59558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72618
#line 72619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59558
72619
} // closed Puma
 
72620
class CCExprResolve;
 
72621
class CExprResolve;
59559
72622
class WinIfExists;
59560
72623
class WinImportHandler;
59561
72624
class WinMacros;
59562
 
class CMatchSyntax;
59563
 
class ExtGnu;
 
72625
class WinAsm;
 
72626
class WinDeclSpecs;
 
72627
class WinMemberExplSpec;
 
72628
class WinTypeKeywords;
 
72629
class WinFriend;
59564
72630
class ExtAC;
59565
72631
class ExtACBuilderCoupling;
59566
72632
class ExtACSyntaxCoupling;
59567
72633
class ExtACTree;
59568
72634
class ExtACKeywords;
59569
 
class WinAsm;
59570
 
class WinDeclSpecs;
59571
 
class WinMemberExplSpec;
59572
 
class WinTypeKeywords;
 
72635
class ExtGnu;
59573
72636
class PragmaOnceUnitState;
59574
72637
class PragmaOnce;
59575
 
class CCExprResolve;
59576
 
class CExprResolve;
59577
 
namespace Puma {
59578
 
 
59579
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72638
class CMatchSyntax;
 
72639
namespace Puma {
 
72640
 
 
72641
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72642
 
 
72643
#line 72644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72644
} // closed Puma
 
72645
 
 
72646
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72647
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72648
#include "CCExprResolveH.ah"
 
72649
#endif
 
72650
namespace Puma {
 
72651
 
 
72652
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72653
 
 
72654
#line 72655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72655
} // closed Puma
 
72656
 
 
72657
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72658
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72659
#include "CExprResolveH.ah"
 
72660
#endif
 
72661
namespace Puma {
 
72662
 
 
72663
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59580
72664
class CT_IndexDesignator : public CT_Expression {
59581
 
#line 59582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72665
#line 72666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72666
  friend class ::CCExprResolve;
 
72667
  friend class ::CExprResolve;
59582
72668
  friend class ::WinIfExists;
59583
72669
  friend class ::WinImportHandler;
59584
72670
  friend class ::WinMacros;
59585
 
  friend class ::CMatchSyntax;
59586
 
  friend class ::ExtGnu;
 
72671
  friend class ::WinAsm;
 
72672
  friend class ::WinDeclSpecs;
 
72673
  friend class ::WinMemberExplSpec;
 
72674
  friend class ::WinTypeKeywords;
 
72675
  friend class ::WinFriend;
59587
72676
  friend class ::ExtAC;
59588
72677
  friend class ::ExtACBuilderCoupling;
59589
72678
  friend class ::ExtACSyntaxCoupling;
59590
72679
  friend class ::ExtACTree;
59591
72680
  friend class ::ExtACKeywords;
59592
 
  friend class ::WinAsm;
59593
 
  friend class ::WinDeclSpecs;
59594
 
  friend class ::WinMemberExplSpec;
59595
 
  friend class ::WinTypeKeywords;
 
72681
  friend class ::ExtGnu;
59596
72682
  friend class ::PragmaOnceUnitState;
59597
72683
  friend class ::PragmaOnce;
59598
 
  friend class ::CCExprResolve;
59599
 
  friend class ::CExprResolve;
 
72684
  friend class ::CMatchSyntax;
59600
72685
 
59601
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72686
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59602
72687
 
59603
72688
  CTree *sons[3]; // open, index, close
59604
72689
 
59605
72690
public:
 
72691
  /** Constructor.
 
72692
   *  \param o Left bracket of the index designator.
 
72693
   *  \param i The index expression.
 
72694
   *  \param c Right bracket of the index designator. */
59606
72695
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
59607
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
72696
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
59608
72697
  }
 
72698
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59609
72699
  static const char *NodeId ();
 
72700
  /** Get the name of the node. Can be compared with NodeId(). */
59610
72701
  const char *NodeName () const { return NodeId (); }
 
72702
  /** Get the number of sons. */
59611
72703
  int Sons () const { return 3; }
 
72704
  /** Get the n-th son.
 
72705
   *  \param n The index of the son.
 
72706
   *  \return The n-th son or NULL. */
59612
72707
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
72708
  /** Replace a son.
 
72709
   *  \param old_son The son to replace.
 
72710
   *  \param new_son The new son. */
59613
72711
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59614
72712
    CTree::ReplaceSon (sons, 3, old_son, new_son);
59615
72713
  }
59616
72714
   private:
59617
72715
  typedef CT_IndexDesignator CCExprResolveExpr;
59618
72716
 
59619
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72717
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59620
72718
 public :
59621
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72719
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59622
72720
  typedef CT_IndexDesignator CExprResolveExpr;
59623
72721
 
59624
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72722
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59625
72723
 public :
59626
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59627
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72724
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72725
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59628
72726
};
59629
72727
 
 
72728
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
72729
 *  Tree node representing a member designator, e.g. .a. */
59630
72730
 
59631
 
#line 59632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72731
#line 72732 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59632
72732
} // closed Puma
 
72733
class CCExprResolve;
 
72734
class CExprResolve;
59633
72735
class WinIfExists;
59634
72736
class WinImportHandler;
59635
72737
class WinMacros;
59636
 
class CMatchSyntax;
59637
 
class ExtGnu;
 
72738
class WinAsm;
 
72739
class WinDeclSpecs;
 
72740
class WinMemberExplSpec;
 
72741
class WinTypeKeywords;
 
72742
class WinFriend;
59638
72743
class ExtAC;
59639
72744
class ExtACBuilderCoupling;
59640
72745
class ExtACSyntaxCoupling;
59641
72746
class ExtACTree;
59642
72747
class ExtACKeywords;
59643
 
class WinAsm;
59644
 
class WinDeclSpecs;
59645
 
class WinMemberExplSpec;
59646
 
class WinTypeKeywords;
 
72748
class ExtGnu;
59647
72749
class PragmaOnceUnitState;
59648
72750
class PragmaOnce;
59649
 
class CCExprResolve;
59650
 
class CExprResolve;
59651
 
namespace Puma {
59652
 
 
59653
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72751
class CMatchSyntax;
 
72752
namespace Puma {
 
72753
 
 
72754
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72755
 
 
72756
#line 72757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72757
} // closed Puma
 
72758
 
 
72759
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72760
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72761
#include "CCExprResolveH.ah"
 
72762
#endif
 
72763
namespace Puma {
 
72764
 
 
72765
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72766
 
 
72767
#line 72768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72768
} // closed Puma
 
72769
 
 
72770
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72771
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72772
#include "CExprResolveH.ah"
 
72773
#endif
 
72774
namespace Puma {
 
72775
 
 
72776
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59654
72777
class CT_MembDesignator : public CT_Expression {
59655
 
#line 59656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72778
#line 72779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72779
  friend class ::CCExprResolve;
 
72780
  friend class ::CExprResolve;
59656
72781
  friend class ::WinIfExists;
59657
72782
  friend class ::WinImportHandler;
59658
72783
  friend class ::WinMacros;
59659
 
  friend class ::CMatchSyntax;
59660
 
  friend class ::ExtGnu;
 
72784
  friend class ::WinAsm;
 
72785
  friend class ::WinDeclSpecs;
 
72786
  friend class ::WinMemberExplSpec;
 
72787
  friend class ::WinTypeKeywords;
 
72788
  friend class ::WinFriend;
59661
72789
  friend class ::ExtAC;
59662
72790
  friend class ::ExtACBuilderCoupling;
59663
72791
  friend class ::ExtACSyntaxCoupling;
59664
72792
  friend class ::ExtACTree;
59665
72793
  friend class ::ExtACKeywords;
59666
 
  friend class ::WinAsm;
59667
 
  friend class ::WinDeclSpecs;
59668
 
  friend class ::WinMemberExplSpec;
59669
 
  friend class ::WinTypeKeywords;
 
72794
  friend class ::ExtGnu;
59670
72795
  friend class ::PragmaOnceUnitState;
59671
72796
  friend class ::PragmaOnce;
59672
 
  friend class ::CCExprResolve;
59673
 
  friend class ::CExprResolve;
 
72797
  friend class ::CMatchSyntax;
59674
72798
 
59675
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72799
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59676
72800
 
59677
72801
  CTree *sons[2]; // dot, member
59678
72802
 
59679
72803
public:
59680
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
72804
  /** Constructor.
 
72805
   *  \param d The dot before the member name.
 
72806
   *  \param m The member name. */
 
72807
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
72808
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59681
72809
  static const char *NodeId ();
 
72810
  /** Get the name of the node. Can be compared with NodeId(). */
59682
72811
  const char *NodeName () const { return NodeId (); }
 
72812
  /** Get the number of sons. */
59683
72813
  int Sons () const { return 2; }
 
72814
  /** Get the n-th son.
 
72815
   *  \param n The index of the son.
 
72816
   *  \return The n-th son or NULL. */
59684
72817
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
72818
  /** Replace a son.
 
72819
   *  \param old_son The son to replace.
 
72820
   *  \param new_son The new son. */
59685
72821
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59686
72822
    CTree::ReplaceSon (sons, 2, old_son, new_son);
59687
72823
  }
59688
72824
   private:
59689
72825
  typedef CT_MembDesignator CCExprResolveExpr;
59690
72826
 
59691
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72827
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59692
72828
 public :
59693
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72829
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59694
72830
  typedef CT_MembDesignator CExprResolveExpr;
59695
72831
 
59696
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72832
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59697
72833
 public :
59698
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59699
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72834
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72835
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59700
72836
};
59701
72837
 
 
72838
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
72839
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
59702
72840
 
59703
 
#line 59704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72841
#line 72842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59704
72842
} // closed Puma
 
72843
class CCExprResolve;
 
72844
class CExprResolve;
59705
72845
class WinIfExists;
59706
72846
class WinImportHandler;
59707
72847
class WinMacros;
59708
 
class CMatchSyntax;
59709
 
class ExtGnu;
 
72848
class WinAsm;
 
72849
class WinDeclSpecs;
 
72850
class WinMemberExplSpec;
 
72851
class WinTypeKeywords;
 
72852
class WinFriend;
59710
72853
class ExtAC;
59711
72854
class ExtACBuilderCoupling;
59712
72855
class ExtACSyntaxCoupling;
59713
72856
class ExtACTree;
59714
72857
class ExtACKeywords;
59715
 
class WinAsm;
59716
 
class WinDeclSpecs;
59717
 
class WinMemberExplSpec;
59718
 
class WinTypeKeywords;
 
72858
class ExtGnu;
59719
72859
class PragmaOnceUnitState;
59720
72860
class PragmaOnce;
59721
 
class CCExprResolve;
59722
 
class CExprResolve;
 
72861
class CMatchSyntax;
59723
72862
namespace Puma {
59724
72863
 
59725
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72864
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59726
72865
class CT_DesignatorSeq : public CT_List, public CSemValue {
59727
 
#line 59728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72866
#line 72867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72867
  friend class ::CCExprResolve;
 
72868
  friend class ::CExprResolve;
59728
72869
  friend class ::WinIfExists;
59729
72870
  friend class ::WinImportHandler;
59730
72871
  friend class ::WinMacros;
59731
 
  friend class ::CMatchSyntax;
59732
 
  friend class ::ExtGnu;
 
72872
  friend class ::WinAsm;
 
72873
  friend class ::WinDeclSpecs;
 
72874
  friend class ::WinMemberExplSpec;
 
72875
  friend class ::WinTypeKeywords;
 
72876
  friend class ::WinFriend;
59733
72877
  friend class ::ExtAC;
59734
72878
  friend class ::ExtACBuilderCoupling;
59735
72879
  friend class ::ExtACSyntaxCoupling;
59736
72880
  friend class ::ExtACTree;
59737
72881
  friend class ::ExtACKeywords;
59738
 
  friend class ::WinAsm;
59739
 
  friend class ::WinDeclSpecs;
59740
 
  friend class ::WinMemberExplSpec;
59741
 
  friend class ::WinTypeKeywords;
 
72882
  friend class ::ExtGnu;
59742
72883
  friend class ::PragmaOnceUnitState;
59743
72884
  friend class ::PragmaOnce;
59744
 
  friend class ::CCExprResolve;
59745
 
  friend class ::CExprResolve;
 
72885
  friend class ::CMatchSyntax;
59746
72886
 
59747
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72887
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59748
72888
 
59749
72889
public:
 
72890
  /** Constructor.
 
72891
   *  \param size Initial number of designators. */
59750
72892
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
72893
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59751
72894
  static const char *NodeId ();
 
72895
  /** Get the name of the node. Can be compared with NodeId(). */
59752
72896
  const char *NodeName () const { return NodeId (); }
59753
72897
 
 
72898
  /** Get the type of the entity to initialize. */
59754
72899
  CTypeInfo *Type () const { return type; }
 
72900
  /** Get the value of the entity to initialize. */
59755
72901
  CExprValue *Value () const { return value; }
 
72902
  /** Get the semantic value object. */
59756
72903
  CSemValue *SemValue () const { return (CSemValue*)this; }
59757
72904
};
59758
72905
 
59762
72909
/*                                                                           */
59763
72910
/*****************************************************************************/
59764
72911
 
 
72912
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
72913
 *  Base class for all tree nodes representing declaration specifiers. */
59765
72914
 
59766
 
#line 59767 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72915
#line 72916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59767
72916
} // closed Puma
 
72917
class CCExprResolve;
 
72918
class CExprResolve;
59768
72919
class WinIfExists;
59769
72920
class WinImportHandler;
59770
72921
class WinMacros;
59771
 
class CMatchSyntax;
59772
 
class ExtGnu;
 
72922
class WinAsm;
 
72923
class WinDeclSpecs;
 
72924
class WinMemberExplSpec;
 
72925
class WinTypeKeywords;
 
72926
class WinFriend;
59773
72927
class ExtAC;
59774
72928
class ExtACBuilderCoupling;
59775
72929
class ExtACSyntaxCoupling;
59776
72930
class ExtACTree;
59777
72931
class ExtACKeywords;
59778
 
class WinAsm;
59779
 
class WinDeclSpecs;
59780
 
class WinMemberExplSpec;
59781
 
class WinTypeKeywords;
 
72932
class ExtGnu;
59782
72933
class PragmaOnceUnitState;
59783
72934
class PragmaOnce;
59784
 
class CCExprResolve;
59785
 
class CExprResolve;
 
72935
class CMatchSyntax;
59786
72936
namespace Puma {
59787
72937
 
59788
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72938
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59789
72939
class CT_DeclSpec : public CTree {
59790
 
#line 59791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72940
#line 72941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72941
  friend class ::CCExprResolve;
 
72942
  friend class ::CExprResolve;
59791
72943
  friend class ::WinIfExists;
59792
72944
  friend class ::WinImportHandler;
59793
72945
  friend class ::WinMacros;
59794
 
  friend class ::CMatchSyntax;
59795
 
  friend class ::ExtGnu;
 
72946
  friend class ::WinAsm;
 
72947
  friend class ::WinDeclSpecs;
 
72948
  friend class ::WinMemberExplSpec;
 
72949
  friend class ::WinTypeKeywords;
 
72950
  friend class ::WinFriend;
59796
72951
  friend class ::ExtAC;
59797
72952
  friend class ::ExtACBuilderCoupling;
59798
72953
  friend class ::ExtACSyntaxCoupling;
59799
72954
  friend class ::ExtACTree;
59800
72955
  friend class ::ExtACKeywords;
59801
 
  friend class ::WinAsm;
59802
 
  friend class ::WinDeclSpecs;
59803
 
  friend class ::WinMemberExplSpec;
59804
 
  friend class ::WinTypeKeywords;
 
72956
  friend class ::ExtGnu;
59805
72957
  friend class ::PragmaOnceUnitState;
59806
72958
  friend class ::PragmaOnce;
59807
 
  friend class ::CCExprResolve;
59808
 
  friend class ::CExprResolve;
 
72959
  friend class ::CMatchSyntax;
59809
72960
 
59810
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72961
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59811
72962
 
59812
72963
protected:
 
72964
  /** Constructor. */
59813
72965
  CT_DeclSpec () {}
59814
72966
};
59815
72967
 
 
72968
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
72969
 *  Tree node representing a primitive declaration specifier. */
59816
72970
 
59817
 
#line 59818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72971
#line 72972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59818
72972
} // closed Puma
 
72973
class CCExprResolve;
 
72974
class CExprResolve;
59819
72975
class WinIfExists;
59820
72976
class WinImportHandler;
59821
72977
class WinMacros;
59822
 
class CMatchSyntax;
59823
 
class ExtGnu;
 
72978
class WinAsm;
 
72979
class WinDeclSpecs;
 
72980
class WinMemberExplSpec;
 
72981
class WinTypeKeywords;
 
72982
class WinFriend;
59824
72983
class ExtAC;
59825
72984
class ExtACBuilderCoupling;
59826
72985
class ExtACSyntaxCoupling;
59827
72986
class ExtACTree;
59828
72987
class ExtACKeywords;
59829
 
class WinAsm;
59830
 
class WinDeclSpecs;
59831
 
class WinMemberExplSpec;
59832
 
class WinTypeKeywords;
 
72988
class ExtGnu;
59833
72989
class PragmaOnceUnitState;
59834
72990
class PragmaOnce;
59835
 
class CCExprResolve;
59836
 
class CExprResolve;
 
72991
class CMatchSyntax;
59837
72992
namespace Puma {
59838
72993
 
59839
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72994
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59840
72995
class CT_PrimDeclSpec : public CT_DeclSpec {
59841
 
#line 59842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
72996
#line 72997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
72997
  friend class ::CCExprResolve;
 
72998
  friend class ::CExprResolve;
59842
72999
  friend class ::WinIfExists;
59843
73000
  friend class ::WinImportHandler;
59844
73001
  friend class ::WinMacros;
59845
 
  friend class ::CMatchSyntax;
59846
 
  friend class ::ExtGnu;
 
73002
  friend class ::WinAsm;
 
73003
  friend class ::WinDeclSpecs;
 
73004
  friend class ::WinMemberExplSpec;
 
73005
  friend class ::WinTypeKeywords;
 
73006
  friend class ::WinFriend;
59847
73007
  friend class ::ExtAC;
59848
73008
  friend class ::ExtACBuilderCoupling;
59849
73009
  friend class ::ExtACSyntaxCoupling;
59850
73010
  friend class ::ExtACTree;
59851
73011
  friend class ::ExtACKeywords;
59852
 
  friend class ::WinAsm;
59853
 
  friend class ::WinDeclSpecs;
59854
 
  friend class ::WinMemberExplSpec;
59855
 
  friend class ::WinTypeKeywords;
 
73012
  friend class ::ExtGnu;
59856
73013
  friend class ::PragmaOnceUnitState;
59857
73014
  friend class ::PragmaOnce;
59858
 
  friend class ::CCExprResolve;
59859
 
  friend class ::CExprResolve;
 
73015
  friend class ::CMatchSyntax;
59860
73016
 
59861
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73017
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59862
73018
 
59863
73019
public:
59864
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
59865
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
59866
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
59867
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
59868
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
59869
 
              // AspectC++ specific type specifier
59870
 
              PDS_UNKNOWN_T,
59871
 
              // Win specific declaration specifiers
59872
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
59873
 
              PDS_UNKNOWN, PDS_NUM };
 
73020
  /** Declaration specifier types. */
 
73021
  enum Type { 
 
73022
    PDS_FRIEND,    /** friend */
 
73023
    PDS_TYPEDEF,   /** typedef */
 
73024
    PDS_AUTO,      /** auto */
 
73025
    PDS_REGISTER,  /** register */
 
73026
    PDS_STATIC,    /** static */
 
73027
    PDS_EXTERN,    /** extern */
 
73028
    PDS_MUTABLE,   /** mutable */
 
73029
    PDS_INLINE,    /** inline */
 
73030
    PDS_VIRTUAL,   /** virtual */
 
73031
    PDS_EXPLICIT,  /** explicit */
 
73032
    PDS_CONST,     /** const */
 
73033
    PDS_VOLATILE,  /** volatile */
 
73034
    PDS_RESTRICT,  /** restrict */
 
73035
    PDS_CHAR,      /** char */
 
73036
    PDS_WCHAR_T,   /** wchar_t */
 
73037
    PDS_BOOL,      /** bool */
 
73038
    PDS_SHORT,     /** short */
 
73039
    PDS_INT,       /** int */
 
73040
    PDS_LONG,      /** long */
 
73041
    PDS_SIGNED,    /** signed */
 
73042
    PDS_UNSIGNED,  /** unsigned */
 
73043
    PDS_FLOAT,     /** float */
 
73044
    PDS_DOUBLE,    /** double */
 
73045
    PDS_VOID,      /** void */
 
73046
    // AspectC++ specific type specifier
 
73047
    PDS_UNKNOWN_T, /** unknown_t */
 
73048
    // Win specific declaration specifiers
 
73049
    PDS_CDECL,     /** __cdecl */
 
73050
    PDS_STDCALL,   /** __stdcall */
 
73051
    PDS_FASTCALL,  /** __fastcall */
 
73052
    PDS_INT64,     /** __int64 */
 
73053
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
73054
    PDS_NUM        /** Number of declaration specifier types. */
 
73055
  };
59874
73056
 
59875
73057
private:
59876
73058
  Type _type;
59877
 
  CT_Token *_token;
 
73059
  CTree *_token; // has to be a CT_Token
59878
73060
 
59879
73061
  void determine_type ();
59880
73062
 
59881
73063
public:
59882
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
73064
  /** Constructor.
 
73065
   *  \param t The token containing the declaration specifier. */
 
73066
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
73067
  /** Constructor.
 
73068
   *  \param t The declaration specifier type. */
59883
73069
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
73070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59884
73071
  static const char *NodeId ();
 
73072
  /** Get the name of the node. Can be compared with NodeId(). */
59885
73073
  const char *NodeName () const { return NodeId (); }
 
73074
  /** Get the number of sons. */
59886
73075
  int Sons () const { return _token ? 1 : 0; }
 
73076
  /** Get the n-th son.
 
73077
   *  \param n The index of the son.
 
73078
   *  \return The n-th son or NULL. */
59887
73079
  CTree *Son (int n) const 
59888
73080
   { return (n == 0) ? _token : (CTree*)0; }
 
73081
  /** Get the textual representation of the declaration specifier.
 
73082
   *  \return The string representation or " ". */
59889
73083
  const char *SpecText () const 
59890
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
73084
   { return _token ? _token->token ()->text () : " "; }
 
73085
  /** Get the declaration specifier type. */
59891
73086
  Type SpecType () const { return _type; }
 
73087
  /** Number of declaration specifier types. */
59892
73088
  static const int NumTypes = PDS_NUM;
 
73089
  /** Replace a son.
 
73090
   *  \param old_son The son to replace.
 
73091
   *  \param new_son The new son. */
 
73092
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
73093
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
73094
    determine_type ();
 
73095
  }
59893
73096
};
59894
73097
 
 
73098
/** \class CT_NamedType CTree.h Puma/CTree.h
 
73099
 *  Tree node representing a named type, e.g. (int*)a. 
 
73100
 *  where int* is a type with a generated name. */
59895
73101
 
59896
 
#line 59897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73102
#line 73103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59897
73103
} // closed Puma
 
73104
class CCExprResolve;
 
73105
class CExprResolve;
59898
73106
class WinIfExists;
59899
73107
class WinImportHandler;
59900
73108
class WinMacros;
59901
 
class CMatchSyntax;
59902
 
class ExtGnu;
 
73109
class WinAsm;
 
73110
class WinDeclSpecs;
 
73111
class WinMemberExplSpec;
 
73112
class WinTypeKeywords;
 
73113
class WinFriend;
59903
73114
class ExtAC;
59904
73115
class ExtACBuilderCoupling;
59905
73116
class ExtACSyntaxCoupling;
59906
73117
class ExtACTree;
59907
73118
class ExtACKeywords;
59908
 
class WinAsm;
59909
 
class WinDeclSpecs;
59910
 
class WinMemberExplSpec;
59911
 
class WinTypeKeywords;
 
73119
class ExtGnu;
59912
73120
class PragmaOnceUnitState;
59913
73121
class PragmaOnce;
59914
 
class CCExprResolve;
59915
 
class CExprResolve;
 
73122
class CMatchSyntax;
59916
73123
namespace Puma {
59917
73124
 
59918
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73125
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59919
73126
class CT_NamedType : public CT_DeclSpec, public CSemObject {
59920
 
#line 59921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73127
#line 73128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73128
  friend class ::CCExprResolve;
 
73129
  friend class ::CExprResolve;
59921
73130
  friend class ::WinIfExists;
59922
73131
  friend class ::WinImportHandler;
59923
73132
  friend class ::WinMacros;
59924
 
  friend class ::CMatchSyntax;
59925
 
  friend class ::ExtGnu;
 
73133
  friend class ::WinAsm;
 
73134
  friend class ::WinDeclSpecs;
 
73135
  friend class ::WinMemberExplSpec;
 
73136
  friend class ::WinTypeKeywords;
 
73137
  friend class ::WinFriend;
59926
73138
  friend class ::ExtAC;
59927
73139
  friend class ::ExtACBuilderCoupling;
59928
73140
  friend class ::ExtACSyntaxCoupling;
59929
73141
  friend class ::ExtACTree;
59930
73142
  friend class ::ExtACKeywords;
59931
 
  friend class ::WinAsm;
59932
 
  friend class ::WinDeclSpecs;
59933
 
  friend class ::WinMemberExplSpec;
59934
 
  friend class ::WinTypeKeywords;
 
73143
  friend class ::ExtGnu;
59935
73144
  friend class ::PragmaOnceUnitState;
59936
73145
  friend class ::PragmaOnce;
59937
 
  friend class ::CCExprResolve;
59938
 
  friend class ::CExprResolve;
 
73146
  friend class ::CMatchSyntax;
59939
73147
 
59940
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73148
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59941
73149
 
59942
73150
  CTree *sons[2]; // declspecs, declarator
59943
73151
 
59944
73152
public:
59945
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
73153
  /** Constructor.
 
73154
   *  \param dss The declaration specifier sequence of the type.
 
73155
   *  \param d The type declarator. */
 
73156
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
73157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59946
73158
  static const char *NodeId ();
 
73159
  /** Get the name of the node. Can be compared with NodeId(). */
59947
73160
  const char *NodeName () const { return NodeId (); }
 
73161
  /** Get the number of sons. */
59948
73162
  int Sons () const { return CTree::Sons (sons, 2); }
 
73163
  /** Get the n-th son.
 
73164
   *  \param n The index of the son.
 
73165
   *  \return The n-th son or NULL. */
59949
73166
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
73167
  /** Get the declarator. */
59950
73168
  CTree *Declarator () const { return sons[1]; }
 
73169
  /** Replace a son.
 
73170
   *  \param old_son The son to replace.
 
73171
   *  \param new_son The new son. */
59951
73172
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
59952
73173
    CTree::ReplaceSon (sons, 2, old_son, new_son);
59953
73174
  }
 
73175
  /** Get the semantic information object. */
59954
73176
  CSemObject *SemObject () const { return (CSemObject*)this; }
59955
73177
};
59956
73178
      
 
73179
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
73180
 *  Tree node representing a class specifier, e.g. class X. */
59957
73181
 
59958
 
#line 59959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73182
#line 73183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
59959
73183
} // closed Puma
 
73184
class CCExprResolve;
 
73185
class CExprResolve;
59960
73186
class WinIfExists;
59961
73187
class WinImportHandler;
59962
73188
class WinMacros;
59963
 
class CMatchSyntax;
59964
 
class ExtGnu;
 
73189
class WinAsm;
 
73190
class WinDeclSpecs;
 
73191
class WinMemberExplSpec;
 
73192
class WinTypeKeywords;
 
73193
class WinFriend;
59965
73194
class ExtAC;
59966
73195
class ExtACBuilderCoupling;
59967
73196
class ExtACSyntaxCoupling;
59968
73197
class ExtACTree;
59969
73198
class ExtACKeywords;
59970
 
class WinAsm;
59971
 
class WinDeclSpecs;
59972
 
class WinMemberExplSpec;
59973
 
class WinTypeKeywords;
 
73199
class ExtGnu;
59974
73200
class PragmaOnceUnitState;
59975
73201
class PragmaOnce;
59976
 
class CCExprResolve;
59977
 
class CExprResolve;
 
73202
class CMatchSyntax;
59978
73203
namespace Puma {
59979
73204
 
59980
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73205
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59981
73206
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
59982
 
#line 59983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73207
#line 73208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73208
  friend class ::CCExprResolve;
 
73209
  friend class ::CExprResolve;
59983
73210
  friend class ::WinIfExists;
59984
73211
  friend class ::WinImportHandler;
59985
73212
  friend class ::WinMacros;
59986
 
  friend class ::CMatchSyntax;
59987
 
  friend class ::ExtGnu;
 
73213
  friend class ::WinAsm;
 
73214
  friend class ::WinDeclSpecs;
 
73215
  friend class ::WinMemberExplSpec;
 
73216
  friend class ::WinTypeKeywords;
 
73217
  friend class ::WinFriend;
59988
73218
  friend class ::ExtAC;
59989
73219
  friend class ::ExtACBuilderCoupling;
59990
73220
  friend class ::ExtACSyntaxCoupling;
59991
73221
  friend class ::ExtACTree;
59992
73222
  friend class ::ExtACKeywords;
59993
 
  friend class ::WinAsm;
59994
 
  friend class ::WinDeclSpecs;
59995
 
  friend class ::WinMemberExplSpec;
59996
 
  friend class ::WinTypeKeywords;
 
73223
  friend class ::ExtGnu;
59997
73224
  friend class ::PragmaOnceUnitState;
59998
73225
  friend class ::PragmaOnce;
59999
 
  friend class ::CCExprResolve;
60000
 
  friend class ::CExprResolve;
 
73226
  friend class ::CMatchSyntax;
60001
73227
 
60002
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73228
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60003
73229
 
60004
73230
  CTree *sons[2]; // key, name
60005
73231
  
60006
73232
public:
60007
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
73233
  /** Constructor.
 
73234
   *  \param k The 'class' or 'struct' keyword.
 
73235
   *  \param n The class name. */
 
73236
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
73237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60008
73238
  static const char *NodeId ();
 
73239
  /** Get the name of the node. Can be compared with NodeId(). */
60009
73240
  const char *NodeName () const { return NodeId (); }
 
73241
  /** Get the number of sons. */
60010
73242
  int Sons () const { return 2; }
 
73243
  /** Get the n-th son.
 
73244
   *  \param n The index of the son.
 
73245
   *  \return The n-th son or NULL. */
60011
73246
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
73247
  /** Get the class name. */
60012
73248
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
73249
  /** Get the semantic information object. */
60013
73250
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
73251
  /** Replace a son.
 
73252
   *  \param old_son The son to replace.
 
73253
   *  \param new_son The new son. */
60014
73254
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60015
73255
    CTree::ReplaceSon (sons, 2, old_son, new_son);
60016
73256
  }
60017
73257
};
60018
73258
 
 
73259
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
73260
 *  Tree node representing a union specifier, e.g. union X. */
60019
73261
 
60020
 
#line 60021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73262
#line 73263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60021
73263
} // closed Puma
 
73264
class CCExprResolve;
 
73265
class CExprResolve;
60022
73266
class WinIfExists;
60023
73267
class WinImportHandler;
60024
73268
class WinMacros;
60025
 
class CMatchSyntax;
60026
 
class ExtGnu;
 
73269
class WinAsm;
 
73270
class WinDeclSpecs;
 
73271
class WinMemberExplSpec;
 
73272
class WinTypeKeywords;
 
73273
class WinFriend;
60027
73274
class ExtAC;
60028
73275
class ExtACBuilderCoupling;
60029
73276
class ExtACSyntaxCoupling;
60030
73277
class ExtACTree;
60031
73278
class ExtACKeywords;
60032
 
class WinAsm;
60033
 
class WinDeclSpecs;
60034
 
class WinMemberExplSpec;
60035
 
class WinTypeKeywords;
 
73279
class ExtGnu;
60036
73280
class PragmaOnceUnitState;
60037
73281
class PragmaOnce;
60038
 
class CCExprResolve;
60039
 
class CExprResolve;
 
73282
class CMatchSyntax;
60040
73283
namespace Puma {
60041
73284
 
60042
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73285
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60043
73286
class CT_UnionSpec : public CT_ClassSpec {
60044
 
#line 60045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73287
#line 73288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73288
  friend class ::CCExprResolve;
 
73289
  friend class ::CExprResolve;
60045
73290
  friend class ::WinIfExists;
60046
73291
  friend class ::WinImportHandler;
60047
73292
  friend class ::WinMacros;
60048
 
  friend class ::CMatchSyntax;
60049
 
  friend class ::ExtGnu;
 
73293
  friend class ::WinAsm;
 
73294
  friend class ::WinDeclSpecs;
 
73295
  friend class ::WinMemberExplSpec;
 
73296
  friend class ::WinTypeKeywords;
 
73297
  friend class ::WinFriend;
60050
73298
  friend class ::ExtAC;
60051
73299
  friend class ::ExtACBuilderCoupling;
60052
73300
  friend class ::ExtACSyntaxCoupling;
60053
73301
  friend class ::ExtACTree;
60054
73302
  friend class ::ExtACKeywords;
60055
 
  friend class ::WinAsm;
60056
 
  friend class ::WinDeclSpecs;
60057
 
  friend class ::WinMemberExplSpec;
60058
 
  friend class ::WinTypeKeywords;
 
73303
  friend class ::ExtGnu;
60059
73304
  friend class ::PragmaOnceUnitState;
60060
73305
  friend class ::PragmaOnce;
60061
 
  friend class ::CCExprResolve;
60062
 
  friend class ::CExprResolve;
 
73306
  friend class ::CMatchSyntax;
60063
73307
 
60064
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73308
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60065
73309
 
60066
73310
public:
 
73311
  /** Constructor.
 
73312
   *  \param k The 'union' keyword.
 
73313
   *  \param n The name of the union. */
60067
73314
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
73315
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60068
73316
  static const char *NodeId ();
 
73317
  /** Get the name of the node. Can be compared with NodeId(). */
60069
73318
  const char *NodeName () const { return NodeId (); }
60070
73319
};
60071
73320
 
 
73321
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
73322
 *  Tree node representing an enumeration specifier, e.g. enum X. */
60072
73323
 
60073
 
#line 60074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73324
#line 73325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60074
73325
} // closed Puma
 
73326
class CCExprResolve;
 
73327
class CExprResolve;
60075
73328
class WinIfExists;
60076
73329
class WinImportHandler;
60077
73330
class WinMacros;
60078
 
class CMatchSyntax;
60079
 
class ExtGnu;
 
73331
class WinAsm;
 
73332
class WinDeclSpecs;
 
73333
class WinMemberExplSpec;
 
73334
class WinTypeKeywords;
 
73335
class WinFriend;
60080
73336
class ExtAC;
60081
73337
class ExtACBuilderCoupling;
60082
73338
class ExtACSyntaxCoupling;
60083
73339
class ExtACTree;
60084
73340
class ExtACKeywords;
60085
 
class WinAsm;
60086
 
class WinDeclSpecs;
60087
 
class WinMemberExplSpec;
60088
 
class WinTypeKeywords;
 
73341
class ExtGnu;
60089
73342
class PragmaOnceUnitState;
60090
73343
class PragmaOnce;
60091
 
class CCExprResolve;
60092
 
class CExprResolve;
 
73344
class CMatchSyntax;
60093
73345
namespace Puma {
60094
73346
 
60095
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73347
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60096
73348
class CT_EnumSpec : public CT_ClassSpec {
60097
 
#line 60098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73349
#line 73350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73350
  friend class ::CCExprResolve;
 
73351
  friend class ::CExprResolve;
60098
73352
  friend class ::WinIfExists;
60099
73353
  friend class ::WinImportHandler;
60100
73354
  friend class ::WinMacros;
60101
 
  friend class ::CMatchSyntax;
60102
 
  friend class ::ExtGnu;
 
73355
  friend class ::WinAsm;
 
73356
  friend class ::WinDeclSpecs;
 
73357
  friend class ::WinMemberExplSpec;
 
73358
  friend class ::WinTypeKeywords;
 
73359
  friend class ::WinFriend;
60103
73360
  friend class ::ExtAC;
60104
73361
  friend class ::ExtACBuilderCoupling;
60105
73362
  friend class ::ExtACSyntaxCoupling;
60106
73363
  friend class ::ExtACTree;
60107
73364
  friend class ::ExtACKeywords;
60108
 
  friend class ::WinAsm;
60109
 
  friend class ::WinDeclSpecs;
60110
 
  friend class ::WinMemberExplSpec;
60111
 
  friend class ::WinTypeKeywords;
 
73365
  friend class ::ExtGnu;
60112
73366
  friend class ::PragmaOnceUnitState;
60113
73367
  friend class ::PragmaOnce;
60114
 
  friend class ::CCExprResolve;
60115
 
  friend class ::CExprResolve;
 
73368
  friend class ::CMatchSyntax;
60116
73369
 
60117
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73370
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60118
73371
 
60119
73372
public:
 
73373
  /** Constructor.
 
73374
   *  \param k The 'enum' keyword. 
 
73375
   *  \param n The name of the enumeration. */
60120
73376
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
73377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60121
73378
  static const char *NodeId ();
 
73379
  /** Get the name of the node. Can be compared with NodeId(). */
60122
73380
  const char *NodeName () const { return NodeId (); }
60123
73381
};
60124
73382
 
 
73383
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
73384
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
60125
73385
 
60126
 
#line 60127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73386
#line 73387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60127
73387
} // closed Puma
 
73388
class CCExprResolve;
 
73389
class CExprResolve;
60128
73390
class WinIfExists;
60129
73391
class WinImportHandler;
60130
73392
class WinMacros;
60131
 
class CMatchSyntax;
60132
 
class ExtGnu;
 
73393
class WinAsm;
 
73394
class WinDeclSpecs;
 
73395
class WinMemberExplSpec;
 
73396
class WinTypeKeywords;
 
73397
class WinFriend;
60133
73398
class ExtAC;
60134
73399
class ExtACBuilderCoupling;
60135
73400
class ExtACSyntaxCoupling;
60136
73401
class ExtACTree;
60137
73402
class ExtACKeywords;
60138
 
class WinAsm;
60139
 
class WinDeclSpecs;
60140
 
class WinMemberExplSpec;
60141
 
class WinTypeKeywords;
 
73403
class ExtGnu;
60142
73404
class PragmaOnceUnitState;
60143
73405
class PragmaOnce;
60144
 
class CCExprResolve;
60145
 
class CExprResolve;
 
73406
class CMatchSyntax;
60146
73407
namespace Puma {
60147
73408
 
60148
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73409
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60149
73410
class CT_ExceptionSpec : public CT_DeclSpec {
60150
 
#line 60151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73411
#line 73412 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73412
  friend class ::CCExprResolve;
 
73413
  friend class ::CExprResolve;
60151
73414
  friend class ::WinIfExists;
60152
73415
  friend class ::WinImportHandler;
60153
73416
  friend class ::WinMacros;
60154
 
  friend class ::CMatchSyntax;
60155
 
  friend class ::ExtGnu;
 
73417
  friend class ::WinAsm;
 
73418
  friend class ::WinDeclSpecs;
 
73419
  friend class ::WinMemberExplSpec;
 
73420
  friend class ::WinTypeKeywords;
 
73421
  friend class ::WinFriend;
60156
73422
  friend class ::ExtAC;
60157
73423
  friend class ::ExtACBuilderCoupling;
60158
73424
  friend class ::ExtACSyntaxCoupling;
60159
73425
  friend class ::ExtACTree;
60160
73426
  friend class ::ExtACKeywords;
60161
 
  friend class ::WinAsm;
60162
 
  friend class ::WinDeclSpecs;
60163
 
  friend class ::WinMemberExplSpec;
60164
 
  friend class ::WinTypeKeywords;
 
73427
  friend class ::ExtGnu;
60165
73428
  friend class ::PragmaOnceUnitState;
60166
73429
  friend class ::PragmaOnce;
60167
 
  friend class ::CCExprResolve;
60168
 
  friend class ::CExprResolve;
 
73430
  friend class ::CMatchSyntax;
60169
73431
 
60170
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73432
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60171
73433
 
60172
73434
  CTree *sons[2]; // throw, type_id_list
60173
73435
  
60174
73436
public:
60175
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
73437
  /** Constructor.
 
73438
   *  \param k The 'throw' keyword.
 
73439
   *  \param l The type list for the exception type to throw. */
 
73440
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
73441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60176
73442
  static const char *NodeId ();
 
73443
  /** Get the name of the node. Can be compared with NodeId(). */
60177
73444
  const char *NodeName () const { return NodeId (); }
 
73445
  /** Get the number of sons. */
60178
73446
  int Sons () const { return 2; }
 
73447
  /** Get the n-th son.
 
73448
   *  \param n The index of the son.
 
73449
   *  \return The n-th son or NULL. */
60179
73450
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
73451
  /** Get the exception type list. */
60180
73452
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
73453
  /** Replace a son.
 
73454
   *  \param old_son The son to replace.
 
73455
   *  \param new_son The new son. */
60181
73456
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60182
73457
    CTree::ReplaceSon (sons, 2, old_son, new_son);
60183
73458
  }
60189
73464
/*                                                                           */
60190
73465
/*****************************************************************************/
60191
73466
 
 
73467
/** \class CT_Decl CTree.h Puma/CTree.h
 
73468
 *  Base class for all tree nodes representing declarations. */
60192
73469
 
60193
 
#line 60194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73470
#line 73471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60194
73471
} // closed Puma
 
73472
class CCExprResolve;
 
73473
class CExprResolve;
60195
73474
class WinIfExists;
60196
73475
class WinImportHandler;
60197
73476
class WinMacros;
60198
 
class CMatchSyntax;
60199
 
class ExtGnu;
 
73477
class WinAsm;
 
73478
class WinDeclSpecs;
 
73479
class WinMemberExplSpec;
 
73480
class WinTypeKeywords;
 
73481
class WinFriend;
60200
73482
class ExtAC;
60201
73483
class ExtACBuilderCoupling;
60202
73484
class ExtACSyntaxCoupling;
60203
73485
class ExtACTree;
60204
73486
class ExtACKeywords;
60205
 
class WinAsm;
60206
 
class WinDeclSpecs;
60207
 
class WinMemberExplSpec;
60208
 
class WinTypeKeywords;
 
73487
class ExtGnu;
60209
73488
class PragmaOnceUnitState;
60210
73489
class PragmaOnce;
60211
 
class CCExprResolve;
60212
 
class CExprResolve;
 
73490
class CMatchSyntax;
60213
73491
namespace Puma {
60214
73492
 
60215
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73493
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60216
73494
class CT_Decl : public CTree {
60217
 
#line 60218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73495
#line 73496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73496
  friend class ::CCExprResolve;
 
73497
  friend class ::CExprResolve;
60218
73498
  friend class ::WinIfExists;
60219
73499
  friend class ::WinImportHandler;
60220
73500
  friend class ::WinMacros;
60221
 
  friend class ::CMatchSyntax;
60222
 
  friend class ::ExtGnu;
 
73501
  friend class ::WinAsm;
 
73502
  friend class ::WinDeclSpecs;
 
73503
  friend class ::WinMemberExplSpec;
 
73504
  friend class ::WinTypeKeywords;
 
73505
  friend class ::WinFriend;
60223
73506
  friend class ::ExtAC;
60224
73507
  friend class ::ExtACBuilderCoupling;
60225
73508
  friend class ::ExtACSyntaxCoupling;
60226
73509
  friend class ::ExtACTree;
60227
73510
  friend class ::ExtACKeywords;
60228
 
  friend class ::WinAsm;
60229
 
  friend class ::WinDeclSpecs;
60230
 
  friend class ::WinMemberExplSpec;
60231
 
  friend class ::WinTypeKeywords;
 
73511
  friend class ::ExtGnu;
60232
73512
  friend class ::PragmaOnceUnitState;
60233
73513
  friend class ::PragmaOnce;
60234
 
  friend class ::CCExprResolve;
60235
 
  friend class ::CExprResolve;
 
73514
  friend class ::CMatchSyntax;
60236
73515
 
60237
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73516
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60238
73517
 
60239
73518
  CT_LinkageSpec *_linkage;
 
73519
  
60240
73520
protected:
 
73521
  /** Constructor. */
60241
73522
  CT_Decl () : _linkage (0) {}
 
73523
  
60242
73524
public:
 
73525
  /** Set the linkage of the declared entity.
 
73526
   *  \param l The linkage specifiers. */
60243
73527
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
73528
  /** Get the linkage specifiers. */
60244
73529
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
73530
  /** Get this. */
 
73531
  virtual CT_Decl *IsDeclaration () { return this; }
60245
73532
};
60246
73533
 
 
73534
/** \class CT_Program CTree.h Puma/CTree.h
 
73535
 *  Root node of C/C++ syntax tree. */
60247
73536
 
60248
 
#line 60249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73537
#line 73538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60249
73538
} // closed Puma
 
73539
class CCExprResolve;
 
73540
class CExprResolve;
60250
73541
class WinIfExists;
60251
73542
class WinImportHandler;
60252
73543
class WinMacros;
60253
 
class CMatchSyntax;
60254
 
class ExtGnu;
 
73544
class WinAsm;
 
73545
class WinDeclSpecs;
 
73546
class WinMemberExplSpec;
 
73547
class WinTypeKeywords;
 
73548
class WinFriend;
60255
73549
class ExtAC;
60256
73550
class ExtACBuilderCoupling;
60257
73551
class ExtACSyntaxCoupling;
60258
73552
class ExtACTree;
60259
73553
class ExtACKeywords;
60260
 
class WinAsm;
60261
 
class WinDeclSpecs;
60262
 
class WinMemberExplSpec;
60263
 
class WinTypeKeywords;
 
73554
class ExtGnu;
60264
73555
class PragmaOnceUnitState;
60265
73556
class PragmaOnce;
60266
 
class CCExprResolve;
60267
 
class CExprResolve;
 
73557
class CMatchSyntax;
60268
73558
namespace Puma {
60269
73559
 
60270
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73560
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60271
73561
class CT_Program : public CT_DeclList, public CSemScope {
60272
 
#line 60273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73562
#line 73563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73563
  friend class ::CCExprResolve;
 
73564
  friend class ::CExprResolve;
60273
73565
  friend class ::WinIfExists;
60274
73566
  friend class ::WinImportHandler;
60275
73567
  friend class ::WinMacros;
60276
 
  friend class ::CMatchSyntax;
60277
 
  friend class ::ExtGnu;
 
73568
  friend class ::WinAsm;
 
73569
  friend class ::WinDeclSpecs;
 
73570
  friend class ::WinMemberExplSpec;
 
73571
  friend class ::WinTypeKeywords;
 
73572
  friend class ::WinFriend;
60278
73573
  friend class ::ExtAC;
60279
73574
  friend class ::ExtACBuilderCoupling;
60280
73575
  friend class ::ExtACSyntaxCoupling;
60281
73576
  friend class ::ExtACTree;
60282
73577
  friend class ::ExtACKeywords;
60283
 
  friend class ::WinAsm;
60284
 
  friend class ::WinDeclSpecs;
60285
 
  friend class ::WinMemberExplSpec;
60286
 
  friend class ::WinTypeKeywords;
 
73578
  friend class ::ExtGnu;
60287
73579
  friend class ::PragmaOnceUnitState;
60288
73580
  friend class ::PragmaOnce;
60289
 
  friend class ::CCExprResolve;
60290
 
  friend class ::CExprResolve;
 
73581
  friend class ::CMatchSyntax;
60291
73582
 
60292
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73583
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60293
73584
 
60294
73585
public:
 
73586
  /** Constructor.
 
73587
   *  \param size The initial number of declarations in the program.
 
73588
   *  \param incr The initial increment count. */
60295
73589
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
73590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60296
73591
  static const char *NodeId ();
 
73592
  /** Get the name of the node. Can be compared with NodeId(). */
60297
73593
  const char *NodeName () const { return NodeId (); }
 
73594
  /** Get the semantic scope object. */
 
73595
  CSemScope *SemScope () const { return (CSemScope*)this; }
60298
73596
};
60299
73597
   
 
73598
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
73599
 *  Tree node representing an object declaration, e.g. int *i. */
60300
73600
 
60301
 
#line 60302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73601
#line 73602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60302
73602
} // closed Puma
 
73603
class CCExprResolve;
 
73604
class CExprResolve;
60303
73605
class WinIfExists;
60304
73606
class WinImportHandler;
60305
73607
class WinMacros;
60306
 
class CMatchSyntax;
60307
 
class ExtGnu;
 
73608
class WinAsm;
 
73609
class WinDeclSpecs;
 
73610
class WinMemberExplSpec;
 
73611
class WinTypeKeywords;
 
73612
class WinFriend;
60308
73613
class ExtAC;
60309
73614
class ExtACBuilderCoupling;
60310
73615
class ExtACSyntaxCoupling;
60311
73616
class ExtACTree;
60312
73617
class ExtACKeywords;
60313
 
class WinAsm;
60314
 
class WinDeclSpecs;
60315
 
class WinMemberExplSpec;
60316
 
class WinTypeKeywords;
 
73618
class ExtGnu;
60317
73619
class PragmaOnceUnitState;
60318
73620
class PragmaOnce;
60319
 
class CCExprResolve;
60320
 
class CExprResolve;
 
73621
class CMatchSyntax;
60321
73622
namespace Puma {
60322
73623
 
60323
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73624
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60324
73625
class CT_ObjDecl : public CT_Decl {
60325
 
#line 60326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73626
#line 73627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73627
  friend class ::CCExprResolve;
 
73628
  friend class ::CExprResolve;
60326
73629
  friend class ::WinIfExists;
60327
73630
  friend class ::WinImportHandler;
60328
73631
  friend class ::WinMacros;
60329
 
  friend class ::CMatchSyntax;
60330
 
  friend class ::ExtGnu;
 
73632
  friend class ::WinAsm;
 
73633
  friend class ::WinDeclSpecs;
 
73634
  friend class ::WinMemberExplSpec;
 
73635
  friend class ::WinTypeKeywords;
 
73636
  friend class ::WinFriend;
60331
73637
  friend class ::ExtAC;
60332
73638
  friend class ::ExtACBuilderCoupling;
60333
73639
  friend class ::ExtACSyntaxCoupling;
60334
73640
  friend class ::ExtACTree;
60335
73641
  friend class ::ExtACKeywords;
60336
 
  friend class ::WinAsm;
60337
 
  friend class ::WinDeclSpecs;
60338
 
  friend class ::WinMemberExplSpec;
60339
 
  friend class ::WinTypeKeywords;
 
73642
  friend class ::ExtGnu;
60340
73643
  friend class ::PragmaOnceUnitState;
60341
73644
  friend class ::PragmaOnce;
60342
 
  friend class ::CCExprResolve;
60343
 
  friend class ::CExprResolve;
 
73645
  friend class ::CMatchSyntax;
60344
73646
 
60345
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73647
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60346
73648
 
60347
73649
  CTree *sons[3]; // declspecs, declarators, colon
60348
73650
 
60349
73651
public:
 
73652
  /** Constructor.
 
73653
   *  \param dsl The declaration specifier sequence.
 
73654
   *  \param dl The declarator list.
 
73655
   *  \param c Optional colon. */
60350
73656
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
60351
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
73657
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
60352
73658
  }
 
73659
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60353
73660
  static const char *NodeId ();
 
73661
  /** Get the name of the node. Can be compared with NodeId(). */
60354
73662
  const char *NodeName () const { return NodeId (); }
 
73663
  /** Get the number of sons. */
60355
73664
  int Sons () const { return 3; }
 
73665
  /** Get the n-th son.
 
73666
   *  \param n The index of the son.
 
73667
   *  \return The n-th son or NULL. */
60356
73668
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
73669
  /** Get the declaration specifier sequence. */
60357
73670
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
73671
  /** Get the declarator list. */
60358
73672
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
73673
  /** Replace a son.
 
73674
   *  \param old_son The son to replace.
 
73675
   *  \param new_son The new son. */
60359
73676
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60360
73677
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60361
73678
  }
60362
73679
};
60363
73680
 
 
73681
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
73682
 *  Tree node representing a template declaration. */
60364
73683
 
60365
 
#line 60366 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73684
#line 73685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60366
73685
} // closed Puma
 
73686
class CCExprResolve;
 
73687
class CExprResolve;
60367
73688
class WinIfExists;
60368
73689
class WinImportHandler;
60369
73690
class WinMacros;
60370
 
class CMatchSyntax;
60371
 
class ExtGnu;
 
73691
class WinAsm;
 
73692
class WinDeclSpecs;
 
73693
class WinMemberExplSpec;
 
73694
class WinTypeKeywords;
 
73695
class WinFriend;
60372
73696
class ExtAC;
60373
73697
class ExtACBuilderCoupling;
60374
73698
class ExtACSyntaxCoupling;
60375
73699
class ExtACTree;
60376
73700
class ExtACKeywords;
60377
 
class WinAsm;
60378
 
class WinDeclSpecs;
60379
 
class WinMemberExplSpec;
60380
 
class WinTypeKeywords;
 
73701
class ExtGnu;
60381
73702
class PragmaOnceUnitState;
60382
73703
class PragmaOnce;
60383
 
class CCExprResolve;
60384
 
class CExprResolve;
 
73704
class CMatchSyntax;
60385
73705
namespace Puma {
60386
73706
 
60387
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73707
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60388
73708
class CT_TemplateDecl : public CT_Decl, public CSemScope {
60389
 
#line 60390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73709
#line 73710 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73710
  friend class ::CCExprResolve;
 
73711
  friend class ::CExprResolve;
60390
73712
  friend class ::WinIfExists;
60391
73713
  friend class ::WinImportHandler;
60392
73714
  friend class ::WinMacros;
60393
 
  friend class ::CMatchSyntax;
60394
 
  friend class ::ExtGnu;
 
73715
  friend class ::WinAsm;
 
73716
  friend class ::WinDeclSpecs;
 
73717
  friend class ::WinMemberExplSpec;
 
73718
  friend class ::WinTypeKeywords;
 
73719
  friend class ::WinFriend;
60395
73720
  friend class ::ExtAC;
60396
73721
  friend class ::ExtACBuilderCoupling;
60397
73722
  friend class ::ExtACSyntaxCoupling;
60398
73723
  friend class ::ExtACTree;
60399
73724
  friend class ::ExtACKeywords;
60400
 
  friend class ::WinAsm;
60401
 
  friend class ::WinDeclSpecs;
60402
 
  friend class ::WinMemberExplSpec;
60403
 
  friend class ::WinTypeKeywords;
 
73725
  friend class ::ExtGnu;
60404
73726
  friend class ::PragmaOnceUnitState;
60405
73727
  friend class ::PragmaOnce;
60406
 
  friend class ::CCExprResolve;
60407
 
  friend class ::CExprResolve;
 
73728
  friend class ::CMatchSyntax;
60408
73729
 
60409
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73730
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60410
73731
 
60411
73732
  CTree *sons[3]; // export, param_list, decl
60412
73733
 
60413
73734
public:
 
73735
  /** Constructor.
 
73736
   *  \param e Optional 'export' keyword. 
 
73737
   *  \param p The template parameter list.
 
73738
   *  \param d The class or function declaration. */
60414
73739
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
60415
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
73740
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
60416
73741
  }
 
73742
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60417
73743
  static const char *NodeId ();
 
73744
  /** Get the name of the node. Can be compared with NodeId(). */
60418
73745
  const char *NodeName () const { return NodeId (); }
 
73746
  /** Get the number of sons. */
60419
73747
  int Sons () const { return CTree::Sons (sons, 3); }
 
73748
  /** Get the n-th son.
 
73749
   *  \param n The index of the son.
 
73750
   *  \return The n-th son or NULL. */
60420
73751
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
73752
  /** Replace a son.
 
73753
   *  \param old_son The son to replace.
 
73754
   *  \param new_son The new son. */
60421
73755
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60422
73756
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
60423
73757
  }
 
73758
  /** Get the 'export' keyword. */
60424
73759
  CTree *Export () const { return sons[0]; }
 
73760
  /** Get the template parameter list. */
60425
73761
  CT_TemplateParamList *Parameters () const { 
60426
73762
    return (CT_TemplateParamList*)sons[1]; 
60427
73763
  }
 
73764
  /** Get the class or function declaration. */
60428
73765
  CTree *Declaration () const { return sons[2]; }
 
73766
  /** Get the semantic scope object. */
 
73767
  CSemScope *SemScope () const { return (CSemScope*)this; }
60429
73768
};
60430
73769
 
 
73770
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
73771
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
60431
73772
 
60432
 
#line 60433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73773
#line 73774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60433
73774
} // closed Puma
 
73775
class CCExprResolve;
 
73776
class CExprResolve;
60434
73777
class WinIfExists;
60435
73778
class WinImportHandler;
60436
73779
class WinMacros;
60437
 
class CMatchSyntax;
60438
 
class ExtGnu;
 
73780
class WinAsm;
 
73781
class WinDeclSpecs;
 
73782
class WinMemberExplSpec;
 
73783
class WinTypeKeywords;
 
73784
class WinFriend;
60439
73785
class ExtAC;
60440
73786
class ExtACBuilderCoupling;
60441
73787
class ExtACSyntaxCoupling;
60442
73788
class ExtACTree;
60443
73789
class ExtACKeywords;
60444
 
class WinAsm;
60445
 
class WinDeclSpecs;
60446
 
class WinMemberExplSpec;
60447
 
class WinTypeKeywords;
 
73790
class ExtGnu;
60448
73791
class PragmaOnceUnitState;
60449
73792
class PragmaOnce;
60450
 
class CCExprResolve;
60451
 
class CExprResolve;
 
73793
class CMatchSyntax;
60452
73794
namespace Puma {
60453
73795
 
60454
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73796
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60455
73797
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
60456
 
#line 60457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73798
#line 73799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73799
  friend class ::CCExprResolve;
 
73800
  friend class ::CExprResolve;
60457
73801
  friend class ::WinIfExists;
60458
73802
  friend class ::WinImportHandler;
60459
73803
  friend class ::WinMacros;
60460
 
  friend class ::CMatchSyntax;
60461
 
  friend class ::ExtGnu;
 
73804
  friend class ::WinAsm;
 
73805
  friend class ::WinDeclSpecs;
 
73806
  friend class ::WinMemberExplSpec;
 
73807
  friend class ::WinTypeKeywords;
 
73808
  friend class ::WinFriend;
60462
73809
  friend class ::ExtAC;
60463
73810
  friend class ::ExtACBuilderCoupling;
60464
73811
  friend class ::ExtACSyntaxCoupling;
60465
73812
  friend class ::ExtACTree;
60466
73813
  friend class ::ExtACKeywords;
60467
 
  friend class ::WinAsm;
60468
 
  friend class ::WinDeclSpecs;
60469
 
  friend class ::WinMemberExplSpec;
60470
 
  friend class ::WinTypeKeywords;
 
73814
  friend class ::ExtGnu;
60471
73815
  friend class ::PragmaOnceUnitState;
60472
73816
  friend class ::PragmaOnce;
60473
 
  friend class ::CCExprResolve;
60474
 
  friend class ::CExprResolve;
 
73817
  friend class ::CMatchSyntax;
60475
73818
 
60476
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73819
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60477
73820
 
60478
73821
protected:
 
73822
  /** Constructor. */
60479
73823
  CT_TemplateParamDecl () {}
60480
73824
  
60481
73825
public:
 
73826
  /** Get the template default argument. */
60482
73827
  virtual CT_ExprList *DefaultArgument () const = 0;
 
73828
  /** Get the semantic information object. */
60483
73829
  CSemObject *SemObject () const { return (CSemObject*)this; }
60484
73830
};
60485
73831
 
60486
73832
 
60487
 
#line 60488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73833
#line 73834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60488
73834
} // closed Puma
 
73835
class CCExprResolve;
 
73836
class CExprResolve;
60489
73837
class WinIfExists;
60490
73838
class WinImportHandler;
60491
73839
class WinMacros;
60492
 
class CMatchSyntax;
60493
 
class ExtGnu;
 
73840
class WinAsm;
 
73841
class WinDeclSpecs;
 
73842
class WinMemberExplSpec;
 
73843
class WinTypeKeywords;
 
73844
class WinFriend;
60494
73845
class ExtAC;
60495
73846
class ExtACBuilderCoupling;
60496
73847
class ExtACSyntaxCoupling;
60497
73848
class ExtACTree;
60498
73849
class ExtACKeywords;
60499
 
class WinAsm;
60500
 
class WinDeclSpecs;
60501
 
class WinMemberExplSpec;
60502
 
class WinTypeKeywords;
 
73850
class ExtGnu;
60503
73851
class PragmaOnceUnitState;
60504
73852
class PragmaOnce;
60505
 
class CCExprResolve;
60506
 
class CExprResolve;
 
73853
class CMatchSyntax;
60507
73854
namespace Puma {
60508
73855
 
60509
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73856
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60510
73857
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
60511
 
#line 60512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73858
#line 73859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73859
  friend class ::CCExprResolve;
 
73860
  friend class ::CExprResolve;
60512
73861
  friend class ::WinIfExists;
60513
73862
  friend class ::WinImportHandler;
60514
73863
  friend class ::WinMacros;
60515
 
  friend class ::CMatchSyntax;
60516
 
  friend class ::ExtGnu;
 
73864
  friend class ::WinAsm;
 
73865
  friend class ::WinDeclSpecs;
 
73866
  friend class ::WinMemberExplSpec;
 
73867
  friend class ::WinTypeKeywords;
 
73868
  friend class ::WinFriend;
60517
73869
  friend class ::ExtAC;
60518
73870
  friend class ::ExtACBuilderCoupling;
60519
73871
  friend class ::ExtACSyntaxCoupling;
60520
73872
  friend class ::ExtACTree;
60521
73873
  friend class ::ExtACKeywords;
60522
 
  friend class ::WinAsm;
60523
 
  friend class ::WinDeclSpecs;
60524
 
  friend class ::WinMemberExplSpec;
60525
 
  friend class ::WinTypeKeywords;
 
73874
  friend class ::ExtGnu;
60526
73875
  friend class ::PragmaOnceUnitState;
60527
73876
  friend class ::PragmaOnce;
60528
 
  friend class ::CCExprResolve;
60529
 
  friend class ::CExprResolve;
 
73877
  friend class ::CMatchSyntax;
60530
73878
 
60531
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73879
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60532
73880
 
60533
73881
  CTree *sons[3]; // declspecs, declarator, init
60534
73882
 
60535
73883
public:
60536
73884
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
60537
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
73885
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
60538
73886
  }
 
73887
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60539
73888
  static const char *NodeId ();
 
73889
  /** Get the name of the node. Can be compared with NodeId(). */
60540
73890
  const char *NodeName () const { return NodeId (); }
 
73891
  /** Get the number of sons. */
60541
73892
  int Sons () const { return CTree::Sons (sons, 3); }
 
73893
  /** Get the n-th son.
 
73894
   *  \param n The index of the son.
 
73895
   *  \return The n-th son or NULL. */
60542
73896
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60543
73897
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
60544
73898
  CTree *Declarator () const { return sons[1]; }
60545
73899
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
60546
73900
  CSemObject *SemObject () const { return (CSemObject*)this; }
60547
 
  void Initializer (CTree *i) { sons[2] = i; }
 
73901
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
73902
  /** Replace a son.
 
73903
   *  \param old_son The son to replace.
 
73904
   *  \param new_son The new son. */
60548
73905
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60549
73906
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60550
73907
  }
60551
73908
};
60552
73909
 
60553
73910
 
60554
 
#line 60555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73911
#line 73912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60555
73912
} // closed Puma
 
73913
class CCExprResolve;
 
73914
class CExprResolve;
60556
73915
class WinIfExists;
60557
73916
class WinImportHandler;
60558
73917
class WinMacros;
60559
 
class CMatchSyntax;
60560
 
class ExtGnu;
 
73918
class WinAsm;
 
73919
class WinDeclSpecs;
 
73920
class WinMemberExplSpec;
 
73921
class WinTypeKeywords;
 
73922
class WinFriend;
60561
73923
class ExtAC;
60562
73924
class ExtACBuilderCoupling;
60563
73925
class ExtACSyntaxCoupling;
60564
73926
class ExtACTree;
60565
73927
class ExtACKeywords;
60566
 
class WinAsm;
60567
 
class WinDeclSpecs;
60568
 
class WinMemberExplSpec;
60569
 
class WinTypeKeywords;
 
73928
class ExtGnu;
60570
73929
class PragmaOnceUnitState;
60571
73930
class PragmaOnce;
60572
 
class CCExprResolve;
60573
 
class CExprResolve;
 
73931
class CMatchSyntax;
60574
73932
namespace Puma {
60575
73933
 
60576
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73934
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60577
73935
class CT_TypeParamDecl : public CT_TemplateParamDecl {
60578
 
#line 60579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73936
#line 73937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
73937
  friend class ::CCExprResolve;
 
73938
  friend class ::CExprResolve;
60579
73939
  friend class ::WinIfExists;
60580
73940
  friend class ::WinImportHandler;
60581
73941
  friend class ::WinMacros;
60582
 
  friend class ::CMatchSyntax;
60583
 
  friend class ::ExtGnu;
 
73942
  friend class ::WinAsm;
 
73943
  friend class ::WinDeclSpecs;
 
73944
  friend class ::WinMemberExplSpec;
 
73945
  friend class ::WinTypeKeywords;
 
73946
  friend class ::WinFriend;
60584
73947
  friend class ::ExtAC;
60585
73948
  friend class ::ExtACBuilderCoupling;
60586
73949
  friend class ::ExtACSyntaxCoupling;
60587
73950
  friend class ::ExtACTree;
60588
73951
  friend class ::ExtACKeywords;
60589
 
  friend class ::WinAsm;
60590
 
  friend class ::WinDeclSpecs;
60591
 
  friend class ::WinMemberExplSpec;
60592
 
  friend class ::WinTypeKeywords;
 
73952
  friend class ::ExtGnu;
60593
73953
  friend class ::PragmaOnceUnitState;
60594
73954
  friend class ::PragmaOnce;
60595
 
  friend class ::CCExprResolve;
60596
 
  friend class ::CExprResolve;
 
73955
  friend class ::CMatchSyntax;
60597
73956
 
60598
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73957
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60599
73958
 
60600
73959
  CTree *sons[4]; // params, key, id, init
60601
73960
 
60602
73961
public:
60603
73962
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
60604
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
73963
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
73964
    AddSon (sons[2], id); AddSon (sons[3], i);
60605
73965
  }
 
73966
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60606
73967
  static const char *NodeId ();
 
73968
  /** Get the name of the node. Can be compared with NodeId(). */
60607
73969
  const char *NodeName () const { return NodeId (); }
 
73970
  /** Get the number of sons. */
60608
73971
  int Sons () const { return CTree::Sons (sons, 4); }
 
73972
  /** Get the n-th son.
 
73973
   *  \param n The index of the son.
 
73974
   *  \return The n-th son or NULL. */
60609
73975
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
60610
73976
  CT_TemplateParamList *Parameters () const { 
60611
73977
    return (CT_TemplateParamList*)sons[0]; 
60612
73978
  }
60613
73979
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
60614
73980
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
60615
 
  void Initializer (CTree *i) { sons[3] = i; }
 
73981
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
73982
  /** Replace a son.
 
73983
   *  \param old_son The son to replace.
 
73984
   *  \param new_son The new son. */
60616
73985
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60617
73986
    CTree::ReplaceSon (sons, 4, old_son, new_son);
60618
73987
  }
60619
73988
};
60620
73989
 
60621
73990
 
60622
 
#line 60623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
73991
#line 73992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60623
73992
} // closed Puma
 
73993
class CCExprResolve;
 
73994
class CExprResolve;
60624
73995
class WinIfExists;
60625
73996
class WinImportHandler;
60626
73997
class WinMacros;
60627
 
class CMatchSyntax;
60628
 
class ExtGnu;
 
73998
class WinAsm;
 
73999
class WinDeclSpecs;
 
74000
class WinMemberExplSpec;
 
74001
class WinTypeKeywords;
 
74002
class WinFriend;
60629
74003
class ExtAC;
60630
74004
class ExtACBuilderCoupling;
60631
74005
class ExtACSyntaxCoupling;
60632
74006
class ExtACTree;
60633
74007
class ExtACKeywords;
60634
 
class WinAsm;
60635
 
class WinDeclSpecs;
60636
 
class WinMemberExplSpec;
60637
 
class WinTypeKeywords;
 
74008
class ExtGnu;
60638
74009
class PragmaOnceUnitState;
60639
74010
class PragmaOnce;
60640
 
class CCExprResolve;
60641
 
class CExprResolve;
 
74011
class CMatchSyntax;
60642
74012
namespace Puma {
60643
74013
 
60644
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74014
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60645
74015
class CT_EnumDef : public CT_Decl, public CSemObject {
60646
 
#line 60647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74016
#line 74017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74017
  friend class ::CCExprResolve;
 
74018
  friend class ::CExprResolve;
60647
74019
  friend class ::WinIfExists;
60648
74020
  friend class ::WinImportHandler;
60649
74021
  friend class ::WinMacros;
60650
 
  friend class ::CMatchSyntax;
60651
 
  friend class ::ExtGnu;
 
74022
  friend class ::WinAsm;
 
74023
  friend class ::WinDeclSpecs;
 
74024
  friend class ::WinMemberExplSpec;
 
74025
  friend class ::WinTypeKeywords;
 
74026
  friend class ::WinFriend;
60652
74027
  friend class ::ExtAC;
60653
74028
  friend class ::ExtACBuilderCoupling;
60654
74029
  friend class ::ExtACSyntaxCoupling;
60655
74030
  friend class ::ExtACTree;
60656
74031
  friend class ::ExtACKeywords;
60657
 
  friend class ::WinAsm;
60658
 
  friend class ::WinDeclSpecs;
60659
 
  friend class ::WinMemberExplSpec;
60660
 
  friend class ::WinTypeKeywords;
 
74032
  friend class ::ExtGnu;
60661
74033
  friend class ::PragmaOnceUnitState;
60662
74034
  friend class ::PragmaOnce;
60663
 
  friend class ::CCExprResolve;
60664
 
  friend class ::CExprResolve;
 
74035
  friend class ::CMatchSyntax;
60665
74036
 
60666
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74037
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60667
74038
 
60668
74039
  CTree *sons[3]; // key, name, enumerators
60669
74040
 
60670
74041
public:
60671
74042
  CT_EnumDef (CTree *k, CTree *n) {
60672
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
74043
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
60673
74044
  }
 
74045
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60674
74046
  static const char *NodeId ();
 
74047
  /** Get the name of the node. Can be compared with NodeId(). */
60675
74048
  const char *NodeName () const { return NodeId (); }
 
74049
  /** Get the number of sons. */
60676
74050
  int Sons () const { return CTree::Sons (sons, 3); }
 
74051
  /** Get the n-th son.
 
74052
   *  \param n The index of the son.
 
74053
   *  \return The n-th son or NULL. */
60677
74054
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60678
74055
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
60679
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
74056
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
60680
74057
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
74058
  /** Replace a son.
 
74059
   *  \param old_son The son to replace.
 
74060
   *  \param new_son The new son. */
60681
74061
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60682
74062
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60683
74063
  }
60685
74065
};
60686
74066
 
60687
74067
 
60688
 
#line 60689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74068
#line 74069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60689
74069
} // closed Puma
 
74070
class CCExprResolve;
 
74071
class CExprResolve;
60690
74072
class WinIfExists;
60691
74073
class WinImportHandler;
60692
74074
class WinMacros;
60693
 
class CMatchSyntax;
60694
 
class ExtGnu;
 
74075
class WinAsm;
 
74076
class WinDeclSpecs;
 
74077
class WinMemberExplSpec;
 
74078
class WinTypeKeywords;
 
74079
class WinFriend;
60695
74080
class ExtAC;
60696
74081
class ExtACBuilderCoupling;
60697
74082
class ExtACSyntaxCoupling;
60698
74083
class ExtACTree;
60699
74084
class ExtACKeywords;
60700
 
class WinAsm;
60701
 
class WinDeclSpecs;
60702
 
class WinMemberExplSpec;
60703
 
class WinTypeKeywords;
 
74085
class ExtGnu;
60704
74086
class PragmaOnceUnitState;
60705
74087
class PragmaOnce;
60706
 
class CCExprResolve;
60707
 
class CExprResolve;
 
74088
class CMatchSyntax;
60708
74089
namespace Puma {
60709
74090
 
60710
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74091
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60711
74092
class CT_Enumerator : public CT_Decl, public CSemObject {
60712
 
#line 60713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74093
#line 74094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74094
  friend class ::CCExprResolve;
 
74095
  friend class ::CExprResolve;
60713
74096
  friend class ::WinIfExists;
60714
74097
  friend class ::WinImportHandler;
60715
74098
  friend class ::WinMacros;
60716
 
  friend class ::CMatchSyntax;
60717
 
  friend class ::ExtGnu;
 
74099
  friend class ::WinAsm;
 
74100
  friend class ::WinDeclSpecs;
 
74101
  friend class ::WinMemberExplSpec;
 
74102
  friend class ::WinTypeKeywords;
 
74103
  friend class ::WinFriend;
60718
74104
  friend class ::ExtAC;
60719
74105
  friend class ::ExtACBuilderCoupling;
60720
74106
  friend class ::ExtACSyntaxCoupling;
60721
74107
  friend class ::ExtACTree;
60722
74108
  friend class ::ExtACKeywords;
60723
 
  friend class ::WinAsm;
60724
 
  friend class ::WinDeclSpecs;
60725
 
  friend class ::WinMemberExplSpec;
60726
 
  friend class ::WinTypeKeywords;
 
74109
  friend class ::ExtGnu;
60727
74110
  friend class ::PragmaOnceUnitState;
60728
74111
  friend class ::PragmaOnce;
60729
 
  friend class ::CCExprResolve;
60730
 
  friend class ::CExprResolve;
 
74112
  friend class ::CMatchSyntax;
60731
74113
 
60732
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74114
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60733
74115
 
60734
74116
  CTree *sons[2]; // name, init
60735
74117
 
60736
74118
public:
60737
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
74119
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
74120
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60738
74121
  static const char *NodeId ();
 
74122
  /** Get the name of the node. Can be compared with NodeId(). */
60739
74123
  const char *NodeName () const { return NodeId (); }
 
74124
  /** Get the number of sons. */
60740
74125
  int Sons () const { return CTree::Sons (sons, 2); }
 
74126
  /** Get the n-th son.
 
74127
   *  \param n The index of the son.
 
74128
   *  \return The n-th son or NULL. */
60741
74129
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
60742
74130
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
60743
 
  void Initializer (CTree *i) { sons[1] = i; }
 
74131
  void Initializer (CTree *i) { AddSon (sons[1], i); }
60744
74132
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
74133
  /** Replace a son.
 
74134
   *  \param old_son The son to replace.
 
74135
   *  \param new_son The new son. */
60745
74136
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60746
74137
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
60747
74138
  }
60749
74140
};
60750
74141
 
60751
74142
 
60752
 
#line 60753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74143
#line 74144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60753
74144
} // closed Puma
 
74145
class CCExprResolve;
 
74146
class CExprResolve;
60754
74147
class WinIfExists;
60755
74148
class WinImportHandler;
60756
74149
class WinMacros;
60757
 
class CMatchSyntax;
60758
 
class ExtGnu;
 
74150
class WinAsm;
 
74151
class WinDeclSpecs;
 
74152
class WinMemberExplSpec;
 
74153
class WinTypeKeywords;
 
74154
class WinFriend;
60759
74155
class ExtAC;
60760
74156
class ExtACBuilderCoupling;
60761
74157
class ExtACSyntaxCoupling;
60762
74158
class ExtACTree;
60763
74159
class ExtACKeywords;
60764
 
class WinAsm;
60765
 
class WinDeclSpecs;
60766
 
class WinMemberExplSpec;
60767
 
class WinTypeKeywords;
 
74160
class ExtGnu;
60768
74161
class PragmaOnceUnitState;
60769
74162
class PragmaOnce;
60770
 
class CCExprResolve;
60771
 
class CExprResolve;
 
74163
class CMatchSyntax;
60772
74164
namespace Puma {
60773
74165
 
60774
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74166
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60775
74167
class CT_FctDef : public CT_Decl, public CSemObject {
60776
 
#line 60777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74168
#line 74169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74169
  friend class ::CCExprResolve;
 
74170
  friend class ::CExprResolve;
60777
74171
  friend class ::WinIfExists;
60778
74172
  friend class ::WinImportHandler;
60779
74173
  friend class ::WinMacros;
60780
 
  friend class ::CMatchSyntax;
60781
 
  friend class ::ExtGnu;
 
74174
  friend class ::WinAsm;
 
74175
  friend class ::WinDeclSpecs;
 
74176
  friend class ::WinMemberExplSpec;
 
74177
  friend class ::WinTypeKeywords;
 
74178
  friend class ::WinFriend;
60782
74179
  friend class ::ExtAC;
60783
74180
  friend class ::ExtACBuilderCoupling;
60784
74181
  friend class ::ExtACSyntaxCoupling;
60785
74182
  friend class ::ExtACTree;
60786
74183
  friend class ::ExtACKeywords;
60787
 
  friend class ::WinAsm;
60788
 
  friend class ::WinDeclSpecs;
60789
 
  friend class ::WinMemberExplSpec;
60790
 
  friend class ::WinTypeKeywords;
 
74184
  friend class ::ExtGnu;
60791
74185
  friend class ::PragmaOnceUnitState;
60792
74186
  friend class ::PragmaOnce;
60793
 
  friend class ::CCExprResolve;
60794
 
  friend class ::CExprResolve;
 
74187
  friend class ::CMatchSyntax;
60795
74188
 
60796
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74189
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60797
74190
 
60798
74191
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
60799
74192
 
60800
74193
public:
60801
74194
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
60802
74195
             CTree *b, CTree *hs) {
60803
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
60804
 
    sons[5] = b; sons[6] = hs; 
 
74196
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
74197
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
74198
    AddSon (sons[6], hs); 
60805
74199
  }
 
74200
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60806
74201
  static const char *NodeId ();
 
74202
  /** Get the name of the node. Can be compared with NodeId(). */
60807
74203
  const char *NodeName () const { return NodeId (); }
 
74204
  /** Get the number of sons. */
60808
74205
  int Sons () const { return CTree::Sons (sons, 7); }
 
74206
  /** Get the n-th son.
 
74207
   *  \param n The index of the son.
 
74208
   *  \return The n-th son or NULL. */
60809
74209
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
60810
74210
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
60811
74211
  CTree *Declarator () const { return sons[1]; }
60815
74215
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
60816
74216
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
60817
74217
  CSemObject *SemObject () const { return (CSemObject*)this; }
60818
 
  void CtorInit (CTree *i) { sons[3] = i; }
60819
 
  void Body (CTree *b) { sons[5] = b; }
 
74218
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
74219
  void Body (CTree *b) { AddSon (sons[5], b); }
60820
74220
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
60821
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
74221
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
74222
    AddSon (sons[5], b); AddSon (sons[6], h);
60822
74223
  }
 
74224
  /** Replace a son.
 
74225
   *  \param old_son The son to replace.
 
74226
   *  \param new_son The new son. */
60823
74227
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60824
74228
    CTree::ReplaceSon (sons, 7, old_son, new_son);
60825
74229
  }
60826
74230
};
60827
74231
 
60828
74232
 
60829
 
#line 60830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74233
#line 74234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60830
74234
} // closed Puma
 
74235
class CCExprResolve;
 
74236
class CExprResolve;
60831
74237
class WinIfExists;
60832
74238
class WinImportHandler;
60833
74239
class WinMacros;
60834
 
class CMatchSyntax;
60835
 
class ExtGnu;
 
74240
class WinAsm;
 
74241
class WinDeclSpecs;
 
74242
class WinMemberExplSpec;
 
74243
class WinTypeKeywords;
 
74244
class WinFriend;
60836
74245
class ExtAC;
60837
74246
class ExtACBuilderCoupling;
60838
74247
class ExtACSyntaxCoupling;
60839
74248
class ExtACTree;
60840
74249
class ExtACKeywords;
60841
 
class WinAsm;
60842
 
class WinDeclSpecs;
60843
 
class WinMemberExplSpec;
60844
 
class WinTypeKeywords;
 
74250
class ExtGnu;
60845
74251
class PragmaOnceUnitState;
60846
74252
class PragmaOnce;
60847
 
class CCExprResolve;
60848
 
class CExprResolve;
 
74253
class CMatchSyntax;
60849
74254
namespace Puma {
60850
74255
 
60851
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74256
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60852
74257
class CT_AsmDef : public CT_Decl {
60853
 
#line 60854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74258
#line 74259 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74259
  friend class ::CCExprResolve;
 
74260
  friend class ::CExprResolve;
60854
74261
  friend class ::WinIfExists;
60855
74262
  friend class ::WinImportHandler;
60856
74263
  friend class ::WinMacros;
60857
 
  friend class ::CMatchSyntax;
60858
 
  friend class ::ExtGnu;
 
74264
  friend class ::WinAsm;
 
74265
  friend class ::WinDeclSpecs;
 
74266
  friend class ::WinMemberExplSpec;
 
74267
  friend class ::WinTypeKeywords;
 
74268
  friend class ::WinFriend;
60859
74269
  friend class ::ExtAC;
60860
74270
  friend class ::ExtACBuilderCoupling;
60861
74271
  friend class ::ExtACSyntaxCoupling;
60862
74272
  friend class ::ExtACTree;
60863
74273
  friend class ::ExtACKeywords;
60864
 
  friend class ::WinAsm;
60865
 
  friend class ::WinDeclSpecs;
60866
 
  friend class ::WinMemberExplSpec;
60867
 
  friend class ::WinTypeKeywords;
 
74274
  friend class ::ExtGnu;
60868
74275
  friend class ::PragmaOnceUnitState;
60869
74276
  friend class ::PragmaOnce;
60870
 
  friend class ::CCExprResolve;
60871
 
  friend class ::CExprResolve;
 
74277
  friend class ::CMatchSyntax;
60872
74278
 
60873
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74279
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60874
74280
 
60875
74281
  CTree *sons[5]; // asm, open, str, close, semi_colon
60876
74282
 
60877
74283
public:
60878
74284
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
60879
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
74285
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
74286
    AddSon (sons[3], c); AddSon (sons[4], sc); 
60880
74287
  }
 
74288
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60881
74289
  static const char *NodeId ();
 
74290
  /** Get the name of the node. Can be compared with NodeId(). */
60882
74291
  const char *NodeName () const { return NodeId (); }
 
74292
  /** Get the number of sons. */
60883
74293
  int Sons () const { return 5; }
 
74294
  /** Get the n-th son.
 
74295
   *  \param n The index of the son.
 
74296
   *  \return The n-th son or NULL. */
60884
74297
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
60885
74298
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
74299
  /** Replace a son.
 
74300
   *  \param old_son The son to replace.
 
74301
   *  \param new_son The new son. */
60886
74302
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60887
74303
    CTree::ReplaceSon (sons, 5, old_son, new_son);
60888
74304
  }
60889
74305
};
60890
74306
 
60891
74307
 
60892
 
#line 60893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74308
#line 74309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60893
74309
} // closed Puma
 
74310
class CCExprResolve;
 
74311
class CExprResolve;
60894
74312
class WinIfExists;
60895
74313
class WinImportHandler;
60896
74314
class WinMacros;
60897
 
class CMatchSyntax;
60898
 
class ExtGnu;
 
74315
class WinAsm;
 
74316
class WinDeclSpecs;
 
74317
class WinMemberExplSpec;
 
74318
class WinTypeKeywords;
 
74319
class WinFriend;
60899
74320
class ExtAC;
60900
74321
class ExtACBuilderCoupling;
60901
74322
class ExtACSyntaxCoupling;
60902
74323
class ExtACTree;
60903
74324
class ExtACKeywords;
60904
 
class WinAsm;
60905
 
class WinDeclSpecs;
60906
 
class WinMemberExplSpec;
60907
 
class WinTypeKeywords;
 
74325
class ExtGnu;
60908
74326
class PragmaOnceUnitState;
60909
74327
class PragmaOnce;
60910
 
class CCExprResolve;
60911
 
class CExprResolve;
 
74328
class CMatchSyntax;
60912
74329
namespace Puma {
60913
74330
 
60914
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74331
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60915
74332
class CT_Handler : public CT_Decl, public CSemScope {
60916
 
#line 60917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74333
#line 74334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74334
  friend class ::CCExprResolve;
 
74335
  friend class ::CExprResolve;
60917
74336
  friend class ::WinIfExists;
60918
74337
  friend class ::WinImportHandler;
60919
74338
  friend class ::WinMacros;
60920
 
  friend class ::CMatchSyntax;
60921
 
  friend class ::ExtGnu;
 
74339
  friend class ::WinAsm;
 
74340
  friend class ::WinDeclSpecs;
 
74341
  friend class ::WinMemberExplSpec;
 
74342
  friend class ::WinTypeKeywords;
 
74343
  friend class ::WinFriend;
60922
74344
  friend class ::ExtAC;
60923
74345
  friend class ::ExtACBuilderCoupling;
60924
74346
  friend class ::ExtACSyntaxCoupling;
60925
74347
  friend class ::ExtACTree;
60926
74348
  friend class ::ExtACKeywords;
60927
 
  friend class ::WinAsm;
60928
 
  friend class ::WinDeclSpecs;
60929
 
  friend class ::WinMemberExplSpec;
60930
 
  friend class ::WinTypeKeywords;
 
74349
  friend class ::ExtGnu;
60931
74350
  friend class ::PragmaOnceUnitState;
60932
74351
  friend class ::PragmaOnce;
60933
 
  friend class ::CCExprResolve;
60934
 
  friend class ::CExprResolve;
 
74352
  friend class ::CMatchSyntax;
60935
74353
 
60936
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74354
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60937
74355
 
60938
74356
  CTree *sons[3]; // catch, exception_decl, stmt
60939
74357
 
60940
74358
public:
60941
74359
  CT_Handler (CTree *c, CTree *e, CTree *s) {
60942
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
74360
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
60943
74361
  }
 
74362
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60944
74363
  static const char *NodeId ();
 
74364
  /** Get the name of the node. Can be compared with NodeId(). */
60945
74365
  const char *NodeName () const { return NodeId (); }
 
74366
  /** Get the number of sons. */
60946
74367
  int Sons () const { return 3; }
 
74368
  /** Get the n-th son.
 
74369
   *  \param n The index of the son.
 
74370
   *  \return The n-th son or NULL. */
60947
74371
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
60948
74372
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
60949
74373
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
74374
  /** Replace a son.
 
74375
   *  \param old_son The son to replace.
 
74376
   *  \param new_son The new son. */
60950
74377
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60951
74378
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60952
74379
  }
 
74380
  CSemScope *SemScope () const { return (CSemScope*)this; }
60953
74381
};
60954
74382
 
60955
74383
 
60956
 
#line 60957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74384
#line 74385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
60957
74385
} // closed Puma
 
74386
class CCExprResolve;
 
74387
class CExprResolve;
60958
74388
class WinIfExists;
60959
74389
class WinImportHandler;
60960
74390
class WinMacros;
60961
 
class CMatchSyntax;
60962
 
class ExtGnu;
 
74391
class WinAsm;
 
74392
class WinDeclSpecs;
 
74393
class WinMemberExplSpec;
 
74394
class WinTypeKeywords;
 
74395
class WinFriend;
60963
74396
class ExtAC;
60964
74397
class ExtACBuilderCoupling;
60965
74398
class ExtACSyntaxCoupling;
60966
74399
class ExtACTree;
60967
74400
class ExtACKeywords;
60968
 
class WinAsm;
60969
 
class WinDeclSpecs;
60970
 
class WinMemberExplSpec;
60971
 
class WinTypeKeywords;
 
74401
class ExtGnu;
60972
74402
class PragmaOnceUnitState;
60973
74403
class PragmaOnce;
60974
 
class CCExprResolve;
60975
 
class CExprResolve;
 
74404
class CMatchSyntax;
60976
74405
namespace Puma {
60977
74406
 
60978
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74407
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60979
74408
class CT_LinkageSpec : public CT_Decl {
60980
 
#line 60981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74409
#line 74410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74410
  friend class ::CCExprResolve;
 
74411
  friend class ::CExprResolve;
60981
74412
  friend class ::WinIfExists;
60982
74413
  friend class ::WinImportHandler;
60983
74414
  friend class ::WinMacros;
60984
 
  friend class ::CMatchSyntax;
60985
 
  friend class ::ExtGnu;
 
74415
  friend class ::WinAsm;
 
74416
  friend class ::WinDeclSpecs;
 
74417
  friend class ::WinMemberExplSpec;
 
74418
  friend class ::WinTypeKeywords;
 
74419
  friend class ::WinFriend;
60986
74420
  friend class ::ExtAC;
60987
74421
  friend class ::ExtACBuilderCoupling;
60988
74422
  friend class ::ExtACSyntaxCoupling;
60989
74423
  friend class ::ExtACTree;
60990
74424
  friend class ::ExtACKeywords;
60991
 
  friend class ::WinAsm;
60992
 
  friend class ::WinDeclSpecs;
60993
 
  friend class ::WinMemberExplSpec;
60994
 
  friend class ::WinTypeKeywords;
 
74425
  friend class ::ExtGnu;
60995
74426
  friend class ::PragmaOnceUnitState;
60996
74427
  friend class ::PragmaOnce;
60997
 
  friend class ::CCExprResolve;
60998
 
  friend class ::CExprResolve;
 
74428
  friend class ::CMatchSyntax;
60999
74429
 
61000
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74430
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61001
74431
 
61002
74432
  CTree *sons[5]; // extern, str, open, decls, close
61003
74433
 
61004
74434
public:
61005
74435
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
61006
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
74436
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
74437
    AddSon (sons[3], d); AddSon (sons[4], c);
61007
74438
    if (isList ())
61008
74439
      ((CT_DeclList*)Decls ())->Linkage (this);
61009
74440
    else
61010
74441
      ((CT_Decl*)Decls ())->Linkage (this);
61011
74442
  }
 
74443
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61012
74444
  static const char *NodeId ();
 
74445
  /** Get the name of the node. Can be compared with NodeId(). */
61013
74446
  const char *NodeName () const { return NodeId (); }
 
74447
  /** Get the number of sons. */
61014
74448
  int Sons () const { return CTree::Sons (sons, 5); }
 
74449
  /** Get the n-th son.
 
74450
   *  \param n The index of the son.
 
74451
   *  \return The n-th son or NULL. */
61015
74452
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61016
74453
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
61017
74454
  CTree *Decls () const { return sons[3]; }
61018
74455
  bool isList () const {
61019
74456
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
61020
74457
  }
 
74458
  /** Replace a son.
 
74459
   *  \param old_son The son to replace.
 
74460
   *  \param new_son The new son. */
61021
74461
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61022
74462
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61023
74463
  }
61024
74464
};
61025
74465
 
61026
74466
 
61027
 
#line 61028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74467
#line 74468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61028
74468
} // closed Puma
 
74469
class CCExprResolve;
 
74470
class CExprResolve;
61029
74471
class WinIfExists;
61030
74472
class WinImportHandler;
61031
74473
class WinMacros;
61032
 
class CMatchSyntax;
61033
 
class ExtGnu;
 
74474
class WinAsm;
 
74475
class WinDeclSpecs;
 
74476
class WinMemberExplSpec;
 
74477
class WinTypeKeywords;
 
74478
class WinFriend;
61034
74479
class ExtAC;
61035
74480
class ExtACBuilderCoupling;
61036
74481
class ExtACSyntaxCoupling;
61037
74482
class ExtACTree;
61038
74483
class ExtACKeywords;
61039
 
class WinAsm;
61040
 
class WinDeclSpecs;
61041
 
class WinMemberExplSpec;
61042
 
class WinTypeKeywords;
 
74484
class ExtGnu;
61043
74485
class PragmaOnceUnitState;
61044
74486
class PragmaOnce;
61045
 
class CCExprResolve;
61046
 
class CExprResolve;
 
74487
class CMatchSyntax;
61047
74488
namespace Puma {
61048
74489
 
61049
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74490
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61050
74491
class CT_ArgDecl : public CT_Decl, public CSemObject {
61051
 
#line 61052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74492
#line 74493 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74493
  friend class ::CCExprResolve;
 
74494
  friend class ::CExprResolve;
61052
74495
  friend class ::WinIfExists;
61053
74496
  friend class ::WinImportHandler;
61054
74497
  friend class ::WinMacros;
61055
 
  friend class ::CMatchSyntax;
61056
 
  friend class ::ExtGnu;
 
74498
  friend class ::WinAsm;
 
74499
  friend class ::WinDeclSpecs;
 
74500
  friend class ::WinMemberExplSpec;
 
74501
  friend class ::WinTypeKeywords;
 
74502
  friend class ::WinFriend;
61057
74503
  friend class ::ExtAC;
61058
74504
  friend class ::ExtACBuilderCoupling;
61059
74505
  friend class ::ExtACSyntaxCoupling;
61060
74506
  friend class ::ExtACTree;
61061
74507
  friend class ::ExtACKeywords;
61062
 
  friend class ::WinAsm;
61063
 
  friend class ::WinDeclSpecs;
61064
 
  friend class ::WinMemberExplSpec;
61065
 
  friend class ::WinTypeKeywords;
 
74508
  friend class ::ExtGnu;
61066
74509
  friend class ::PragmaOnceUnitState;
61067
74510
  friend class ::PragmaOnce;
61068
 
  friend class ::CCExprResolve;
61069
 
  friend class ::CExprResolve;
 
74511
  friend class ::CMatchSyntax;
61070
74512
 
61071
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74513
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61072
74514
 
61073
74515
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
61074
74516
 
61075
74517
public:
61076
74518
  CT_ArgDecl (CTree *dsl, CTree *d) {
61077
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
74519
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
74520
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
61078
74521
  }
61079
74522
  CT_ArgDecl (CTree *ellipsis) {
61080
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
74523
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
74524
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
61081
74525
  }
 
74526
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61082
74527
  static const char *NodeId ();
 
74528
  /** Get the name of the node. Can be compared with NodeId(). */
61083
74529
  const char *NodeName () const { return NodeId (); }
 
74530
  /** Get the number of sons. */
61084
74531
  int Sons () const { return CTree::Sons (sons, 4); }
 
74532
  /** Get the n-th son.
 
74533
   *  \param n The index of the son.
 
74534
   *  \return The n-th son or NULL. */
61085
74535
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61086
74536
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
61087
74537
  CTree *Declarator () const { return sons[1]; }
61088
74538
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
61089
74539
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
61090
74540
  CSemObject *SemObject () const { return (CSemObject*)this; }
61091
 
  void Initializer (CTree *i) { sons[2] = i; }
 
74541
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
74542
  /** Replace a son.
 
74543
   *  \param old_son The son to replace.
 
74544
   *  \param new_son The new son. */
61092
74545
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61093
74546
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61094
74547
  }
61095
74548
};
61096
74549
 
61097
74550
 
61098
 
#line 61099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74551
#line 74552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61099
74552
} // closed Puma
 
74553
class CCExprResolve;
 
74554
class CExprResolve;
61100
74555
class WinIfExists;
61101
74556
class WinImportHandler;
61102
74557
class WinMacros;
61103
 
class CMatchSyntax;
61104
 
class ExtGnu;
 
74558
class WinAsm;
 
74559
class WinDeclSpecs;
 
74560
class WinMemberExplSpec;
 
74561
class WinTypeKeywords;
 
74562
class WinFriend;
61105
74563
class ExtAC;
61106
74564
class ExtACBuilderCoupling;
61107
74565
class ExtACSyntaxCoupling;
61108
74566
class ExtACTree;
61109
74567
class ExtACKeywords;
61110
 
class WinAsm;
61111
 
class WinDeclSpecs;
61112
 
class WinMemberExplSpec;
61113
 
class WinTypeKeywords;
 
74568
class ExtGnu;
61114
74569
class PragmaOnceUnitState;
61115
74570
class PragmaOnce;
61116
 
class CCExprResolve;
61117
 
class CExprResolve;
 
74571
class CMatchSyntax;
61118
74572
namespace Puma {
61119
74573
 
61120
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74574
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61121
74575
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
61122
 
#line 61123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74576
#line 74577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74577
  friend class ::CCExprResolve;
 
74578
  friend class ::CExprResolve;
61123
74579
  friend class ::WinIfExists;
61124
74580
  friend class ::WinImportHandler;
61125
74581
  friend class ::WinMacros;
61126
 
  friend class ::CMatchSyntax;
61127
 
  friend class ::ExtGnu;
 
74582
  friend class ::WinAsm;
 
74583
  friend class ::WinDeclSpecs;
 
74584
  friend class ::WinMemberExplSpec;
 
74585
  friend class ::WinTypeKeywords;
 
74586
  friend class ::WinFriend;
61128
74587
  friend class ::ExtAC;
61129
74588
  friend class ::ExtACBuilderCoupling;
61130
74589
  friend class ::ExtACSyntaxCoupling;
61131
74590
  friend class ::ExtACTree;
61132
74591
  friend class ::ExtACKeywords;
61133
 
  friend class ::WinAsm;
61134
 
  friend class ::WinDeclSpecs;
61135
 
  friend class ::WinMemberExplSpec;
61136
 
  friend class ::WinTypeKeywords;
 
74592
  friend class ::ExtGnu;
61137
74593
  friend class ::PragmaOnceUnitState;
61138
74594
  friend class ::PragmaOnce;
61139
 
  friend class ::CCExprResolve;
61140
 
  friend class ::CExprResolve;
 
74595
  friend class ::CMatchSyntax;
61141
74596
 
61142
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74597
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61143
74598
 
61144
74599
public:
61145
74600
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
61146
74601
   CT_DeclList (size, 2) { AddProperties (props); }
 
74602
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61147
74603
  static const char *NodeId ();
 
74604
  /** Get the name of the node. Can be compared with NodeId(). */
61148
74605
  const char *NodeName () const { return NodeId (); }
 
74606
  CSemScope *SemScope () const { return (CSemScope*)this; }
61149
74607
};
61150
74608
 
61151
74609
 
61152
 
#line 61153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74610
#line 74611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61153
74611
} // closed Puma
 
74612
class CCExprResolve;
 
74613
class CExprResolve;
61154
74614
class WinIfExists;
61155
74615
class WinImportHandler;
61156
74616
class WinMacros;
61157
 
class CMatchSyntax;
61158
 
class ExtGnu;
 
74617
class WinAsm;
 
74618
class WinDeclSpecs;
 
74619
class WinMemberExplSpec;
 
74620
class WinTypeKeywords;
 
74621
class WinFriend;
61159
74622
class ExtAC;
61160
74623
class ExtACBuilderCoupling;
61161
74624
class ExtACSyntaxCoupling;
61162
74625
class ExtACTree;
61163
74626
class ExtACKeywords;
61164
 
class WinAsm;
61165
 
class WinDeclSpecs;
61166
 
class WinMemberExplSpec;
61167
 
class WinTypeKeywords;
 
74627
class ExtGnu;
61168
74628
class PragmaOnceUnitState;
61169
74629
class PragmaOnce;
61170
 
class CCExprResolve;
61171
 
class CExprResolve;
 
74630
class CMatchSyntax;
61172
74631
namespace Puma {
61173
74632
 
61174
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74633
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61175
74634
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
61176
 
#line 61177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74635
#line 74636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74636
  friend class ::CCExprResolve;
 
74637
  friend class ::CExprResolve;
61177
74638
  friend class ::WinIfExists;
61178
74639
  friend class ::WinImportHandler;
61179
74640
  friend class ::WinMacros;
61180
 
  friend class ::CMatchSyntax;
61181
 
  friend class ::ExtGnu;
 
74641
  friend class ::WinAsm;
 
74642
  friend class ::WinDeclSpecs;
 
74643
  friend class ::WinMemberExplSpec;
 
74644
  friend class ::WinTypeKeywords;
 
74645
  friend class ::WinFriend;
61182
74646
  friend class ::ExtAC;
61183
74647
  friend class ::ExtACBuilderCoupling;
61184
74648
  friend class ::ExtACSyntaxCoupling;
61185
74649
  friend class ::ExtACTree;
61186
74650
  friend class ::ExtACKeywords;
61187
 
  friend class ::WinAsm;
61188
 
  friend class ::WinDeclSpecs;
61189
 
  friend class ::WinMemberExplSpec;
61190
 
  friend class ::WinTypeKeywords;
 
74651
  friend class ::ExtGnu;
61191
74652
  friend class ::PragmaOnceUnitState;
61192
74653
  friend class ::PragmaOnce;
61193
 
  friend class ::CCExprResolve;
61194
 
  friend class ::CExprResolve;
 
74654
  friend class ::CMatchSyntax;
61195
74655
 
61196
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74656
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61197
74657
 
61198
74658
public:
61199
74659
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
74660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61200
74661
  static const char *NodeId ();
 
74662
  /** Get the name of the node. Can be compared with NodeId(). */
61201
74663
  const char *NodeName () const { return NodeId (); }
 
74664
  CSemScope *SemScope () const { return (CSemScope*)this; }
61202
74665
};
61203
74666
 
61204
74667
 
61205
 
#line 61206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74668
#line 74669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61206
74669
} // closed Puma
 
74670
class CCExprResolve;
 
74671
class CExprResolve;
61207
74672
class WinIfExists;
61208
74673
class WinImportHandler;
61209
74674
class WinMacros;
61210
 
class CMatchSyntax;
61211
 
class ExtGnu;
 
74675
class WinAsm;
 
74676
class WinDeclSpecs;
 
74677
class WinMemberExplSpec;
 
74678
class WinTypeKeywords;
 
74679
class WinFriend;
61212
74680
class ExtAC;
61213
74681
class ExtACBuilderCoupling;
61214
74682
class ExtACSyntaxCoupling;
61215
74683
class ExtACTree;
61216
74684
class ExtACKeywords;
61217
 
class WinAsm;
61218
 
class WinDeclSpecs;
61219
 
class WinMemberExplSpec;
61220
 
class WinTypeKeywords;
 
74685
class ExtGnu;
61221
74686
class PragmaOnceUnitState;
61222
74687
class PragmaOnce;
61223
 
class CCExprResolve;
61224
 
class CExprResolve;
 
74688
class CMatchSyntax;
61225
74689
namespace Puma {
61226
74690
 
61227
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74691
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61228
74692
class CT_ArgNameList : public CT_ArgDeclList {
61229
 
#line 61230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74693
#line 74694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74694
  friend class ::CCExprResolve;
 
74695
  friend class ::CExprResolve;
61230
74696
  friend class ::WinIfExists;
61231
74697
  friend class ::WinImportHandler;
61232
74698
  friend class ::WinMacros;
61233
 
  friend class ::CMatchSyntax;
61234
 
  friend class ::ExtGnu;
 
74699
  friend class ::WinAsm;
 
74700
  friend class ::WinDeclSpecs;
 
74701
  friend class ::WinMemberExplSpec;
 
74702
  friend class ::WinTypeKeywords;
 
74703
  friend class ::WinFriend;
61235
74704
  friend class ::ExtAC;
61236
74705
  friend class ::ExtACBuilderCoupling;
61237
74706
  friend class ::ExtACSyntaxCoupling;
61238
74707
  friend class ::ExtACTree;
61239
74708
  friend class ::ExtACKeywords;
61240
 
  friend class ::WinAsm;
61241
 
  friend class ::WinDeclSpecs;
61242
 
  friend class ::WinMemberExplSpec;
61243
 
  friend class ::WinTypeKeywords;
 
74709
  friend class ::ExtGnu;
61244
74710
  friend class ::PragmaOnceUnitState;
61245
74711
  friend class ::PragmaOnce;
61246
 
  friend class ::CCExprResolve;
61247
 
  friend class ::CExprResolve;
 
74712
  friend class ::CMatchSyntax;
61248
74713
 
61249
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74714
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61250
74715
 
61251
74716
public:
61252
74717
  CT_ArgNameList () : CT_ArgDeclList () {}
 
74718
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61253
74719
  static const char *NodeId ();
 
74720
  /** Get the name of the node. Can be compared with NodeId(). */
61254
74721
  const char *NodeName () const { return NodeId (); }
61255
74722
};
61256
74723
 
61257
74724
 
61258
 
#line 61259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74725
#line 74726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61259
74726
} // closed Puma
 
74727
class CCExprResolve;
 
74728
class CExprResolve;
61260
74729
class WinIfExists;
61261
74730
class WinImportHandler;
61262
74731
class WinMacros;
61263
 
class CMatchSyntax;
61264
 
class ExtGnu;
 
74732
class WinAsm;
 
74733
class WinDeclSpecs;
 
74734
class WinMemberExplSpec;
 
74735
class WinTypeKeywords;
 
74736
class WinFriend;
61265
74737
class ExtAC;
61266
74738
class ExtACBuilderCoupling;
61267
74739
class ExtACSyntaxCoupling;
61268
74740
class ExtACTree;
61269
74741
class ExtACKeywords;
61270
 
class WinAsm;
61271
 
class WinDeclSpecs;
61272
 
class WinMemberExplSpec;
61273
 
class WinTypeKeywords;
 
74742
class ExtGnu;
61274
74743
class PragmaOnceUnitState;
61275
74744
class PragmaOnce;
61276
 
class CCExprResolve;
61277
 
class CExprResolve;
 
74745
class CMatchSyntax;
61278
74746
namespace Puma {
61279
74747
 
61280
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74748
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61281
74749
class CT_NamespaceDef : public CT_Decl, public CSemObject {
61282
 
#line 61283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74750
#line 74751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74751
  friend class ::CCExprResolve;
 
74752
  friend class ::CExprResolve;
61283
74753
  friend class ::WinIfExists;
61284
74754
  friend class ::WinImportHandler;
61285
74755
  friend class ::WinMacros;
61286
 
  friend class ::CMatchSyntax;
61287
 
  friend class ::ExtGnu;
 
74756
  friend class ::WinAsm;
 
74757
  friend class ::WinDeclSpecs;
 
74758
  friend class ::WinMemberExplSpec;
 
74759
  friend class ::WinTypeKeywords;
 
74760
  friend class ::WinFriend;
61288
74761
  friend class ::ExtAC;
61289
74762
  friend class ::ExtACBuilderCoupling;
61290
74763
  friend class ::ExtACSyntaxCoupling;
61291
74764
  friend class ::ExtACTree;
61292
74765
  friend class ::ExtACKeywords;
61293
 
  friend class ::WinAsm;
61294
 
  friend class ::WinDeclSpecs;
61295
 
  friend class ::WinMemberExplSpec;
61296
 
  friend class ::WinTypeKeywords;
 
74766
  friend class ::ExtGnu;
61297
74767
  friend class ::PragmaOnceUnitState;
61298
74768
  friend class ::PragmaOnce;
61299
 
  friend class ::CCExprResolve;
61300
 
  friend class ::CExprResolve;
 
74769
  friend class ::CMatchSyntax;
61301
74770
 
61302
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74771
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61303
74772
 
61304
74773
  CTree *sons[3]; // ns, name, members
61305
74774
 
61306
74775
public:
61307
74776
  CT_NamespaceDef (CTree *n, CTree *nm) {
61308
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
74777
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
61309
74778
  }
61310
74779
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
61311
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
74780
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
61312
74781
  }
 
74782
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61313
74783
  static const char *NodeId ();
 
74784
  /** Get the name of the node. Can be compared with NodeId(). */
61314
74785
  const char *NodeName () const { return NodeId (); }
 
74786
  /** Get the number of sons. */
61315
74787
  int Sons () const { return CTree::Sons (sons, 3); }
 
74788
  /** Get the n-th son.
 
74789
   *  \param n The index of the son.
 
74790
   *  \return The n-th son or NULL. */
61316
74791
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61317
 
  void Members (CTree *m) { sons[2] = m; }
 
74792
  void Members (CTree *m) { AddSon (sons[2], m); }
61318
74793
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
61319
74794
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
61320
74795
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
74796
  /** Replace a son.
 
74797
   *  \param old_son The son to replace.
 
74798
   *  \param new_son The new son. */
61321
74799
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61322
74800
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61323
74801
  }
61324
74802
};
61325
74803
 
61326
74804
 
61327
 
#line 61328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74805
#line 74806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61328
74806
} // closed Puma
 
74807
class CCExprResolve;
 
74808
class CExprResolve;
61329
74809
class WinIfExists;
61330
74810
class WinImportHandler;
61331
74811
class WinMacros;
61332
 
class CMatchSyntax;
61333
 
class ExtGnu;
 
74812
class WinAsm;
 
74813
class WinDeclSpecs;
 
74814
class WinMemberExplSpec;
 
74815
class WinTypeKeywords;
 
74816
class WinFriend;
61334
74817
class ExtAC;
61335
74818
class ExtACBuilderCoupling;
61336
74819
class ExtACSyntaxCoupling;
61337
74820
class ExtACTree;
61338
74821
class ExtACKeywords;
61339
 
class WinAsm;
61340
 
class WinDeclSpecs;
61341
 
class WinMemberExplSpec;
61342
 
class WinTypeKeywords;
 
74822
class ExtGnu;
61343
74823
class PragmaOnceUnitState;
61344
74824
class PragmaOnce;
61345
 
class CCExprResolve;
61346
 
class CExprResolve;
 
74825
class CMatchSyntax;
61347
74826
namespace Puma {
61348
74827
 
61349
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74828
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61350
74829
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
61351
 
#line 61352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74830
#line 74831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74831
  friend class ::CCExprResolve;
 
74832
  friend class ::CExprResolve;
61352
74833
  friend class ::WinIfExists;
61353
74834
  friend class ::WinImportHandler;
61354
74835
  friend class ::WinMacros;
61355
 
  friend class ::CMatchSyntax;
61356
 
  friend class ::ExtGnu;
 
74836
  friend class ::WinAsm;
 
74837
  friend class ::WinDeclSpecs;
 
74838
  friend class ::WinMemberExplSpec;
 
74839
  friend class ::WinTypeKeywords;
 
74840
  friend class ::WinFriend;
61357
74841
  friend class ::ExtAC;
61358
74842
  friend class ::ExtACBuilderCoupling;
61359
74843
  friend class ::ExtACSyntaxCoupling;
61360
74844
  friend class ::ExtACTree;
61361
74845
  friend class ::ExtACKeywords;
61362
 
  friend class ::WinAsm;
61363
 
  friend class ::WinDeclSpecs;
61364
 
  friend class ::WinMemberExplSpec;
61365
 
  friend class ::WinTypeKeywords;
 
74846
  friend class ::ExtGnu;
61366
74847
  friend class ::PragmaOnceUnitState;
61367
74848
  friend class ::PragmaOnce;
61368
 
  friend class ::CCExprResolve;
61369
 
  friend class ::CExprResolve;
 
74849
  friend class ::CMatchSyntax;
61370
74850
 
61371
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74851
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61372
74852
 
61373
74853
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
61374
74854
 
61375
74855
public:
61376
74856
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
61377
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
74857
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
74858
    AddSon (sons[3], nm); AddSon (sons[4], s); 
61378
74859
  }
 
74860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61379
74861
  static const char *NodeId ();
 
74862
  /** Get the name of the node. Can be compared with NodeId(). */
61380
74863
  const char *NodeName () const { return NodeId (); }
 
74864
  /** Get the number of sons. */
61381
74865
  int Sons () const { return 5; }
 
74866
  /** Get the n-th son.
 
74867
   *  \param n The index of the son.
 
74868
   *  \return The n-th son or NULL. */
61382
74869
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
61383
74870
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
61384
74871
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
61385
74872
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
74873
  /** Replace a son.
 
74874
   *  \param old_son The son to replace.
 
74875
   *  \param new_son The new son. */
61386
74876
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61387
74877
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61388
74878
  }
61389
74879
};
61390
74880
 
61391
74881
 
61392
 
#line 61393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74882
#line 74883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61393
74883
} // closed Puma
 
74884
class CCExprResolve;
 
74885
class CExprResolve;
61394
74886
class WinIfExists;
61395
74887
class WinImportHandler;
61396
74888
class WinMacros;
61397
 
class CMatchSyntax;
61398
 
class ExtGnu;
 
74889
class WinAsm;
 
74890
class WinDeclSpecs;
 
74891
class WinMemberExplSpec;
 
74892
class WinTypeKeywords;
 
74893
class WinFriend;
61399
74894
class ExtAC;
61400
74895
class ExtACBuilderCoupling;
61401
74896
class ExtACSyntaxCoupling;
61402
74897
class ExtACTree;
61403
74898
class ExtACKeywords;
61404
 
class WinAsm;
61405
 
class WinDeclSpecs;
61406
 
class WinMemberExplSpec;
61407
 
class WinTypeKeywords;
 
74899
class ExtGnu;
61408
74900
class PragmaOnceUnitState;
61409
74901
class PragmaOnce;
61410
 
class CCExprResolve;
61411
 
class CExprResolve;
 
74902
class CMatchSyntax;
61412
74903
namespace Puma {
61413
74904
 
61414
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74905
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61415
74906
class CT_UsingDirective : public CT_Decl {
61416
 
#line 61417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74907
#line 74908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74908
  friend class ::CCExprResolve;
 
74909
  friend class ::CExprResolve;
61417
74910
  friend class ::WinIfExists;
61418
74911
  friend class ::WinImportHandler;
61419
74912
  friend class ::WinMacros;
61420
 
  friend class ::CMatchSyntax;
61421
 
  friend class ::ExtGnu;
 
74913
  friend class ::WinAsm;
 
74914
  friend class ::WinDeclSpecs;
 
74915
  friend class ::WinMemberExplSpec;
 
74916
  friend class ::WinTypeKeywords;
 
74917
  friend class ::WinFriend;
61422
74918
  friend class ::ExtAC;
61423
74919
  friend class ::ExtACBuilderCoupling;
61424
74920
  friend class ::ExtACSyntaxCoupling;
61425
74921
  friend class ::ExtACTree;
61426
74922
  friend class ::ExtACKeywords;
61427
 
  friend class ::WinAsm;
61428
 
  friend class ::WinDeclSpecs;
61429
 
  friend class ::WinMemberExplSpec;
61430
 
  friend class ::WinTypeKeywords;
 
74923
  friend class ::ExtGnu;
61431
74924
  friend class ::PragmaOnceUnitState;
61432
74925
  friend class ::PragmaOnce;
61433
 
  friend class ::CCExprResolve;
61434
 
  friend class ::CExprResolve;
 
74926
  friend class ::CMatchSyntax;
61435
74927
 
61436
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74928
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61437
74929
 
61438
74930
  CTree *sons[4]; // using, ns, name, semi_colon
61439
74931
 
61440
74932
public:
61441
74933
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
61442
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
74934
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
74935
    AddSon (sons[3], s); 
61443
74936
  }
 
74937
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61444
74938
  static const char *NodeId ();
 
74939
  /** Get the name of the node. Can be compared with NodeId(). */
61445
74940
  const char *NodeName () const { return NodeId (); }
 
74941
  /** Get the number of sons. */
61446
74942
  int Sons () const { return 4; }
 
74943
  /** Get the n-th son.
 
74944
   *  \param n The index of the son.
 
74945
   *  \return The n-th son or NULL. */
61447
74946
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61448
74947
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
74948
  /** Replace a son.
 
74949
   *  \param old_son The son to replace.
 
74950
   *  \param new_son The new son. */
61449
74951
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61450
74952
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61451
74953
  }
61458
74960
/*****************************************************************************/
61459
74961
 
61460
74962
 
61461
 
#line 61462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74963
#line 74964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61462
74964
} // closed Puma
 
74965
class CCExprResolve;
 
74966
class CExprResolve;
61463
74967
class WinIfExists;
61464
74968
class WinImportHandler;
61465
74969
class WinMacros;
61466
 
class CMatchSyntax;
61467
 
class ExtGnu;
 
74970
class WinAsm;
 
74971
class WinDeclSpecs;
 
74972
class WinMemberExplSpec;
 
74973
class WinTypeKeywords;
 
74974
class WinFriend;
61468
74975
class ExtAC;
61469
74976
class ExtACBuilderCoupling;
61470
74977
class ExtACSyntaxCoupling;
61471
74978
class ExtACTree;
61472
74979
class ExtACKeywords;
61473
 
class WinAsm;
61474
 
class WinDeclSpecs;
61475
 
class WinMemberExplSpec;
61476
 
class WinTypeKeywords;
 
74980
class ExtGnu;
61477
74981
class PragmaOnceUnitState;
61478
74982
class PragmaOnce;
61479
 
class CCExprResolve;
61480
 
class CExprResolve;
 
74983
class CMatchSyntax;
61481
74984
namespace Puma {
61482
74985
 
61483
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74986
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61484
74987
class CT_Declarator : public CTree {
61485
 
#line 61486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
74988
#line 74989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
74989
  friend class ::CCExprResolve;
 
74990
  friend class ::CExprResolve;
61486
74991
  friend class ::WinIfExists;
61487
74992
  friend class ::WinImportHandler;
61488
74993
  friend class ::WinMacros;
61489
 
  friend class ::CMatchSyntax;
61490
 
  friend class ::ExtGnu;
 
74994
  friend class ::WinAsm;
 
74995
  friend class ::WinDeclSpecs;
 
74996
  friend class ::WinMemberExplSpec;
 
74997
  friend class ::WinTypeKeywords;
 
74998
  friend class ::WinFriend;
61491
74999
  friend class ::ExtAC;
61492
75000
  friend class ::ExtACBuilderCoupling;
61493
75001
  friend class ::ExtACSyntaxCoupling;
61494
75002
  friend class ::ExtACTree;
61495
75003
  friend class ::ExtACKeywords;
61496
 
  friend class ::WinAsm;
61497
 
  friend class ::WinDeclSpecs;
61498
 
  friend class ::WinMemberExplSpec;
61499
 
  friend class ::WinTypeKeywords;
 
75004
  friend class ::ExtGnu;
61500
75005
  friend class ::PragmaOnceUnitState;
61501
75006
  friend class ::PragmaOnce;
61502
 
  friend class ::CCExprResolve;
61503
 
  friend class ::CExprResolve;
 
75007
  friend class ::CMatchSyntax;
61504
75008
 
61505
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75009
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61506
75010
 
61507
75011
protected:
61508
75012
  CT_Declarator () {}
61517
75021
};
61518
75022
 
61519
75023
 
61520
 
#line 61521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75024
#line 75025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61521
75025
} // closed Puma
 
75026
class CCExprResolve;
 
75027
class CExprResolve;
61522
75028
class WinIfExists;
61523
75029
class WinImportHandler;
61524
75030
class WinMacros;
61525
 
class CMatchSyntax;
61526
 
class ExtGnu;
 
75031
class WinAsm;
 
75032
class WinDeclSpecs;
 
75033
class WinMemberExplSpec;
 
75034
class WinTypeKeywords;
 
75035
class WinFriend;
61527
75036
class ExtAC;
61528
75037
class ExtACBuilderCoupling;
61529
75038
class ExtACSyntaxCoupling;
61530
75039
class ExtACTree;
61531
75040
class ExtACKeywords;
61532
 
class WinAsm;
61533
 
class WinDeclSpecs;
61534
 
class WinMemberExplSpec;
61535
 
class WinTypeKeywords;
 
75041
class ExtGnu;
61536
75042
class PragmaOnceUnitState;
61537
75043
class PragmaOnce;
61538
 
class CCExprResolve;
61539
 
class CExprResolve;
 
75044
class CMatchSyntax;
61540
75045
namespace Puma {
61541
75046
 
61542
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75047
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61543
75048
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
61544
 
#line 61545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75049
#line 75050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75050
  friend class ::CCExprResolve;
 
75051
  friend class ::CExprResolve;
61545
75052
  friend class ::WinIfExists;
61546
75053
  friend class ::WinImportHandler;
61547
75054
  friend class ::WinMacros;
61548
 
  friend class ::CMatchSyntax;
61549
 
  friend class ::ExtGnu;
 
75055
  friend class ::WinAsm;
 
75056
  friend class ::WinDeclSpecs;
 
75057
  friend class ::WinMemberExplSpec;
 
75058
  friend class ::WinTypeKeywords;
 
75059
  friend class ::WinFriend;
61550
75060
  friend class ::ExtAC;
61551
75061
  friend class ::ExtACBuilderCoupling;
61552
75062
  friend class ::ExtACSyntaxCoupling;
61553
75063
  friend class ::ExtACTree;
61554
75064
  friend class ::ExtACKeywords;
61555
 
  friend class ::WinAsm;
61556
 
  friend class ::WinDeclSpecs;
61557
 
  friend class ::WinMemberExplSpec;
61558
 
  friend class ::WinTypeKeywords;
 
75065
  friend class ::ExtGnu;
61559
75066
  friend class ::PragmaOnceUnitState;
61560
75067
  friend class ::PragmaOnce;
61561
 
  friend class ::CCExprResolve;
61562
 
  friend class ::CExprResolve;
61563
 
 
61564
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61565
 
 
61566
 
  CTree *sons[2]; // declarator, init
 
75068
  friend class ::CMatchSyntax;
 
75069
 
 
75070
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75071
 
 
75072
  CTree *sons[3]; // declarator, ext, init
61567
75073
  CTree *obj_decl;
61568
75074
 
61569
75075
public:
61570
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
61571
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
75076
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
75077
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
75078
    AddSon (obj_decl, 0); 
61572
75079
  }
 
75080
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61573
75081
  static const char *NodeId ();
 
75082
  /** Get the name of the node. Can be compared with NodeId(). */
61574
75083
  const char *NodeName () const { return NodeId (); }
61575
 
  int Sons () const { return CTree::Sons (sons, 2); }
61576
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
75084
  /** Get the number of sons. */
 
75085
  int Sons () const { return CTree::Sons (sons, 3); }
 
75086
  /** Get the n-th son.
 
75087
   *  \param n The index of the son.
 
75088
   *  \return The n-th son or NULL. */
 
75089
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61577
75090
  CTree *Declarator () const { return sons[0]; }
61578
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
75091
  CTree *Extension () const { return sons[1]; }
 
75092
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
61579
75093
  CSemObject *SemObject () const { return (CSemObject*)this; }
61580
75094
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
61581
 
  void Initializer (CTree* i) { sons[1] = i; }
61582
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
75095
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
75096
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
75097
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
75098
  /** Replace a son.
 
75099
   *  \param old_son The son to replace.
 
75100
   *  \param new_son The new son. */
61583
75101
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61584
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
75102
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61585
75103
  }
61586
75104
};
61587
75105
 
61588
75106
 
61589
 
#line 61590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75107
#line 75108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61590
75108
} // closed Puma
 
75109
class CCExprResolve;
 
75110
class CExprResolve;
61591
75111
class WinIfExists;
61592
75112
class WinImportHandler;
61593
75113
class WinMacros;
61594
 
class CMatchSyntax;
61595
 
class ExtGnu;
 
75114
class WinAsm;
 
75115
class WinDeclSpecs;
 
75116
class WinMemberExplSpec;
 
75117
class WinTypeKeywords;
 
75118
class WinFriend;
61596
75119
class ExtAC;
61597
75120
class ExtACBuilderCoupling;
61598
75121
class ExtACSyntaxCoupling;
61599
75122
class ExtACTree;
61600
75123
class ExtACKeywords;
61601
 
class WinAsm;
61602
 
class WinDeclSpecs;
61603
 
class WinMemberExplSpec;
61604
 
class WinTypeKeywords;
 
75124
class ExtGnu;
61605
75125
class PragmaOnceUnitState;
61606
75126
class PragmaOnce;
61607
 
class CCExprResolve;
61608
 
class CExprResolve;
 
75127
class CMatchSyntax;
61609
75128
namespace Puma {
61610
75129
 
61611
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75130
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61612
75131
class CT_BracedDeclarator : public CT_Declarator {
61613
 
#line 61614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75132
#line 75133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75133
  friend class ::CCExprResolve;
 
75134
  friend class ::CExprResolve;
61614
75135
  friend class ::WinIfExists;
61615
75136
  friend class ::WinImportHandler;
61616
75137
  friend class ::WinMacros;
61617
 
  friend class ::CMatchSyntax;
61618
 
  friend class ::ExtGnu;
 
75138
  friend class ::WinAsm;
 
75139
  friend class ::WinDeclSpecs;
 
75140
  friend class ::WinMemberExplSpec;
 
75141
  friend class ::WinTypeKeywords;
 
75142
  friend class ::WinFriend;
61619
75143
  friend class ::ExtAC;
61620
75144
  friend class ::ExtACBuilderCoupling;
61621
75145
  friend class ::ExtACSyntaxCoupling;
61622
75146
  friend class ::ExtACTree;
61623
75147
  friend class ::ExtACKeywords;
61624
 
  friend class ::WinAsm;
61625
 
  friend class ::WinDeclSpecs;
61626
 
  friend class ::WinMemberExplSpec;
61627
 
  friend class ::WinTypeKeywords;
 
75148
  friend class ::ExtGnu;
61628
75149
  friend class ::PragmaOnceUnitState;
61629
75150
  friend class ::PragmaOnce;
61630
 
  friend class ::CCExprResolve;
61631
 
  friend class ::CExprResolve;
 
75151
  friend class ::CMatchSyntax;
61632
75152
 
61633
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75153
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61634
75154
 
61635
75155
  CTree *sons[4]; // open, win_specs, declarator, close
61636
75156
 
61637
75157
public:
61638
75158
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
61639
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
75159
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
75160
    AddSon (sons[2], d); AddSon (sons[3], c); 
61640
75161
  }
61641
75162
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
61642
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
75163
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
75164
    AddSon (sons[2], d); AddSon (sons[3], c); 
61643
75165
  }
 
75166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61644
75167
  static const char *NodeId ();
 
75168
  /** Get the name of the node. Can be compared with NodeId(). */
61645
75169
  const char *NodeName () const { return NodeId (); }
 
75170
  /** Get the number of sons. */
61646
75171
  int Sons () const { return CTree::Sons (sons, 4); }
 
75172
  /** Get the n-th son.
 
75173
   *  \param n The index of the son.
 
75174
   *  \return The n-th son or NULL. */
61647
75175
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61648
75176
  CTree *Declarator () const { return sons[2]; }
 
75177
  /** Replace a son.
 
75178
   *  \param old_son The son to replace.
 
75179
   *  \param new_son The new son. */
61649
75180
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61650
75181
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61651
75182
  }
61652
75183
};
61653
75184
 
61654
75185
 
61655
 
#line 61656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75186
#line 75187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61656
75187
} // closed Puma
 
75188
class CCExprResolve;
 
75189
class CExprResolve;
61657
75190
class WinIfExists;
61658
75191
class WinImportHandler;
61659
75192
class WinMacros;
61660
 
class CMatchSyntax;
61661
 
class ExtGnu;
 
75193
class WinAsm;
 
75194
class WinDeclSpecs;
 
75195
class WinMemberExplSpec;
 
75196
class WinTypeKeywords;
 
75197
class WinFriend;
61662
75198
class ExtAC;
61663
75199
class ExtACBuilderCoupling;
61664
75200
class ExtACSyntaxCoupling;
61665
75201
class ExtACTree;
61666
75202
class ExtACKeywords;
61667
 
class WinAsm;
61668
 
class WinDeclSpecs;
61669
 
class WinMemberExplSpec;
61670
 
class WinTypeKeywords;
 
75203
class ExtGnu;
61671
75204
class PragmaOnceUnitState;
61672
75205
class PragmaOnce;
61673
 
class CCExprResolve;
61674
 
class CExprResolve;
 
75206
class CMatchSyntax;
61675
75207
namespace Puma {
61676
75208
 
61677
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75209
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61678
75210
class CT_ArrayDelimiter : public CTree {
61679
 
#line 61680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75211
#line 75212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75212
  friend class ::CCExprResolve;
 
75213
  friend class ::CExprResolve;
61680
75214
  friend class ::WinIfExists;
61681
75215
  friend class ::WinImportHandler;
61682
75216
  friend class ::WinMacros;
61683
 
  friend class ::CMatchSyntax;
61684
 
  friend class ::ExtGnu;
 
75217
  friend class ::WinAsm;
 
75218
  friend class ::WinDeclSpecs;
 
75219
  friend class ::WinMemberExplSpec;
 
75220
  friend class ::WinTypeKeywords;
 
75221
  friend class ::WinFriend;
61685
75222
  friend class ::ExtAC;
61686
75223
  friend class ::ExtACBuilderCoupling;
61687
75224
  friend class ::ExtACSyntaxCoupling;
61688
75225
  friend class ::ExtACTree;
61689
75226
  friend class ::ExtACKeywords;
61690
 
  friend class ::WinAsm;
61691
 
  friend class ::WinDeclSpecs;
61692
 
  friend class ::WinMemberExplSpec;
61693
 
  friend class ::WinTypeKeywords;
 
75227
  friend class ::ExtGnu;
61694
75228
  friend class ::PragmaOnceUnitState;
61695
75229
  friend class ::PragmaOnce;
61696
 
  friend class ::CCExprResolve;
61697
 
  friend class ::CExprResolve;
 
75230
  friend class ::CMatchSyntax;
61698
75231
 
61699
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75232
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61700
75233
 
61701
75234
  CTree *sons[4]; // star, static, quals, expr
61702
75235
  bool pos0;
61703
75236
 
61704
75237
public:
61705
75238
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
61706
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
75239
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
75240
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
61707
75241
  }
 
75242
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61708
75243
  static const char *NodeId ();
 
75244
  /** Get the name of the node. Can be compared with NodeId(). */
61709
75245
  const char *NodeName () const { return NodeId (); }
 
75246
  /** Get the number of sons. */
61710
75247
  int Sons () const { return CTree::Sons (sons, 4); }
 
75248
  /** Get the n-th son.
 
75249
   *  \param n The index of the son.
 
75250
   *  \return The n-th son or NULL. */
61711
75251
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61712
75252
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
61713
75253
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
61714
75254
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
61715
75255
  CTree *Expr () const { return sons[3]; }
 
75256
  /** Replace a son.
 
75257
   *  \param old_son The son to replace.
 
75258
   *  \param new_son The new son. */
61716
75259
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61717
75260
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61718
75261
  }
61719
75262
};
61720
75263
 
61721
75264
 
61722
 
#line 61723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75265
#line 75266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61723
75266
} // closed Puma
 
75267
class CCExprResolve;
 
75268
class CExprResolve;
61724
75269
class WinIfExists;
61725
75270
class WinImportHandler;
61726
75271
class WinMacros;
61727
 
class CMatchSyntax;
61728
 
class ExtGnu;
 
75272
class WinAsm;
 
75273
class WinDeclSpecs;
 
75274
class WinMemberExplSpec;
 
75275
class WinTypeKeywords;
 
75276
class WinFriend;
61729
75277
class ExtAC;
61730
75278
class ExtACBuilderCoupling;
61731
75279
class ExtACSyntaxCoupling;
61732
75280
class ExtACTree;
61733
75281
class ExtACKeywords;
61734
 
class WinAsm;
61735
 
class WinDeclSpecs;
61736
 
class WinMemberExplSpec;
61737
 
class WinTypeKeywords;
 
75282
class ExtGnu;
61738
75283
class PragmaOnceUnitState;
61739
75284
class PragmaOnce;
61740
 
class CCExprResolve;
61741
 
class CExprResolve;
 
75285
class CMatchSyntax;
61742
75286
namespace Puma {
61743
75287
 
61744
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75288
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61745
75289
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
61746
 
#line 61747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75290
#line 75291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75291
  friend class ::CCExprResolve;
 
75292
  friend class ::CExprResolve;
61747
75293
  friend class ::WinIfExists;
61748
75294
  friend class ::WinImportHandler;
61749
75295
  friend class ::WinMacros;
61750
 
  friend class ::CMatchSyntax;
61751
 
  friend class ::ExtGnu;
 
75296
  friend class ::WinAsm;
 
75297
  friend class ::WinDeclSpecs;
 
75298
  friend class ::WinMemberExplSpec;
 
75299
  friend class ::WinTypeKeywords;
 
75300
  friend class ::WinFriend;
61752
75301
  friend class ::ExtAC;
61753
75302
  friend class ::ExtACBuilderCoupling;
61754
75303
  friend class ::ExtACSyntaxCoupling;
61755
75304
  friend class ::ExtACTree;
61756
75305
  friend class ::ExtACKeywords;
61757
 
  friend class ::WinAsm;
61758
 
  friend class ::WinDeclSpecs;
61759
 
  friend class ::WinMemberExplSpec;
61760
 
  friend class ::WinTypeKeywords;
 
75306
  friend class ::ExtGnu;
61761
75307
  friend class ::PragmaOnceUnitState;
61762
75308
  friend class ::PragmaOnce;
61763
 
  friend class ::CCExprResolve;
61764
 
  friend class ::CExprResolve;
 
75309
  friend class ::CMatchSyntax;
61765
75310
 
61766
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75311
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61767
75312
 
61768
75313
  CTree *sons[4]; // declarator, open, delim, close
61769
75314
 
61770
75315
public:
61771
75316
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
61772
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
75317
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
75318
    AddSon (sons[2], ad); AddSon (sons[3], c); 
61773
75319
  }
 
75320
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61774
75321
  static const char *NodeId ();
 
75322
  /** Get the name of the node. Can be compared with NodeId(). */
61775
75323
  const char *NodeName () const { return NodeId (); }
 
75324
  /** Get the number of sons. */
61776
75325
  int Sons () const { return 4; }
 
75326
  /** Get the n-th son.
 
75327
   *  \param n The index of the son.
 
75328
   *  \return The n-th son or NULL. */
61777
75329
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61778
75330
  CTree *Declarator () const { return sons[0]; }
61779
75331
  CT_ArrayDelimiter *Delimiter () const 
61780
75332
   { return (CT_ArrayDelimiter*)sons[2]; }
 
75333
  /** Replace a son.
 
75334
   *  \param old_son The son to replace.
 
75335
   *  \param new_son The new son. */
61781
75336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61782
75337
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61783
75338
  }
61787
75342
};
61788
75343
 
61789
75344
 
61790
 
#line 61791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75345
#line 75346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61791
75346
} // closed Puma
 
75347
class CCExprResolve;
 
75348
class CExprResolve;
61792
75349
class WinIfExists;
61793
75350
class WinImportHandler;
61794
75351
class WinMacros;
61795
 
class CMatchSyntax;
61796
 
class ExtGnu;
 
75352
class WinAsm;
 
75353
class WinDeclSpecs;
 
75354
class WinMemberExplSpec;
 
75355
class WinTypeKeywords;
 
75356
class WinFriend;
61797
75357
class ExtAC;
61798
75358
class ExtACBuilderCoupling;
61799
75359
class ExtACSyntaxCoupling;
61800
75360
class ExtACTree;
61801
75361
class ExtACKeywords;
61802
 
class WinAsm;
61803
 
class WinDeclSpecs;
61804
 
class WinMemberExplSpec;
61805
 
class WinTypeKeywords;
 
75362
class ExtGnu;
61806
75363
class PragmaOnceUnitState;
61807
75364
class PragmaOnce;
61808
 
class CCExprResolve;
61809
 
class CExprResolve;
 
75365
class CMatchSyntax;
61810
75366
namespace Puma {
61811
75367
 
61812
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75368
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61813
75369
class CT_FctDeclarator : public CT_Declarator {
61814
 
#line 61815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75370
#line 75371 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75371
  friend class ::CCExprResolve;
 
75372
  friend class ::CExprResolve;
61815
75373
  friend class ::WinIfExists;
61816
75374
  friend class ::WinImportHandler;
61817
75375
  friend class ::WinMacros;
61818
 
  friend class ::CMatchSyntax;
61819
 
  friend class ::ExtGnu;
 
75376
  friend class ::WinAsm;
 
75377
  friend class ::WinDeclSpecs;
 
75378
  friend class ::WinMemberExplSpec;
 
75379
  friend class ::WinTypeKeywords;
 
75380
  friend class ::WinFriend;
61820
75381
  friend class ::ExtAC;
61821
75382
  friend class ::ExtACBuilderCoupling;
61822
75383
  friend class ::ExtACSyntaxCoupling;
61823
75384
  friend class ::ExtACTree;
61824
75385
  friend class ::ExtACKeywords;
61825
 
  friend class ::WinAsm;
61826
 
  friend class ::WinDeclSpecs;
61827
 
  friend class ::WinMemberExplSpec;
61828
 
  friend class ::WinTypeKeywords;
 
75386
  friend class ::ExtGnu;
61829
75387
  friend class ::PragmaOnceUnitState;
61830
75388
  friend class ::PragmaOnce;
61831
 
  friend class ::CCExprResolve;
61832
 
  friend class ::CExprResolve;
 
75389
  friend class ::CMatchSyntax;
61833
75390
 
61834
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75391
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61835
75392
 
61836
75393
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
61837
75394
 
61838
75395
public:
61839
75396
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
61840
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
75397
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
75398
    AddSon (sons[2], cv); AddSon (sons[3], es); 
61841
75399
  }
 
75400
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61842
75401
  static const char *NodeId ();
 
75402
  /** Get the name of the node. Can be compared with NodeId(). */
61843
75403
  const char *NodeName () const { return NodeId (); }
 
75404
  /** Get the number of sons. */
61844
75405
  int Sons () const { return CTree::Sons (sons, 4); }
 
75406
  /** Get the n-th son.
 
75407
   *  \param n The index of the son.
 
75408
   *  \return The n-th son or NULL. */
61845
75409
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
61846
75410
  CTree *Declarator () const { return sons[0]; }
61847
75411
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
61848
75412
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
61849
75413
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
75414
  /** Replace a son.
 
75415
   *  \param old_son The son to replace.
 
75416
   *  \param new_son The new son. */
61850
75417
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61851
75418
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61852
75419
  }
61853
75420
};
61854
75421
 
61855
75422
 
61856
 
#line 61857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75423
#line 75424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61857
75424
} // closed Puma
 
75425
class CCExprResolve;
 
75426
class CExprResolve;
61858
75427
class WinIfExists;
61859
75428
class WinImportHandler;
61860
75429
class WinMacros;
61861
 
class CMatchSyntax;
61862
 
class ExtGnu;
 
75430
class WinAsm;
 
75431
class WinDeclSpecs;
 
75432
class WinMemberExplSpec;
 
75433
class WinTypeKeywords;
 
75434
class WinFriend;
61863
75435
class ExtAC;
61864
75436
class ExtACBuilderCoupling;
61865
75437
class ExtACSyntaxCoupling;
61866
75438
class ExtACTree;
61867
75439
class ExtACKeywords;
61868
 
class WinAsm;
61869
 
class WinDeclSpecs;
61870
 
class WinMemberExplSpec;
61871
 
class WinTypeKeywords;
 
75440
class ExtGnu;
61872
75441
class PragmaOnceUnitState;
61873
75442
class PragmaOnce;
61874
 
class CCExprResolve;
61875
 
class CExprResolve;
 
75443
class CMatchSyntax;
61876
75444
namespace Puma {
61877
75445
 
61878
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75446
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61879
75447
class CT_RefDeclarator : public CT_Declarator {
61880
 
#line 61881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75448
#line 75449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75449
  friend class ::CCExprResolve;
 
75450
  friend class ::CExprResolve;
61881
75451
  friend class ::WinIfExists;
61882
75452
  friend class ::WinImportHandler;
61883
75453
  friend class ::WinMacros;
61884
 
  friend class ::CMatchSyntax;
61885
 
  friend class ::ExtGnu;
 
75454
  friend class ::WinAsm;
 
75455
  friend class ::WinDeclSpecs;
 
75456
  friend class ::WinMemberExplSpec;
 
75457
  friend class ::WinTypeKeywords;
 
75458
  friend class ::WinFriend;
61886
75459
  friend class ::ExtAC;
61887
75460
  friend class ::ExtACBuilderCoupling;
61888
75461
  friend class ::ExtACSyntaxCoupling;
61889
75462
  friend class ::ExtACTree;
61890
75463
  friend class ::ExtACKeywords;
61891
 
  friend class ::WinAsm;
61892
 
  friend class ::WinDeclSpecs;
61893
 
  friend class ::WinMemberExplSpec;
61894
 
  friend class ::WinTypeKeywords;
 
75464
  friend class ::ExtGnu;
61895
75465
  friend class ::PragmaOnceUnitState;
61896
75466
  friend class ::PragmaOnce;
61897
 
  friend class ::CCExprResolve;
61898
 
  friend class ::CExprResolve;
 
75467
  friend class ::CMatchSyntax;
61899
75468
 
61900
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75469
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61901
75470
 
61902
75471
  CTree *sons[2]; // ref, declarator
61903
75472
 
61904
75473
public:
61905
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
75474
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
75475
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61906
75476
  static const char *NodeId ();
 
75477
  /** Get the name of the node. Can be compared with NodeId(). */
61907
75478
  const char *NodeName () const { return NodeId (); }
 
75479
  /** Get the number of sons. */
61908
75480
  int Sons () const { return 2; }
 
75481
  /** Get the n-th son.
 
75482
   *  \param n The index of the son.
 
75483
   *  \return The n-th son or NULL. */
61909
75484
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
61910
75485
  CTree *Declarator () const { return sons[1]; }
 
75486
  /** Replace a son.
 
75487
   *  \param old_son The son to replace.
 
75488
   *  \param new_son The new son. */
61911
75489
  void ReplaceSon (CTree *old_son, CTree *new_son) {
61912
75490
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61913
75491
  }
61914
75492
};
61915
75493
 
61916
75494
 
61917
 
#line 61918 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75495
#line 75496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61918
75496
} // closed Puma
 
75497
class CCExprResolve;
 
75498
class CExprResolve;
61919
75499
class WinIfExists;
61920
75500
class WinImportHandler;
61921
75501
class WinMacros;
61922
 
class CMatchSyntax;
61923
 
class ExtGnu;
 
75502
class WinAsm;
 
75503
class WinDeclSpecs;
 
75504
class WinMemberExplSpec;
 
75505
class WinTypeKeywords;
 
75506
class WinFriend;
61924
75507
class ExtAC;
61925
75508
class ExtACBuilderCoupling;
61926
75509
class ExtACSyntaxCoupling;
61927
75510
class ExtACTree;
61928
75511
class ExtACKeywords;
61929
 
class WinAsm;
61930
 
class WinDeclSpecs;
61931
 
class WinMemberExplSpec;
61932
 
class WinTypeKeywords;
 
75512
class ExtGnu;
61933
75513
class PragmaOnceUnitState;
61934
75514
class PragmaOnce;
61935
 
class CCExprResolve;
61936
 
class CExprResolve;
 
75515
class CMatchSyntax;
61937
75516
namespace Puma {
61938
75517
 
61939
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75518
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61940
75519
class CT_PtrDeclarator : public CT_Declarator {
61941
 
#line 61942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75520
#line 75521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75521
  friend class ::CCExprResolve;
 
75522
  friend class ::CExprResolve;
61942
75523
  friend class ::WinIfExists;
61943
75524
  friend class ::WinImportHandler;
61944
75525
  friend class ::WinMacros;
61945
 
  friend class ::CMatchSyntax;
61946
 
  friend class ::ExtGnu;
 
75526
  friend class ::WinAsm;
 
75527
  friend class ::WinDeclSpecs;
 
75528
  friend class ::WinMemberExplSpec;
 
75529
  friend class ::WinTypeKeywords;
 
75530
  friend class ::WinFriend;
61947
75531
  friend class ::ExtAC;
61948
75532
  friend class ::ExtACBuilderCoupling;
61949
75533
  friend class ::ExtACSyntaxCoupling;
61950
75534
  friend class ::ExtACTree;
61951
75535
  friend class ::ExtACKeywords;
61952
 
  friend class ::WinAsm;
61953
 
  friend class ::WinDeclSpecs;
61954
 
  friend class ::WinMemberExplSpec;
61955
 
  friend class ::WinTypeKeywords;
 
75536
  friend class ::ExtGnu;
61956
75537
  friend class ::PragmaOnceUnitState;
61957
75538
  friend class ::PragmaOnce;
61958
 
  friend class ::CCExprResolve;
61959
 
  friend class ::CExprResolve;
 
75539
  friend class ::CMatchSyntax;
61960
75540
 
61961
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75541
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61962
75542
 
61963
75543
  CTree *sons[3]; // ptr, cv_quals, declarator
61964
75544
 
61965
75545
public:
61966
75546
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
61967
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
75547
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
61968
75548
  }
 
75549
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61969
75550
  static const char *NodeId ();
 
75551
  /** Get the name of the node. Can be compared with NodeId(). */
61970
75552
  const char *NodeName () const { return NodeId (); }
 
75553
  /** Get the number of sons. */
61971
75554
  int Sons () const { return CTree::Sons (sons, 3); }
 
75555
  /** Get the n-th son.
 
75556
   *  \param n The index of the son.
 
75557
   *  \return The n-th son or NULL. */
61972
75558
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
61973
75559
  CTree *Declarator () const { return sons[2]; }
61974
75560
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
75561
  /** Replace a son.
 
75562
   *  \param old_son The son to replace.
 
75563
   *  \param new_son The new son. */
61975
75564
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61976
75565
    CTree::ReplaceSon (sons, 3, old_son, new_son);
61977
75566
  }
61978
75567
};
61979
75568
 
61980
75569
 
61981
 
#line 61982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75570
#line 75571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
61982
75571
} // closed Puma
 
75572
class CCExprResolve;
 
75573
class CExprResolve;
61983
75574
class WinIfExists;
61984
75575
class WinImportHandler;
61985
75576
class WinMacros;
61986
 
class CMatchSyntax;
61987
 
class ExtGnu;
 
75577
class WinAsm;
 
75578
class WinDeclSpecs;
 
75579
class WinMemberExplSpec;
 
75580
class WinTypeKeywords;
 
75581
class WinFriend;
61988
75582
class ExtAC;
61989
75583
class ExtACBuilderCoupling;
61990
75584
class ExtACSyntaxCoupling;
61991
75585
class ExtACTree;
61992
75586
class ExtACKeywords;
61993
 
class WinAsm;
61994
 
class WinDeclSpecs;
61995
 
class WinMemberExplSpec;
61996
 
class WinTypeKeywords;
 
75587
class ExtGnu;
61997
75588
class PragmaOnceUnitState;
61998
75589
class PragmaOnce;
61999
 
class CCExprResolve;
62000
 
class CExprResolve;
 
75590
class CMatchSyntax;
62001
75591
namespace Puma {
62002
75592
 
62003
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75593
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62004
75594
class CT_MembPtrDeclarator : public CT_Declarator {
62005
 
#line 62006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75595
#line 75596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75596
  friend class ::CCExprResolve;
 
75597
  friend class ::CExprResolve;
62006
75598
  friend class ::WinIfExists;
62007
75599
  friend class ::WinImportHandler;
62008
75600
  friend class ::WinMacros;
62009
 
  friend class ::CMatchSyntax;
62010
 
  friend class ::ExtGnu;
 
75601
  friend class ::WinAsm;
 
75602
  friend class ::WinDeclSpecs;
 
75603
  friend class ::WinMemberExplSpec;
 
75604
  friend class ::WinTypeKeywords;
 
75605
  friend class ::WinFriend;
62011
75606
  friend class ::ExtAC;
62012
75607
  friend class ::ExtACBuilderCoupling;
62013
75608
  friend class ::ExtACSyntaxCoupling;
62014
75609
  friend class ::ExtACTree;
62015
75610
  friend class ::ExtACKeywords;
62016
 
  friend class ::WinAsm;
62017
 
  friend class ::WinDeclSpecs;
62018
 
  friend class ::WinMemberExplSpec;
62019
 
  friend class ::WinTypeKeywords;
 
75611
  friend class ::ExtGnu;
62020
75612
  friend class ::PragmaOnceUnitState;
62021
75613
  friend class ::PragmaOnce;
62022
 
  friend class ::CCExprResolve;
62023
 
  friend class ::CExprResolve;
 
75614
  friend class ::CMatchSyntax;
62024
75615
 
62025
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75616
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62026
75617
 
62027
75618
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
62028
75619
 
62029
75620
public:
62030
75621
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
62031
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
75622
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
75623
    AddSon (sons[3], q); AddSon (sons[4], d); 
62032
75624
  }
 
75625
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62033
75626
  static const char *NodeId ();
 
75627
  /** Get the name of the node. Can be compared with NodeId(). */
62034
75628
  const char *NodeName () const { return NodeId (); }
 
75629
  /** Get the number of sons. */
62035
75630
  int Sons () const { return CTree::Sons (sons, 5); }
 
75631
  /** Get the n-th son.
 
75632
   *  \param n The index of the son.
 
75633
   *  \return The n-th son or NULL. */
62036
75634
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
62037
75635
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
62038
75636
  CTree *Declarator () const { return sons[4]; }
62039
75637
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
75638
  /** Replace a son.
 
75639
   *  \param old_son The son to replace.
 
75640
   *  \param new_son The new son. */
62040
75641
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62041
75642
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62042
75643
  }
62043
75644
};
62044
75645
 
62045
75646
 
62046
 
#line 62047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75647
#line 75648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62047
75648
} // closed Puma
 
75649
class CCExprResolve;
 
75650
class CExprResolve;
62048
75651
class WinIfExists;
62049
75652
class WinImportHandler;
62050
75653
class WinMacros;
62051
 
class CMatchSyntax;
62052
 
class ExtGnu;
 
75654
class WinAsm;
 
75655
class WinDeclSpecs;
 
75656
class WinMemberExplSpec;
 
75657
class WinTypeKeywords;
 
75658
class WinFriend;
62053
75659
class ExtAC;
62054
75660
class ExtACBuilderCoupling;
62055
75661
class ExtACSyntaxCoupling;
62056
75662
class ExtACTree;
62057
75663
class ExtACKeywords;
62058
 
class WinAsm;
62059
 
class WinDeclSpecs;
62060
 
class WinMemberExplSpec;
62061
 
class WinTypeKeywords;
 
75664
class ExtGnu;
62062
75665
class PragmaOnceUnitState;
62063
75666
class PragmaOnce;
62064
 
class CCExprResolve;
62065
 
class CExprResolve;
 
75667
class CMatchSyntax;
62066
75668
namespace Puma {
62067
75669
 
62068
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75670
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62069
75671
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
62070
 
#line 62071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75672
#line 75673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75673
  friend class ::CCExprResolve;
 
75674
  friend class ::CExprResolve;
62071
75675
  friend class ::WinIfExists;
62072
75676
  friend class ::WinImportHandler;
62073
75677
  friend class ::WinMacros;
62074
 
  friend class ::CMatchSyntax;
62075
 
  friend class ::ExtGnu;
 
75678
  friend class ::WinAsm;
 
75679
  friend class ::WinDeclSpecs;
 
75680
  friend class ::WinMemberExplSpec;
 
75681
  friend class ::WinTypeKeywords;
 
75682
  friend class ::WinFriend;
62076
75683
  friend class ::ExtAC;
62077
75684
  friend class ::ExtACBuilderCoupling;
62078
75685
  friend class ::ExtACSyntaxCoupling;
62079
75686
  friend class ::ExtACTree;
62080
75687
  friend class ::ExtACKeywords;
62081
 
  friend class ::WinAsm;
62082
 
  friend class ::WinDeclSpecs;
62083
 
  friend class ::WinMemberExplSpec;
62084
 
  friend class ::WinTypeKeywords;
 
75688
  friend class ::ExtGnu;
62085
75689
  friend class ::PragmaOnceUnitState;
62086
75690
  friend class ::PragmaOnce;
62087
 
  friend class ::CCExprResolve;
62088
 
  friend class ::CExprResolve;
 
75691
  friend class ::CMatchSyntax;
62089
75692
 
62090
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75693
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62091
75694
 
62092
75695
  CTree *sons[3]; // declarator, colon, expr
62093
75696
 
62094
75697
public:
62095
75698
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
62096
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
75699
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
62097
75700
  }
 
75701
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62098
75702
  static const char *NodeId ();
 
75703
  /** Get the name of the node. Can be compared with NodeId(). */
62099
75704
  const char *NodeName () const { return NodeId (); }
 
75705
  /** Get the number of sons. */
62100
75706
  int Sons () const { return CTree::Sons (sons, 3); }
 
75707
  /** Get the n-th son.
 
75708
   *  \param n The index of the son.
 
75709
   *  \return The n-th son or NULL. */
62101
75710
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62102
75711
  CTree *Declarator () const { return sons[0]; }
62103
75712
  CTree *Expr () const { return sons[2]; }
62104
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
75713
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
62105
75714
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
75715
  /** Replace a son.
 
75716
   *  \param old_son The son to replace.
 
75717
   *  \param new_son The new son. */
62106
75718
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62107
75719
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62108
75720
  }
62115
75727
/*****************************************************************************/
62116
75728
 
62117
75729
 
62118
 
#line 62119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75730
#line 75731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62119
75731
} // closed Puma
 
75732
class CCExprResolve;
 
75733
class CExprResolve;
62120
75734
class WinIfExists;
62121
75735
class WinImportHandler;
62122
75736
class WinMacros;
62123
 
class CMatchSyntax;
62124
 
class ExtGnu;
 
75737
class WinAsm;
 
75738
class WinDeclSpecs;
 
75739
class WinMemberExplSpec;
 
75740
class WinTypeKeywords;
 
75741
class WinFriend;
62125
75742
class ExtAC;
62126
75743
class ExtACBuilderCoupling;
62127
75744
class ExtACSyntaxCoupling;
62128
75745
class ExtACTree;
62129
75746
class ExtACKeywords;
62130
 
class WinAsm;
62131
 
class WinDeclSpecs;
62132
 
class WinMemberExplSpec;
62133
 
class WinTypeKeywords;
 
75747
class ExtGnu;
62134
75748
class PragmaOnceUnitState;
62135
75749
class PragmaOnce;
62136
 
class CCExprResolve;
62137
 
class CExprResolve;
 
75750
class CMatchSyntax;
62138
75751
namespace Puma {
62139
75752
 
62140
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75753
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62141
75754
class CT_Statement : public CTree {
62142
 
#line 62143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75755
#line 75756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75756
  friend class ::CCExprResolve;
 
75757
  friend class ::CExprResolve;
62143
75758
  friend class ::WinIfExists;
62144
75759
  friend class ::WinImportHandler;
62145
75760
  friend class ::WinMacros;
62146
 
  friend class ::CMatchSyntax;
62147
 
  friend class ::ExtGnu;
 
75761
  friend class ::WinAsm;
 
75762
  friend class ::WinDeclSpecs;
 
75763
  friend class ::WinMemberExplSpec;
 
75764
  friend class ::WinTypeKeywords;
 
75765
  friend class ::WinFriend;
62148
75766
  friend class ::ExtAC;
62149
75767
  friend class ::ExtACBuilderCoupling;
62150
75768
  friend class ::ExtACSyntaxCoupling;
62151
75769
  friend class ::ExtACTree;
62152
75770
  friend class ::ExtACKeywords;
62153
 
  friend class ::WinAsm;
62154
 
  friend class ::WinDeclSpecs;
62155
 
  friend class ::WinMemberExplSpec;
62156
 
  friend class ::WinTypeKeywords;
 
75771
  friend class ::ExtGnu;
62157
75772
  friend class ::PragmaOnceUnitState;
62158
75773
  friend class ::PragmaOnce;
62159
 
  friend class ::CCExprResolve;
62160
 
  friend class ::CExprResolve;
 
75774
  friend class ::CMatchSyntax;
62161
75775
 
62162
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75776
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62163
75777
 
62164
75778
protected:
62165
75779
  CT_Statement () {}
 
75780
  virtual CT_Statement *IsStatement () { return this; }
62166
75781
};
62167
75782
 
62168
75783
 
62169
 
#line 62170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75784
#line 75785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62170
75785
} // closed Puma
 
75786
class CCExprResolve;
 
75787
class CExprResolve;
62171
75788
class WinIfExists;
62172
75789
class WinImportHandler;
62173
75790
class WinMacros;
62174
 
class CMatchSyntax;
62175
 
class ExtGnu;
 
75791
class WinAsm;
 
75792
class WinDeclSpecs;
 
75793
class WinMemberExplSpec;
 
75794
class WinTypeKeywords;
 
75795
class WinFriend;
62176
75796
class ExtAC;
62177
75797
class ExtACBuilderCoupling;
62178
75798
class ExtACSyntaxCoupling;
62179
75799
class ExtACTree;
62180
75800
class ExtACKeywords;
62181
 
class WinAsm;
62182
 
class WinDeclSpecs;
62183
 
class WinMemberExplSpec;
62184
 
class WinTypeKeywords;
 
75801
class ExtGnu;
62185
75802
class PragmaOnceUnitState;
62186
75803
class PragmaOnce;
62187
 
class CCExprResolve;
62188
 
class CExprResolve;
 
75804
class CMatchSyntax;
62189
75805
namespace Puma {
62190
75806
 
62191
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75807
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62192
75808
class CT_LabelStmt : public CT_Statement {
62193
 
#line 62194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75809
#line 75810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75810
  friend class ::CCExprResolve;
 
75811
  friend class ::CExprResolve;
62194
75812
  friend class ::WinIfExists;
62195
75813
  friend class ::WinImportHandler;
62196
75814
  friend class ::WinMacros;
62197
 
  friend class ::CMatchSyntax;
62198
 
  friend class ::ExtGnu;
 
75815
  friend class ::WinAsm;
 
75816
  friend class ::WinDeclSpecs;
 
75817
  friend class ::WinMemberExplSpec;
 
75818
  friend class ::WinTypeKeywords;
 
75819
  friend class ::WinFriend;
62199
75820
  friend class ::ExtAC;
62200
75821
  friend class ::ExtACBuilderCoupling;
62201
75822
  friend class ::ExtACSyntaxCoupling;
62202
75823
  friend class ::ExtACTree;
62203
75824
  friend class ::ExtACKeywords;
62204
 
  friend class ::WinAsm;
62205
 
  friend class ::WinDeclSpecs;
62206
 
  friend class ::WinMemberExplSpec;
62207
 
  friend class ::WinTypeKeywords;
 
75825
  friend class ::ExtGnu;
62208
75826
  friend class ::PragmaOnceUnitState;
62209
75827
  friend class ::PragmaOnce;
62210
 
  friend class ::CCExprResolve;
62211
 
  friend class ::CExprResolve;
 
75828
  friend class ::CMatchSyntax;
62212
75829
 
62213
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75830
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62214
75831
 
62215
75832
  CTree *sons[3]; // id, colon, stmt
62216
75833
 
62217
75834
public:
62218
75835
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
62219
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
75836
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
62220
75837
  }
 
75838
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62221
75839
  static const char *NodeId ();
 
75840
  /** Get the name of the node. Can be compared with NodeId(). */
62222
75841
  const char *NodeName () const { return NodeId (); }
 
75842
  /** Get the number of sons. */
62223
75843
  int Sons () const { return 3; }
 
75844
  /** Get the n-th son.
 
75845
   *  \param n The index of the son.
 
75846
   *  \return The n-th son or NULL. */
62224
75847
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62225
75848
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
62226
75849
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
75850
  /** Replace a son.
 
75851
   *  \param old_son The son to replace.
 
75852
   *  \param new_son The new son. */
62227
75853
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62228
75854
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62229
75855
  }
62230
75856
};
62231
75857
 
62232
75858
 
62233
 
#line 62234 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75859
#line 75860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62234
75860
} // closed Puma
 
75861
class CCExprResolve;
 
75862
class CExprResolve;
62235
75863
class WinIfExists;
62236
75864
class WinImportHandler;
62237
75865
class WinMacros;
62238
 
class CMatchSyntax;
62239
 
class ExtGnu;
 
75866
class WinAsm;
 
75867
class WinDeclSpecs;
 
75868
class WinMemberExplSpec;
 
75869
class WinTypeKeywords;
 
75870
class WinFriend;
62240
75871
class ExtAC;
62241
75872
class ExtACBuilderCoupling;
62242
75873
class ExtACSyntaxCoupling;
62243
75874
class ExtACTree;
62244
75875
class ExtACKeywords;
62245
 
class WinAsm;
62246
 
class WinDeclSpecs;
62247
 
class WinMemberExplSpec;
62248
 
class WinTypeKeywords;
 
75876
class ExtGnu;
62249
75877
class PragmaOnceUnitState;
62250
75878
class PragmaOnce;
62251
 
class CCExprResolve;
62252
 
class CExprResolve;
 
75879
class CMatchSyntax;
62253
75880
namespace Puma {
62254
75881
 
62255
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75882
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62256
75883
class CT_DefaultStmt : public CT_Statement {
62257
 
#line 62258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75884
#line 75885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75885
  friend class ::CCExprResolve;
 
75886
  friend class ::CExprResolve;
62258
75887
  friend class ::WinIfExists;
62259
75888
  friend class ::WinImportHandler;
62260
75889
  friend class ::WinMacros;
62261
 
  friend class ::CMatchSyntax;
62262
 
  friend class ::ExtGnu;
 
75890
  friend class ::WinAsm;
 
75891
  friend class ::WinDeclSpecs;
 
75892
  friend class ::WinMemberExplSpec;
 
75893
  friend class ::WinTypeKeywords;
 
75894
  friend class ::WinFriend;
62263
75895
  friend class ::ExtAC;
62264
75896
  friend class ::ExtACBuilderCoupling;
62265
75897
  friend class ::ExtACSyntaxCoupling;
62266
75898
  friend class ::ExtACTree;
62267
75899
  friend class ::ExtACKeywords;
62268
 
  friend class ::WinAsm;
62269
 
  friend class ::WinDeclSpecs;
62270
 
  friend class ::WinMemberExplSpec;
62271
 
  friend class ::WinTypeKeywords;
 
75900
  friend class ::ExtGnu;
62272
75901
  friend class ::PragmaOnceUnitState;
62273
75902
  friend class ::PragmaOnce;
62274
 
  friend class ::CCExprResolve;
62275
 
  friend class ::CExprResolve;
 
75903
  friend class ::CMatchSyntax;
62276
75904
 
62277
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75905
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62278
75906
 
62279
75907
  CTree *sons[3]; // keyword, colon, stmt
62280
75908
 
62281
75909
public:
62282
75910
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
62283
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
75911
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
62284
75912
  }
 
75913
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62285
75914
  static const char *NodeId ();
 
75915
  /** Get the name of the node. Can be compared with NodeId(). */
62286
75916
  const char *NodeName () const { return NodeId (); }
 
75917
  /** Get the number of sons. */
62287
75918
  int Sons () const { return 3; }
 
75919
  /** Get the n-th son.
 
75920
   *  \param n The index of the son.
 
75921
   *  \return The n-th son or NULL. */
62288
75922
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62289
75923
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
75924
  /** Replace a son.
 
75925
   *  \param old_son The son to replace.
 
75926
   *  \param new_son The new son. */
62290
75927
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62291
75928
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62292
75929
  }
62293
75930
};
62294
75931
 
62295
75932
 
62296
 
#line 62297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75933
#line 75934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62297
75934
} // closed Puma
 
75935
class CCExprResolve;
 
75936
class CExprResolve;
62298
75937
class WinIfExists;
62299
75938
class WinImportHandler;
62300
75939
class WinMacros;
62301
 
class CMatchSyntax;
62302
 
class ExtGnu;
 
75940
class WinAsm;
 
75941
class WinDeclSpecs;
 
75942
class WinMemberExplSpec;
 
75943
class WinTypeKeywords;
 
75944
class WinFriend;
62303
75945
class ExtAC;
62304
75946
class ExtACBuilderCoupling;
62305
75947
class ExtACSyntaxCoupling;
62306
75948
class ExtACTree;
62307
75949
class ExtACKeywords;
62308
 
class WinAsm;
62309
 
class WinDeclSpecs;
62310
 
class WinMemberExplSpec;
62311
 
class WinTypeKeywords;
 
75950
class ExtGnu;
62312
75951
class PragmaOnceUnitState;
62313
75952
class PragmaOnce;
62314
 
class CCExprResolve;
62315
 
class CExprResolve;
 
75953
class CMatchSyntax;
62316
75954
namespace Puma {
62317
75955
 
62318
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75956
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62319
75957
class CT_TryStmt : public CT_Statement {
62320
 
#line 62321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
75958
#line 75959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
75959
  friend class ::CCExprResolve;
 
75960
  friend class ::CExprResolve;
62321
75961
  friend class ::WinIfExists;
62322
75962
  friend class ::WinImportHandler;
62323
75963
  friend class ::WinMacros;
62324
 
  friend class ::CMatchSyntax;
62325
 
  friend class ::ExtGnu;
 
75964
  friend class ::WinAsm;
 
75965
  friend class ::WinDeclSpecs;
 
75966
  friend class ::WinMemberExplSpec;
 
75967
  friend class ::WinTypeKeywords;
 
75968
  friend class ::WinFriend;
62326
75969
  friend class ::ExtAC;
62327
75970
  friend class ::ExtACBuilderCoupling;
62328
75971
  friend class ::ExtACSyntaxCoupling;
62329
75972
  friend class ::ExtACTree;
62330
75973
  friend class ::ExtACKeywords;
62331
 
  friend class ::WinAsm;
62332
 
  friend class ::WinDeclSpecs;
62333
 
  friend class ::WinMemberExplSpec;
62334
 
  friend class ::WinTypeKeywords;
 
75974
  friend class ::ExtGnu;
62335
75975
  friend class ::PragmaOnceUnitState;
62336
75976
  friend class ::PragmaOnce;
62337
 
  friend class ::CCExprResolve;
62338
 
  friend class ::CExprResolve;
 
75977
  friend class ::CMatchSyntax;
62339
75978
 
62340
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75979
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62341
75980
 
62342
75981
  CTree *sons[3]; // try, stmt, handlers
62343
75982
 
62344
75983
public:
62345
75984
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
62346
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
75985
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
62347
75986
  }
 
75987
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62348
75988
  static const char *NodeId ();
 
75989
  /** Get the name of the node. Can be compared with NodeId(). */
62349
75990
  const char *NodeName () const { return NodeId (); }
 
75991
  /** Get the number of sons. */
62350
75992
  int Sons () const { return 3; }
 
75993
  /** Get the n-th son.
 
75994
   *  \param n The index of the son.
 
75995
   *  \return The n-th son or NULL. */
62351
75996
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62352
75997
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
62353
75998
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
75999
  /** Replace a son.
 
76000
   *  \param old_son The son to replace.
 
76001
   *  \param new_son The new son. */
62354
76002
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62355
76003
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62356
76004
  }
62357
76005
};
62358
76006
 
62359
76007
 
62360
 
#line 62361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76008
#line 76009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62361
76009
} // closed Puma
 
76010
class CCExprResolve;
 
76011
class CExprResolve;
62362
76012
class WinIfExists;
62363
76013
class WinImportHandler;
62364
76014
class WinMacros;
62365
 
class CMatchSyntax;
62366
 
class ExtGnu;
 
76015
class WinAsm;
 
76016
class WinDeclSpecs;
 
76017
class WinMemberExplSpec;
 
76018
class WinTypeKeywords;
 
76019
class WinFriend;
62367
76020
class ExtAC;
62368
76021
class ExtACBuilderCoupling;
62369
76022
class ExtACSyntaxCoupling;
62370
76023
class ExtACTree;
62371
76024
class ExtACKeywords;
62372
 
class WinAsm;
62373
 
class WinDeclSpecs;
62374
 
class WinMemberExplSpec;
62375
 
class WinTypeKeywords;
 
76025
class ExtGnu;
62376
76026
class PragmaOnceUnitState;
62377
76027
class PragmaOnce;
62378
 
class CCExprResolve;
62379
 
class CExprResolve;
 
76028
class CMatchSyntax;
62380
76029
namespace Puma {
62381
76030
 
62382
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76031
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62383
76032
class CT_CaseStmt : public CT_Statement {
62384
 
#line 62385 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76033
#line 76034 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76034
  friend class ::CCExprResolve;
 
76035
  friend class ::CExprResolve;
62385
76036
  friend class ::WinIfExists;
62386
76037
  friend class ::WinImportHandler;
62387
76038
  friend class ::WinMacros;
62388
 
  friend class ::CMatchSyntax;
62389
 
  friend class ::ExtGnu;
 
76039
  friend class ::WinAsm;
 
76040
  friend class ::WinDeclSpecs;
 
76041
  friend class ::WinMemberExplSpec;
 
76042
  friend class ::WinTypeKeywords;
 
76043
  friend class ::WinFriend;
62390
76044
  friend class ::ExtAC;
62391
76045
  friend class ::ExtACBuilderCoupling;
62392
76046
  friend class ::ExtACSyntaxCoupling;
62393
76047
  friend class ::ExtACTree;
62394
76048
  friend class ::ExtACKeywords;
62395
 
  friend class ::WinAsm;
62396
 
  friend class ::WinDeclSpecs;
62397
 
  friend class ::WinMemberExplSpec;
62398
 
  friend class ::WinTypeKeywords;
 
76049
  friend class ::ExtGnu;
62399
76050
  friend class ::PragmaOnceUnitState;
62400
76051
  friend class ::PragmaOnce;
62401
 
  friend class ::CCExprResolve;
62402
 
  friend class ::CExprResolve;
 
76052
  friend class ::CMatchSyntax;
62403
76053
 
62404
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76054
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62405
76055
 
62406
76056
  CTree *sons[4]; // keyword, expr, colon, stmt
62407
76057
 
62408
76058
public:
62409
76059
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
62410
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
76060
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
76061
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
62411
76062
  }
 
76063
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62412
76064
  static const char *NodeId ();
 
76065
  /** Get the name of the node. Can be compared with NodeId(). */
62413
76066
  const char *NodeName () const { return NodeId (); }
 
76067
  /** Get the number of sons. */
62414
76068
  int Sons () const { return 4; }
 
76069
  /** Get the n-th son.
 
76070
   *  \param n The index of the son.
 
76071
   *  \return The n-th son or NULL. */
62415
76072
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
62416
76073
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
62417
76074
  CTree *Expr () const { return sons[1]; }
 
76075
  /** Replace a son.
 
76076
   *  \param old_son The son to replace.
 
76077
   *  \param new_son The new son. */
62418
76078
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62419
76079
    CTree::ReplaceSon (sons, 4, old_son, new_son);
62420
76080
  }
62421
76081
};
62422
76082
 
62423
76083
 
62424
 
#line 62425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76084
#line 76085 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62425
76085
} // closed Puma
 
76086
class CCExprResolve;
 
76087
class CExprResolve;
62426
76088
class WinIfExists;
62427
76089
class WinImportHandler;
62428
76090
class WinMacros;
62429
 
class CMatchSyntax;
62430
 
class ExtGnu;
 
76091
class WinAsm;
 
76092
class WinDeclSpecs;
 
76093
class WinMemberExplSpec;
 
76094
class WinTypeKeywords;
 
76095
class WinFriend;
62431
76096
class ExtAC;
62432
76097
class ExtACBuilderCoupling;
62433
76098
class ExtACSyntaxCoupling;
62434
76099
class ExtACTree;
62435
76100
class ExtACKeywords;
62436
 
class WinAsm;
62437
 
class WinDeclSpecs;
62438
 
class WinMemberExplSpec;
62439
 
class WinTypeKeywords;
 
76101
class ExtGnu;
62440
76102
class PragmaOnceUnitState;
62441
76103
class PragmaOnce;
62442
 
class CCExprResolve;
62443
 
class CExprResolve;
 
76104
class CMatchSyntax;
62444
76105
namespace Puma {
62445
76106
 
62446
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76107
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62447
76108
class CT_ExprStmt : public CT_Statement {
62448
 
#line 62449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76109
#line 76110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76110
  friend class ::CCExprResolve;
 
76111
  friend class ::CExprResolve;
62449
76112
  friend class ::WinIfExists;
62450
76113
  friend class ::WinImportHandler;
62451
76114
  friend class ::WinMacros;
62452
 
  friend class ::CMatchSyntax;
62453
 
  friend class ::ExtGnu;
 
76115
  friend class ::WinAsm;
 
76116
  friend class ::WinDeclSpecs;
 
76117
  friend class ::WinMemberExplSpec;
 
76118
  friend class ::WinTypeKeywords;
 
76119
  friend class ::WinFriend;
62454
76120
  friend class ::ExtAC;
62455
76121
  friend class ::ExtACBuilderCoupling;
62456
76122
  friend class ::ExtACSyntaxCoupling;
62457
76123
  friend class ::ExtACTree;
62458
76124
  friend class ::ExtACKeywords;
62459
 
  friend class ::WinAsm;
62460
 
  friend class ::WinDeclSpecs;
62461
 
  friend class ::WinMemberExplSpec;
62462
 
  friend class ::WinTypeKeywords;
 
76125
  friend class ::ExtGnu;
62463
76126
  friend class ::PragmaOnceUnitState;
62464
76127
  friend class ::PragmaOnce;
62465
 
  friend class ::CCExprResolve;
62466
 
  friend class ::CExprResolve;
 
76128
  friend class ::CMatchSyntax;
62467
76129
 
62468
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76130
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62469
76131
 
62470
76132
  CTree *sons[2]; // expr, semi_colon
62471
76133
 
62472
76134
public:
62473
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
76135
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
76136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62474
76137
  static const char *NodeId ();
 
76138
  /** Get the name of the node. Can be compared with NodeId(). */
62475
76139
  const char *NodeName () const { return NodeId (); }
 
76140
  /** Get the number of sons. */
62476
76141
  int Sons () const { return CTree::Sons (sons, 2); }
 
76142
  /** Get the n-th son.
 
76143
   *  \param n The index of the son.
 
76144
   *  \return The n-th son or NULL. */
62477
76145
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
62478
76146
  CTree *Expr () const { return sons[0]; }
 
76147
  /** Replace a son.
 
76148
   *  \param old_son The son to replace.
 
76149
   *  \param new_son The new son. */
62479
76150
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62480
76151
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62481
76152
  }
62482
76153
};
62483
76154
 
62484
76155
 
62485
 
#line 62486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76156
#line 76157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62486
76157
} // closed Puma
 
76158
class CCExprResolve;
 
76159
class CExprResolve;
62487
76160
class WinIfExists;
62488
76161
class WinImportHandler;
62489
76162
class WinMacros;
62490
 
class CMatchSyntax;
62491
 
class ExtGnu;
 
76163
class WinAsm;
 
76164
class WinDeclSpecs;
 
76165
class WinMemberExplSpec;
 
76166
class WinTypeKeywords;
 
76167
class WinFriend;
62492
76168
class ExtAC;
62493
76169
class ExtACBuilderCoupling;
62494
76170
class ExtACSyntaxCoupling;
62495
76171
class ExtACTree;
62496
76172
class ExtACKeywords;
62497
 
class WinAsm;
62498
 
class WinDeclSpecs;
62499
 
class WinMemberExplSpec;
62500
 
class WinTypeKeywords;
 
76173
class ExtGnu;
62501
76174
class PragmaOnceUnitState;
62502
76175
class PragmaOnce;
62503
 
class CCExprResolve;
62504
 
class CExprResolve;
 
76176
class CMatchSyntax;
62505
76177
namespace Puma {
62506
76178
 
62507
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76179
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62508
76180
class CT_DeclStmt : public CT_Statement {
62509
 
#line 62510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76181
#line 76182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76182
  friend class ::CCExprResolve;
 
76183
  friend class ::CExprResolve;
62510
76184
  friend class ::WinIfExists;
62511
76185
  friend class ::WinImportHandler;
62512
76186
  friend class ::WinMacros;
62513
 
  friend class ::CMatchSyntax;
62514
 
  friend class ::ExtGnu;
 
76187
  friend class ::WinAsm;
 
76188
  friend class ::WinDeclSpecs;
 
76189
  friend class ::WinMemberExplSpec;
 
76190
  friend class ::WinTypeKeywords;
 
76191
  friend class ::WinFriend;
62515
76192
  friend class ::ExtAC;
62516
76193
  friend class ::ExtACBuilderCoupling;
62517
76194
  friend class ::ExtACSyntaxCoupling;
62518
76195
  friend class ::ExtACTree;
62519
76196
  friend class ::ExtACKeywords;
62520
 
  friend class ::WinAsm;
62521
 
  friend class ::WinDeclSpecs;
62522
 
  friend class ::WinMemberExplSpec;
62523
 
  friend class ::WinTypeKeywords;
 
76197
  friend class ::ExtGnu;
62524
76198
  friend class ::PragmaOnceUnitState;
62525
76199
  friend class ::PragmaOnce;
62526
 
  friend class ::CCExprResolve;
62527
 
  friend class ::CExprResolve;
 
76200
  friend class ::CMatchSyntax;
62528
76201
 
62529
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76202
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62530
76203
 
62531
76204
  CTree *_decl;
62532
76205
 
62533
76206
public:
62534
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
76207
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
76208
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62535
76209
  static const char *NodeId ();
 
76210
  /** Get the name of the node. Can be compared with NodeId(). */
62536
76211
  const char *NodeName () const { return NodeId (); }
 
76212
  /** Get the number of sons. */
62537
76213
  int Sons () const { return 1; }
 
76214
  /** Get the n-th son.
 
76215
   *  \param n The index of the son.
 
76216
   *  \return The n-th son or NULL. */
62538
76217
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
76218
  /** Replace a son.
 
76219
   *  \param old_son The son to replace.
 
76220
   *  \param new_son The new son. */
62539
76221
  void ReplaceSon (CTree *old_son, CTree *new_son) 
62540
 
   { if (old_son == _decl) _decl = new_son; }
 
76222
   { CTree::ReplaceSon (_decl, old_son, new_son); }
62541
76223
};
62542
76224
 
62543
76225
 
62544
 
#line 62545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76226
#line 76227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62545
76227
} // closed Puma
 
76228
class CCExprResolve;
 
76229
class CExprResolve;
62546
76230
class WinIfExists;
62547
76231
class WinImportHandler;
62548
76232
class WinMacros;
62549
 
class CMatchSyntax;
62550
 
class ExtGnu;
 
76233
class WinAsm;
 
76234
class WinDeclSpecs;
 
76235
class WinMemberExplSpec;
 
76236
class WinTypeKeywords;
 
76237
class WinFriend;
62551
76238
class ExtAC;
62552
76239
class ExtACBuilderCoupling;
62553
76240
class ExtACSyntaxCoupling;
62554
76241
class ExtACTree;
62555
76242
class ExtACKeywords;
62556
 
class WinAsm;
62557
 
class WinDeclSpecs;
62558
 
class WinMemberExplSpec;
62559
 
class WinTypeKeywords;
 
76243
class ExtGnu;
62560
76244
class PragmaOnceUnitState;
62561
76245
class PragmaOnce;
62562
 
class CCExprResolve;
62563
 
class CExprResolve;
 
76246
class CMatchSyntax;
62564
76247
namespace Puma {
62565
76248
 
62566
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76249
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62567
76250
class CT_SwitchStmt : public CT_Statement, public CSemScope {
62568
 
#line 62569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76251
#line 76252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76252
  friend class ::CCExprResolve;
 
76253
  friend class ::CExprResolve;
62569
76254
  friend class ::WinIfExists;
62570
76255
  friend class ::WinImportHandler;
62571
76256
  friend class ::WinMacros;
62572
 
  friend class ::CMatchSyntax;
62573
 
  friend class ::ExtGnu;
 
76257
  friend class ::WinAsm;
 
76258
  friend class ::WinDeclSpecs;
 
76259
  friend class ::WinMemberExplSpec;
 
76260
  friend class ::WinTypeKeywords;
 
76261
  friend class ::WinFriend;
62574
76262
  friend class ::ExtAC;
62575
76263
  friend class ::ExtACBuilderCoupling;
62576
76264
  friend class ::ExtACSyntaxCoupling;
62577
76265
  friend class ::ExtACTree;
62578
76266
  friend class ::ExtACKeywords;
62579
 
  friend class ::WinAsm;
62580
 
  friend class ::WinDeclSpecs;
62581
 
  friend class ::WinMemberExplSpec;
62582
 
  friend class ::WinTypeKeywords;
 
76267
  friend class ::ExtGnu;
62583
76268
  friend class ::PragmaOnceUnitState;
62584
76269
  friend class ::PragmaOnce;
62585
 
  friend class ::CCExprResolve;
62586
 
  friend class ::CExprResolve;
 
76270
  friend class ::CMatchSyntax;
62587
76271
 
62588
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76272
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62589
76273
 
62590
76274
  CTree *sons[5]; // keyword, open, cond, close, stmt
62591
76275
 
62592
76276
public:
62593
76277
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
62594
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
76278
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
76279
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
62595
76280
  }
 
76281
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62596
76282
  static const char *NodeId ();
 
76283
  /** Get the name of the node. Can be compared with NodeId(). */
62597
76284
  const char *NodeName () const { return NodeId (); }
 
76285
  /** Get the number of sons. */
62598
76286
  int Sons () const { return 5; }
 
76287
  /** Get the n-th son.
 
76288
   *  \param n The index of the son.
 
76289
   *  \return The n-th son or NULL. */
62599
76290
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
62600
76291
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
62601
76292
  CTree *Condition () const { return sons[2]; }
 
76293
  /** Replace a son.
 
76294
   *  \param old_son The son to replace.
 
76295
   *  \param new_son The new son. */
62602
76296
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62603
76297
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62604
76298
  }
 
76299
  CSemScope *SemScope () const { return (CSemScope*)this; }
62605
76300
};
62606
76301
 
62607
76302
 
62608
 
#line 62609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76303
#line 76304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62609
76304
} // closed Puma
 
76305
class CCExprResolve;
 
76306
class CExprResolve;
62610
76307
class WinIfExists;
62611
76308
class WinImportHandler;
62612
76309
class WinMacros;
62613
 
class CMatchSyntax;
62614
 
class ExtGnu;
 
76310
class WinAsm;
 
76311
class WinDeclSpecs;
 
76312
class WinMemberExplSpec;
 
76313
class WinTypeKeywords;
 
76314
class WinFriend;
62615
76315
class ExtAC;
62616
76316
class ExtACBuilderCoupling;
62617
76317
class ExtACSyntaxCoupling;
62618
76318
class ExtACTree;
62619
76319
class ExtACKeywords;
62620
 
class WinAsm;
62621
 
class WinDeclSpecs;
62622
 
class WinMemberExplSpec;
62623
 
class WinTypeKeywords;
 
76320
class ExtGnu;
62624
76321
class PragmaOnceUnitState;
62625
76322
class PragmaOnce;
62626
 
class CCExprResolve;
62627
 
class CExprResolve;
 
76323
class CMatchSyntax;
62628
76324
namespace Puma {
62629
76325
 
62630
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76326
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62631
76327
class CT_IfStmt : public CT_Statement, public CSemScope {
62632
 
#line 62633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76328
#line 76329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76329
  friend class ::CCExprResolve;
 
76330
  friend class ::CExprResolve;
62633
76331
  friend class ::WinIfExists;
62634
76332
  friend class ::WinImportHandler;
62635
76333
  friend class ::WinMacros;
62636
 
  friend class ::CMatchSyntax;
62637
 
  friend class ::ExtGnu;
 
76334
  friend class ::WinAsm;
 
76335
  friend class ::WinDeclSpecs;
 
76336
  friend class ::WinMemberExplSpec;
 
76337
  friend class ::WinTypeKeywords;
 
76338
  friend class ::WinFriend;
62638
76339
  friend class ::ExtAC;
62639
76340
  friend class ::ExtACBuilderCoupling;
62640
76341
  friend class ::ExtACSyntaxCoupling;
62641
76342
  friend class ::ExtACTree;
62642
76343
  friend class ::ExtACKeywords;
62643
 
  friend class ::WinAsm;
62644
 
  friend class ::WinDeclSpecs;
62645
 
  friend class ::WinMemberExplSpec;
62646
 
  friend class ::WinTypeKeywords;
 
76344
  friend class ::ExtGnu;
62647
76345
  friend class ::PragmaOnceUnitState;
62648
76346
  friend class ::PragmaOnce;
62649
 
  friend class ::CCExprResolve;
62650
 
  friend class ::CExprResolve;
 
76347
  friend class ::CMatchSyntax;
62651
76348
 
62652
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76349
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62653
76350
 
62654
76351
  CTree *sons[5]; // keyword, open, cond, close, stmt
62655
76352
 
62656
76353
public:
62657
76354
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
62658
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
76355
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
76356
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
62659
76357
  }
 
76358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62660
76359
  static const char *NodeId ();
 
76360
  /** Get the name of the node. Can be compared with NodeId(). */
62661
76361
  const char *NodeName () const { return NodeId (); }
 
76362
  /** Get the number of sons. */
62662
76363
  int Sons () const { return 5; }
 
76364
  /** Get the n-th son.
 
76365
   *  \param n The index of the son.
 
76366
   *  \return The n-th son or NULL. */
62663
76367
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
62664
76368
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
62665
76369
  CTree *Condition () const { return sons[2]; }
 
76370
  /** Replace a son.
 
76371
   *  \param old_son The son to replace.
 
76372
   *  \param new_son The new son. */
62666
76373
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62667
76374
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62668
76375
  }
 
76376
  CSemScope *SemScope () const { return (CSemScope*)this; }
62669
76377
};
62670
76378
 
62671
76379
 
62672
 
#line 62673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76380
#line 76381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62673
76381
} // closed Puma
 
76382
class CCExprResolve;
 
76383
class CExprResolve;
62674
76384
class WinIfExists;
62675
76385
class WinImportHandler;
62676
76386
class WinMacros;
62677
 
class CMatchSyntax;
62678
 
class ExtGnu;
 
76387
class WinAsm;
 
76388
class WinDeclSpecs;
 
76389
class WinMemberExplSpec;
 
76390
class WinTypeKeywords;
 
76391
class WinFriend;
62679
76392
class ExtAC;
62680
76393
class ExtACBuilderCoupling;
62681
76394
class ExtACSyntaxCoupling;
62682
76395
class ExtACTree;
62683
76396
class ExtACKeywords;
62684
 
class WinAsm;
62685
 
class WinDeclSpecs;
62686
 
class WinMemberExplSpec;
62687
 
class WinTypeKeywords;
 
76397
class ExtGnu;
62688
76398
class PragmaOnceUnitState;
62689
76399
class PragmaOnce;
62690
 
class CCExprResolve;
62691
 
class CExprResolve;
 
76400
class CMatchSyntax;
62692
76401
namespace Puma {
62693
76402
 
62694
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76403
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62695
76404
class CT_IfElseStmt : public CT_Statement, public CSemScope {
62696
 
#line 62697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76405
#line 76406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76406
  friend class ::CCExprResolve;
 
76407
  friend class ::CExprResolve;
62697
76408
  friend class ::WinIfExists;
62698
76409
  friend class ::WinImportHandler;
62699
76410
  friend class ::WinMacros;
62700
 
  friend class ::CMatchSyntax;
62701
 
  friend class ::ExtGnu;
 
76411
  friend class ::WinAsm;
 
76412
  friend class ::WinDeclSpecs;
 
76413
  friend class ::WinMemberExplSpec;
 
76414
  friend class ::WinTypeKeywords;
 
76415
  friend class ::WinFriend;
62702
76416
  friend class ::ExtAC;
62703
76417
  friend class ::ExtACBuilderCoupling;
62704
76418
  friend class ::ExtACSyntaxCoupling;
62705
76419
  friend class ::ExtACTree;
62706
76420
  friend class ::ExtACKeywords;
62707
 
  friend class ::WinAsm;
62708
 
  friend class ::WinDeclSpecs;
62709
 
  friend class ::WinMemberExplSpec;
62710
 
  friend class ::WinTypeKeywords;
 
76421
  friend class ::ExtGnu;
62711
76422
  friend class ::PragmaOnceUnitState;
62712
76423
  friend class ::PragmaOnce;
62713
 
  friend class ::CCExprResolve;
62714
 
  friend class ::CExprResolve;
 
76424
  friend class ::CMatchSyntax;
62715
76425
 
62716
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76426
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62717
76427
 
62718
76428
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
62719
76429
 
62720
76430
public:
62721
76431
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
62722
76432
                 CTree *is, CTree *e, CTree *es) {
62723
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
62724
 
    sons[5] = e; sons[6] = es; 
 
76433
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
76434
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
76435
    AddSon (sons[6], es); 
62725
76436
  }
 
76437
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62726
76438
  static const char *NodeId ();
 
76439
  /** Get the name of the node. Can be compared with NodeId(). */
62727
76440
  const char *NodeName () const { return NodeId (); }
 
76441
  /** Get the number of sons. */
62728
76442
  int Sons () const { return 7; }
 
76443
  /** Get the n-th son.
 
76444
   *  \param n The index of the son.
 
76445
   *  \return The n-th son or NULL. */
62729
76446
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
62730
76447
  CTree *Condition () const { return sons[2]; }
62731
76448
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
62732
76449
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
76450
  /** Replace a son.
 
76451
   *  \param old_son The son to replace.
 
76452
   *  \param new_son The new son. */
62733
76453
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62734
76454
    CTree::ReplaceSon (sons, 7, old_son, new_son);
62735
76455
  }
 
76456
  CSemScope *SemScope () const { return (CSemScope*)this; }
62736
76457
};
62737
76458
 
62738
76459
 
62739
 
#line 62740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76460
#line 76461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62740
76461
} // closed Puma
 
76462
class CCExprResolve;
 
76463
class CExprResolve;
62741
76464
class WinIfExists;
62742
76465
class WinImportHandler;
62743
76466
class WinMacros;
62744
 
class CMatchSyntax;
62745
 
class ExtGnu;
 
76467
class WinAsm;
 
76468
class WinDeclSpecs;
 
76469
class WinMemberExplSpec;
 
76470
class WinTypeKeywords;
 
76471
class WinFriend;
62746
76472
class ExtAC;
62747
76473
class ExtACBuilderCoupling;
62748
76474
class ExtACSyntaxCoupling;
62749
76475
class ExtACTree;
62750
76476
class ExtACKeywords;
62751
 
class WinAsm;
62752
 
class WinDeclSpecs;
62753
 
class WinMemberExplSpec;
62754
 
class WinTypeKeywords;
 
76477
class ExtGnu;
62755
76478
class PragmaOnceUnitState;
62756
76479
class PragmaOnce;
62757
 
class CCExprResolve;
62758
 
class CExprResolve;
 
76480
class CMatchSyntax;
62759
76481
namespace Puma {
62760
76482
 
62761
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76483
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62762
76484
class CT_BreakStmt : public CT_Statement {
62763
 
#line 62764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76485
#line 76486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76486
  friend class ::CCExprResolve;
 
76487
  friend class ::CExprResolve;
62764
76488
  friend class ::WinIfExists;
62765
76489
  friend class ::WinImportHandler;
62766
76490
  friend class ::WinMacros;
62767
 
  friend class ::CMatchSyntax;
62768
 
  friend class ::ExtGnu;
 
76491
  friend class ::WinAsm;
 
76492
  friend class ::WinDeclSpecs;
 
76493
  friend class ::WinMemberExplSpec;
 
76494
  friend class ::WinTypeKeywords;
 
76495
  friend class ::WinFriend;
62769
76496
  friend class ::ExtAC;
62770
76497
  friend class ::ExtACBuilderCoupling;
62771
76498
  friend class ::ExtACSyntaxCoupling;
62772
76499
  friend class ::ExtACTree;
62773
76500
  friend class ::ExtACKeywords;
62774
 
  friend class ::WinAsm;
62775
 
  friend class ::WinDeclSpecs;
62776
 
  friend class ::WinMemberExplSpec;
62777
 
  friend class ::WinTypeKeywords;
 
76501
  friend class ::ExtGnu;
62778
76502
  friend class ::PragmaOnceUnitState;
62779
76503
  friend class ::PragmaOnce;
62780
 
  friend class ::CCExprResolve;
62781
 
  friend class ::CExprResolve;
 
76504
  friend class ::CMatchSyntax;
62782
76505
 
62783
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76506
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62784
76507
 
62785
76508
  CTree *sons[2]; // key, semi_colon
62786
76509
 
62787
76510
public:
62788
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
76511
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
76512
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62789
76513
  static const char *NodeId ();
 
76514
  /** Get the name of the node. Can be compared with NodeId(). */
62790
76515
  const char *NodeName () const { return NodeId (); }
 
76516
  /** Get the number of sons. */
62791
76517
  int Sons () const { return 2; }
 
76518
  /** Get the n-th son.
 
76519
   *  \param n The index of the son.
 
76520
   *  \return The n-th son or NULL. */
62792
76521
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76522
  /** Replace a son.
 
76523
   *  \param old_son The son to replace.
 
76524
   *  \param new_son The new son. */
62793
76525
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62794
76526
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62795
76527
  }
62796
76528
};
62797
76529
 
62798
76530
 
62799
 
#line 62800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76531
#line 76532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62800
76532
} // closed Puma
 
76533
class CCExprResolve;
 
76534
class CExprResolve;
62801
76535
class WinIfExists;
62802
76536
class WinImportHandler;
62803
76537
class WinMacros;
62804
 
class CMatchSyntax;
62805
 
class ExtGnu;
 
76538
class WinAsm;
 
76539
class WinDeclSpecs;
 
76540
class WinMemberExplSpec;
 
76541
class WinTypeKeywords;
 
76542
class WinFriend;
62806
76543
class ExtAC;
62807
76544
class ExtACBuilderCoupling;
62808
76545
class ExtACSyntaxCoupling;
62809
76546
class ExtACTree;
62810
76547
class ExtACKeywords;
62811
 
class WinAsm;
62812
 
class WinDeclSpecs;
62813
 
class WinMemberExplSpec;
62814
 
class WinTypeKeywords;
 
76548
class ExtGnu;
62815
76549
class PragmaOnceUnitState;
62816
76550
class PragmaOnce;
62817
 
class CCExprResolve;
62818
 
class CExprResolve;
 
76551
class CMatchSyntax;
62819
76552
namespace Puma {
62820
76553
 
62821
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76554
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62822
76555
class CT_ContinueStmt : public CT_Statement {
62823
 
#line 62824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76556
#line 76557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76557
  friend class ::CCExprResolve;
 
76558
  friend class ::CExprResolve;
62824
76559
  friend class ::WinIfExists;
62825
76560
  friend class ::WinImportHandler;
62826
76561
  friend class ::WinMacros;
62827
 
  friend class ::CMatchSyntax;
62828
 
  friend class ::ExtGnu;
 
76562
  friend class ::WinAsm;
 
76563
  friend class ::WinDeclSpecs;
 
76564
  friend class ::WinMemberExplSpec;
 
76565
  friend class ::WinTypeKeywords;
 
76566
  friend class ::WinFriend;
62829
76567
  friend class ::ExtAC;
62830
76568
  friend class ::ExtACBuilderCoupling;
62831
76569
  friend class ::ExtACSyntaxCoupling;
62832
76570
  friend class ::ExtACTree;
62833
76571
  friend class ::ExtACKeywords;
62834
 
  friend class ::WinAsm;
62835
 
  friend class ::WinDeclSpecs;
62836
 
  friend class ::WinMemberExplSpec;
62837
 
  friend class ::WinTypeKeywords;
 
76572
  friend class ::ExtGnu;
62838
76573
  friend class ::PragmaOnceUnitState;
62839
76574
  friend class ::PragmaOnce;
62840
 
  friend class ::CCExprResolve;
62841
 
  friend class ::CExprResolve;
 
76575
  friend class ::CMatchSyntax;
62842
76576
 
62843
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76577
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62844
76578
 
62845
76579
  CTree *sons[2]; // key, semi_colon
62846
76580
 
62847
76581
public:
62848
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
76582
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
76583
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62849
76584
  static const char *NodeId ();
 
76585
  /** Get the name of the node. Can be compared with NodeId(). */
62850
76586
  const char *NodeName () const { return NodeId (); }
 
76587
  /** Get the number of sons. */
62851
76588
  int Sons () const { return 2; }
 
76589
  /** Get the n-th son.
 
76590
   *  \param n The index of the son.
 
76591
   *  \return The n-th son or NULL. */
62852
76592
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76593
  /** Replace a son.
 
76594
   *  \param old_son The son to replace.
 
76595
   *  \param new_son The new son. */
62853
76596
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62854
76597
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62855
76598
  }
62856
76599
};
62857
76600
 
62858
76601
 
62859
 
#line 62860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76602
#line 76603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62860
76603
} // closed Puma
 
76604
class CCExprResolve;
 
76605
class CExprResolve;
62861
76606
class WinIfExists;
62862
76607
class WinImportHandler;
62863
76608
class WinMacros;
62864
 
class CMatchSyntax;
62865
 
class ExtGnu;
 
76609
class WinAsm;
 
76610
class WinDeclSpecs;
 
76611
class WinMemberExplSpec;
 
76612
class WinTypeKeywords;
 
76613
class WinFriend;
62866
76614
class ExtAC;
62867
76615
class ExtACBuilderCoupling;
62868
76616
class ExtACSyntaxCoupling;
62869
76617
class ExtACTree;
62870
76618
class ExtACKeywords;
62871
 
class WinAsm;
62872
 
class WinDeclSpecs;
62873
 
class WinMemberExplSpec;
62874
 
class WinTypeKeywords;
 
76619
class ExtGnu;
62875
76620
class PragmaOnceUnitState;
62876
76621
class PragmaOnce;
62877
 
class CCExprResolve;
62878
 
class CExprResolve;
 
76622
class CMatchSyntax;
62879
76623
namespace Puma {
62880
76624
 
62881
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76625
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62882
76626
class CT_GotoStmt : public CT_Statement {
62883
 
#line 62884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76627
#line 76628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76628
  friend class ::CCExprResolve;
 
76629
  friend class ::CExprResolve;
62884
76630
  friend class ::WinIfExists;
62885
76631
  friend class ::WinImportHandler;
62886
76632
  friend class ::WinMacros;
62887
 
  friend class ::CMatchSyntax;
62888
 
  friend class ::ExtGnu;
 
76633
  friend class ::WinAsm;
 
76634
  friend class ::WinDeclSpecs;
 
76635
  friend class ::WinMemberExplSpec;
 
76636
  friend class ::WinTypeKeywords;
 
76637
  friend class ::WinFriend;
62889
76638
  friend class ::ExtAC;
62890
76639
  friend class ::ExtACBuilderCoupling;
62891
76640
  friend class ::ExtACSyntaxCoupling;
62892
76641
  friend class ::ExtACTree;
62893
76642
  friend class ::ExtACKeywords;
62894
 
  friend class ::WinAsm;
62895
 
  friend class ::WinDeclSpecs;
62896
 
  friend class ::WinMemberExplSpec;
62897
 
  friend class ::WinTypeKeywords;
 
76643
  friend class ::ExtGnu;
62898
76644
  friend class ::PragmaOnceUnitState;
62899
76645
  friend class ::PragmaOnce;
62900
 
  friend class ::CCExprResolve;
62901
 
  friend class ::CExprResolve;
 
76646
  friend class ::CMatchSyntax;
62902
76647
 
62903
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76648
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62904
76649
 
62905
76650
  CTree *sons[3]; // key, label, semi_colon
62906
76651
 
62907
76652
public:
62908
76653
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
62909
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
76654
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
62910
76655
  }
 
76656
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62911
76657
  static const char *NodeId ();
 
76658
  /** Get the name of the node. Can be compared with NodeId(). */
62912
76659
  const char *NodeName () const { return NodeId (); }
 
76660
  /** Get the number of sons. */
62913
76661
  int Sons () const { return 3; }
 
76662
  /** Get the n-th son.
 
76663
   *  \param n The index of the son.
 
76664
   *  \return The n-th son or NULL. */
62914
76665
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62915
76666
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
76667
  /** Replace a son.
 
76668
   *  \param old_son The son to replace.
 
76669
   *  \param new_son The new son. */
62916
76670
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62917
76671
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62918
76672
  }
62919
76673
};
62920
76674
 
62921
76675
 
62922
 
#line 62923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76676
#line 76677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62923
76677
} // closed Puma
 
76678
class CCExprResolve;
 
76679
class CExprResolve;
62924
76680
class WinIfExists;
62925
76681
class WinImportHandler;
62926
76682
class WinMacros;
62927
 
class CMatchSyntax;
62928
 
class ExtGnu;
 
76683
class WinAsm;
 
76684
class WinDeclSpecs;
 
76685
class WinMemberExplSpec;
 
76686
class WinTypeKeywords;
 
76687
class WinFriend;
62929
76688
class ExtAC;
62930
76689
class ExtACBuilderCoupling;
62931
76690
class ExtACSyntaxCoupling;
62932
76691
class ExtACTree;
62933
76692
class ExtACKeywords;
62934
 
class WinAsm;
62935
 
class WinDeclSpecs;
62936
 
class WinMemberExplSpec;
62937
 
class WinTypeKeywords;
 
76693
class ExtGnu;
62938
76694
class PragmaOnceUnitState;
62939
76695
class PragmaOnce;
62940
 
class CCExprResolve;
62941
 
class CExprResolve;
 
76696
class CMatchSyntax;
62942
76697
namespace Puma {
62943
76698
 
62944
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76699
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62945
76700
class CT_ReturnStmt : public CT_Statement {
62946
 
#line 62947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76701
#line 76702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76702
  friend class ::CCExprResolve;
 
76703
  friend class ::CExprResolve;
62947
76704
  friend class ::WinIfExists;
62948
76705
  friend class ::WinImportHandler;
62949
76706
  friend class ::WinMacros;
62950
 
  friend class ::CMatchSyntax;
62951
 
  friend class ::ExtGnu;
 
76707
  friend class ::WinAsm;
 
76708
  friend class ::WinDeclSpecs;
 
76709
  friend class ::WinMemberExplSpec;
 
76710
  friend class ::WinTypeKeywords;
 
76711
  friend class ::WinFriend;
62952
76712
  friend class ::ExtAC;
62953
76713
  friend class ::ExtACBuilderCoupling;
62954
76714
  friend class ::ExtACSyntaxCoupling;
62955
76715
  friend class ::ExtACTree;
62956
76716
  friend class ::ExtACKeywords;
62957
 
  friend class ::WinAsm;
62958
 
  friend class ::WinDeclSpecs;
62959
 
  friend class ::WinMemberExplSpec;
62960
 
  friend class ::WinTypeKeywords;
 
76717
  friend class ::ExtGnu;
62961
76718
  friend class ::PragmaOnceUnitState;
62962
76719
  friend class ::PragmaOnce;
62963
 
  friend class ::CCExprResolve;
62964
 
  friend class ::CExprResolve;
 
76720
  friend class ::CMatchSyntax;
62965
76721
 
62966
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76722
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62967
76723
 
62968
76724
  CTree *sons[3]; // key, expr, semi_colon
62969
76725
 
62970
76726
public:
62971
76727
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
62972
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
76728
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
62973
76729
  }
 
76730
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62974
76731
  static const char *NodeId ();
 
76732
  /** Get the name of the node. Can be compared with NodeId(). */
62975
76733
  const char *NodeName () const { return NodeId (); }
 
76734
  /** Get the number of sons. */
62976
76735
  int Sons () const { return CTree::Sons (sons, 3); }
 
76736
  /** Get the n-th son.
 
76737
   *  \param n The index of the son.
 
76738
   *  \return The n-th son or NULL. */
62977
76739
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
62978
76740
  CTree *Expr () const { return sons[1]; }
 
76741
  /** Replace a son.
 
76742
   *  \param old_son The son to replace.
 
76743
   *  \param new_son The new son. */
62979
76744
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62980
76745
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62981
76746
  }
62982
76747
};
62983
76748
 
62984
76749
 
62985
 
#line 62986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76750
#line 76751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
62986
76751
} // closed Puma
 
76752
class CCExprResolve;
 
76753
class CExprResolve;
62987
76754
class WinIfExists;
62988
76755
class WinImportHandler;
62989
76756
class WinMacros;
62990
 
class CMatchSyntax;
62991
 
class ExtGnu;
 
76757
class WinAsm;
 
76758
class WinDeclSpecs;
 
76759
class WinMemberExplSpec;
 
76760
class WinTypeKeywords;
 
76761
class WinFriend;
62992
76762
class ExtAC;
62993
76763
class ExtACBuilderCoupling;
62994
76764
class ExtACSyntaxCoupling;
62995
76765
class ExtACTree;
62996
76766
class ExtACKeywords;
62997
 
class WinAsm;
62998
 
class WinDeclSpecs;
62999
 
class WinMemberExplSpec;
63000
 
class WinTypeKeywords;
 
76767
class ExtGnu;
63001
76768
class PragmaOnceUnitState;
63002
76769
class PragmaOnce;
63003
 
class CCExprResolve;
63004
 
class CExprResolve;
 
76770
class CMatchSyntax;
63005
76771
namespace Puma {
63006
76772
 
63007
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76773
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63008
76774
class CT_WhileStmt : public CT_Statement, public CSemScope {
63009
 
#line 63010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76775
#line 76776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76776
  friend class ::CCExprResolve;
 
76777
  friend class ::CExprResolve;
63010
76778
  friend class ::WinIfExists;
63011
76779
  friend class ::WinImportHandler;
63012
76780
  friend class ::WinMacros;
63013
 
  friend class ::CMatchSyntax;
63014
 
  friend class ::ExtGnu;
 
76781
  friend class ::WinAsm;
 
76782
  friend class ::WinDeclSpecs;
 
76783
  friend class ::WinMemberExplSpec;
 
76784
  friend class ::WinTypeKeywords;
 
76785
  friend class ::WinFriend;
63015
76786
  friend class ::ExtAC;
63016
76787
  friend class ::ExtACBuilderCoupling;
63017
76788
  friend class ::ExtACSyntaxCoupling;
63018
76789
  friend class ::ExtACTree;
63019
76790
  friend class ::ExtACKeywords;
63020
 
  friend class ::WinAsm;
63021
 
  friend class ::WinDeclSpecs;
63022
 
  friend class ::WinMemberExplSpec;
63023
 
  friend class ::WinTypeKeywords;
 
76791
  friend class ::ExtGnu;
63024
76792
  friend class ::PragmaOnceUnitState;
63025
76793
  friend class ::PragmaOnce;
63026
 
  friend class ::CCExprResolve;
63027
 
  friend class ::CExprResolve;
 
76794
  friend class ::CMatchSyntax;
63028
76795
 
63029
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76796
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63030
76797
 
63031
76798
  CTree *sons[5]; // key, open, cond, close, stmt
63032
76799
 
63033
76800
public:
63034
76801
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
63035
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
76802
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
76803
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
63036
76804
  }
 
76805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63037
76806
  static const char *NodeId ();
 
76807
  /** Get the name of the node. Can be compared with NodeId(). */
63038
76808
  const char *NodeName () const { return NodeId (); }
 
76809
  /** Get the number of sons. */
63039
76810
  int Sons () const { return 5; }
 
76811
  /** Get the n-th son.
 
76812
   *  \param n The index of the son.
 
76813
   *  \return The n-th son or NULL. */
63040
76814
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
63041
76815
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
63042
76816
  CTree *Condition () const { return sons[2]; }
 
76817
  /** Replace a son.
 
76818
   *  \param old_son The son to replace.
 
76819
   *  \param new_son The new son. */
63043
76820
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63044
76821
    CTree::ReplaceSon (sons, 5, old_son, new_son);
63045
76822
  }
 
76823
  CSemScope *SemScope () const { return (CSemScope*)this; }
63046
76824
};
63047
76825
 
63048
76826
 
63049
 
#line 63050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76827
#line 76828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63050
76828
} // closed Puma
 
76829
class CCExprResolve;
 
76830
class CExprResolve;
63051
76831
class WinIfExists;
63052
76832
class WinImportHandler;
63053
76833
class WinMacros;
63054
 
class CMatchSyntax;
63055
 
class ExtGnu;
 
76834
class WinAsm;
 
76835
class WinDeclSpecs;
 
76836
class WinMemberExplSpec;
 
76837
class WinTypeKeywords;
 
76838
class WinFriend;
63056
76839
class ExtAC;
63057
76840
class ExtACBuilderCoupling;
63058
76841
class ExtACSyntaxCoupling;
63059
76842
class ExtACTree;
63060
76843
class ExtACKeywords;
63061
 
class WinAsm;
63062
 
class WinDeclSpecs;
63063
 
class WinMemberExplSpec;
63064
 
class WinTypeKeywords;
 
76844
class ExtGnu;
63065
76845
class PragmaOnceUnitState;
63066
76846
class PragmaOnce;
63067
 
class CCExprResolve;
63068
 
class CExprResolve;
 
76847
class CMatchSyntax;
63069
76848
namespace Puma {
63070
76849
 
63071
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76850
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63072
76851
class CT_DoStmt : public CT_Statement {
63073
 
#line 63074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76852
#line 76853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76853
  friend class ::CCExprResolve;
 
76854
  friend class ::CExprResolve;
63074
76855
  friend class ::WinIfExists;
63075
76856
  friend class ::WinImportHandler;
63076
76857
  friend class ::WinMacros;
63077
 
  friend class ::CMatchSyntax;
63078
 
  friend class ::ExtGnu;
 
76858
  friend class ::WinAsm;
 
76859
  friend class ::WinDeclSpecs;
 
76860
  friend class ::WinMemberExplSpec;
 
76861
  friend class ::WinTypeKeywords;
 
76862
  friend class ::WinFriend;
63079
76863
  friend class ::ExtAC;
63080
76864
  friend class ::ExtACBuilderCoupling;
63081
76865
  friend class ::ExtACSyntaxCoupling;
63082
76866
  friend class ::ExtACTree;
63083
76867
  friend class ::ExtACKeywords;
63084
 
  friend class ::WinAsm;
63085
 
  friend class ::WinDeclSpecs;
63086
 
  friend class ::WinMemberExplSpec;
63087
 
  friend class ::WinTypeKeywords;
 
76868
  friend class ::ExtGnu;
63088
76869
  friend class ::PragmaOnceUnitState;
63089
76870
  friend class ::PragmaOnce;
63090
 
  friend class ::CCExprResolve;
63091
 
  friend class ::CExprResolve;
 
76871
  friend class ::CMatchSyntax;
63092
76872
 
63093
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76873
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63094
76874
 
63095
76875
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
63096
76876
 
63097
76877
public:
63098
76878
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
63099
76879
             CTree *c, CTree *sc) {
63100
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
63101
 
    sons[5] = c; sons[6] = sc; 
 
76880
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
76881
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
76882
    AddSon (sons[6], sc); 
63102
76883
  }
 
76884
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63103
76885
  static const char *NodeId ();
 
76886
  /** Get the name of the node. Can be compared with NodeId(). */
63104
76887
  const char *NodeName () const { return NodeId (); }
 
76888
  /** Get the number of sons. */
63105
76889
  int Sons () const { return 7; }
 
76890
  /** Get the n-th son.
 
76891
   *  \param n The index of the son.
 
76892
   *  \return The n-th son or NULL. */
63106
76893
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
63107
76894
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
63108
76895
  CTree *Expr () const { return sons[4]; }
 
76896
  /** Replace a son.
 
76897
   *  \param old_son The son to replace.
 
76898
   *  \param new_son The new son. */
63109
76899
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63110
76900
    CTree::ReplaceSon (sons, 7, old_son, new_son);
63111
76901
  }
63112
76902
};
63113
76903
 
63114
76904
 
63115
 
#line 63116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76905
#line 76906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63116
76906
} // closed Puma
 
76907
class CCExprResolve;
 
76908
class CExprResolve;
63117
76909
class WinIfExists;
63118
76910
class WinImportHandler;
63119
76911
class WinMacros;
63120
 
class CMatchSyntax;
63121
 
class ExtGnu;
 
76912
class WinAsm;
 
76913
class WinDeclSpecs;
 
76914
class WinMemberExplSpec;
 
76915
class WinTypeKeywords;
 
76916
class WinFriend;
63122
76917
class ExtAC;
63123
76918
class ExtACBuilderCoupling;
63124
76919
class ExtACSyntaxCoupling;
63125
76920
class ExtACTree;
63126
76921
class ExtACKeywords;
63127
 
class WinAsm;
63128
 
class WinDeclSpecs;
63129
 
class WinMemberExplSpec;
63130
 
class WinTypeKeywords;
 
76922
class ExtGnu;
63131
76923
class PragmaOnceUnitState;
63132
76924
class PragmaOnce;
63133
 
class CCExprResolve;
63134
 
class CExprResolve;
 
76925
class CMatchSyntax;
63135
76926
namespace Puma {
63136
76927
 
63137
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76928
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63138
76929
class CT_ForStmt : public CT_Statement, public CSemScope {
63139
 
#line 63140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76930
#line 76931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
76931
  friend class ::CCExprResolve;
 
76932
  friend class ::CExprResolve;
63140
76933
  friend class ::WinIfExists;
63141
76934
  friend class ::WinImportHandler;
63142
76935
  friend class ::WinMacros;
63143
 
  friend class ::CMatchSyntax;
63144
 
  friend class ::ExtGnu;
 
76936
  friend class ::WinAsm;
 
76937
  friend class ::WinDeclSpecs;
 
76938
  friend class ::WinMemberExplSpec;
 
76939
  friend class ::WinTypeKeywords;
 
76940
  friend class ::WinFriend;
63145
76941
  friend class ::ExtAC;
63146
76942
  friend class ::ExtACBuilderCoupling;
63147
76943
  friend class ::ExtACSyntaxCoupling;
63148
76944
  friend class ::ExtACTree;
63149
76945
  friend class ::ExtACKeywords;
63150
 
  friend class ::WinAsm;
63151
 
  friend class ::WinDeclSpecs;
63152
 
  friend class ::WinMemberExplSpec;
63153
 
  friend class ::WinTypeKeywords;
 
76946
  friend class ::ExtGnu;
63154
76947
  friend class ::PragmaOnceUnitState;
63155
76948
  friend class ::PragmaOnce;
63156
 
  friend class ::CCExprResolve;
63157
 
  friend class ::CExprResolve;
 
76949
  friend class ::CMatchSyntax;
63158
76950
 
63159
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76951
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63160
76952
 
63161
76953
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
63162
76954
 
63163
76955
public:
63164
76956
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
63165
76957
              CTree *e, CTree *c, CTree *stmt) {
63166
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
63167
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
76958
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
76959
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
76960
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
63168
76961
  }
 
76962
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63169
76963
  static const char *NodeId ();
 
76964
  /** Get the name of the node. Can be compared with NodeId(). */
63170
76965
  const char *NodeName () const { return NodeId (); }
 
76966
  /** Get the number of sons. */
63171
76967
  int Sons () const { return CTree::Sons (sons, 8); }
 
76968
  /** Get the n-th son.
 
76969
   *  \param n The index of the son.
 
76970
   *  \return The n-th son or NULL. */
63172
76971
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
63173
76972
  CTree *InitStmt () const { return sons[2]; }
63174
76973
  CTree *Condition () const { return sons[3]; }
63175
76974
  CTree *Expr () const { return sons[5]; }
63176
76975
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
76976
  /** Replace a son.
 
76977
   *  \param old_son The son to replace.
 
76978
   *  \param new_son The new son. */
63177
76979
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63178
76980
    CTree::ReplaceSon (sons, 8, old_son, new_son);
63179
76981
  }
 
76982
  CSemScope *SemScope () const { return (CSemScope*)this; }
63180
76983
};
63181
76984
 
63182
76985
 
63183
 
#line 63184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
76986
#line 76987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63184
76987
} // closed Puma
 
76988
class CCExprResolve;
 
76989
class CExprResolve;
63185
76990
class WinIfExists;
63186
76991
class WinImportHandler;
63187
76992
class WinMacros;
63188
 
class CMatchSyntax;
63189
 
class ExtGnu;
 
76993
class WinAsm;
 
76994
class WinDeclSpecs;
 
76995
class WinMemberExplSpec;
 
76996
class WinTypeKeywords;
 
76997
class WinFriend;
63190
76998
class ExtAC;
63191
76999
class ExtACBuilderCoupling;
63192
77000
class ExtACSyntaxCoupling;
63193
77001
class ExtACTree;
63194
77002
class ExtACKeywords;
63195
 
class WinAsm;
63196
 
class WinDeclSpecs;
63197
 
class WinMemberExplSpec;
63198
 
class WinTypeKeywords;
 
77003
class ExtGnu;
63199
77004
class PragmaOnceUnitState;
63200
77005
class PragmaOnce;
63201
 
class CCExprResolve;
63202
 
class CExprResolve;
 
77006
class CMatchSyntax;
63203
77007
namespace Puma {
63204
77008
 
63205
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77009
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63206
77010
class CT_Condition : public CT_Decl, public CSemObject {
63207
 
#line 63208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77011
#line 77012 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77012
  friend class ::CCExprResolve;
 
77013
  friend class ::CExprResolve;
63208
77014
  friend class ::WinIfExists;
63209
77015
  friend class ::WinImportHandler;
63210
77016
  friend class ::WinMacros;
63211
 
  friend class ::CMatchSyntax;
63212
 
  friend class ::ExtGnu;
 
77017
  friend class ::WinAsm;
 
77018
  friend class ::WinDeclSpecs;
 
77019
  friend class ::WinMemberExplSpec;
 
77020
  friend class ::WinTypeKeywords;
 
77021
  friend class ::WinFriend;
63213
77022
  friend class ::ExtAC;
63214
77023
  friend class ::ExtACBuilderCoupling;
63215
77024
  friend class ::ExtACSyntaxCoupling;
63216
77025
  friend class ::ExtACTree;
63217
77026
  friend class ::ExtACKeywords;
63218
 
  friend class ::WinAsm;
63219
 
  friend class ::WinDeclSpecs;
63220
 
  friend class ::WinMemberExplSpec;
63221
 
  friend class ::WinTypeKeywords;
 
77027
  friend class ::ExtGnu;
63222
77028
  friend class ::PragmaOnceUnitState;
63223
77029
  friend class ::PragmaOnce;
63224
 
  friend class ::CCExprResolve;
63225
 
  friend class ::CExprResolve;
 
77030
  friend class ::CMatchSyntax;
63226
77031
 
63227
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77032
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63228
77033
 
63229
77034
  CTree *sons[3]; // declspecs, declarator, init
63230
77035
 
63231
77036
public:
63232
77037
  CT_Condition (CTree *dsl, CTree *d) {
63233
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
77038
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
63234
77039
  }
 
77040
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63235
77041
  static const char *NodeId ();
 
77042
  /** Get the name of the node. Can be compared with NodeId(). */
63236
77043
  const char *NodeName () const { return NodeId (); }
 
77044
  /** Get the number of sons. */
63237
77045
  int Sons () const { return CTree::Sons (sons, 3); }
 
77046
  /** Get the n-th son.
 
77047
   *  \param n The index of the son.
 
77048
   *  \return The n-th son or NULL. */
63238
77049
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63239
77050
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
63240
77051
  CTree *Declarator () const { return sons[1]; }
63241
77052
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
63242
77053
  CSemObject *SemObject () const { return (CSemObject*)this; }
63243
 
  void Initializer (CTree *i) { sons[2] = i; }
 
77054
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
77055
  /** Replace a son.
 
77056
   *  \param old_son The son to replace.
 
77057
   *  \param new_son The new son. */
63244
77058
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63245
77059
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63246
77060
  }
63253
77067
/*****************************************************************************/
63254
77068
 
63255
77069
 
63256
 
#line 63257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77070
#line 77071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63257
77071
} // closed Puma
 
77072
class CCExprResolve;
 
77073
class CExprResolve;
63258
77074
class WinIfExists;
63259
77075
class WinImportHandler;
63260
77076
class WinMacros;
63261
 
class CMatchSyntax;
63262
 
class ExtGnu;
 
77077
class WinAsm;
 
77078
class WinDeclSpecs;
 
77079
class WinMemberExplSpec;
 
77080
class WinTypeKeywords;
 
77081
class WinFriend;
63263
77082
class ExtAC;
63264
77083
class ExtACBuilderCoupling;
63265
77084
class ExtACSyntaxCoupling;
63266
77085
class ExtACTree;
63267
77086
class ExtACKeywords;
63268
 
class WinAsm;
63269
 
class WinDeclSpecs;
63270
 
class WinMemberExplSpec;
63271
 
class WinTypeKeywords;
 
77087
class ExtGnu;
63272
77088
class PragmaOnceUnitState;
63273
77089
class PragmaOnce;
63274
 
class CCExprResolve;
63275
 
class CExprResolve;
63276
 
namespace Puma {
63277
 
 
63278
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77090
class CMatchSyntax;
 
77091
namespace Puma {
 
77092
 
 
77093
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77094
 
 
77095
#line 77096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77096
} // closed Puma
 
77097
 
 
77098
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
77099
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
77100
#include "ExtACTree.ah"
 
77101
#endif
 
77102
namespace Puma {
 
77103
 
 
77104
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63279
77105
class CT_ClassDef : public CT_Decl, public CSemObject {
63280
 
#line 63281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77106
#line 77107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77107
  friend class ::CCExprResolve;
 
77108
  friend class ::CExprResolve;
63281
77109
  friend class ::WinIfExists;
63282
77110
  friend class ::WinImportHandler;
63283
77111
  friend class ::WinMacros;
63284
 
  friend class ::CMatchSyntax;
63285
 
  friend class ::ExtGnu;
 
77112
  friend class ::WinAsm;
 
77113
  friend class ::WinDeclSpecs;
 
77114
  friend class ::WinMemberExplSpec;
 
77115
  friend class ::WinTypeKeywords;
 
77116
  friend class ::WinFriend;
63286
77117
  friend class ::ExtAC;
63287
77118
  friend class ::ExtACBuilderCoupling;
63288
77119
  friend class ::ExtACSyntaxCoupling;
63289
77120
  friend class ::ExtACTree;
63290
77121
  friend class ::ExtACKeywords;
63291
 
  friend class ::WinAsm;
63292
 
  friend class ::WinDeclSpecs;
63293
 
  friend class ::WinMemberExplSpec;
63294
 
  friend class ::WinTypeKeywords;
 
77122
  friend class ::ExtGnu;
63295
77123
  friend class ::PragmaOnceUnitState;
63296
77124
  friend class ::PragmaOnce;
63297
 
  friend class ::CCExprResolve;
63298
 
  friend class ::CExprResolve;
 
77125
  friend class ::CMatchSyntax;
63299
77126
 
63300
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77127
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63301
77128
 
63302
77129
   
63303
 
#line 63304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77130
#line 77131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63304
77131
 
63305
77132
  struct __ac_wrapper_sons {
63306
77133
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
63315
77142
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
63316
77143
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
63317
77144
  } sons
63318
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77145
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63319
77146
 
63320
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77147
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63321
77148
; // key, name, bases, members
63322
77149
  CTree *obj_decl;
63323
77150
 
63324
77151
public:
63325
77152
  
63326
 
#line 63327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
63327
 
 
63328
 
 
63329
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
63330
 
  typedef void Result;
63331
 
  typedef ::Puma::CT_ClassDef That;
63332
 
  typedef ::Puma::CT_ClassDef Target;
63333
 
  static const int JPID = 4;
 
77153
#line 77154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77154
 
 
77155
 
 
77156
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
77157
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
77158
  typedef TResult Result;
 
77159
  typedef TThat   That;
 
77160
  typedef TTarget Target;
 
77161
  enum { ARGS = TArgs::ARGS };
 
77162
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
77163
  static const int JPID = 55;
63334
77164
  static const AC::JPType JPTYPE = (AC::JPType)16;
63335
77165
  struct Res {
63336
77166
    typedef void Type;
63337
77167
    typedef void ReferredType;
63338
77168
  };
63339
 
  enum { ARGS = 3 };
63340
 
  template <int I, int DUMMY = 0> struct Arg {
63341
 
    typedef void Type;
63342
 
    typedef void ReferredType;
63343
 
  };
63344
 
  template <int DUMMY> struct Arg<0, DUMMY> {
63345
 
    typedef ::Puma::CTree * Type;
63346
 
    typedef ::Puma::CTree * ReferredType;
63347
 
  };
63348
 
  template <int DUMMY> struct Arg<1, DUMMY> {
63349
 
    typedef ::Puma::CTree * Type;
63350
 
    typedef ::Puma::CTree * ReferredType;
63351
 
  };
63352
 
  template <int DUMMY> struct Arg<2, DUMMY> {
63353
 
    typedef ::Puma::CTree * Type;
63354
 
    typedef ::Puma::CTree * ReferredType;
63355
 
  };
63356
77169
 
63357
77170
  That *_that;
63358
77171
 
63361
77174
};
63362
77175
 
63363
77176
 
63364
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77177
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63365
77178
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
63366
 
#line 63367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77179
#line 77180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63367
77180
{
63368
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
63369
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
63370
 
this->__exec_old_C1(arg0, arg1, arg2);
63371
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
63372
 
 
 
77181
  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;
 
77182
    __TJP tjp;
 
77183
  tjp._that =  (__TJP::That*)this;
 
77184
    this->__exec_old_C1(arg0, arg1, arg2);
 
77185
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
77186
  
63373
77187
}
63374
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
63375
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77188
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
77189
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63376
77190
{
63377
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
77191
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
77192
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
63378
77193
  }
 
77194
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63379
77195
  static const char *NodeId ();
 
77196
  /** Get the name of the node. Can be compared with NodeId(). */
63380
77197
  const char *NodeName () const { return NodeId (); }
 
77198
  /** Get the number of sons. */
63381
77199
  int Sons () const { return CTree::Sons (sons, 4); }
 
77200
  /** Get the n-th son.
 
77201
   *  \param n The index of the son.
 
77202
   *  \return The n-th son or NULL. */
63382
77203
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
63383
77204
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
63384
77205
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
63385
77206
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
63386
77207
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
63387
77208
  CSemObject *SemObject () const { return (CSemObject*)this; }
63388
 
  void Members (CTree *m) { sons[3] = m; }
63389
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
63390
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
77209
  void Members (CTree *m) { AddSon (sons[3], m); }
 
77210
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
77211
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
77212
  /** Replace a son.
 
77213
   *  \param old_son The son to replace.
 
77214
   *  \param new_son The new son. */
63391
77215
  void ReplaceSon (CTree *old_son, CTree *new_son) {
63392
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
63393
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
77216
    CTree::ReplaceSon (sons, 4, old_son, new_son);
63394
77217
  }
63395
77218
   private:
63396
77219
 
63397
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
63398
 
 CTree * _intro_members ;
 
77220
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
77221
 Puma :: CTree * _intro_members ;
 
77222
Puma :: CTree * _base_intros ;
63399
77223
public :
63400
 
CTree * IntroMembers ( ) const { return _intro_members ; }
63401
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
63402
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63403
 
 
63404
 
#line 63405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
63405
 
 
63406
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
63407
 
  typedef void Result;
63408
 
  typedef ::Puma::CT_ClassDef That;
63409
 
  typedef ::Puma::CT_ClassDef Target;
63410
 
  static const int JPID = 4;
 
77224
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
77225
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
77226
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
77227
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
77228
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77229
 
 
77230
#line 77231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77231
 
 
77232
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
77233
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
77234
  typedef TResult Result;
 
77235
  typedef TThat   That;
 
77236
  typedef TTarget Target;
 
77237
  enum { ARGS = TArgs::ARGS };
 
77238
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
77239
  static const int JPID = 7249;
63411
77240
  static const AC::JPType JPTYPE = (AC::JPType)16;
63412
77241
  struct Res {
63413
77242
    typedef void Type;
63414
77243
    typedef void ReferredType;
63415
77244
  };
63416
 
  enum { ARGS = 1 };
63417
 
  template <int I, int DUMMY = 0> struct Arg {
63418
 
    typedef void Type;
63419
 
    typedef void ReferredType;
63420
 
  };
63421
 
  template <int DUMMY> struct Arg<0, DUMMY> {
63422
 
    typedef const ::Puma::CT_ClassDef & Type;
63423
 
    typedef const ::Puma::CT_ClassDef ReferredType;
63424
 
  };
63425
77245
 
63426
77246
  That *_that;
63427
77247
 
63430
77250
};
63431
77251
 
63432
77252
 
63433
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77253
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63434
77254
 
63435
 
#line 63436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77255
#line 77256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63436
77256
 
63437
77257
public:
63438
 
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) {
63439
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
63440
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
63441
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
77258
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) {
 
77259
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
77260
  __TJP tjp;
 
77261
  tjp._that =  (__TJP::That*)this;
 
77262
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
63442
77263
 
63443
77264
}
63444
77265
 
63445
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
63446
 
 
63447
 
#line 63448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
63448
 
 
63449
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
63450
 
  typedef void Result;
63451
 
  typedef ::Puma::CT_ClassDef That;
63452
 
  typedef ::Puma::CT_ClassDef Target;
63453
 
  static const int JPID = 4;
 
77266
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77267
 
 
77268
#line 77269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77269
 
 
77270
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
77271
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
77272
  typedef TResult Result;
 
77273
  typedef TThat   That;
 
77274
  typedef TTarget Target;
 
77275
  enum { ARGS = TArgs::ARGS };
 
77276
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
77277
  static const int JPID = 7247;
63454
77278
  static const AC::JPType JPTYPE = (AC::JPType)32;
63455
77279
  struct Res {
63456
77280
    typedef void Type;
63457
77281
    typedef void ReferredType;
63458
77282
  };
63459
 
  enum { ARGS = 0 };
63460
 
  template <int I, int DUMMY = 0> struct Arg {
63461
 
    typedef void Type;
63462
 
    typedef void ReferredType;
63463
 
  };
63464
77283
 
63465
77284
  That *_that;
63466
77285
 
63469
77288
};
63470
77289
 
63471
77290
 
63472
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77291
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63473
77292
 
63474
 
#line 63475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77293
#line 77294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63475
77294
 
63476
77295
public:
63477
77296
inline ~CT_ClassDef () {
63478
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
63479
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
63480
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
77297
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
77298
  __TJP tjp;
 
77299
  tjp._that =  (__TJP::That*)this;
 
77300
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
63481
77301
 
63482
77302
}
63483
77303
 
63484
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77304
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63485
77305
};
63486
77306
      
63487
77307
 
63488
 
#line 63489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77308
#line 77309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63489
77309
} // closed Puma
 
77310
class CCExprResolve;
 
77311
class CExprResolve;
63490
77312
class WinIfExists;
63491
77313
class WinImportHandler;
63492
77314
class WinMacros;
63493
 
class CMatchSyntax;
63494
 
class ExtGnu;
 
77315
class WinAsm;
 
77316
class WinDeclSpecs;
 
77317
class WinMemberExplSpec;
 
77318
class WinTypeKeywords;
 
77319
class WinFriend;
63495
77320
class ExtAC;
63496
77321
class ExtACBuilderCoupling;
63497
77322
class ExtACSyntaxCoupling;
63498
77323
class ExtACTree;
63499
77324
class ExtACKeywords;
63500
 
class WinAsm;
63501
 
class WinDeclSpecs;
63502
 
class WinMemberExplSpec;
63503
 
class WinTypeKeywords;
 
77325
class ExtGnu;
63504
77326
class PragmaOnceUnitState;
63505
77327
class PragmaOnce;
63506
 
class CCExprResolve;
63507
 
class CExprResolve;
 
77328
class CMatchSyntax;
63508
77329
namespace Puma {
63509
77330
 
63510
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77331
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63511
77332
class CT_UnionDef : public CT_ClassDef {
63512
 
#line 63513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77333
#line 77334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77334
  friend class ::CCExprResolve;
 
77335
  friend class ::CExprResolve;
63513
77336
  friend class ::WinIfExists;
63514
77337
  friend class ::WinImportHandler;
63515
77338
  friend class ::WinMacros;
63516
 
  friend class ::CMatchSyntax;
63517
 
  friend class ::ExtGnu;
 
77339
  friend class ::WinAsm;
 
77340
  friend class ::WinDeclSpecs;
 
77341
  friend class ::WinMemberExplSpec;
 
77342
  friend class ::WinTypeKeywords;
 
77343
  friend class ::WinFriend;
63518
77344
  friend class ::ExtAC;
63519
77345
  friend class ::ExtACBuilderCoupling;
63520
77346
  friend class ::ExtACSyntaxCoupling;
63521
77347
  friend class ::ExtACTree;
63522
77348
  friend class ::ExtACKeywords;
63523
 
  friend class ::WinAsm;
63524
 
  friend class ::WinDeclSpecs;
63525
 
  friend class ::WinMemberExplSpec;
63526
 
  friend class ::WinTypeKeywords;
 
77349
  friend class ::ExtGnu;
63527
77350
  friend class ::PragmaOnceUnitState;
63528
77351
  friend class ::PragmaOnce;
63529
 
  friend class ::CCExprResolve;
63530
 
  friend class ::CExprResolve;
 
77352
  friend class ::CMatchSyntax;
63531
77353
 
63532
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77354
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63533
77355
 
63534
77356
public:
63535
77357
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
63536
77358
  static const char *NodeId ();
 
77359
  /** Get the name of the node. Can be compared with NodeId(). */
63537
77360
  const char *NodeName () const { return NodeId (); }
63538
77361
};
63539
77362
      
63540
77363
 
63541
 
#line 63542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77364
#line 77365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63542
77365
} // closed Puma
 
77366
class CCExprResolve;
 
77367
class CExprResolve;
63543
77368
class WinIfExists;
63544
77369
class WinImportHandler;
63545
77370
class WinMacros;
63546
 
class CMatchSyntax;
63547
 
class ExtGnu;
 
77371
class WinAsm;
 
77372
class WinDeclSpecs;
 
77373
class WinMemberExplSpec;
 
77374
class WinTypeKeywords;
 
77375
class WinFriend;
63548
77376
class ExtAC;
63549
77377
class ExtACBuilderCoupling;
63550
77378
class ExtACSyntaxCoupling;
63551
77379
class ExtACTree;
63552
77380
class ExtACKeywords;
63553
 
class WinAsm;
63554
 
class WinDeclSpecs;
63555
 
class WinMemberExplSpec;
63556
 
class WinTypeKeywords;
 
77381
class ExtGnu;
63557
77382
class PragmaOnceUnitState;
63558
77383
class PragmaOnce;
63559
 
class CCExprResolve;
63560
 
class CExprResolve;
 
77384
class CMatchSyntax;
63561
77385
namespace Puma {
63562
77386
 
63563
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77387
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63564
77388
class CT_MembList : public CT_DeclList, public CSemScope {
63565
 
#line 63566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77389
#line 77390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77390
  friend class ::CCExprResolve;
 
77391
  friend class ::CExprResolve;
63566
77392
  friend class ::WinIfExists;
63567
77393
  friend class ::WinImportHandler;
63568
77394
  friend class ::WinMacros;
63569
 
  friend class ::CMatchSyntax;
63570
 
  friend class ::ExtGnu;
 
77395
  friend class ::WinAsm;
 
77396
  friend class ::WinDeclSpecs;
 
77397
  friend class ::WinMemberExplSpec;
 
77398
  friend class ::WinTypeKeywords;
 
77399
  friend class ::WinFriend;
63571
77400
  friend class ::ExtAC;
63572
77401
  friend class ::ExtACBuilderCoupling;
63573
77402
  friend class ::ExtACSyntaxCoupling;
63574
77403
  friend class ::ExtACTree;
63575
77404
  friend class ::ExtACKeywords;
63576
 
  friend class ::WinAsm;
63577
 
  friend class ::WinDeclSpecs;
63578
 
  friend class ::WinMemberExplSpec;
63579
 
  friend class ::WinTypeKeywords;
 
77405
  friend class ::ExtGnu;
63580
77406
  friend class ::PragmaOnceUnitState;
63581
77407
  friend class ::PragmaOnce;
63582
 
  friend class ::CCExprResolve;
63583
 
  friend class ::CExprResolve;
 
77408
  friend class ::CMatchSyntax;
63584
77409
 
63585
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77410
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63586
77411
 
63587
77412
public:
63588
77413
  CT_MembList (int size = 10, int incr = 10) : 
63589
77414
    CT_DeclList (size, incr) {}
 
77415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63590
77416
  static const char *NodeId ();
 
77417
  /** Get the name of the node. Can be compared with NodeId(). */
63591
77418
  const char *NodeName () const { return NodeId (); }
 
77419
  CSemScope *SemScope () const { return (CSemScope*)this; }
63592
77420
};
63593
77421
 
63594
77422
 
63595
 
#line 63596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77423
#line 77424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63596
77424
} // closed Puma
 
77425
class CCExprResolve;
 
77426
class CExprResolve;
63597
77427
class WinIfExists;
63598
77428
class WinImportHandler;
63599
77429
class WinMacros;
63600
 
class CMatchSyntax;
63601
 
class ExtGnu;
 
77430
class WinAsm;
 
77431
class WinDeclSpecs;
 
77432
class WinMemberExplSpec;
 
77433
class WinTypeKeywords;
 
77434
class WinFriend;
63602
77435
class ExtAC;
63603
77436
class ExtACBuilderCoupling;
63604
77437
class ExtACSyntaxCoupling;
63605
77438
class ExtACTree;
63606
77439
class ExtACKeywords;
63607
 
class WinAsm;
63608
 
class WinDeclSpecs;
63609
 
class WinMemberExplSpec;
63610
 
class WinTypeKeywords;
 
77440
class ExtGnu;
63611
77441
class PragmaOnceUnitState;
63612
77442
class PragmaOnce;
63613
 
class CCExprResolve;
63614
 
class CExprResolve;
 
77443
class CMatchSyntax;
63615
77444
namespace Puma {
63616
77445
 
63617
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77446
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63618
77447
class CT_MembInitList : public CT_List, public CSemScope {
63619
 
#line 63620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77448
#line 77449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77449
  friend class ::CCExprResolve;
 
77450
  friend class ::CExprResolve;
63620
77451
  friend class ::WinIfExists;
63621
77452
  friend class ::WinImportHandler;
63622
77453
  friend class ::WinMacros;
63623
 
  friend class ::CMatchSyntax;
63624
 
  friend class ::ExtGnu;
 
77454
  friend class ::WinAsm;
 
77455
  friend class ::WinDeclSpecs;
 
77456
  friend class ::WinMemberExplSpec;
 
77457
  friend class ::WinTypeKeywords;
 
77458
  friend class ::WinFriend;
63625
77459
  friend class ::ExtAC;
63626
77460
  friend class ::ExtACBuilderCoupling;
63627
77461
  friend class ::ExtACSyntaxCoupling;
63628
77462
  friend class ::ExtACTree;
63629
77463
  friend class ::ExtACKeywords;
63630
 
  friend class ::WinAsm;
63631
 
  friend class ::WinDeclSpecs;
63632
 
  friend class ::WinMemberExplSpec;
63633
 
  friend class ::WinTypeKeywords;
 
77464
  friend class ::ExtGnu;
63634
77465
  friend class ::PragmaOnceUnitState;
63635
77466
  friend class ::PragmaOnce;
63636
 
  friend class ::CCExprResolve;
63637
 
  friend class ::CExprResolve;
 
77467
  friend class ::CMatchSyntax;
63638
77468
 
63639
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77469
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63640
77470
 
63641
77471
public:
63642
77472
  CT_MembInitList (int size = 2) : 
63643
77473
    CT_List (size, 2, CT_List::OPEN) {}
63644
77474
  static const char *NodeId ();
 
77475
  /** Get the name of the node. Can be compared with NodeId(). */
63645
77476
  const char *NodeName () const { return NodeId (); }
 
77477
  CSemScope *SemScope () const { return (CSemScope*)this; }
63646
77478
};
63647
77479
 
63648
77480
 
63649
 
#line 63650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77481
#line 77482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63650
77482
} // closed Puma
 
77483
class CCExprResolve;
 
77484
class CExprResolve;
63651
77485
class WinIfExists;
63652
77486
class WinImportHandler;
63653
77487
class WinMacros;
63654
 
class CMatchSyntax;
63655
 
class ExtGnu;
 
77488
class WinAsm;
 
77489
class WinDeclSpecs;
 
77490
class WinMemberExplSpec;
 
77491
class WinTypeKeywords;
 
77492
class WinFriend;
63656
77493
class ExtAC;
63657
77494
class ExtACBuilderCoupling;
63658
77495
class ExtACSyntaxCoupling;
63659
77496
class ExtACTree;
63660
77497
class ExtACKeywords;
63661
 
class WinAsm;
63662
 
class WinDeclSpecs;
63663
 
class WinMemberExplSpec;
63664
 
class WinTypeKeywords;
 
77498
class ExtGnu;
63665
77499
class PragmaOnceUnitState;
63666
77500
class PragmaOnce;
63667
 
class CCExprResolve;
63668
 
class CExprResolve;
63669
 
namespace Puma {
63670
 
 
63671
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77501
class CMatchSyntax;
 
77502
namespace Puma {
 
77503
 
 
77504
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77505
 
 
77506
#line 77507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77507
} // closed Puma
 
77508
 
 
77509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
77510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
77511
#include "CCExprResolveH.ah"
 
77512
#endif
 
77513
namespace Puma {
 
77514
 
 
77515
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77516
 
 
77517
#line 77518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77518
} // closed Puma
 
77519
 
 
77520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
77521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
77522
#include "CExprResolveH.ah"
 
77523
#endif
 
77524
namespace Puma {
 
77525
 
 
77526
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63672
77527
class CT_MembInit : public CT_Expression, public CSemObject {
63673
 
#line 63674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77528
#line 77529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77529
  friend class ::CCExprResolve;
 
77530
  friend class ::CExprResolve;
63674
77531
  friend class ::WinIfExists;
63675
77532
  friend class ::WinImportHandler;
63676
77533
  friend class ::WinMacros;
63677
 
  friend class ::CMatchSyntax;
63678
 
  friend class ::ExtGnu;
 
77534
  friend class ::WinAsm;
 
77535
  friend class ::WinDeclSpecs;
 
77536
  friend class ::WinMemberExplSpec;
 
77537
  friend class ::WinTypeKeywords;
 
77538
  friend class ::WinFriend;
63679
77539
  friend class ::ExtAC;
63680
77540
  friend class ::ExtACBuilderCoupling;
63681
77541
  friend class ::ExtACSyntaxCoupling;
63682
77542
  friend class ::ExtACTree;
63683
77543
  friend class ::ExtACKeywords;
63684
 
  friend class ::WinAsm;
63685
 
  friend class ::WinDeclSpecs;
63686
 
  friend class ::WinMemberExplSpec;
63687
 
  friend class ::WinTypeKeywords;
 
77544
  friend class ::ExtGnu;
63688
77545
  friend class ::PragmaOnceUnitState;
63689
77546
  friend class ::PragmaOnce;
63690
 
  friend class ::CCExprResolve;
63691
 
  friend class ::CExprResolve;
 
77547
  friend class ::CMatchSyntax;
63692
77548
 
63693
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77549
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63694
77550
 
63695
77551
  CTree *sons[2]; // name, init
63696
77552
 
63697
77553
public:
63698
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
77554
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
77555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63699
77556
  static const char *NodeId ();
 
77557
  /** Get the name of the node. Can be compared with NodeId(). */
63700
77558
  const char *NodeName () const { return NodeId (); }
 
77559
  /** Get the number of sons. */
63701
77560
  int Sons () const { return 2; }
 
77561
  /** Get the n-th son.
 
77562
   *  \param n The index of the son.
 
77563
   *  \return The n-th son or NULL. */
63702
77564
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
77565
  /** Replace a son.
 
77566
   *  \param old_son The son to replace.
 
77567
   *  \param new_son The new son. */
63703
77568
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63704
77569
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63705
77570
  }
63709
77574
   private:
63710
77575
  typedef CT_MembInit CCExprResolveExpr;
63711
77576
 
63712
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
77577
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
63713
77578
 public :
63714
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
77579
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
63715
77580
  typedef CT_MembInit CExprResolveExpr;
63716
77581
 
63717
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
77582
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
63718
77583
 public :
63719
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
63720
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77584
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
77585
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63721
77586
};
63722
77587
 
63723
77588
 
63724
 
#line 63725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77589
#line 77590 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63725
77590
} // closed Puma
 
77591
class CCExprResolve;
 
77592
class CExprResolve;
63726
77593
class WinIfExists;
63727
77594
class WinImportHandler;
63728
77595
class WinMacros;
63729
 
class CMatchSyntax;
63730
 
class ExtGnu;
 
77596
class WinAsm;
 
77597
class WinDeclSpecs;
 
77598
class WinMemberExplSpec;
 
77599
class WinTypeKeywords;
 
77600
class WinFriend;
63731
77601
class ExtAC;
63732
77602
class ExtACBuilderCoupling;
63733
77603
class ExtACSyntaxCoupling;
63734
77604
class ExtACTree;
63735
77605
class ExtACKeywords;
63736
 
class WinAsm;
63737
 
class WinDeclSpecs;
63738
 
class WinMemberExplSpec;
63739
 
class WinTypeKeywords;
 
77606
class ExtGnu;
63740
77607
class PragmaOnceUnitState;
63741
77608
class PragmaOnce;
63742
 
class CCExprResolve;
63743
 
class CExprResolve;
 
77609
class CMatchSyntax;
63744
77610
namespace Puma {
63745
77611
 
63746
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77612
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63747
77613
class CT_BaseSpecList : public CT_List {
63748
 
#line 63749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77614
#line 77615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77615
  friend class ::CCExprResolve;
 
77616
  friend class ::CExprResolve;
63749
77617
  friend class ::WinIfExists;
63750
77618
  friend class ::WinImportHandler;
63751
77619
  friend class ::WinMacros;
63752
 
  friend class ::CMatchSyntax;
63753
 
  friend class ::ExtGnu;
 
77620
  friend class ::WinAsm;
 
77621
  friend class ::WinDeclSpecs;
 
77622
  friend class ::WinMemberExplSpec;
 
77623
  friend class ::WinTypeKeywords;
 
77624
  friend class ::WinFriend;
63754
77625
  friend class ::ExtAC;
63755
77626
  friend class ::ExtACBuilderCoupling;
63756
77627
  friend class ::ExtACSyntaxCoupling;
63757
77628
  friend class ::ExtACTree;
63758
77629
  friend class ::ExtACKeywords;
63759
 
  friend class ::WinAsm;
63760
 
  friend class ::WinDeclSpecs;
63761
 
  friend class ::WinMemberExplSpec;
63762
 
  friend class ::WinTypeKeywords;
 
77630
  friend class ::ExtGnu;
63763
77631
  friend class ::PragmaOnceUnitState;
63764
77632
  friend class ::PragmaOnce;
63765
 
  friend class ::CCExprResolve;
63766
 
  friend class ::CExprResolve;
 
77633
  friend class ::CMatchSyntax;
63767
77634
 
63768
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77635
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63769
77636
 
63770
77637
public:
63771
77638
  CT_BaseSpecList (int size = 2) : 
63772
77639
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
77640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63773
77641
  static const char *NodeId ();
 
77642
  /** Get the name of the node. Can be compared with NodeId(). */
63774
77643
  const char *NodeName () const { return NodeId (); }
63775
77644
};
63776
77645
 
63777
77646
 
63778
 
#line 63779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77647
#line 77648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63779
77648
} // closed Puma
 
77649
class CCExprResolve;
 
77650
class CExprResolve;
63780
77651
class WinIfExists;
63781
77652
class WinImportHandler;
63782
77653
class WinMacros;
63783
 
class CMatchSyntax;
63784
 
class ExtGnu;
 
77654
class WinAsm;
 
77655
class WinDeclSpecs;
 
77656
class WinMemberExplSpec;
 
77657
class WinTypeKeywords;
 
77658
class WinFriend;
63785
77659
class ExtAC;
63786
77660
class ExtACBuilderCoupling;
63787
77661
class ExtACSyntaxCoupling;
63788
77662
class ExtACTree;
63789
77663
class ExtACKeywords;
63790
 
class WinAsm;
63791
 
class WinDeclSpecs;
63792
 
class WinMemberExplSpec;
63793
 
class WinTypeKeywords;
 
77664
class ExtGnu;
63794
77665
class PragmaOnceUnitState;
63795
77666
class PragmaOnce;
63796
 
class CCExprResolve;
63797
 
class CExprResolve;
 
77667
class CMatchSyntax;
63798
77668
namespace Puma {
63799
77669
 
63800
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77670
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63801
77671
class CT_AccessSpec : public CTree {
63802
 
#line 63803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77672
#line 77673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77673
  friend class ::CCExprResolve;
 
77674
  friend class ::CExprResolve;
63803
77675
  friend class ::WinIfExists;
63804
77676
  friend class ::WinImportHandler;
63805
77677
  friend class ::WinMacros;
63806
 
  friend class ::CMatchSyntax;
63807
 
  friend class ::ExtGnu;
 
77678
  friend class ::WinAsm;
 
77679
  friend class ::WinDeclSpecs;
 
77680
  friend class ::WinMemberExplSpec;
 
77681
  friend class ::WinTypeKeywords;
 
77682
  friend class ::WinFriend;
63808
77683
  friend class ::ExtAC;
63809
77684
  friend class ::ExtACBuilderCoupling;
63810
77685
  friend class ::ExtACSyntaxCoupling;
63811
77686
  friend class ::ExtACTree;
63812
77687
  friend class ::ExtACKeywords;
63813
 
  friend class ::WinAsm;
63814
 
  friend class ::WinDeclSpecs;
63815
 
  friend class ::WinMemberExplSpec;
63816
 
  friend class ::WinTypeKeywords;
 
77688
  friend class ::ExtGnu;
63817
77689
  friend class ::PragmaOnceUnitState;
63818
77690
  friend class ::PragmaOnce;
63819
 
  friend class ::CCExprResolve;
63820
 
  friend class ::CExprResolve;
 
77691
  friend class ::CMatchSyntax;
63821
77692
 
63822
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77693
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63823
77694
 
63824
77695
  CTree *sons[2]; // access, colon
63825
77696
 
63826
77697
public:
63827
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
77698
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
77699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63828
77700
  static const char *NodeId ();
 
77701
  /** Get the name of the node. Can be compared with NodeId(). */
63829
77702
  const char *NodeName () const { return NodeId (); }
 
77703
  /** Get the number of sons. */
63830
77704
  int Sons () const { return 2; }
 
77705
  /** Get the n-th son.
 
77706
   *  \param n The index of the son.
 
77707
   *  \return The n-th son or NULL. */
63831
77708
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
63832
77709
  int Access () const { return sons[0]->token ()->type (); }
 
77710
  /** Replace a son.
 
77711
   *  \param old_son The son to replace.
 
77712
   *  \param new_son The new son. */
63833
77713
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63834
77714
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63835
77715
  }
63836
77716
};
63837
77717
 
63838
77718
 
63839
 
#line 63840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77719
#line 77720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63840
77720
} // closed Puma
 
77721
class CCExprResolve;
 
77722
class CExprResolve;
63841
77723
class WinIfExists;
63842
77724
class WinImportHandler;
63843
77725
class WinMacros;
63844
 
class CMatchSyntax;
63845
 
class ExtGnu;
 
77726
class WinAsm;
 
77727
class WinDeclSpecs;
 
77728
class WinMemberExplSpec;
 
77729
class WinTypeKeywords;
 
77730
class WinFriend;
63846
77731
class ExtAC;
63847
77732
class ExtACBuilderCoupling;
63848
77733
class ExtACSyntaxCoupling;
63849
77734
class ExtACTree;
63850
77735
class ExtACKeywords;
63851
 
class WinAsm;
63852
 
class WinDeclSpecs;
63853
 
class WinMemberExplSpec;
63854
 
class WinTypeKeywords;
 
77736
class ExtGnu;
63855
77737
class PragmaOnceUnitState;
63856
77738
class PragmaOnce;
63857
 
class CCExprResolve;
63858
 
class CExprResolve;
 
77739
class CMatchSyntax;
63859
77740
namespace Puma {
63860
77741
 
63861
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77742
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63862
77743
class CT_BaseSpec : public CTree {
63863
 
#line 63864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77744
#line 77745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77745
  friend class ::CCExprResolve;
 
77746
  friend class ::CExprResolve;
63864
77747
  friend class ::WinIfExists;
63865
77748
  friend class ::WinImportHandler;
63866
77749
  friend class ::WinMacros;
63867
 
  friend class ::CMatchSyntax;
63868
 
  friend class ::ExtGnu;
 
77750
  friend class ::WinAsm;
 
77751
  friend class ::WinDeclSpecs;
 
77752
  friend class ::WinMemberExplSpec;
 
77753
  friend class ::WinTypeKeywords;
 
77754
  friend class ::WinFriend;
63869
77755
  friend class ::ExtAC;
63870
77756
  friend class ::ExtACBuilderCoupling;
63871
77757
  friend class ::ExtACSyntaxCoupling;
63872
77758
  friend class ::ExtACTree;
63873
77759
  friend class ::ExtACKeywords;
63874
 
  friend class ::WinAsm;
63875
 
  friend class ::WinDeclSpecs;
63876
 
  friend class ::WinMemberExplSpec;
63877
 
  friend class ::WinTypeKeywords;
 
77760
  friend class ::ExtGnu;
63878
77761
  friend class ::PragmaOnceUnitState;
63879
77762
  friend class ::PragmaOnce;
63880
 
  friend class ::CCExprResolve;
63881
 
  friend class ::CExprResolve;
 
77763
  friend class ::CMatchSyntax;
63882
77764
 
63883
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77765
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63884
77766
 
63885
77767
  CTree *sons[3]; // virtual, access, name
63886
77768
 
63887
77769
public:
63888
77770
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
63889
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
77771
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
63890
77772
  }
 
77773
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63891
77774
  static const char *NodeId ();
 
77775
  /** Get the name of the node. Can be compared with NodeId(). */
63892
77776
  const char *NodeName () const { return NodeId (); }
 
77777
  /** Get the number of sons. */
63893
77778
  int Sons () const { return CTree::Sons (sons, 3); }
 
77779
  /** Get the n-th son.
 
77780
   *  \param n The index of the son.
 
77781
   *  \return The n-th son or NULL. */
63894
77782
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63895
77783
  int Access () const { return sons[1]->token ()->type (); }
63896
77784
  CTree *AccessSpec () const { return sons[1]; }
63897
77785
  CTree *Virtual () const { return sons[0]; }
63898
77786
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
77787
  /** Replace a son.
 
77788
   *  \param old_son The son to replace.
 
77789
   *  \param new_son The new son. */
63899
77790
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63900
77791
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63901
77792
  }
63902
77793
};
63903
77794
 
63904
77795
 
63905
 
#line 63906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77796
#line 77797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63906
77797
} // closed Puma
 
77798
class CCExprResolve;
 
77799
class CExprResolve;
63907
77800
class WinIfExists;
63908
77801
class WinImportHandler;
63909
77802
class WinMacros;
63910
 
class CMatchSyntax;
63911
 
class ExtGnu;
 
77803
class WinAsm;
 
77804
class WinDeclSpecs;
 
77805
class WinMemberExplSpec;
 
77806
class WinTypeKeywords;
 
77807
class WinFriend;
63912
77808
class ExtAC;
63913
77809
class ExtACBuilderCoupling;
63914
77810
class ExtACSyntaxCoupling;
63915
77811
class ExtACTree;
63916
77812
class ExtACKeywords;
63917
 
class WinAsm;
63918
 
class WinDeclSpecs;
63919
 
class WinMemberExplSpec;
63920
 
class WinTypeKeywords;
 
77813
class ExtGnu;
63921
77814
class PragmaOnceUnitState;
63922
77815
class PragmaOnce;
63923
 
class CCExprResolve;
63924
 
class CExprResolve;
 
77816
class CMatchSyntax;
63925
77817
namespace Puma {
63926
77818
 
63927
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77819
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63928
77820
class CT_AccessDecl : public CT_Decl {
63929
 
#line 63930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77821
#line 77822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77822
  friend class ::CCExprResolve;
 
77823
  friend class ::CExprResolve;
63930
77824
  friend class ::WinIfExists;
63931
77825
  friend class ::WinImportHandler;
63932
77826
  friend class ::WinMacros;
63933
 
  friend class ::CMatchSyntax;
63934
 
  friend class ::ExtGnu;
 
77827
  friend class ::WinAsm;
 
77828
  friend class ::WinDeclSpecs;
 
77829
  friend class ::WinMemberExplSpec;
 
77830
  friend class ::WinTypeKeywords;
 
77831
  friend class ::WinFriend;
63935
77832
  friend class ::ExtAC;
63936
77833
  friend class ::ExtACBuilderCoupling;
63937
77834
  friend class ::ExtACSyntaxCoupling;
63938
77835
  friend class ::ExtACTree;
63939
77836
  friend class ::ExtACKeywords;
63940
 
  friend class ::WinAsm;
63941
 
  friend class ::WinDeclSpecs;
63942
 
  friend class ::WinMemberExplSpec;
63943
 
  friend class ::WinTypeKeywords;
 
77837
  friend class ::ExtGnu;
63944
77838
  friend class ::PragmaOnceUnitState;
63945
77839
  friend class ::PragmaOnce;
63946
 
  friend class ::CCExprResolve;
63947
 
  friend class ::CExprResolve;
 
77840
  friend class ::CMatchSyntax;
63948
77841
 
63949
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77842
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63950
77843
 
63951
77844
  CTree *sons[2]; // name, semi_colon
63952
77845
 
63953
77846
public:
63954
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
77847
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
77848
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63955
77849
  static const char *NodeId ();
 
77850
  /** Get the name of the node. Can be compared with NodeId(). */
63956
77851
  const char *NodeName () const { return NodeId (); }
 
77852
  /** Get the number of sons. */
63957
77853
  int Sons () const { return 2; }
 
77854
  /** Get the n-th son.
 
77855
   *  \param n The index of the son.
 
77856
   *  \return The n-th son or NULL. */
63958
77857
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
63959
77858
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
77859
  /** Replace a son.
 
77860
   *  \param old_son The son to replace.
 
77861
   *  \param new_son The new son. */
63960
77862
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63961
77863
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63962
77864
  }
63963
77865
};
63964
77866
 
63965
77867
 
63966
 
#line 63967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77868
#line 77869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
63967
77869
} // closed Puma
 
77870
class CCExprResolve;
 
77871
class CExprResolve;
63968
77872
class WinIfExists;
63969
77873
class WinImportHandler;
63970
77874
class WinMacros;
63971
 
class CMatchSyntax;
63972
 
class ExtGnu;
 
77875
class WinAsm;
 
77876
class WinDeclSpecs;
 
77877
class WinMemberExplSpec;
 
77878
class WinTypeKeywords;
 
77879
class WinFriend;
63973
77880
class ExtAC;
63974
77881
class ExtACBuilderCoupling;
63975
77882
class ExtACSyntaxCoupling;
63976
77883
class ExtACTree;
63977
77884
class ExtACKeywords;
63978
 
class WinAsm;
63979
 
class WinDeclSpecs;
63980
 
class WinMemberExplSpec;
63981
 
class WinTypeKeywords;
 
77885
class ExtGnu;
63982
77886
class PragmaOnceUnitState;
63983
77887
class PragmaOnce;
63984
 
class CCExprResolve;
63985
 
class CExprResolve;
 
77888
class CMatchSyntax;
63986
77889
namespace Puma {
63987
77890
 
63988
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77891
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63989
77892
class CT_UsingDecl : public CT_AccessDecl {
63990
 
#line 63991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77893
#line 77894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77894
  friend class ::CCExprResolve;
 
77895
  friend class ::CExprResolve;
63991
77896
  friend class ::WinIfExists;
63992
77897
  friend class ::WinImportHandler;
63993
77898
  friend class ::WinMacros;
63994
 
  friend class ::CMatchSyntax;
63995
 
  friend class ::ExtGnu;
 
77899
  friend class ::WinAsm;
 
77900
  friend class ::WinDeclSpecs;
 
77901
  friend class ::WinMemberExplSpec;
 
77902
  friend class ::WinTypeKeywords;
 
77903
  friend class ::WinFriend;
63996
77904
  friend class ::ExtAC;
63997
77905
  friend class ::ExtACBuilderCoupling;
63998
77906
  friend class ::ExtACSyntaxCoupling;
63999
77907
  friend class ::ExtACTree;
64000
77908
  friend class ::ExtACKeywords;
64001
 
  friend class ::WinAsm;
64002
 
  friend class ::WinDeclSpecs;
64003
 
  friend class ::WinMemberExplSpec;
64004
 
  friend class ::WinTypeKeywords;
 
77909
  friend class ::ExtGnu;
64005
77910
  friend class ::PragmaOnceUnitState;
64006
77911
  friend class ::PragmaOnce;
64007
 
  friend class ::CCExprResolve;
64008
 
  friend class ::CExprResolve;
 
77912
  friend class ::CMatchSyntax;
64009
77913
 
64010
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77914
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64011
77915
 
64012
77916
  CTree *sons[2]; // using, typename
64013
77917
 
64014
77918
public:
64015
77919
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
64016
 
    sons[0] = u; sons[1] = 0; 
 
77920
    AddSon (sons[0], u); AddSon (sons[1], 0); 
64017
77921
  }
64018
77922
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
64019
 
    sons[0] = u; sons[1] = t; 
 
77923
    AddSon (sons[0], u); AddSon (sons[1], t); 
64020
77924
  }
 
77925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64021
77926
  static const char *NodeId ();
 
77927
  /** Get the name of the node. Can be compared with NodeId(). */
64022
77928
  const char *NodeName () const { return NodeId (); }
 
77929
  /** Get the number of sons. */
64023
77930
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
77931
  /** Get the n-th son.
 
77932
   *  \param n The index of the son.
 
77933
   *  \return The n-th son or NULL. */
64024
77934
  CTree *Son (int n) const {
64025
77935
    int num = CTree::Sons (sons, 2);
64026
77936
    CTree *result = CTree::Son (sons, 2, n);
64027
77937
    return result ? result : CT_AccessDecl::Son (n-num);
64028
77938
  }
64029
77939
  CTree *Typename () const { return sons[1]; }
 
77940
  /** Replace a son.
 
77941
   *  \param old_son The son to replace.
 
77942
   *  \param new_son The new son. */
64030
77943
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64031
77944
    CTree::ReplaceSon (sons, 2, old_son, new_son);
64032
77945
    CT_AccessDecl::ReplaceSon (old_son, new_son);
64040
77953
/*****************************************************************************/
64041
77954
 
64042
77955
 
64043
 
#line 64044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77956
#line 77957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64044
77957
} // closed Puma
 
77958
class CCExprResolve;
 
77959
class CExprResolve;
64045
77960
class WinIfExists;
64046
77961
class WinImportHandler;
64047
77962
class WinMacros;
64048
 
class CMatchSyntax;
64049
 
class ExtGnu;
 
77963
class WinAsm;
 
77964
class WinDeclSpecs;
 
77965
class WinMemberExplSpec;
 
77966
class WinTypeKeywords;
 
77967
class WinFriend;
64050
77968
class ExtAC;
64051
77969
class ExtACBuilderCoupling;
64052
77970
class ExtACSyntaxCoupling;
64053
77971
class ExtACTree;
64054
77972
class ExtACKeywords;
64055
 
class WinAsm;
64056
 
class WinDeclSpecs;
64057
 
class WinMemberExplSpec;
64058
 
class WinTypeKeywords;
 
77973
class ExtGnu;
64059
77974
class PragmaOnceUnitState;
64060
77975
class PragmaOnce;
64061
 
class CCExprResolve;
64062
 
class CExprResolve;
 
77976
class CMatchSyntax;
64063
77977
namespace Puma {
64064
77978
 
64065
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77979
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64066
77980
class CT_Any : public CTree {
64067
 
#line 64068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
77981
#line 77982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
77982
  friend class ::CCExprResolve;
 
77983
  friend class ::CExprResolve;
64068
77984
  friend class ::WinIfExists;
64069
77985
  friend class ::WinImportHandler;
64070
77986
  friend class ::WinMacros;
64071
 
  friend class ::CMatchSyntax;
64072
 
  friend class ::ExtGnu;
 
77987
  friend class ::WinAsm;
 
77988
  friend class ::WinDeclSpecs;
 
77989
  friend class ::WinMemberExplSpec;
 
77990
  friend class ::WinTypeKeywords;
 
77991
  friend class ::WinFriend;
64073
77992
  friend class ::ExtAC;
64074
77993
  friend class ::ExtACBuilderCoupling;
64075
77994
  friend class ::ExtACSyntaxCoupling;
64076
77995
  friend class ::ExtACTree;
64077
77996
  friend class ::ExtACKeywords;
64078
 
  friend class ::WinAsm;
64079
 
  friend class ::WinDeclSpecs;
64080
 
  friend class ::WinMemberExplSpec;
64081
 
  friend class ::WinTypeKeywords;
 
77997
  friend class ::ExtGnu;
64082
77998
  friend class ::PragmaOnceUnitState;
64083
77999
  friend class ::PragmaOnce;
64084
 
  friend class ::CCExprResolve;
64085
 
  friend class ::CExprResolve;
 
78000
  friend class ::CMatchSyntax;
64086
78001
 
64087
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78002
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64088
78003
 
64089
78004
  CTree *sons[2]; // keyword, extension
64090
78005
 
64091
78006
public:
64092
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
78007
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
78008
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64093
78009
  static const char *NodeId ();
 
78010
  /** Get the name of the node. Can be compared with NodeId(). */
64094
78011
  const char *NodeName () const { return NodeId (); }
 
78012
  /** Get the number of sons. */
64095
78013
  int Sons () const { return CTree::Sons (sons, 2); }
 
78014
  /** Get the n-th son.
 
78015
   *  \param n The index of the son.
 
78016
   *  \return The n-th son or NULL. */
64096
78017
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
78018
  /** Replace a son.
 
78019
   *  \param old_son The son to replace.
 
78020
   *  \param new_son The new son. */
64097
78021
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64098
78022
    CTree::ReplaceSon (sons, 2, old_son, new_son);
64099
78023
  }
64102
78026
};
64103
78027
 
64104
78028
 
64105
 
#line 64106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78029
#line 78030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64106
78030
} // closed Puma
 
78031
class CCExprResolve;
 
78032
class CExprResolve;
64107
78033
class WinIfExists;
64108
78034
class WinImportHandler;
64109
78035
class WinMacros;
64110
 
class CMatchSyntax;
64111
 
class ExtGnu;
 
78036
class WinAsm;
 
78037
class WinDeclSpecs;
 
78038
class WinMemberExplSpec;
 
78039
class WinTypeKeywords;
 
78040
class WinFriend;
64112
78041
class ExtAC;
64113
78042
class ExtACBuilderCoupling;
64114
78043
class ExtACSyntaxCoupling;
64115
78044
class ExtACTree;
64116
78045
class ExtACKeywords;
64117
 
class WinAsm;
64118
 
class WinDeclSpecs;
64119
 
class WinMemberExplSpec;
64120
 
class WinTypeKeywords;
 
78046
class ExtGnu;
64121
78047
class PragmaOnceUnitState;
64122
78048
class PragmaOnce;
64123
 
class CCExprResolve;
64124
 
class CExprResolve;
 
78049
class CMatchSyntax;
64125
78050
namespace Puma {
64126
78051
 
64127
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78052
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64128
78053
class CT_AnyList : public CT_Any {
64129
 
#line 64130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78054
#line 78055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78055
  friend class ::CCExprResolve;
 
78056
  friend class ::CExprResolve;
64130
78057
  friend class ::WinIfExists;
64131
78058
  friend class ::WinImportHandler;
64132
78059
  friend class ::WinMacros;
64133
 
  friend class ::CMatchSyntax;
64134
 
  friend class ::ExtGnu;
 
78060
  friend class ::WinAsm;
 
78061
  friend class ::WinDeclSpecs;
 
78062
  friend class ::WinMemberExplSpec;
 
78063
  friend class ::WinTypeKeywords;
 
78064
  friend class ::WinFriend;
64135
78065
  friend class ::ExtAC;
64136
78066
  friend class ::ExtACBuilderCoupling;
64137
78067
  friend class ::ExtACSyntaxCoupling;
64138
78068
  friend class ::ExtACTree;
64139
78069
  friend class ::ExtACKeywords;
64140
 
  friend class ::WinAsm;
64141
 
  friend class ::WinDeclSpecs;
64142
 
  friend class ::WinMemberExplSpec;
64143
 
  friend class ::WinTypeKeywords;
 
78070
  friend class ::ExtGnu;
64144
78071
  friend class ::PragmaOnceUnitState;
64145
78072
  friend class ::PragmaOnce;
64146
 
  friend class ::CCExprResolve;
64147
 
  friend class ::CExprResolve;
 
78073
  friend class ::CMatchSyntax;
64148
78074
 
64149
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78075
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64150
78076
 
64151
78077
public:
64152
78078
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
78079
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64153
78080
  static const char *NodeId ();
 
78081
  /** Get the name of the node. Can be compared with NodeId(). */
64154
78082
  const char *NodeName () const { return NodeId (); }
64155
78083
};
64156
78084
 
64157
78085
 
64158
 
#line 64159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78086
#line 78087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64159
78087
} // closed Puma
 
78088
class CCExprResolve;
 
78089
class CExprResolve;
64160
78090
class WinIfExists;
64161
78091
class WinImportHandler;
64162
78092
class WinMacros;
64163
 
class CMatchSyntax;
64164
 
class ExtGnu;
 
78093
class WinAsm;
 
78094
class WinDeclSpecs;
 
78095
class WinMemberExplSpec;
 
78096
class WinTypeKeywords;
 
78097
class WinFriend;
64165
78098
class ExtAC;
64166
78099
class ExtACBuilderCoupling;
64167
78100
class ExtACSyntaxCoupling;
64168
78101
class ExtACTree;
64169
78102
class ExtACKeywords;
64170
 
class WinAsm;
64171
 
class WinDeclSpecs;
64172
 
class WinMemberExplSpec;
64173
 
class WinTypeKeywords;
 
78103
class ExtGnu;
64174
78104
class PragmaOnceUnitState;
64175
78105
class PragmaOnce;
64176
 
class CCExprResolve;
64177
 
class CExprResolve;
 
78106
class CMatchSyntax;
64178
78107
namespace Puma {
64179
78108
 
64180
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78109
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64181
78110
class CT_AnyExtension : public CTree, public CSemValue {
64182
 
#line 64183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78111
#line 78112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78112
  friend class ::CCExprResolve;
 
78113
  friend class ::CExprResolve;
64183
78114
  friend class ::WinIfExists;
64184
78115
  friend class ::WinImportHandler;
64185
78116
  friend class ::WinMacros;
64186
 
  friend class ::CMatchSyntax;
64187
 
  friend class ::ExtGnu;
 
78117
  friend class ::WinAsm;
 
78118
  friend class ::WinDeclSpecs;
 
78119
  friend class ::WinMemberExplSpec;
 
78120
  friend class ::WinTypeKeywords;
 
78121
  friend class ::WinFriend;
64188
78122
  friend class ::ExtAC;
64189
78123
  friend class ::ExtACBuilderCoupling;
64190
78124
  friend class ::ExtACSyntaxCoupling;
64191
78125
  friend class ::ExtACTree;
64192
78126
  friend class ::ExtACKeywords;
64193
 
  friend class ::WinAsm;
64194
 
  friend class ::WinDeclSpecs;
64195
 
  friend class ::WinMemberExplSpec;
64196
 
  friend class ::WinTypeKeywords;
 
78127
  friend class ::ExtGnu;
64197
78128
  friend class ::PragmaOnceUnitState;
64198
78129
  friend class ::PragmaOnce;
64199
 
  friend class ::CCExprResolve;
64200
 
  friend class ::CExprResolve;
 
78130
  friend class ::CMatchSyntax;
64201
78131
 
64202
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78132
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64203
78133
 
64204
78134
  CTree *sons[5]; // open, string, comma, cond, close
64205
78135
 
64206
78136
public:
64207
78137
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
64208
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
78138
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
78139
    AddSon (sons[3], c); AddSon (sons[4], cr); 
64209
78140
  }
 
78141
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64210
78142
  static const char *NodeId ();
 
78143
  /** Get the name of the node. Can be compared with NodeId(). */
64211
78144
  const char *NodeName () const { return NodeId (); }
 
78145
  /** Get the number of sons. */
64212
78146
  int Sons () const { return CTree::Sons (sons, 5); }
 
78147
  /** Get the n-th son.
 
78148
   *  \param n The index of the son.
 
78149
   *  \return The n-th son or NULL. */
64213
78150
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
78151
  /** Replace a son.
 
78152
   *  \param old_son The son to replace.
 
78153
   *  \param new_son The new son. */
64214
78154
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64215
78155
    CTree::ReplaceSon (sons, 5, old_son, new_son);
64216
78156
  }
64224
78164
};
64225
78165
 
64226
78166
 
64227
 
#line 64228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78167
#line 78168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64228
78168
} // closed Puma
 
78169
class CCExprResolve;
 
78170
class CExprResolve;
64229
78171
class WinIfExists;
64230
78172
class WinImportHandler;
64231
78173
class WinMacros;
64232
 
class CMatchSyntax;
64233
 
class ExtGnu;
 
78174
class WinAsm;
 
78175
class WinDeclSpecs;
 
78176
class WinMemberExplSpec;
 
78177
class WinTypeKeywords;
 
78178
class WinFriend;
64234
78179
class ExtAC;
64235
78180
class ExtACBuilderCoupling;
64236
78181
class ExtACSyntaxCoupling;
64237
78182
class ExtACTree;
64238
78183
class ExtACKeywords;
64239
 
class WinAsm;
64240
 
class WinDeclSpecs;
64241
 
class WinMemberExplSpec;
64242
 
class WinTypeKeywords;
 
78184
class ExtGnu;
64243
78185
class PragmaOnceUnitState;
64244
78186
class PragmaOnce;
64245
 
class CCExprResolve;
64246
 
class CExprResolve;
 
78187
class CMatchSyntax;
64247
78188
namespace Puma {
64248
78189
 
64249
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78190
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64250
78191
class CT_AnyCondition : public CTree {
64251
 
#line 64252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78192
#line 78193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78193
  friend class ::CCExprResolve;
 
78194
  friend class ::CExprResolve;
64252
78195
  friend class ::WinIfExists;
64253
78196
  friend class ::WinImportHandler;
64254
78197
  friend class ::WinMacros;
64255
 
  friend class ::CMatchSyntax;
64256
 
  friend class ::ExtGnu;
 
78198
  friend class ::WinAsm;
 
78199
  friend class ::WinDeclSpecs;
 
78200
  friend class ::WinMemberExplSpec;
 
78201
  friend class ::WinTypeKeywords;
 
78202
  friend class ::WinFriend;
64257
78203
  friend class ::ExtAC;
64258
78204
  friend class ::ExtACBuilderCoupling;
64259
78205
  friend class ::ExtACSyntaxCoupling;
64260
78206
  friend class ::ExtACTree;
64261
78207
  friend class ::ExtACKeywords;
64262
 
  friend class ::WinAsm;
64263
 
  friend class ::WinDeclSpecs;
64264
 
  friend class ::WinMemberExplSpec;
64265
 
  friend class ::WinTypeKeywords;
 
78208
  friend class ::ExtGnu;
64266
78209
  friend class ::PragmaOnceUnitState;
64267
78210
  friend class ::PragmaOnce;
64268
 
  friend class ::CCExprResolve;
64269
 
  friend class ::CExprResolve;
 
78211
  friend class ::CMatchSyntax;
64270
78212
 
64271
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78213
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64272
78214
 
64273
78215
  CTree *sons[3]; // arg1, arg2, arg3
64274
78216
 
64275
78217
public:
64276
78218
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
64277
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
78219
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
64278
78220
  }
 
78221
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64279
78222
  static const char *NodeId ();
 
78223
  /** Get the name of the node. Can be compared with NodeId(). */
64280
78224
  const char *NodeName () const { return NodeId (); }
 
78225
  /** Get the number of sons. */
64281
78226
  int Sons () const { return CTree::Sons (sons, 3); }
 
78227
  /** Get the n-th son.
 
78228
   *  \param n The index of the son.
 
78229
   *  \return The n-th son or NULL. */
64282
78230
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
78231
  /** Replace a son.
 
78232
   *  \param old_son The son to replace.
 
78233
   *  \param new_son The new son. */
64283
78234
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64284
78235
    CTree::ReplaceSon (sons, 3, old_son, new_son);
64285
78236
  }
64290
78241
 
64291
78242
#endif /* __CTree_h__ */
64292
78243
 
64293
 
#line 64294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
64294
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
64295
 
 
64296
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64297
 
 
64298
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64299
 
namespace Puma {
64300
 
 
64301
 
 
64302
 
 
64303
 
#line 64304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
64304
 
} // closed Puma
64305
 
class WinIfExists;
64306
 
class WinImportHandler;
64307
 
class WinMacros;
64308
 
class CMatchSyntax;
64309
 
class ExtGnu;
64310
 
class ExtAC;
64311
 
class ExtACBuilderCoupling;
64312
 
class ExtACSyntaxCoupling;
64313
 
class ExtACTree;
64314
 
class ExtACKeywords;
64315
 
class WinAsm;
64316
 
class WinDeclSpecs;
64317
 
class WinMemberExplSpec;
64318
 
class WinTypeKeywords;
64319
 
class PragmaOnceUnitState;
64320
 
class PragmaOnce;
64321
 
class CCExprResolve;
64322
 
class CExprResolve;
64323
 
namespace Puma {
64324
 
 
64325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78244
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78245
namespace Puma {
 
78246
 
 
78247
 
 
78248
 
 
78249
#line 78250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78250
} // closed Puma
 
78251
class CCExprResolve;
 
78252
class CExprResolve;
 
78253
class WinIfExists;
 
78254
class WinImportHandler;
 
78255
class WinMacros;
 
78256
class WinAsm;
 
78257
class WinDeclSpecs;
 
78258
class WinMemberExplSpec;
 
78259
class WinTypeKeywords;
 
78260
class WinFriend;
 
78261
class ExtAC;
 
78262
class ExtACBuilderCoupling;
 
78263
class ExtACSyntaxCoupling;
 
78264
class ExtACTree;
 
78265
class ExtACKeywords;
 
78266
class ExtGnu;
 
78267
class PragmaOnceUnitState;
 
78268
class PragmaOnce;
 
78269
class CMatchSyntax;
 
78270
namespace Puma {
 
78271
 
 
78272
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78273
class CT_GnuAsmSpec : public CTree {
 
78274
#line 78275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78275
  friend class ::CCExprResolve;
 
78276
  friend class ::CExprResolve;
 
78277
  friend class ::WinIfExists;
 
78278
  friend class ::WinImportHandler;
 
78279
  friend class ::WinMacros;
 
78280
  friend class ::WinAsm;
 
78281
  friend class ::WinDeclSpecs;
 
78282
  friend class ::WinMemberExplSpec;
 
78283
  friend class ::WinTypeKeywords;
 
78284
  friend class ::WinFriend;
 
78285
  friend class ::ExtAC;
 
78286
  friend class ::ExtACBuilderCoupling;
 
78287
  friend class ::ExtACSyntaxCoupling;
 
78288
  friend class ::ExtACTree;
 
78289
  friend class ::ExtACKeywords;
 
78290
  friend class ::ExtGnu;
 
78291
  friend class ::PragmaOnceUnitState;
 
78292
  friend class ::PragmaOnce;
 
78293
  friend class ::CMatchSyntax;
 
78294
 
 
78295
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78296
 
 
78297
  CTree *_key_asm;    // CT_Token
 
78298
  CTree *_open;   // CT_Token
 
78299
  CTree *_expr;
 
78300
  CTree *_close;  // CT_Token
 
78301
 
 
78302
public:
 
78303
  CT_GnuAsmSpec (CTree *a, CTree *o, CTree *e, CTree *c) :
 
78304
    _key_asm (a), _open (o), _expr (e), _close (c) {}
 
78305
  static const char *NodeId ();
 
78306
  const char *NodeName () const { return NodeId (); } 
 
78307
  int Sons () const { return 4; }
 
78308
  CTree *Son (int n) const {
 
78309
    switch (n) {
 
78310
      case 0: return _key_asm;
 
78311
      case 1: return _open;
 
78312
      case 2: return _expr;
 
78313
      case 3: return _close;
 
78314
      default: return (CTree*)0;
 
78315
    }
 
78316
  }
 
78317
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
 
78318
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
78319
    if (old_son == _expr) _expr = new_son;
 
78320
    else if (old_son == _key_asm) _key_asm = new_son;
 
78321
    else if (old_son == _open) _open = new_son;
 
78322
    else if (old_son == _close) _close = new_son;
 
78323
  }
 
78324
};
 
78325
 
 
78326
 
 
78327
#line 78328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78328
} // closed Puma
 
78329
class CCExprResolve;
 
78330
class CExprResolve;
 
78331
class WinIfExists;
 
78332
class WinImportHandler;
 
78333
class WinMacros;
 
78334
class WinAsm;
 
78335
class WinDeclSpecs;
 
78336
class WinMemberExplSpec;
 
78337
class WinTypeKeywords;
 
78338
class WinFriend;
 
78339
class ExtAC;
 
78340
class ExtACBuilderCoupling;
 
78341
class ExtACSyntaxCoupling;
 
78342
class ExtACTree;
 
78343
class ExtACKeywords;
 
78344
class ExtGnu;
 
78345
class PragmaOnceUnitState;
 
78346
class PragmaOnce;
 
78347
class CMatchSyntax;
 
78348
namespace Puma {
 
78349
 
 
78350
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64326
78351
class CT_GnuAsmDef : public CT_AsmDef {
64327
 
#line 64328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78352
#line 78353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78353
  friend class ::CCExprResolve;
 
78354
  friend class ::CExprResolve;
64328
78355
  friend class ::WinIfExists;
64329
78356
  friend class ::WinImportHandler;
64330
78357
  friend class ::WinMacros;
64331
 
  friend class ::CMatchSyntax;
64332
 
  friend class ::ExtGnu;
 
78358
  friend class ::WinAsm;
 
78359
  friend class ::WinDeclSpecs;
 
78360
  friend class ::WinMemberExplSpec;
 
78361
  friend class ::WinTypeKeywords;
 
78362
  friend class ::WinFriend;
64333
78363
  friend class ::ExtAC;
64334
78364
  friend class ::ExtACBuilderCoupling;
64335
78365
  friend class ::ExtACSyntaxCoupling;
64336
78366
  friend class ::ExtACTree;
64337
78367
  friend class ::ExtACKeywords;
64338
 
  friend class ::WinAsm;
64339
 
  friend class ::WinDeclSpecs;
64340
 
  friend class ::WinMemberExplSpec;
64341
 
  friend class ::WinTypeKeywords;
 
78368
  friend class ::ExtGnu;
64342
78369
  friend class ::PragmaOnceUnitState;
64343
78370
  friend class ::PragmaOnce;
64344
 
  friend class ::CCExprResolve;
64345
 
  friend class ::CExprResolve;
 
78371
  friend class ::CMatchSyntax;
64346
78372
 
64347
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78373
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64348
78374
 
64349
78375
  CTree *_cvqual;
64350
78376
  CTree *_operands0;
64400
78426
};
64401
78427
 
64402
78428
 
64403
 
#line 64404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78429
#line 78430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64404
78430
} // closed Puma
 
78431
class CCExprResolve;
 
78432
class CExprResolve;
64405
78433
class WinIfExists;
64406
78434
class WinImportHandler;
64407
78435
class WinMacros;
64408
 
class CMatchSyntax;
64409
 
class ExtGnu;
 
78436
class WinAsm;
 
78437
class WinDeclSpecs;
 
78438
class WinMemberExplSpec;
 
78439
class WinTypeKeywords;
 
78440
class WinFriend;
64410
78441
class ExtAC;
64411
78442
class ExtACBuilderCoupling;
64412
78443
class ExtACSyntaxCoupling;
64413
78444
class ExtACTree;
64414
78445
class ExtACKeywords;
64415
 
class WinAsm;
64416
 
class WinDeclSpecs;
64417
 
class WinMemberExplSpec;
64418
 
class WinTypeKeywords;
 
78446
class ExtGnu;
64419
78447
class PragmaOnceUnitState;
64420
78448
class PragmaOnce;
64421
 
class CCExprResolve;
64422
 
class CExprResolve;
 
78449
class CMatchSyntax;
64423
78450
namespace Puma {
64424
78451
 
64425
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78452
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64426
78453
class CT_GnuAsmOperand : public CTree {
64427
 
#line 64428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78454
#line 78455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78455
  friend class ::CCExprResolve;
 
78456
  friend class ::CExprResolve;
64428
78457
  friend class ::WinIfExists;
64429
78458
  friend class ::WinImportHandler;
64430
78459
  friend class ::WinMacros;
64431
 
  friend class ::CMatchSyntax;
64432
 
  friend class ::ExtGnu;
 
78460
  friend class ::WinAsm;
 
78461
  friend class ::WinDeclSpecs;
 
78462
  friend class ::WinMemberExplSpec;
 
78463
  friend class ::WinTypeKeywords;
 
78464
  friend class ::WinFriend;
64433
78465
  friend class ::ExtAC;
64434
78466
  friend class ::ExtACBuilderCoupling;
64435
78467
  friend class ::ExtACSyntaxCoupling;
64436
78468
  friend class ::ExtACTree;
64437
78469
  friend class ::ExtACKeywords;
64438
 
  friend class ::WinAsm;
64439
 
  friend class ::WinDeclSpecs;
64440
 
  friend class ::WinMemberExplSpec;
64441
 
  friend class ::WinTypeKeywords;
 
78470
  friend class ::ExtGnu;
64442
78471
  friend class ::PragmaOnceUnitState;
64443
78472
  friend class ::PragmaOnce;
64444
 
  friend class ::CCExprResolve;
64445
 
  friend class ::CExprResolve;
 
78473
  friend class ::CMatchSyntax;
64446
78474
 
64447
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78475
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64448
78476
 
64449
78477
  CTree *_string;
64450
78478
  CTree *_open;   // CT_Token
64477
78505
};
64478
78506
 
64479
78507
 
64480
 
#line 64481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78508
#line 78509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64481
78509
} // closed Puma
 
78510
class CCExprResolve;
 
78511
class CExprResolve;
64482
78512
class WinIfExists;
64483
78513
class WinImportHandler;
64484
78514
class WinMacros;
64485
 
class CMatchSyntax;
64486
 
class ExtGnu;
 
78515
class WinAsm;
 
78516
class WinDeclSpecs;
 
78517
class WinMemberExplSpec;
 
78518
class WinTypeKeywords;
 
78519
class WinFriend;
64487
78520
class ExtAC;
64488
78521
class ExtACBuilderCoupling;
64489
78522
class ExtACSyntaxCoupling;
64490
78523
class ExtACTree;
64491
78524
class ExtACKeywords;
64492
 
class WinAsm;
64493
 
class WinDeclSpecs;
64494
 
class WinMemberExplSpec;
64495
 
class WinTypeKeywords;
 
78525
class ExtGnu;
64496
78526
class PragmaOnceUnitState;
64497
78527
class PragmaOnce;
64498
 
class CCExprResolve;
64499
 
class CExprResolve;
 
78528
class CMatchSyntax;
64500
78529
namespace Puma {
64501
78530
 
64502
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78531
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64503
78532
class CT_GnuAsmOperands : public CT_List {
64504
 
#line 64505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78533
#line 78534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78534
  friend class ::CCExprResolve;
 
78535
  friend class ::CExprResolve;
64505
78536
  friend class ::WinIfExists;
64506
78537
  friend class ::WinImportHandler;
64507
78538
  friend class ::WinMacros;
64508
 
  friend class ::CMatchSyntax;
64509
 
  friend class ::ExtGnu;
 
78539
  friend class ::WinAsm;
 
78540
  friend class ::WinDeclSpecs;
 
78541
  friend class ::WinMemberExplSpec;
 
78542
  friend class ::WinTypeKeywords;
 
78543
  friend class ::WinFriend;
64510
78544
  friend class ::ExtAC;
64511
78545
  friend class ::ExtACBuilderCoupling;
64512
78546
  friend class ::ExtACSyntaxCoupling;
64513
78547
  friend class ::ExtACTree;
64514
78548
  friend class ::ExtACKeywords;
64515
 
  friend class ::WinAsm;
64516
 
  friend class ::WinDeclSpecs;
64517
 
  friend class ::WinMemberExplSpec;
64518
 
  friend class ::WinTypeKeywords;
 
78549
  friend class ::ExtGnu;
64519
78550
  friend class ::PragmaOnceUnitState;
64520
78551
  friend class ::PragmaOnce;
64521
 
  friend class ::CCExprResolve;
64522
 
  friend class ::CExprResolve;
 
78552
  friend class ::CMatchSyntax;
64523
78553
 
64524
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78554
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64525
78555
 
64526
78556
public:
64527
78557
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
64530
78560
};
64531
78561
 
64532
78562
 
64533
 
#line 64534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78563
#line 78564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64534
78564
} // closed Puma
 
78565
class CCExprResolve;
 
78566
class CExprResolve;
64535
78567
class WinIfExists;
64536
78568
class WinImportHandler;
64537
78569
class WinMacros;
64538
 
class CMatchSyntax;
64539
 
class ExtGnu;
 
78570
class WinAsm;
 
78571
class WinDeclSpecs;
 
78572
class WinMemberExplSpec;
 
78573
class WinTypeKeywords;
 
78574
class WinFriend;
64540
78575
class ExtAC;
64541
78576
class ExtACBuilderCoupling;
64542
78577
class ExtACSyntaxCoupling;
64543
78578
class ExtACTree;
64544
78579
class ExtACKeywords;
64545
 
class WinAsm;
64546
 
class WinDeclSpecs;
64547
 
class WinMemberExplSpec;
64548
 
class WinTypeKeywords;
 
78580
class ExtGnu;
64549
78581
class PragmaOnceUnitState;
64550
78582
class PragmaOnce;
64551
 
class CCExprResolve;
64552
 
class CExprResolve;
 
78583
class CMatchSyntax;
64553
78584
namespace Puma {
64554
78585
 
64555
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78586
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64556
78587
class CT_GnuAsmClobbers : public CT_List {
64557
 
#line 64558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78588
#line 78589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78589
  friend class ::CCExprResolve;
 
78590
  friend class ::CExprResolve;
64558
78591
  friend class ::WinIfExists;
64559
78592
  friend class ::WinImportHandler;
64560
78593
  friend class ::WinMacros;
64561
 
  friend class ::CMatchSyntax;
64562
 
  friend class ::ExtGnu;
 
78594
  friend class ::WinAsm;
 
78595
  friend class ::WinDeclSpecs;
 
78596
  friend class ::WinMemberExplSpec;
 
78597
  friend class ::WinTypeKeywords;
 
78598
  friend class ::WinFriend;
64563
78599
  friend class ::ExtAC;
64564
78600
  friend class ::ExtACBuilderCoupling;
64565
78601
  friend class ::ExtACSyntaxCoupling;
64566
78602
  friend class ::ExtACTree;
64567
78603
  friend class ::ExtACKeywords;
64568
 
  friend class ::WinAsm;
64569
 
  friend class ::WinDeclSpecs;
64570
 
  friend class ::WinMemberExplSpec;
64571
 
  friend class ::WinTypeKeywords;
 
78604
  friend class ::ExtGnu;
64572
78605
  friend class ::PragmaOnceUnitState;
64573
78606
  friend class ::PragmaOnce;
64574
 
  friend class ::CCExprResolve;
64575
 
  friend class ::CExprResolve;
 
78607
  friend class ::CMatchSyntax;
64576
78608
 
64577
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78609
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64578
78610
 
64579
78611
public:
64580
78612
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
64589
78621
/*****************************************************************************/
64590
78622
 
64591
78623
 
64592
 
#line 64593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78624
#line 78625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64593
78625
} // closed Puma
 
78626
class CCExprResolve;
 
78627
class CExprResolve;
64594
78628
class WinIfExists;
64595
78629
class WinImportHandler;
64596
78630
class WinMacros;
64597
 
class CMatchSyntax;
64598
 
class ExtGnu;
 
78631
class WinAsm;
 
78632
class WinDeclSpecs;
 
78633
class WinMemberExplSpec;
 
78634
class WinTypeKeywords;
 
78635
class WinFriend;
64599
78636
class ExtAC;
64600
78637
class ExtACBuilderCoupling;
64601
78638
class ExtACSyntaxCoupling;
64602
78639
class ExtACTree;
64603
78640
class ExtACKeywords;
64604
 
class WinAsm;
64605
 
class WinDeclSpecs;
64606
 
class WinMemberExplSpec;
64607
 
class WinTypeKeywords;
 
78641
class ExtGnu;
64608
78642
class PragmaOnceUnitState;
64609
78643
class PragmaOnce;
64610
 
class CCExprResolve;
64611
 
class CExprResolve;
64612
 
namespace Puma {
64613
 
 
64614
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78644
class CMatchSyntax;
 
78645
namespace Puma {
 
78646
 
 
78647
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78648
 
 
78649
#line 78650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78650
} // closed Puma
 
78651
 
 
78652
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78653
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
78654
#include "CCExprResolveH.ah"
 
78655
#endif
 
78656
namespace Puma {
 
78657
 
 
78658
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78659
 
 
78660
#line 78661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78661
} // closed Puma
 
78662
 
 
78663
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78664
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
78665
#include "CExprResolveH.ah"
 
78666
#endif
 
78667
namespace Puma {
 
78668
 
 
78669
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64615
78670
class CT_GnuStatementExpr : public CT_Expression {
64616
 
#line 64617 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78671
#line 78672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78672
  friend class ::CCExprResolve;
 
78673
  friend class ::CExprResolve;
64617
78674
  friend class ::WinIfExists;
64618
78675
  friend class ::WinImportHandler;
64619
78676
  friend class ::WinMacros;
64620
 
  friend class ::CMatchSyntax;
64621
 
  friend class ::ExtGnu;
 
78677
  friend class ::WinAsm;
 
78678
  friend class ::WinDeclSpecs;
 
78679
  friend class ::WinMemberExplSpec;
 
78680
  friend class ::WinTypeKeywords;
 
78681
  friend class ::WinFriend;
64622
78682
  friend class ::ExtAC;
64623
78683
  friend class ::ExtACBuilderCoupling;
64624
78684
  friend class ::ExtACSyntaxCoupling;
64625
78685
  friend class ::ExtACTree;
64626
78686
  friend class ::ExtACKeywords;
64627
 
  friend class ::WinAsm;
64628
 
  friend class ::WinDeclSpecs;
64629
 
  friend class ::WinMemberExplSpec;
64630
 
  friend class ::WinTypeKeywords;
 
78687
  friend class ::ExtGnu;
64631
78688
  friend class ::PragmaOnceUnitState;
64632
78689
  friend class ::PragmaOnce;
64633
 
  friend class ::CCExprResolve;
64634
 
  friend class ::CExprResolve;
 
78690
  friend class ::CMatchSyntax;
64635
78691
 
64636
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78692
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64637
78693
 
64638
78694
  CTree *_open;
64639
78695
  CTree *_stmt;
64656
78712
   private:
64657
78713
  typedef CT_GnuStatementExpr CCExprResolveExpr;
64658
78714
 
64659
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
78715
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
64660
78716
 public :
64661
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
78717
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
64662
78718
  typedef CT_GnuStatementExpr CExprResolveExpr;
64663
78719
 
64664
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
78720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
64665
78721
 public :
64666
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
64667
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78722
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
78723
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64668
78724
};
64669
78725
 
64670
78726
/*****************************************************************************/
64675
78731
 
64676
78732
// typeof(expr) or typeof(named type) feature
64677
78733
 
64678
 
#line 64679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78734
#line 78735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64679
78735
} // closed Puma
 
78736
class CCExprResolve;
 
78737
class CExprResolve;
64680
78738
class WinIfExists;
64681
78739
class WinImportHandler;
64682
78740
class WinMacros;
64683
 
class CMatchSyntax;
64684
 
class ExtGnu;
 
78741
class WinAsm;
 
78742
class WinDeclSpecs;
 
78743
class WinMemberExplSpec;
 
78744
class WinTypeKeywords;
 
78745
class WinFriend;
64685
78746
class ExtAC;
64686
78747
class ExtACBuilderCoupling;
64687
78748
class ExtACSyntaxCoupling;
64688
78749
class ExtACTree;
64689
78750
class ExtACKeywords;
64690
 
class WinAsm;
64691
 
class WinDeclSpecs;
64692
 
class WinMemberExplSpec;
64693
 
class WinTypeKeywords;
 
78751
class ExtGnu;
64694
78752
class PragmaOnceUnitState;
64695
78753
class PragmaOnce;
64696
 
class CCExprResolve;
64697
 
class CExprResolve;
 
78754
class CMatchSyntax;
64698
78755
namespace Puma {
64699
78756
 
64700
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78757
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64701
78758
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
64702
 
#line 64703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78759
#line 78760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
78760
  friend class ::CCExprResolve;
 
78761
  friend class ::CExprResolve;
64703
78762
  friend class ::WinIfExists;
64704
78763
  friend class ::WinImportHandler;
64705
78764
  friend class ::WinMacros;
64706
 
  friend class ::CMatchSyntax;
64707
 
  friend class ::ExtGnu;
 
78765
  friend class ::WinAsm;
 
78766
  friend class ::WinDeclSpecs;
 
78767
  friend class ::WinMemberExplSpec;
 
78768
  friend class ::WinTypeKeywords;
 
78769
  friend class ::WinFriend;
64708
78770
  friend class ::ExtAC;
64709
78771
  friend class ::ExtACBuilderCoupling;
64710
78772
  friend class ::ExtACSyntaxCoupling;
64711
78773
  friend class ::ExtACTree;
64712
78774
  friend class ::ExtACKeywords;
64713
 
  friend class ::WinAsm;
64714
 
  friend class ::WinDeclSpecs;
64715
 
  friend class ::WinMemberExplSpec;
64716
 
  friend class ::WinTypeKeywords;
 
78775
  friend class ::ExtGnu;
64717
78776
  friend class ::PragmaOnceUnitState;
64718
78777
  friend class ::PragmaOnce;
64719
 
  friend class ::CCExprResolve;
64720
 
  friend class ::CExprResolve;
 
78778
  friend class ::CMatchSyntax;
64721
78779
 
64722
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
78780
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64723
78781
 
64724
78782
  CTree *sons[5]; // key, open, type, close, expr
64725
78783
 
64747
78805
 
64748
78806
#endif /* __gnu_c_tree_h__ */
64749
78807
 
64750
 
#line 64751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
64751
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
64752
 
 
64753
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
64754
 
 
64755
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
78808
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
64756
78809
// This file is part of PUMA.
64757
78810
// Copyright (C) 1999-2003  The PUMA developer team.
64758
78811
//                                                                
64775
78828
#define __CSemVisitor_h__
64776
78829
 
64777
78830
 
64778
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
 
78831
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Limits.h"
64779
78832
/* This file was generated by the PUMA library, version 1.1. */
64780
78833
 
64781
78834
// This file is part of PUMA.
64799
78852
#ifndef __Limits_h__
64800
78853
#define __Limits_h__
64801
78854
 
 
78855
#include <limits.h>
64802
78856
 
64803
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
64804
78857
namespace Puma {
64805
78858
 
64806
78859
 
64856
78909
 
64857
78910
#endif /* __Limits_h__ */
64858
78911
 
64859
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78912
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64860
78913
 
64861
 
#line 64862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
78914
#line 78915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
64862
78915
 
64863
78916
#ifndef __ac_fwd_ExtACTree__
64864
78917
#define __ac_fwd_ExtACTree__
64865
78918
class ExtACTree;
64866
78919
namespace AC {
64867
78920
  template <class JoinPoint>
64868
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
78921
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
64869
78922
  template <class JoinPoint>
64870
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
78923
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
64871
78924
}
64872
78925
#endif
64873
78926
 
64874
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
64875
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
78927
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
78928
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
64876
78929
#endif
64877
78930
 
64878
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64879
 
 
64880
 
#line 64881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
64881
 
 
64882
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64883
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
64884
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
64885
 
 
64886
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78931
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64887
78932
// This file is part of PUMA.
64888
78933
// Copyright (C) 1999-2003  The PUMA developer team.
64889
78934
//                                                                
64928
78973
class     CT_DefaultStmt;
64929
78974
class     CT_TryStmt;
64930
78975
class   CT_Expression;
 
78976
class     CT_Call;
 
78977
class       CT_CallExpr;
 
78978
class       CT_ImplicitCall;
64931
78979
class     CT_ThrowExpr;
64932
78980
class     CT_NewExpr;
64933
78981
class     CT_DeleteExpr;
64948
78996
class     CT_IfThenExpr;
64949
78997
class     CT_CmpdLiteral;
64950
78998
class     CT_IndexExpr;
64951
 
class     CT_CallExpr;
64952
78999
class     CT_CastExpr;
64953
79000
class     CT_StaticCast;
64954
79001
class       CT_ConstCast;
64995
79042
class     CT_NamespaceDef;
64996
79043
class     CT_NamespaceAliasDef;
64997
79044
class     CT_UsingDirective;
 
79045
class     CT_Condition;
64998
79046
class   CT_List;
64999
79047
class     CT_CmpdStmt;
65000
79048
class     CT_DeclSpecSeq;
65025
79073
class     CT_TemplateArgList;
65026
79074
class   CT_Token;
65027
79075
class   CT_Error;
65028
 
class   CT_Condition;
65029
79076
class   CT_BaseSpec;
65030
79077
class   CT_AccessSpec;
65031
79078
class   CT_ArrayDelimiter;
65065
79112
/*                                                                           */
65066
79113
/*****************************************************************************/
65067
79114
 
65068
 
 
65069
 
#line 65070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79115
/** \file
 
79116
 *  C/C++ syntax tree classes.
 
79117
 *  \see Puma::CTree */
 
79118
 
 
79119
/** \class CTree CTree.h Puma/CTree.h
 
79120
 *  Base class for all C/C++ syntax tree classes. */
 
79121
 
 
79122
#line 79123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65070
79123
} // closed Puma
 
79124
class CCExprResolve;
 
79125
class CExprResolve;
65071
79126
class WinIfExists;
65072
79127
class WinImportHandler;
65073
79128
class WinMacros;
65074
 
class CMatchSyntax;
65075
 
class ExtGnu;
 
79129
class WinAsm;
 
79130
class WinDeclSpecs;
 
79131
class WinMemberExplSpec;
 
79132
class WinTypeKeywords;
 
79133
class WinFriend;
65076
79134
class ExtAC;
65077
79135
class ExtACBuilderCoupling;
65078
79136
class ExtACSyntaxCoupling;
65079
79137
class ExtACTree;
65080
79138
class ExtACKeywords;
65081
 
class WinAsm;
65082
 
class WinDeclSpecs;
65083
 
class WinMemberExplSpec;
65084
 
class WinTypeKeywords;
 
79139
class ExtGnu;
65085
79140
class PragmaOnceUnitState;
65086
79141
class PragmaOnce;
65087
 
class CCExprResolve;
65088
 
class CExprResolve;
65089
 
namespace Puma {
65090
 
 
65091
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79142
class CMatchSyntax;
 
79143
namespace Puma {
 
79144
 
 
79145
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79146
 
 
79147
#line 79148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79148
} // closed Puma
 
79149
 
 
79150
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79151
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
79152
#include "CCExprResolveH.ah"
 
79153
#endif
 
79154
namespace Puma {
 
79155
 
 
79156
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79157
 
 
79158
#line 79159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79159
} // closed Puma
 
79160
 
 
79161
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79162
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
79163
#include "CExprResolveH.ah"
 
79164
#endif
 
79165
namespace Puma {
 
79166
 
 
79167
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65092
79168
class CTree {
65093
 
#line 65094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79169
#line 79170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79170
  friend class ::CCExprResolve;
 
79171
  friend class ::CExprResolve;
65094
79172
  friend class ::WinIfExists;
65095
79173
  friend class ::WinImportHandler;
65096
79174
  friend class ::WinMacros;
65097
 
  friend class ::CMatchSyntax;
65098
 
  friend class ::ExtGnu;
 
79175
  friend class ::WinAsm;
 
79176
  friend class ::WinDeclSpecs;
 
79177
  friend class ::WinMemberExplSpec;
 
79178
  friend class ::WinTypeKeywords;
 
79179
  friend class ::WinFriend;
65099
79180
  friend class ::ExtAC;
65100
79181
  friend class ::ExtACBuilderCoupling;
65101
79182
  friend class ::ExtACSyntaxCoupling;
65102
79183
  friend class ::ExtACTree;
65103
79184
  friend class ::ExtACKeywords;
65104
 
  friend class ::WinAsm;
65105
 
  friend class ::WinDeclSpecs;
65106
 
  friend class ::WinMemberExplSpec;
65107
 
  friend class ::WinTypeKeywords;
 
79185
  friend class ::ExtGnu;
65108
79186
  friend class ::PragmaOnceUnitState;
65109
79187
  friend class ::PragmaOnce;
65110
 
  friend class ::CCExprResolve;
65111
 
  friend class ::CExprResolve;
65112
 
 
65113
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79188
  friend class ::CMatchSyntax;
 
79189
 
 
79190
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79191
 
 
79192
  CTree * _parent;
65114
79193
 
65115
79194
public:
65116
79195
  /*DEBUG*/static int alloc;
65117
79196
  /*DEBUG*/static int release;
65118
79197
 
65119
79198
protected:
65120
 
  CTree *Son (CTree * const *, int, int) const;
65121
 
  int Sons (CTree * const *, int) const;
65122
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
79199
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
79200
   *  \param sons The sons array.
 
79201
   *  \param len Length of the sons array.
 
79202
   *  \param n Index of the son.
 
79203
   *  \return The n-th son or NULL. */
 
79204
  CTree *Son (CTree * const *sons, int len, int n) const;
 
79205
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
79206
   *  \param sons The sons array.
 
79207
   *  \param len Length of the sons array. */
 
79208
  int Sons (CTree * const *sons, int len) const;
 
79209
  /** Replace a son.
 
79210
   *  \param sons The sons array.
 
79211
   *  \param len Length of the sons array.
 
79212
   *  \param old_son The son to replace.
 
79213
   *  \param new_son The new son. */
 
79214
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
79215
  /** Replace a son if it equals the given son.
 
79216
   *  \param son The actual son.
 
79217
   *  \param old_son The son to replace, must match the actual son.
 
79218
   *  \param new_son The new son, overwrites the actual son. */
 
79219
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
79220
  /** Add a new son.
 
79221
   *  \param son The actual son.
 
79222
   *  \param new_son The new son, overwrites the actual son. */
 
79223
  void AddSon (CTree *&son, CTree *new_son);
 
79224
  /** Set the parent tree node.
 
79225
   *  \param parent The new parent tree node. */
 
79226
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
79227
  /** Set the parent tree node of the given tree node.
 
79228
   *  \param node The tree node.
 
79229
   *  \param parent The new parent. */
 
79230
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
65123
79231
  
65124
79232
protected:
65125
 
  CTree () { /*DEBUG*/alloc++; }
 
79233
  /** Default constructor. */
 
79234
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
65126
79235
 
65127
79236
public:
 
79237
  /** Destructor. */
65128
79238
  virtual ~CTree () { /*DEBUG*/release++; }
 
79239
  /** Get the number of sons. */
65129
79240
  virtual int Sons () const = 0;
 
79241
  /** Get the n-th son.
 
79242
   *  \param n The index of the son.
 
79243
   *  \return The n-th son or NULL. */
65130
79244
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
79245
  /** Get the node name (node identifier). */
65131
79246
  virtual const char *NodeName () const = 0;
 
79247
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
79248
   *  \return The token or NULL. */
65132
79249
  virtual Token *token () const;
 
79250
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
79251
   *  \return The token or NULL. */
65133
79252
  virtual Token *end_token () const;
 
79253
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
79254
   *  \return The token node or NULL. */
65134
79255
  virtual CT_Token *token_node () const;
 
79256
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
79257
   *  \return The token node or NULL. */
65135
79258
  virtual CT_Token *end_token_node () const;
65136
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
79259
  /** Replace a son.
 
79260
   *  \param old_son The son to replace.
 
79261
   *  \param new_son The son with which to replace. */
 
79262
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
79263
  /** Get the parent node.
 
79264
   *  \return The parent node or NULL. */
 
79265
  virtual CTree *Parent () const { return (CTree*)_parent; }
65137
79266
 
65138
79267
public: // semantic information
 
79268
  /** Get the semantic type of the node.
 
79269
   *  \return The type object or NULL. */
65139
79270
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
79271
  /** Get the calculated value of the expression.
 
79272
   *  \return The value object or NULL. */
65140
79273
  virtual CExprValue *Value () const { return (CExprValue*)0; }
65141
79274
  
 
79275
  /** Get the semantic scope of the node.
 
79276
   *  \return The scope object or NULL. */
 
79277
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
79278
  /** Get the semantic value of the node.
 
79279
   *  \return The value object or NULL. */
65142
79280
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
79281
  /** Get the semantic object of the node.
 
79282
   *  \return The semantic object or NULL. */
65143
79283
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
65144
79284
  
65145
79285
public: // node classification function
 
79286
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
79287
   *  \return The CT_SimpleName node or NULL. */
65146
79288
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
79289
  /** Get a pointer to CT_String if the current node represents a string.
 
79290
   *  \return The CT_String node or NULL. */
 
79291
  virtual CT_String *IsString () { return 0; }
 
79292
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
79293
   *  \return The CT_Declarator pointer or NULL. */
65147
79294
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
79295
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
79296
   *  \return The CT_Statement pointer or NULL. */
 
79297
  virtual CT_Statement *IsStatement () { return 0; }
 
79298
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
79299
   *  \return The CT_Expression pointer or NULL. */
 
79300
  virtual CT_Expression *IsExpression () { return 0; }
 
79301
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
79302
   *  \return The CT_Decl pointer or NULL. */
 
79303
  virtual CT_Decl *IsDeclaration () { return 0; }
 
79304
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
79305
   *  \return The CT_Call pointer or NULL. */
 
79306
  virtual CT_Call *IsCall () { return 0; }
65148
79307
   private:
65149
79308
  typedef CTree CCExprResolveCTree;
65150
79309
 
65151
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
79310
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65152
79311
 public :
65153
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
79312
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65154
79313
  typedef CTree CExprResolveCTree;
65155
79314
 
65156
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
79315
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65157
79316
 public :
65158
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65159
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79317
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
79318
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65160
79319
};
65161
79320
 
 
79321
/** \class CT_Error CTree.h Puma/CTree.h
 
79322
 *  Error tree node that is inserted into the tree for syntactic constructs
 
79323
 *  that could not be parsed. */
65162
79324
 
65163
 
#line 65164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79325
#line 79326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65164
79326
} // closed Puma
 
79327
class CCExprResolve;
 
79328
class CExprResolve;
65165
79329
class WinIfExists;
65166
79330
class WinImportHandler;
65167
79331
class WinMacros;
65168
 
class CMatchSyntax;
65169
 
class ExtGnu;
 
79332
class WinAsm;
 
79333
class WinDeclSpecs;
 
79334
class WinMemberExplSpec;
 
79335
class WinTypeKeywords;
 
79336
class WinFriend;
65170
79337
class ExtAC;
65171
79338
class ExtACBuilderCoupling;
65172
79339
class ExtACSyntaxCoupling;
65173
79340
class ExtACTree;
65174
79341
class ExtACKeywords;
65175
 
class WinAsm;
65176
 
class WinDeclSpecs;
65177
 
class WinMemberExplSpec;
65178
 
class WinTypeKeywords;
 
79342
class ExtGnu;
65179
79343
class PragmaOnceUnitState;
65180
79344
class PragmaOnce;
65181
 
class CCExprResolve;
65182
 
class CExprResolve;
 
79345
class CMatchSyntax;
65183
79346
namespace Puma {
65184
79347
 
65185
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79348
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65186
79349
class CT_Error : public CTree {
65187
 
#line 65188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79350
#line 79351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79351
  friend class ::CCExprResolve;
 
79352
  friend class ::CExprResolve;
65188
79353
  friend class ::WinIfExists;
65189
79354
  friend class ::WinImportHandler;
65190
79355
  friend class ::WinMacros;
65191
 
  friend class ::CMatchSyntax;
65192
 
  friend class ::ExtGnu;
 
79356
  friend class ::WinAsm;
 
79357
  friend class ::WinDeclSpecs;
 
79358
  friend class ::WinMemberExplSpec;
 
79359
  friend class ::WinTypeKeywords;
 
79360
  friend class ::WinFriend;
65193
79361
  friend class ::ExtAC;
65194
79362
  friend class ::ExtACBuilderCoupling;
65195
79363
  friend class ::ExtACSyntaxCoupling;
65196
79364
  friend class ::ExtACTree;
65197
79365
  friend class ::ExtACKeywords;
65198
 
  friend class ::WinAsm;
65199
 
  friend class ::WinDeclSpecs;
65200
 
  friend class ::WinMemberExplSpec;
65201
 
  friend class ::WinTypeKeywords;
 
79366
  friend class ::ExtGnu;
65202
79367
  friend class ::PragmaOnceUnitState;
65203
79368
  friend class ::PragmaOnce;
65204
 
  friend class ::CCExprResolve;
65205
 
  friend class ::CExprResolve;
 
79369
  friend class ::CMatchSyntax;
65206
79370
 
65207
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79371
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65208
79372
 
65209
79373
public:
 
79374
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65210
79375
  static const char *NodeId ();
 
79376
  /** Get the name of the node. Can be compared with NodeId(). */
65211
79377
  const char *NodeName () const { return NodeId (); }
 
79378
  /** Get the number of sons. */
65212
79379
  int Sons () const { return 0; }
65213
79380
};
65214
79381
 
 
79382
/** \class CT_Token CTree.h Puma/CTree.h
 
79383
 *  Tree node representing a single token in the source code. */
65215
79384
 
65216
 
#line 65217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79385
#line 79386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65217
79386
} // closed Puma
 
79387
class CCExprResolve;
 
79388
class CExprResolve;
65218
79389
class WinIfExists;
65219
79390
class WinImportHandler;
65220
79391
class WinMacros;
65221
 
class CMatchSyntax;
65222
 
class ExtGnu;
 
79392
class WinAsm;
 
79393
class WinDeclSpecs;
 
79394
class WinMemberExplSpec;
 
79395
class WinTypeKeywords;
 
79396
class WinFriend;
65223
79397
class ExtAC;
65224
79398
class ExtACBuilderCoupling;
65225
79399
class ExtACSyntaxCoupling;
65226
79400
class ExtACTree;
65227
79401
class ExtACKeywords;
65228
 
class WinAsm;
65229
 
class WinDeclSpecs;
65230
 
class WinMemberExplSpec;
65231
 
class WinTypeKeywords;
 
79402
class ExtGnu;
65232
79403
class PragmaOnceUnitState;
65233
79404
class PragmaOnce;
65234
 
class CCExprResolve;
65235
 
class CExprResolve;
 
79405
class CMatchSyntax;
65236
79406
namespace Puma {
65237
79407
 
65238
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79408
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65239
79409
class CT_Token : public CTree {
65240
 
#line 65241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79410
#line 79411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79411
  friend class ::CCExprResolve;
 
79412
  friend class ::CExprResolve;
65241
79413
  friend class ::WinIfExists;
65242
79414
  friend class ::WinImportHandler;
65243
79415
  friend class ::WinMacros;
65244
 
  friend class ::CMatchSyntax;
65245
 
  friend class ::ExtGnu;
 
79416
  friend class ::WinAsm;
 
79417
  friend class ::WinDeclSpecs;
 
79418
  friend class ::WinMemberExplSpec;
 
79419
  friend class ::WinTypeKeywords;
 
79420
  friend class ::WinFriend;
65246
79421
  friend class ::ExtAC;
65247
79422
  friend class ::ExtACBuilderCoupling;
65248
79423
  friend class ::ExtACSyntaxCoupling;
65249
79424
  friend class ::ExtACTree;
65250
79425
  friend class ::ExtACKeywords;
65251
 
  friend class ::WinAsm;
65252
 
  friend class ::WinDeclSpecs;
65253
 
  friend class ::WinMemberExplSpec;
65254
 
  friend class ::WinTypeKeywords;
 
79426
  friend class ::ExtGnu;
65255
79427
  friend class ::PragmaOnceUnitState;
65256
79428
  friend class ::PragmaOnce;
65257
 
  friend class ::CCExprResolve;
65258
 
  friend class ::CExprResolve;
 
79429
  friend class ::CMatchSyntax;
65259
79430
 
65260
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79431
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65261
79432
 
65262
79433
  Token *_token;
65263
79434
  unsigned long int _number;
65264
79435
  
65265
79436
public:
65266
 
  CT_Token (Token *t, unsigned long int n = 0) : 
65267
 
    _token (t), _number (n) {}
 
79437
  /** Constructor. 
 
79438
   *  \param token The represented token.
 
79439
   *  \param number The token number (a consecutive number). */
 
79440
  CT_Token (Token *token, unsigned long int number = 0) : 
 
79441
    _token (token), _number (number) {}
 
79442
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65268
79443
  static const char *NodeId ();
 
79444
  /** Get the name of the node. Can be compared with NodeId(). */
65269
79445
  const char *NodeName () const { return NodeId (); }
 
79446
  /** Get the number of sons. */
65270
79447
  int Sons () const { return 0; }
 
79448
  /** Get the represented token. */
65271
79449
  Token *token () const { return _token; }
 
79450
  /** Get the represented token. */
65272
79451
  Token *end_token () const { return _token; }
 
79452
  /** Get this. */
65273
79453
  CT_Token *token_node () const { return (CT_Token*)this; }
 
79454
  /** Get this. */
65274
79455
  CT_Token *end_token_node () const { return (CT_Token*)this; }
65275
 
  void Number (unsigned long int n) { _number = n; }
 
79456
  /** Set the token number. 
 
79457
   *  \param number The token number. */ 
 
79458
  void Number (unsigned long int number) { _number = number; }
 
79459
  /** Get the token number. Can be used to indentify this token. */
65276
79460
  unsigned long int Number () const { return _number; }
65277
 
  // special new / delete with reusing memory
 
79461
  
 
79462
public:
 
79463
  /** Own new operator reusing memory. */
65278
79464
  void *operator new (size_t);
65279
 
  void  operator delete (void *);
 
79465
  /** Own delete operator. */
 
79466
  void operator delete (void *);
65280
79467
};
65281
79468
 
65282
79469
/*****************************************************************************/
65285
79472
/*                                                                           */
65286
79473
/*****************************************************************************/
65287
79474
 
 
79475
/** \class CT_List CTree.h Puma/CTree.h
 
79476
 *  Base class for tree nodes representing lists. */
65288
79477
 
65289
 
#line 65290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79478
#line 79479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65290
79479
} // closed Puma
 
79480
class CCExprResolve;
 
79481
class CExprResolve;
65291
79482
class WinIfExists;
65292
79483
class WinImportHandler;
65293
79484
class WinMacros;
65294
 
class CMatchSyntax;
65295
 
class ExtGnu;
 
79485
class WinAsm;
 
79486
class WinDeclSpecs;
 
79487
class WinMemberExplSpec;
 
79488
class WinTypeKeywords;
 
79489
class WinFriend;
65296
79490
class ExtAC;
65297
79491
class ExtACBuilderCoupling;
65298
79492
class ExtACSyntaxCoupling;
65299
79493
class ExtACTree;
65300
79494
class ExtACKeywords;
65301
 
class WinAsm;
65302
 
class WinDeclSpecs;
65303
 
class WinMemberExplSpec;
65304
 
class WinTypeKeywords;
 
79495
class ExtGnu;
65305
79496
class PragmaOnceUnitState;
65306
79497
class PragmaOnce;
65307
 
class CCExprResolve;
65308
 
class CExprResolve;
 
79498
class CMatchSyntax;
65309
79499
namespace Puma {
65310
79500
 
65311
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79501
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65312
79502
class CT_List : public CTree {
65313
 
#line 65314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79503
#line 79504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79504
  friend class ::CCExprResolve;
 
79505
  friend class ::CExprResolve;
65314
79506
  friend class ::WinIfExists;
65315
79507
  friend class ::WinImportHandler;
65316
79508
  friend class ::WinMacros;
65317
 
  friend class ::CMatchSyntax;
65318
 
  friend class ::ExtGnu;
 
79509
  friend class ::WinAsm;
 
79510
  friend class ::WinDeclSpecs;
 
79511
  friend class ::WinMemberExplSpec;
 
79512
  friend class ::WinTypeKeywords;
 
79513
  friend class ::WinFriend;
65319
79514
  friend class ::ExtAC;
65320
79515
  friend class ::ExtACBuilderCoupling;
65321
79516
  friend class ::ExtACSyntaxCoupling;
65322
79517
  friend class ::ExtACTree;
65323
79518
  friend class ::ExtACKeywords;
65324
 
  friend class ::WinAsm;
65325
 
  friend class ::WinDeclSpecs;
65326
 
  friend class ::WinMemberExplSpec;
65327
 
  friend class ::WinTypeKeywords;
 
79519
  friend class ::ExtGnu;
65328
79520
  friend class ::PragmaOnceUnitState;
65329
79521
  friend class ::PragmaOnce;
65330
 
  friend class ::CCExprResolve;
65331
 
  friend class ::CExprResolve;
 
79522
  friend class ::CMatchSyntax;
65332
79523
 
65333
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79524
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65334
79525
 
65335
79526
  Array<CTree*> _sons;
65336
79527
  int _properties;
65337
79528
 
65338
79529
protected:
 
79530
  /** Constructor.
 
79531
   *  \param size The initial list size.
 
79532
   *  \param incr The initial increment count. 
 
79533
   *  \param props The list properties (bit array). */
65339
79534
  CT_List(int size = 5, int incr = 5, int props = 0) : 
65340
79535
    _sons (size, incr), _properties (props) {}
65341
79536
 
65342
79537
public:
 
79538
  /** List properties. */
65343
79539
  enum {
65344
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
65345
 
    CLOSE = 2,
65346
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
65347
 
    SEPARATORS = 4,   // the list has separators like ','
65348
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
65349
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
65350
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
65351
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
79540
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
79541
    CLOSE = 2,        /** List has an end token */
 
79542
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
79543
    SEPARATORS = 4,   /** List has separators, like ',' */
 
79544
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
79545
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
79546
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
79547
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
65352
79548
  };
65353
79549
 
 
79550
  /** Get the number of list entries. */
65354
79551
  int Entries () const;
65355
 
  CTree *Entry (int no) const;
 
79552
  /** Get the n-th list entry.
 
79553
   *  \param n The index of the entry. 
 
79554
   *  \return The list entry or NULL. */
 
79555
  CTree *Entry (int n) const;
 
79556
  /** Get the number of sons. */
65356
79557
  int Sons () const { return _sons.length (); }
 
79558
  /** Get the n-th son.
 
79559
   *  \param n The index of the son. 
 
79560
   *  \return The n-th son or NULL. */
65357
79561
  CTree *Son (int n) const { return _sons.lookup (n); }
 
79562
  /** Get the list properties. */
65358
79563
  int GetProperties () const { return _properties; }
 
79564
  /** Add a list property.
 
79565
   *  \param p The property to add. */
65359
79566
  void AddProperties (int p) { _properties |= p; }
65360
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
65361
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
65362
 
  void InsertSon (CTree *, CTree *);  // before given son
65363
 
  void ReplaceSon (CTree *, CTree *);
65364
 
  void RemoveSon (CTree *);
 
79567
  /** Add a son.
 
79568
   *  \param s The son to add. */
 
79569
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
79570
  /** Prepend a son.
 
79571
   *  \param s The son to prepend. */
 
79572
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
79573
  /** Insert a son before another son.
 
79574
   *  \param before The son to insert the new son before.
 
79575
   *  \param son The son to insert. */
 
79576
  void InsertSon (CTree *before, CTree *son); 
 
79577
  /** Replace a son.
 
79578
   *  \param old_son The son to replace.
 
79579
   *  \param new_son The new son. */
 
79580
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
79581
  /** Remove a son.
 
79582
   *  \param son The son to remove. */
 
79583
  void RemoveSon (CTree *son);
 
79584
  /** Insert a son at the given index. 
 
79585
   *  \param idx The index at which to insert.
 
79586
   *  \param s The son to insert. */
65365
79587
  void InsertSon (int idx, CTree *s)
65366
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
79588
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
79589
  /** Replace the son at the given index.
 
79590
   *  \param idx The index of the son to replace.
 
79591
   *  \param s The new son. */
65367
79592
  void ReplaceSon (int idx, CTree *s) 
65368
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
79593
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
79594
  /** Remove the son at the given index. 
 
79595
   *  \param idx The index of the son to remove. */
65369
79596
  void RemoveSon (int idx) 
65370
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
79597
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
65371
79598
};
65372
79599
 
 
79600
/** \class CT_ExprList CTree.h Puma/CTree.h
 
79601
 *  Tree node representing an expression list. */
65373
79602
 
65374
 
#line 65375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79603
#line 79604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65375
79604
} // closed Puma
 
79605
class CCExprResolve;
 
79606
class CExprResolve;
65376
79607
class WinIfExists;
65377
79608
class WinImportHandler;
65378
79609
class WinMacros;
65379
 
class CMatchSyntax;
65380
 
class ExtGnu;
 
79610
class WinAsm;
 
79611
class WinDeclSpecs;
 
79612
class WinMemberExplSpec;
 
79613
class WinTypeKeywords;
 
79614
class WinFriend;
65381
79615
class ExtAC;
65382
79616
class ExtACBuilderCoupling;
65383
79617
class ExtACSyntaxCoupling;
65384
79618
class ExtACTree;
65385
79619
class ExtACKeywords;
65386
 
class WinAsm;
65387
 
class WinDeclSpecs;
65388
 
class WinMemberExplSpec;
65389
 
class WinTypeKeywords;
 
79620
class ExtGnu;
65390
79621
class PragmaOnceUnitState;
65391
79622
class PragmaOnce;
65392
 
class CCExprResolve;
65393
 
class CExprResolve;
 
79623
class CMatchSyntax;
65394
79624
namespace Puma {
65395
79625
 
65396
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79626
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65397
79627
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
65398
 
#line 65399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79628
#line 79629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79629
  friend class ::CCExprResolve;
 
79630
  friend class ::CExprResolve;
65399
79631
  friend class ::WinIfExists;
65400
79632
  friend class ::WinImportHandler;
65401
79633
  friend class ::WinMacros;
65402
 
  friend class ::CMatchSyntax;
65403
 
  friend class ::ExtGnu;
 
79634
  friend class ::WinAsm;
 
79635
  friend class ::WinDeclSpecs;
 
79636
  friend class ::WinMemberExplSpec;
 
79637
  friend class ::WinTypeKeywords;
 
79638
  friend class ::WinFriend;
65404
79639
  friend class ::ExtAC;
65405
79640
  friend class ::ExtACBuilderCoupling;
65406
79641
  friend class ::ExtACSyntaxCoupling;
65407
79642
  friend class ::ExtACTree;
65408
79643
  friend class ::ExtACKeywords;
65409
 
  friend class ::WinAsm;
65410
 
  friend class ::WinDeclSpecs;
65411
 
  friend class ::WinMemberExplSpec;
65412
 
  friend class ::WinTypeKeywords;
 
79644
  friend class ::ExtGnu;
65413
79645
  friend class ::PragmaOnceUnitState;
65414
79646
  friend class ::PragmaOnce;
65415
 
  friend class ::CCExprResolve;
65416
 
  friend class ::CExprResolve;
 
79647
  friend class ::CMatchSyntax;
65417
79648
 
65418
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79649
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65419
79650
 
65420
79651
public:
 
79652
  /** Constructor. */
65421
79653
  CT_ExprList () { AddProperties (SEPARATORS); }
 
79654
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65422
79655
  static const char *NodeId ();
 
79656
  /** Get the name of the node. Can be compared with NodeId(). */
65423
79657
  const char *NodeName () const { return NodeId (); }
65424
79658
 
 
79659
  /** Get the type of the last expression in the expression list.
 
79660
   *  \return The type or NULL. */
65425
79661
  CTypeInfo *Type () const { return type; }
 
79662
  /** Get the value of the last expression in the expression list.
 
79663
   *  \return The value of NULL. */
65426
79664
  CExprValue *Value () const { return value; }
 
79665
  /** Get the semantic value of the node. */
65427
79666
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
79667
  /** Get the semantic object of the node. */
65428
79668
  CSemObject *SemObject () const { return (CSemObject*)this; }
65429
79669
};
65430
79670
 
 
79671
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
79672
 *  Tree node representing a list of declarators. */
65431
79673
 
65432
 
#line 65433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79674
#line 79675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65433
79675
} // closed Puma
 
79676
class CCExprResolve;
 
79677
class CExprResolve;
65434
79678
class WinIfExists;
65435
79679
class WinImportHandler;
65436
79680
class WinMacros;
65437
 
class CMatchSyntax;
65438
 
class ExtGnu;
 
79681
class WinAsm;
 
79682
class WinDeclSpecs;
 
79683
class WinMemberExplSpec;
 
79684
class WinTypeKeywords;
 
79685
class WinFriend;
65439
79686
class ExtAC;
65440
79687
class ExtACBuilderCoupling;
65441
79688
class ExtACSyntaxCoupling;
65442
79689
class ExtACTree;
65443
79690
class ExtACKeywords;
65444
 
class WinAsm;
65445
 
class WinDeclSpecs;
65446
 
class WinMemberExplSpec;
65447
 
class WinTypeKeywords;
 
79691
class ExtGnu;
65448
79692
class PragmaOnceUnitState;
65449
79693
class PragmaOnce;
65450
 
class CCExprResolve;
65451
 
class CExprResolve;
 
79694
class CMatchSyntax;
65452
79695
namespace Puma {
65453
79696
 
65454
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79697
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65455
79698
class CT_DeclaratorList : public CT_List {
65456
 
#line 65457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79699
#line 79700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79700
  friend class ::CCExprResolve;
 
79701
  friend class ::CExprResolve;
65457
79702
  friend class ::WinIfExists;
65458
79703
  friend class ::WinImportHandler;
65459
79704
  friend class ::WinMacros;
65460
 
  friend class ::CMatchSyntax;
65461
 
  friend class ::ExtGnu;
 
79705
  friend class ::WinAsm;
 
79706
  friend class ::WinDeclSpecs;
 
79707
  friend class ::WinMemberExplSpec;
 
79708
  friend class ::WinTypeKeywords;
 
79709
  friend class ::WinFriend;
65462
79710
  friend class ::ExtAC;
65463
79711
  friend class ::ExtACBuilderCoupling;
65464
79712
  friend class ::ExtACSyntaxCoupling;
65465
79713
  friend class ::ExtACTree;
65466
79714
  friend class ::ExtACKeywords;
65467
 
  friend class ::WinAsm;
65468
 
  friend class ::WinDeclSpecs;
65469
 
  friend class ::WinMemberExplSpec;
65470
 
  friend class ::WinTypeKeywords;
 
79715
  friend class ::ExtGnu;
65471
79716
  friend class ::PragmaOnceUnitState;
65472
79717
  friend class ::PragmaOnce;
65473
 
  friend class ::CCExprResolve;
65474
 
  friend class ::CExprResolve;
 
79718
  friend class ::CMatchSyntax;
65475
79719
 
65476
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79720
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65477
79721
 
65478
79722
public:
 
79723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65479
79724
  static const char *NodeId ();
 
79725
  /** Get the name of the node. Can be compared with NodeId(). */
65480
79726
  const char *NodeName () const { return NodeId (); }
65481
79727
};
65482
79728
 
 
79729
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
79730
 *  Tree node representing a list of enumerator constants. */
65483
79731
 
65484
 
#line 65485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79732
#line 79733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65485
79733
} // closed Puma
 
79734
class CCExprResolve;
 
79735
class CExprResolve;
65486
79736
class WinIfExists;
65487
79737
class WinImportHandler;
65488
79738
class WinMacros;
65489
 
class CMatchSyntax;
65490
 
class ExtGnu;
 
79739
class WinAsm;
 
79740
class WinDeclSpecs;
 
79741
class WinMemberExplSpec;
 
79742
class WinTypeKeywords;
 
79743
class WinFriend;
65491
79744
class ExtAC;
65492
79745
class ExtACBuilderCoupling;
65493
79746
class ExtACSyntaxCoupling;
65494
79747
class ExtACTree;
65495
79748
class ExtACKeywords;
65496
 
class WinAsm;
65497
 
class WinDeclSpecs;
65498
 
class WinMemberExplSpec;
65499
 
class WinTypeKeywords;
 
79749
class ExtGnu;
65500
79750
class PragmaOnceUnitState;
65501
79751
class PragmaOnce;
65502
 
class CCExprResolve;
65503
 
class CExprResolve;
 
79752
class CMatchSyntax;
65504
79753
namespace Puma {
65505
79754
 
65506
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79755
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65507
79756
class CT_EnumeratorList : public CT_List {
65508
 
#line 65509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79757
#line 79758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79758
  friend class ::CCExprResolve;
 
79759
  friend class ::CExprResolve;
65509
79760
  friend class ::WinIfExists;
65510
79761
  friend class ::WinImportHandler;
65511
79762
  friend class ::WinMacros;
65512
 
  friend class ::CMatchSyntax;
65513
 
  friend class ::ExtGnu;
 
79763
  friend class ::WinAsm;
 
79764
  friend class ::WinDeclSpecs;
 
79765
  friend class ::WinMemberExplSpec;
 
79766
  friend class ::WinTypeKeywords;
 
79767
  friend class ::WinFriend;
65514
79768
  friend class ::ExtAC;
65515
79769
  friend class ::ExtACBuilderCoupling;
65516
79770
  friend class ::ExtACSyntaxCoupling;
65517
79771
  friend class ::ExtACTree;
65518
79772
  friend class ::ExtACKeywords;
65519
 
  friend class ::WinAsm;
65520
 
  friend class ::WinDeclSpecs;
65521
 
  friend class ::WinMemberExplSpec;
65522
 
  friend class ::WinTypeKeywords;
 
79773
  friend class ::ExtGnu;
65523
79774
  friend class ::PragmaOnceUnitState;
65524
79775
  friend class ::PragmaOnce;
65525
 
  friend class ::CCExprResolve;
65526
 
  friend class ::CExprResolve;
 
79776
  friend class ::CMatchSyntax;
65527
79777
 
65528
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79778
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65529
79779
 
65530
79780
public:
 
79781
  /** Constructor. */
65531
79782
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
79783
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65532
79784
  static const char *NodeId ();
 
79785
  /** Get the name of the node. Can be compared with NodeId(). */
65533
79786
  const char *NodeName () const { return NodeId (); }
65534
79787
};
65535
79788
   
 
79789
/** \class CT_DeclList CTree.h Puma/CTree.h
 
79790
 *  Tree node representing a list of declarations. */
65536
79791
 
65537
 
#line 65538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79792
#line 79793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65538
79793
} // closed Puma
 
79794
class CCExprResolve;
 
79795
class CExprResolve;
65539
79796
class WinIfExists;
65540
79797
class WinImportHandler;
65541
79798
class WinMacros;
65542
 
class CMatchSyntax;
65543
 
class ExtGnu;
 
79799
class WinAsm;
 
79800
class WinDeclSpecs;
 
79801
class WinMemberExplSpec;
 
79802
class WinTypeKeywords;
 
79803
class WinFriend;
65544
79804
class ExtAC;
65545
79805
class ExtACBuilderCoupling;
65546
79806
class ExtACSyntaxCoupling;
65547
79807
class ExtACTree;
65548
79808
class ExtACKeywords;
65549
 
class WinAsm;
65550
 
class WinDeclSpecs;
65551
 
class WinMemberExplSpec;
65552
 
class WinTypeKeywords;
 
79809
class ExtGnu;
65553
79810
class PragmaOnceUnitState;
65554
79811
class PragmaOnce;
65555
 
class CCExprResolve;
65556
 
class CExprResolve;
 
79812
class CMatchSyntax;
65557
79813
namespace Puma {
65558
79814
 
65559
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79815
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65560
79816
class CT_DeclList : public CT_List {
65561
 
#line 65562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79817
#line 79818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79818
  friend class ::CCExprResolve;
 
79819
  friend class ::CExprResolve;
65562
79820
  friend class ::WinIfExists;
65563
79821
  friend class ::WinImportHandler;
65564
79822
  friend class ::WinMacros;
65565
 
  friend class ::CMatchSyntax;
65566
 
  friend class ::ExtGnu;
 
79823
  friend class ::WinAsm;
 
79824
  friend class ::WinDeclSpecs;
 
79825
  friend class ::WinMemberExplSpec;
 
79826
  friend class ::WinTypeKeywords;
 
79827
  friend class ::WinFriend;
65567
79828
  friend class ::ExtAC;
65568
79829
  friend class ::ExtACBuilderCoupling;
65569
79830
  friend class ::ExtACSyntaxCoupling;
65570
79831
  friend class ::ExtACTree;
65571
79832
  friend class ::ExtACKeywords;
65572
 
  friend class ::WinAsm;
65573
 
  friend class ::WinDeclSpecs;
65574
 
  friend class ::WinMemberExplSpec;
65575
 
  friend class ::WinTypeKeywords;
 
79833
  friend class ::ExtGnu;
65576
79834
  friend class ::PragmaOnceUnitState;
65577
79835
  friend class ::PragmaOnce;
65578
 
  friend class ::CCExprResolve;
65579
 
  friend class ::CExprResolve;
 
79836
  friend class ::CMatchSyntax;
65580
79837
 
65581
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79838
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65582
79839
 
65583
79840
public:
 
79841
  /** Constructor. 
 
79842
   *  \param size The initial size of the list.
 
79843
   *  \param incr The initial increment count of the list. */
65584
79844
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
79845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65585
79846
  static const char *NodeId ();
 
79847
  /** Get the name of the node. Can be compared with NodeId(). */
65586
79848
  const char *NodeName () const { return NodeId (); }
 
79849
  /** Set the linkage specifiers to each declaration in the list.
 
79850
   *  \param l The linkage specifiers node. */
65587
79851
  void Linkage (CT_LinkageSpec *l);
65588
79852
};
65589
79853
 
 
79854
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
79855
 *  Tree node representing a sequence of declaration specifiers. */
65590
79856
 
65591
 
#line 65592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79857
#line 79858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65592
79858
} // closed Puma
 
79859
class CCExprResolve;
 
79860
class CExprResolve;
65593
79861
class WinIfExists;
65594
79862
class WinImportHandler;
65595
79863
class WinMacros;
65596
 
class CMatchSyntax;
65597
 
class ExtGnu;
 
79864
class WinAsm;
 
79865
class WinDeclSpecs;
 
79866
class WinMemberExplSpec;
 
79867
class WinTypeKeywords;
 
79868
class WinFriend;
65598
79869
class ExtAC;
65599
79870
class ExtACBuilderCoupling;
65600
79871
class ExtACSyntaxCoupling;
65601
79872
class ExtACTree;
65602
79873
class ExtACKeywords;
65603
 
class WinAsm;
65604
 
class WinDeclSpecs;
65605
 
class WinMemberExplSpec;
65606
 
class WinTypeKeywords;
 
79874
class ExtGnu;
65607
79875
class PragmaOnceUnitState;
65608
79876
class PragmaOnce;
65609
 
class CCExprResolve;
65610
 
class CExprResolve;
 
79877
class CMatchSyntax;
65611
79878
namespace Puma {
65612
79879
 
65613
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79880
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65614
79881
class CT_DeclSpecSeq : public CT_List {
65615
 
#line 65616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79882
#line 79883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79883
  friend class ::CCExprResolve;
 
79884
  friend class ::CExprResolve;
65616
79885
  friend class ::WinIfExists;
65617
79886
  friend class ::WinImportHandler;
65618
79887
  friend class ::WinMacros;
65619
 
  friend class ::CMatchSyntax;
65620
 
  friend class ::ExtGnu;
 
79888
  friend class ::WinAsm;
 
79889
  friend class ::WinDeclSpecs;
 
79890
  friend class ::WinMemberExplSpec;
 
79891
  friend class ::WinTypeKeywords;
 
79892
  friend class ::WinFriend;
65621
79893
  friend class ::ExtAC;
65622
79894
  friend class ::ExtACBuilderCoupling;
65623
79895
  friend class ::ExtACSyntaxCoupling;
65624
79896
  friend class ::ExtACTree;
65625
79897
  friend class ::ExtACKeywords;
65626
 
  friend class ::WinAsm;
65627
 
  friend class ::WinDeclSpecs;
65628
 
  friend class ::WinMemberExplSpec;
65629
 
  friend class ::WinTypeKeywords;
 
79898
  friend class ::ExtGnu;
65630
79899
  friend class ::PragmaOnceUnitState;
65631
79900
  friend class ::PragmaOnce;
65632
 
  friend class ::CCExprResolve;
65633
 
  friend class ::CExprResolve;
 
79901
  friend class ::CMatchSyntax;
65634
79902
 
65635
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79903
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65636
79904
 
65637
79905
public:
 
79906
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65638
79907
  static const char *NodeId ();
 
79908
  /** Get the name of the node. Can be compared with NodeId(). */
65639
79909
  const char *NodeName () const { return NodeId (); }
65640
79910
};
65641
79911
 
 
79912
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
79913
 *  Tree node representing a compound statement. */
65642
79914
 
65643
 
#line 65644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79915
#line 79916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65644
79916
} // closed Puma
 
79917
class CCExprResolve;
 
79918
class CExprResolve;
65645
79919
class WinIfExists;
65646
79920
class WinImportHandler;
65647
79921
class WinMacros;
65648
 
class CMatchSyntax;
65649
 
class ExtGnu;
 
79922
class WinAsm;
 
79923
class WinDeclSpecs;
 
79924
class WinMemberExplSpec;
 
79925
class WinTypeKeywords;
 
79926
class WinFriend;
65650
79927
class ExtAC;
65651
79928
class ExtACBuilderCoupling;
65652
79929
class ExtACSyntaxCoupling;
65653
79930
class ExtACTree;
65654
79931
class ExtACKeywords;
65655
 
class WinAsm;
65656
 
class WinDeclSpecs;
65657
 
class WinMemberExplSpec;
65658
 
class WinTypeKeywords;
 
79932
class ExtGnu;
65659
79933
class PragmaOnceUnitState;
65660
79934
class PragmaOnce;
65661
 
class CCExprResolve;
65662
 
class CExprResolve;
 
79935
class CMatchSyntax;
65663
79936
namespace Puma {
65664
79937
 
65665
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79938
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65666
79939
class CT_CmpdStmt : public CT_List, public CSemScope {
65667
 
#line 65668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79940
#line 79941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
79941
  friend class ::CCExprResolve;
 
79942
  friend class ::CExprResolve;
65668
79943
  friend class ::WinIfExists;
65669
79944
  friend class ::WinImportHandler;
65670
79945
  friend class ::WinMacros;
65671
 
  friend class ::CMatchSyntax;
65672
 
  friend class ::ExtGnu;
 
79946
  friend class ::WinAsm;
 
79947
  friend class ::WinDeclSpecs;
 
79948
  friend class ::WinMemberExplSpec;
 
79949
  friend class ::WinTypeKeywords;
 
79950
  friend class ::WinFriend;
65673
79951
  friend class ::ExtAC;
65674
79952
  friend class ::ExtACBuilderCoupling;
65675
79953
  friend class ::ExtACSyntaxCoupling;
65676
79954
  friend class ::ExtACTree;
65677
79955
  friend class ::ExtACKeywords;
65678
 
  friend class ::WinAsm;
65679
 
  friend class ::WinDeclSpecs;
65680
 
  friend class ::WinMemberExplSpec;
65681
 
  friend class ::WinTypeKeywords;
 
79956
  friend class ::ExtGnu;
65682
79957
  friend class ::PragmaOnceUnitState;
65683
79958
  friend class ::PragmaOnce;
65684
 
  friend class ::CCExprResolve;
65685
 
  friend class ::CExprResolve;
 
79959
  friend class ::CMatchSyntax;
65686
79960
 
65687
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79961
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65688
79962
 
65689
79963
public:
 
79964
  /* Constructor. */
65690
79965
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
79966
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65691
79967
  static const char *NodeId ();
 
79968
  /** Get the name of the node. Can be compared with NodeId(). */
65692
79969
  const char *NodeName () const { return NodeId (); }
 
79970
  /** Get the local scope of the compound statement. */
 
79971
  CSemScope *SemScope () const { return (CSemScope*)this; }
65693
79972
};
65694
79973
 
 
79974
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
79975
 *  Tree node representing an exception handler sequence. */
65695
79976
 
65696
 
#line 65697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
79977
#line 79978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65697
79978
} // closed Puma
 
79979
class CCExprResolve;
 
79980
class CExprResolve;
65698
79981
class WinIfExists;
65699
79982
class WinImportHandler;
65700
79983
class WinMacros;
65701
 
class CMatchSyntax;
65702
 
class ExtGnu;
 
79984
class WinAsm;
 
79985
class WinDeclSpecs;
 
79986
class WinMemberExplSpec;
 
79987
class WinTypeKeywords;
 
79988
class WinFriend;
65703
79989
class ExtAC;
65704
79990
class ExtACBuilderCoupling;
65705
79991
class ExtACSyntaxCoupling;
65706
79992
class ExtACTree;
65707
79993
class ExtACKeywords;
65708
 
class WinAsm;
65709
 
class WinDeclSpecs;
65710
 
class WinMemberExplSpec;
65711
 
class WinTypeKeywords;
 
79994
class ExtGnu;
65712
79995
class PragmaOnceUnitState;
65713
79996
class PragmaOnce;
65714
 
class CCExprResolve;
65715
 
class CExprResolve;
 
79997
class CMatchSyntax;
65716
79998
namespace Puma {
65717
79999
 
65718
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80000
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65719
80001
class CT_HandlerSeq : public CT_List {
65720
 
#line 65721 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80002
#line 80003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80003
  friend class ::CCExprResolve;
 
80004
  friend class ::CExprResolve;
65721
80005
  friend class ::WinIfExists;
65722
80006
  friend class ::WinImportHandler;
65723
80007
  friend class ::WinMacros;
65724
 
  friend class ::CMatchSyntax;
65725
 
  friend class ::ExtGnu;
 
80008
  friend class ::WinAsm;
 
80009
  friend class ::WinDeclSpecs;
 
80010
  friend class ::WinMemberExplSpec;
 
80011
  friend class ::WinTypeKeywords;
 
80012
  friend class ::WinFriend;
65726
80013
  friend class ::ExtAC;
65727
80014
  friend class ::ExtACBuilderCoupling;
65728
80015
  friend class ::ExtACSyntaxCoupling;
65729
80016
  friend class ::ExtACTree;
65730
80017
  friend class ::ExtACKeywords;
65731
 
  friend class ::WinAsm;
65732
 
  friend class ::WinDeclSpecs;
65733
 
  friend class ::WinMemberExplSpec;
65734
 
  friend class ::WinTypeKeywords;
 
80018
  friend class ::ExtGnu;
65735
80019
  friend class ::PragmaOnceUnitState;
65736
80020
  friend class ::PragmaOnce;
65737
 
  friend class ::CCExprResolve;
65738
 
  friend class ::CExprResolve;
 
80021
  friend class ::CMatchSyntax;
65739
80022
 
65740
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80023
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65741
80024
 
65742
80025
public:
 
80026
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65743
80027
  static const char *NodeId ();
 
80028
  /** Get the name of the node. Can be compared with NodeId(). */
65744
80029
  const char *NodeName () const { return NodeId (); }
65745
80030
};
65746
80031
 
 
80032
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
80033
 *  Tree node representing a template parameter list. */
65747
80034
 
65748
 
#line 65749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80035
#line 80036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65749
80036
} // closed Puma
 
80037
class CCExprResolve;
 
80038
class CExprResolve;
65750
80039
class WinIfExists;
65751
80040
class WinImportHandler;
65752
80041
class WinMacros;
65753
 
class CMatchSyntax;
65754
 
class ExtGnu;
 
80042
class WinAsm;
 
80043
class WinDeclSpecs;
 
80044
class WinMemberExplSpec;
 
80045
class WinTypeKeywords;
 
80046
class WinFriend;
65755
80047
class ExtAC;
65756
80048
class ExtACBuilderCoupling;
65757
80049
class ExtACSyntaxCoupling;
65758
80050
class ExtACTree;
65759
80051
class ExtACKeywords;
65760
 
class WinAsm;
65761
 
class WinDeclSpecs;
65762
 
class WinMemberExplSpec;
65763
 
class WinTypeKeywords;
 
80052
class ExtGnu;
65764
80053
class PragmaOnceUnitState;
65765
80054
class PragmaOnce;
65766
 
class CCExprResolve;
65767
 
class CExprResolve;
 
80055
class CMatchSyntax;
65768
80056
namespace Puma {
65769
80057
 
65770
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80058
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65771
80059
class CT_TemplateParamList : public CT_List, public CSemScope {
65772
 
#line 65773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80060
#line 80061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80061
  friend class ::CCExprResolve;
 
80062
  friend class ::CExprResolve;
65773
80063
  friend class ::WinIfExists;
65774
80064
  friend class ::WinImportHandler;
65775
80065
  friend class ::WinMacros;
65776
 
  friend class ::CMatchSyntax;
65777
 
  friend class ::ExtGnu;
 
80066
  friend class ::WinAsm;
 
80067
  friend class ::WinDeclSpecs;
 
80068
  friend class ::WinMemberExplSpec;
 
80069
  friend class ::WinTypeKeywords;
 
80070
  friend class ::WinFriend;
65778
80071
  friend class ::ExtAC;
65779
80072
  friend class ::ExtACBuilderCoupling;
65780
80073
  friend class ::ExtACSyntaxCoupling;
65781
80074
  friend class ::ExtACTree;
65782
80075
  friend class ::ExtACKeywords;
65783
 
  friend class ::WinAsm;
65784
 
  friend class ::WinDeclSpecs;
65785
 
  friend class ::WinMemberExplSpec;
65786
 
  friend class ::WinTypeKeywords;
 
80076
  friend class ::ExtGnu;
65787
80077
  friend class ::PragmaOnceUnitState;
65788
80078
  friend class ::PragmaOnce;
65789
 
  friend class ::CCExprResolve;
65790
 
  friend class ::CExprResolve;
 
80079
  friend class ::CMatchSyntax;
65791
80080
 
65792
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80081
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65793
80082
 
65794
80083
public:
65795
80084
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
80085
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65796
80086
  static const char *NodeId ();
 
80087
  /** Get the name of the node. Can be compared with NodeId(). */
65797
80088
  const char *NodeName () const { return NodeId (); }
 
80089
  /** Get the scope of the template parameter list. */
 
80090
  CSemScope *SemScope () const { return (CSemScope*)this; }
65798
80091
};
65799
80092
 
 
80093
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
80094
 *  Tree node representing a template argument list. */
65800
80095
 
65801
 
#line 65802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80096
#line 80097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65802
80097
} // closed Puma
 
80098
class CCExprResolve;
 
80099
class CExprResolve;
65803
80100
class WinIfExists;
65804
80101
class WinImportHandler;
65805
80102
class WinMacros;
65806
 
class CMatchSyntax;
65807
 
class ExtGnu;
 
80103
class WinAsm;
 
80104
class WinDeclSpecs;
 
80105
class WinMemberExplSpec;
 
80106
class WinTypeKeywords;
 
80107
class WinFriend;
65808
80108
class ExtAC;
65809
80109
class ExtACBuilderCoupling;
65810
80110
class ExtACSyntaxCoupling;
65811
80111
class ExtACTree;
65812
80112
class ExtACKeywords;
65813
 
class WinAsm;
65814
 
class WinDeclSpecs;
65815
 
class WinMemberExplSpec;
65816
 
class WinTypeKeywords;
 
80113
class ExtGnu;
65817
80114
class PragmaOnceUnitState;
65818
80115
class PragmaOnce;
65819
 
class CCExprResolve;
65820
 
class CExprResolve;
 
80116
class CMatchSyntax;
65821
80117
namespace Puma {
65822
80118
 
65823
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80119
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65824
80120
class CT_TemplateArgList : public CT_List {
65825
 
#line 65826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80121
#line 80122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80122
  friend class ::CCExprResolve;
 
80123
  friend class ::CExprResolve;
65826
80124
  friend class ::WinIfExists;
65827
80125
  friend class ::WinImportHandler;
65828
80126
  friend class ::WinMacros;
65829
 
  friend class ::CMatchSyntax;
65830
 
  friend class ::ExtGnu;
 
80127
  friend class ::WinAsm;
 
80128
  friend class ::WinDeclSpecs;
 
80129
  friend class ::WinMemberExplSpec;
 
80130
  friend class ::WinTypeKeywords;
 
80131
  friend class ::WinFriend;
65831
80132
  friend class ::ExtAC;
65832
80133
  friend class ::ExtACBuilderCoupling;
65833
80134
  friend class ::ExtACSyntaxCoupling;
65834
80135
  friend class ::ExtACTree;
65835
80136
  friend class ::ExtACKeywords;
65836
 
  friend class ::WinAsm;
65837
 
  friend class ::WinDeclSpecs;
65838
 
  friend class ::WinMemberExplSpec;
65839
 
  friend class ::WinTypeKeywords;
 
80137
  friend class ::ExtGnu;
65840
80138
  friend class ::PragmaOnceUnitState;
65841
80139
  friend class ::PragmaOnce;
65842
 
  friend class ::CCExprResolve;
65843
 
  friend class ::CExprResolve;
 
80140
  friend class ::CMatchSyntax;
65844
80141
 
65845
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80142
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65846
80143
 
65847
80144
public:
 
80145
  /** Constructor. */
65848
80146
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
80147
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65849
80148
  static const char *NodeId ();
 
80149
  /** Get the name of the node. Can be compared with NodeId(). */
65850
80150
  const char *NodeName () const { return NodeId (); }
65851
80151
};
65852
80152
 
65856
80156
/*                                                                           */
65857
80157
/*****************************************************************************/
65858
80158
 
 
80159
/** \class CT_Expression CTree.h Puma/CTree.h
 
80160
 *  Base class for all expression tree nodes. */
65859
80161
 
65860
 
#line 65861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80162
#line 80163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
65861
80163
} // closed Puma
 
80164
class CCExprResolve;
 
80165
class CExprResolve;
65862
80166
class WinIfExists;
65863
80167
class WinImportHandler;
65864
80168
class WinMacros;
65865
 
class CMatchSyntax;
65866
 
class ExtGnu;
 
80169
class WinAsm;
 
80170
class WinDeclSpecs;
 
80171
class WinMemberExplSpec;
 
80172
class WinTypeKeywords;
 
80173
class WinFriend;
65867
80174
class ExtAC;
65868
80175
class ExtACBuilderCoupling;
65869
80176
class ExtACSyntaxCoupling;
65870
80177
class ExtACTree;
65871
80178
class ExtACKeywords;
65872
 
class WinAsm;
65873
 
class WinDeclSpecs;
65874
 
class WinMemberExplSpec;
65875
 
class WinTypeKeywords;
 
80179
class ExtGnu;
65876
80180
class PragmaOnceUnitState;
65877
80181
class PragmaOnce;
65878
 
class CCExprResolve;
65879
 
class CExprResolve;
65880
 
namespace Puma {
65881
 
 
65882
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80182
class CMatchSyntax;
 
80183
namespace Puma {
 
80184
 
 
80185
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80186
 
 
80187
#line 80188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80188
} // closed Puma
 
80189
 
 
80190
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80191
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80192
#include "CCExprResolveH.ah"
 
80193
#endif
 
80194
namespace Puma {
 
80195
 
 
80196
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80197
 
 
80198
#line 80199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80199
} // closed Puma
 
80200
 
 
80201
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80202
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80203
#include "CExprResolveH.ah"
 
80204
#endif
 
80205
namespace Puma {
 
80206
 
 
80207
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65883
80208
class CT_Expression : public CTree, public CSemValue {
65884
 
#line 65885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80209
#line 80210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80210
  friend class ::CCExprResolve;
 
80211
  friend class ::CExprResolve;
65885
80212
  friend class ::WinIfExists;
65886
80213
  friend class ::WinImportHandler;
65887
80214
  friend class ::WinMacros;
65888
 
  friend class ::CMatchSyntax;
65889
 
  friend class ::ExtGnu;
 
80215
  friend class ::WinAsm;
 
80216
  friend class ::WinDeclSpecs;
 
80217
  friend class ::WinMemberExplSpec;
 
80218
  friend class ::WinTypeKeywords;
 
80219
  friend class ::WinFriend;
65890
80220
  friend class ::ExtAC;
65891
80221
  friend class ::ExtACBuilderCoupling;
65892
80222
  friend class ::ExtACSyntaxCoupling;
65893
80223
  friend class ::ExtACTree;
65894
80224
  friend class ::ExtACKeywords;
65895
 
  friend class ::WinAsm;
65896
 
  friend class ::WinDeclSpecs;
65897
 
  friend class ::WinMemberExplSpec;
65898
 
  friend class ::WinTypeKeywords;
 
80225
  friend class ::ExtGnu;
65899
80226
  friend class ::PragmaOnceUnitState;
65900
80227
  friend class ::PragmaOnce;
65901
 
  friend class ::CCExprResolve;
65902
 
  friend class ::CExprResolve;
 
80228
  friend class ::CMatchSyntax;
65903
80229
 
65904
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80230
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65905
80231
 
65906
80232
protected:
 
80233
  /** Constructor. */
65907
80234
  CT_Expression () {}
65908
80235
 
65909
80236
public:
 
80237
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65910
80238
  static const char *NodeId ();
 
80239
  /** Get the name of the node. Can be compared with NodeId(). */
65911
80240
  const char *NodeName () const { return NodeId (); }
 
80241
  /** Get the type of the expression.
 
80242
   *  \return The type information object or NULL. */
65912
80243
  CTypeInfo *Type () const { return type; }
 
80244
  /** Get the value of the expression.
 
80245
   *  \return The value object or NULL. */
65913
80246
  CExprValue *Value () const { return value; }
 
80247
  /** Get the semantic value information of the expression.
 
80248
   *  \return The value object or NULL. */
65914
80249
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
80250
  /** Get this. */
 
80251
  virtual CT_Expression *IsExpression () { return this; }
65915
80252
   private:
65916
80253
  typedef CT_Expression CCExprResolveExpr;
65917
80254
 
65918
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80255
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65919
80256
 public :
65920
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80257
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65921
80258
  typedef CT_Expression CExprResolveExpr;
65922
80259
 
65923
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65924
 
 public :
65925
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65926
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
65927
 
};
65928
 
 
65929
 
 
65930
 
#line 65931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
65931
 
} // closed Puma
65932
 
class WinIfExists;
65933
 
class WinImportHandler;
65934
 
class WinMacros;
65935
 
class CMatchSyntax;
65936
 
class ExtGnu;
65937
 
class ExtAC;
65938
 
class ExtACBuilderCoupling;
65939
 
class ExtACSyntaxCoupling;
65940
 
class ExtACTree;
65941
 
class ExtACKeywords;
65942
 
class WinAsm;
65943
 
class WinDeclSpecs;
65944
 
class WinMemberExplSpec;
65945
 
class WinTypeKeywords;
65946
 
class PragmaOnceUnitState;
65947
 
class PragmaOnce;
65948
 
class CCExprResolve;
65949
 
class CExprResolve;
65950
 
namespace Puma {
65951
 
 
65952
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80260
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80261
 public :
 
80262
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80263
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80264
};
 
80265
 
 
80266
/** \class CT_Call CTree.h Puma/CTree.h
 
80267
 *  Tree node representing explicit or implicit function calls 
 
80268
 *  including built-in or user-defined functions and overloaded
 
80269
 *  operators. */
 
80270
 
 
80271
#line 80272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80272
} // closed Puma
 
80273
class CCExprResolve;
 
80274
class CExprResolve;
 
80275
class WinIfExists;
 
80276
class WinImportHandler;
 
80277
class WinMacros;
 
80278
class WinAsm;
 
80279
class WinDeclSpecs;
 
80280
class WinMemberExplSpec;
 
80281
class WinTypeKeywords;
 
80282
class WinFriend;
 
80283
class ExtAC;
 
80284
class ExtACBuilderCoupling;
 
80285
class ExtACSyntaxCoupling;
 
80286
class ExtACTree;
 
80287
class ExtACKeywords;
 
80288
class ExtGnu;
 
80289
class PragmaOnceUnitState;
 
80290
class PragmaOnce;
 
80291
class CMatchSyntax;
 
80292
namespace Puma {
 
80293
 
 
80294
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80295
 
 
80296
#line 80297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80297
} // closed Puma
 
80298
 
 
80299
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80300
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80301
#include "CCExprResolveH.ah"
 
80302
#endif
 
80303
namespace Puma {
 
80304
 
 
80305
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80306
 
 
80307
#line 80308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80308
} // closed Puma
 
80309
 
 
80310
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80311
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80312
#include "CExprResolveH.ah"
 
80313
#endif
 
80314
namespace Puma {
 
80315
 
 
80316
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80317
class CT_Call : public CT_Expression, public CSemObject {
 
80318
#line 80319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80319
  friend class ::CCExprResolve;
 
80320
  friend class ::CExprResolve;
 
80321
  friend class ::WinIfExists;
 
80322
  friend class ::WinImportHandler;
 
80323
  friend class ::WinMacros;
 
80324
  friend class ::WinAsm;
 
80325
  friend class ::WinDeclSpecs;
 
80326
  friend class ::WinMemberExplSpec;
 
80327
  friend class ::WinTypeKeywords;
 
80328
  friend class ::WinFriend;
 
80329
  friend class ::ExtAC;
 
80330
  friend class ::ExtACBuilderCoupling;
 
80331
  friend class ::ExtACSyntaxCoupling;
 
80332
  friend class ::ExtACTree;
 
80333
  friend class ::ExtACKeywords;
 
80334
  friend class ::ExtGnu;
 
80335
  friend class ::PragmaOnceUnitState;
 
80336
  friend class ::PragmaOnce;
 
80337
  friend class ::CMatchSyntax;
 
80338
 
 
80339
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80340
 
 
80341
protected:
 
80342
  /** Constructor. */
 
80343
  CT_Call () {}
 
80344
  
 
80345
public:
 
80346
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
80347
  static const char *NodeId ();
 
80348
  /** Get the name of the node. Can be compared with NodeId(). */
 
80349
  const char *NodeName () const { return NodeId (); }
 
80350
  /** Get the semantic information of the call.
 
80351
   *  \return The semantic information or NULL. */
 
80352
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
80353
  /** Get this. */
 
80354
  CT_Call *IsCall () { return this; }
 
80355
   private:
 
80356
  typedef CT_Call CCExprResolveExpr;
 
80357
 
 
80358
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80359
 public :
 
80360
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
80361
  typedef CT_Call CExprResolveExpr;
 
80362
 
 
80363
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80364
 public :
 
80365
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80366
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80367
};
 
80368
 
 
80369
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
80370
 *  Tree node representing implicit function calls detected by
 
80371
 *  the semantic analysis. */
 
80372
 
 
80373
#line 80374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80374
} // closed Puma
 
80375
class CCExprResolve;
 
80376
class CExprResolve;
 
80377
class WinIfExists;
 
80378
class WinImportHandler;
 
80379
class WinMacros;
 
80380
class WinAsm;
 
80381
class WinDeclSpecs;
 
80382
class WinMemberExplSpec;
 
80383
class WinTypeKeywords;
 
80384
class WinFriend;
 
80385
class ExtAC;
 
80386
class ExtACBuilderCoupling;
 
80387
class ExtACSyntaxCoupling;
 
80388
class ExtACTree;
 
80389
class ExtACKeywords;
 
80390
class ExtGnu;
 
80391
class PragmaOnceUnitState;
 
80392
class PragmaOnce;
 
80393
class CMatchSyntax;
 
80394
namespace Puma {
 
80395
 
 
80396
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80397
 
 
80398
#line 80399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80399
} // closed Puma
 
80400
 
 
80401
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80402
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80403
#include "CCExprResolveH.ah"
 
80404
#endif
 
80405
namespace Puma {
 
80406
 
 
80407
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80408
 
 
80409
#line 80410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80410
} // closed Puma
 
80411
 
 
80412
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80413
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80414
#include "CExprResolveH.ah"
 
80415
#endif
 
80416
namespace Puma {
 
80417
 
 
80418
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80419
class CT_ImplicitCall : public CT_Call {
 
80420
#line 80421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80421
  friend class ::CCExprResolve;
 
80422
  friend class ::CExprResolve;
 
80423
  friend class ::WinIfExists;
 
80424
  friend class ::WinImportHandler;
 
80425
  friend class ::WinMacros;
 
80426
  friend class ::WinAsm;
 
80427
  friend class ::WinDeclSpecs;
 
80428
  friend class ::WinMemberExplSpec;
 
80429
  friend class ::WinTypeKeywords;
 
80430
  friend class ::WinFriend;
 
80431
  friend class ::ExtAC;
 
80432
  friend class ::ExtACBuilderCoupling;
 
80433
  friend class ::ExtACSyntaxCoupling;
 
80434
  friend class ::ExtACTree;
 
80435
  friend class ::ExtACKeywords;
 
80436
  friend class ::ExtGnu;
 
80437
  friend class ::PragmaOnceUnitState;
 
80438
  friend class ::PragmaOnce;
 
80439
  friend class ::CMatchSyntax;
 
80440
 
 
80441
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80442
 
 
80443
  CTree *_arg;
 
80444
 
 
80445
public:
 
80446
  /** Constructor.
 
80447
   *  \param arg The call argument. */
 
80448
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
80449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
80450
  static const char *NodeId ();
 
80451
  /** Get the name of the node. Can be compared with NodeId(). */
 
80452
  const char *NodeName () const { return NodeId (); }
 
80453
  /** Get the number of sons. */
 
80454
  int Sons () const { return 1; }
 
80455
  /** Get the n-th son.
 
80456
   *  \param n The index of the son.
 
80457
   *  \return The n-th son or NULL. */
 
80458
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
80459
  /** Replace a son.
 
80460
   *  \param old_son The son to replace.
 
80461
   *  \param new_son The new son. */
 
80462
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
80463
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
80464
   private:
 
80465
  typedef CT_ImplicitCall CCExprResolveExpr;
 
80466
 
 
80467
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80468
 public :
 
80469
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
80470
  typedef CT_ImplicitCall CExprResolveExpr;
 
80471
 
 
80472
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80473
 public :
 
80474
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80475
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80476
};
 
80477
 
 
80478
/** \class CT_String CTree.h Puma/CTree.h
 
80479
 *  Tree node representing a string literal. */
 
80480
 
 
80481
#line 80482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80482
} // closed Puma
 
80483
class CCExprResolve;
 
80484
class CExprResolve;
 
80485
class WinIfExists;
 
80486
class WinImportHandler;
 
80487
class WinMacros;
 
80488
class WinAsm;
 
80489
class WinDeclSpecs;
 
80490
class WinMemberExplSpec;
 
80491
class WinTypeKeywords;
 
80492
class WinFriend;
 
80493
class ExtAC;
 
80494
class ExtACBuilderCoupling;
 
80495
class ExtACSyntaxCoupling;
 
80496
class ExtACTree;
 
80497
class ExtACKeywords;
 
80498
class ExtGnu;
 
80499
class PragmaOnceUnitState;
 
80500
class PragmaOnce;
 
80501
class CMatchSyntax;
 
80502
namespace Puma {
 
80503
 
 
80504
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80505
 
 
80506
#line 80507 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80507
} // closed Puma
 
80508
 
 
80509
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80510
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80511
#include "CCExprResolveH.ah"
 
80512
#endif
 
80513
namespace Puma {
 
80514
 
 
80515
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80516
 
 
80517
#line 80518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80518
} // closed Puma
 
80519
 
 
80520
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80521
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80522
#include "CExprResolveH.ah"
 
80523
#endif
 
80524
namespace Puma {
 
80525
 
 
80526
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65953
80527
class CT_String : public CT_List, public CSemValue {
65954
 
#line 65955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80528
#line 80529 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80529
  friend class ::CCExprResolve;
 
80530
  friend class ::CExprResolve;
65955
80531
  friend class ::WinIfExists;
65956
80532
  friend class ::WinImportHandler;
65957
80533
  friend class ::WinMacros;
65958
 
  friend class ::CMatchSyntax;
65959
 
  friend class ::ExtGnu;
 
80534
  friend class ::WinAsm;
 
80535
  friend class ::WinDeclSpecs;
 
80536
  friend class ::WinMemberExplSpec;
 
80537
  friend class ::WinTypeKeywords;
 
80538
  friend class ::WinFriend;
65960
80539
  friend class ::ExtAC;
65961
80540
  friend class ::ExtACBuilderCoupling;
65962
80541
  friend class ::ExtACSyntaxCoupling;
65963
80542
  friend class ::ExtACTree;
65964
80543
  friend class ::ExtACKeywords;
65965
 
  friend class ::WinAsm;
65966
 
  friend class ::WinDeclSpecs;
65967
 
  friend class ::WinMemberExplSpec;
65968
 
  friend class ::WinTypeKeywords;
 
80544
  friend class ::ExtGnu;
65969
80545
  friend class ::PragmaOnceUnitState;
65970
80546
  friend class ::PragmaOnce;
65971
 
  friend class ::CCExprResolve;
65972
 
  friend class ::CExprResolve;
 
80547
  friend class ::CMatchSyntax;
65973
80548
 
65974
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80549
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65975
80550
 
65976
80551
public:
 
80552
  /** Constructor. 
 
80553
   *  \param size The number of sub-strings. */
65977
80554
  CT_String (int size) : CT_List (size, 1) {}
 
80555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65978
80556
  static const char *NodeId ();
 
80557
  /** Get the name of the node. Can be compared with NodeId(). */
65979
80558
  const char *NodeName () const { return NodeId (); }
65980
80559
 
 
80560
  /** Get the type of the string. 
 
80561
   *  \return The type or NULL. */
65981
80562
  CTypeInfo *Type () const { return type; }
 
80563
  /** Get the string value.
 
80564
   *  \return The value or NULL. */
65982
80565
  CExprValue *Value () const { return value; }
 
80566
  /** Get the semantic value info object.
 
80567
   *  \return The semantic value object or NULL. */
65983
80568
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
80569
  /** Get this. */
 
80570
  virtual CT_String *IsString () { return this; }
65984
80571
   private:
65985
80572
  typedef CT_String CCExprResolveExpr;
65986
80573
 
65987
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
65988
80575
 public :
65989
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80576
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
65990
80577
  typedef CT_String CExprResolveExpr;
65991
80578
 
65992
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80579
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
65993
80580
 public :
65994
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
65995
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80581
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80582
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65996
80583
};
65997
80584
 
 
80585
/** \class CT_WideString CTree.h Puma/CTree.h
 
80586
 *  Tree node representing a wide string literal. */
65998
80587
 
65999
 
#line 66000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80588
#line 80589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66000
80589
} // closed Puma
 
80590
class CCExprResolve;
 
80591
class CExprResolve;
66001
80592
class WinIfExists;
66002
80593
class WinImportHandler;
66003
80594
class WinMacros;
66004
 
class CMatchSyntax;
66005
 
class ExtGnu;
 
80595
class WinAsm;
 
80596
class WinDeclSpecs;
 
80597
class WinMemberExplSpec;
 
80598
class WinTypeKeywords;
 
80599
class WinFriend;
66006
80600
class ExtAC;
66007
80601
class ExtACBuilderCoupling;
66008
80602
class ExtACSyntaxCoupling;
66009
80603
class ExtACTree;
66010
80604
class ExtACKeywords;
66011
 
class WinAsm;
66012
 
class WinDeclSpecs;
66013
 
class WinMemberExplSpec;
66014
 
class WinTypeKeywords;
 
80605
class ExtGnu;
66015
80606
class PragmaOnceUnitState;
66016
80607
class PragmaOnce;
66017
 
class CCExprResolve;
66018
 
class CExprResolve;
66019
 
namespace Puma {
66020
 
 
66021
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80608
class CMatchSyntax;
 
80609
namespace Puma {
 
80610
 
 
80611
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80612
 
 
80613
#line 80614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80614
} // closed Puma
 
80615
 
 
80616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80618
#include "CCExprResolveH.ah"
 
80619
#endif
 
80620
namespace Puma {
 
80621
 
 
80622
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80623
 
 
80624
#line 80625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80625
} // closed Puma
 
80626
 
 
80627
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80628
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80629
#include "CExprResolveH.ah"
 
80630
#endif
 
80631
namespace Puma {
 
80632
 
 
80633
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66022
80634
class CT_WideString : public CT_String {
66023
 
#line 66024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80635
#line 80636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80636
  friend class ::CCExprResolve;
 
80637
  friend class ::CExprResolve;
66024
80638
  friend class ::WinIfExists;
66025
80639
  friend class ::WinImportHandler;
66026
80640
  friend class ::WinMacros;
66027
 
  friend class ::CMatchSyntax;
66028
 
  friend class ::ExtGnu;
 
80641
  friend class ::WinAsm;
 
80642
  friend class ::WinDeclSpecs;
 
80643
  friend class ::WinMemberExplSpec;
 
80644
  friend class ::WinTypeKeywords;
 
80645
  friend class ::WinFriend;
66029
80646
  friend class ::ExtAC;
66030
80647
  friend class ::ExtACBuilderCoupling;
66031
80648
  friend class ::ExtACSyntaxCoupling;
66032
80649
  friend class ::ExtACTree;
66033
80650
  friend class ::ExtACKeywords;
66034
 
  friend class ::WinAsm;
66035
 
  friend class ::WinDeclSpecs;
66036
 
  friend class ::WinMemberExplSpec;
66037
 
  friend class ::WinTypeKeywords;
 
80651
  friend class ::ExtGnu;
66038
80652
  friend class ::PragmaOnceUnitState;
66039
80653
  friend class ::PragmaOnce;
66040
 
  friend class ::CCExprResolve;
66041
 
  friend class ::CExprResolve;
 
80654
  friend class ::CMatchSyntax;
66042
80655
 
66043
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80656
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66044
80657
 
66045
80658
public:
 
80659
  /** Constructor.
 
80660
   *  \param size The number of sub-strings. */
66046
80661
  CT_WideString (int size) : CT_String (size) {}
 
80662
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66047
80663
  static const char *NodeId ();
 
80664
  /** Get the name of the node. Can be compared with NodeId(). */
66048
80665
  const char *NodeName () const { return NodeId (); }
66049
80666
   private:
66050
80667
  typedef CT_WideString CCExprResolveExpr;
66051
80668
 
66052
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80669
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66053
80670
 public :
66054
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80671
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66055
80672
  typedef CT_WideString CExprResolveExpr;
66056
80673
 
66057
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80674
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66058
80675
 public :
66059
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66060
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80676
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80677
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66061
80678
};
66062
80679
 
 
80680
/** \class CT_Integer CTree.h Puma/CTree.h
 
80681
 *  Tree node representing an integer constant. */
66063
80682
 
66064
 
#line 66065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80683
#line 80684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66065
80684
} // closed Puma
 
80685
class CCExprResolve;
 
80686
class CExprResolve;
66066
80687
class WinIfExists;
66067
80688
class WinImportHandler;
66068
80689
class WinMacros;
66069
 
class CMatchSyntax;
66070
 
class ExtGnu;
 
80690
class WinAsm;
 
80691
class WinDeclSpecs;
 
80692
class WinMemberExplSpec;
 
80693
class WinTypeKeywords;
 
80694
class WinFriend;
66071
80695
class ExtAC;
66072
80696
class ExtACBuilderCoupling;
66073
80697
class ExtACSyntaxCoupling;
66074
80698
class ExtACTree;
66075
80699
class ExtACKeywords;
66076
 
class WinAsm;
66077
 
class WinDeclSpecs;
66078
 
class WinMemberExplSpec;
66079
 
class WinTypeKeywords;
 
80700
class ExtGnu;
66080
80701
class PragmaOnceUnitState;
66081
80702
class PragmaOnce;
66082
 
class CCExprResolve;
66083
 
class CExprResolve;
66084
 
namespace Puma {
66085
 
 
66086
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80703
class CMatchSyntax;
 
80704
namespace Puma {
 
80705
 
 
80706
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80707
 
 
80708
#line 80709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80709
} // closed Puma
 
80710
 
 
80711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80713
#include "CCExprResolveH.ah"
 
80714
#endif
 
80715
namespace Puma {
 
80716
 
 
80717
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80718
 
 
80719
#line 80720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80720
} // closed Puma
 
80721
 
 
80722
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80723
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80724
#include "CExprResolveH.ah"
 
80725
#endif
 
80726
namespace Puma {
 
80727
 
 
80728
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66087
80729
class CT_Integer : public CT_Expression {
66088
 
#line 66089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80730
#line 80731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80731
  friend class ::CCExprResolve;
 
80732
  friend class ::CExprResolve;
66089
80733
  friend class ::WinIfExists;
66090
80734
  friend class ::WinImportHandler;
66091
80735
  friend class ::WinMacros;
66092
 
  friend class ::CMatchSyntax;
66093
 
  friend class ::ExtGnu;
 
80736
  friend class ::WinAsm;
 
80737
  friend class ::WinDeclSpecs;
 
80738
  friend class ::WinMemberExplSpec;
 
80739
  friend class ::WinTypeKeywords;
 
80740
  friend class ::WinFriend;
66094
80741
  friend class ::ExtAC;
66095
80742
  friend class ::ExtACBuilderCoupling;
66096
80743
  friend class ::ExtACSyntaxCoupling;
66097
80744
  friend class ::ExtACTree;
66098
80745
  friend class ::ExtACKeywords;
66099
 
  friend class ::WinAsm;
66100
 
  friend class ::WinDeclSpecs;
66101
 
  friend class ::WinMemberExplSpec;
66102
 
  friend class ::WinTypeKeywords;
 
80746
  friend class ::ExtGnu;
66103
80747
  friend class ::PragmaOnceUnitState;
66104
80748
  friend class ::PragmaOnce;
66105
 
  friend class ::CCExprResolve;
66106
 
  friend class ::CExprResolve;
 
80749
  friend class ::CMatchSyntax;
66107
80750
 
66108
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80751
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66109
80752
 
66110
80753
  CTree *_value;  // CT_Token
66111
80754
 
66112
80755
public:
66113
 
  CT_Integer (CTree *t) : _value (t) {}
 
80756
  /** Constructor.
 
80757
   *  \param token The token containing the integer value. */
 
80758
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
80759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66114
80760
  static const char *NodeId ();
 
80761
  /** Get the name of the node. Can be compared with NodeId(). */
66115
80762
  const char *NodeName () const { return NodeId (); }
 
80763
  /** Get the number of sons. */
66116
80764
  int Sons () const { return _value ? 1 : 0; }
 
80765
  /** Get the n-th son.
 
80766
   *  \param n The index of the son.
 
80767
   *  \return The n-th son or NULL. */
66117
80768
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
80769
  /** Replace a son.
 
80770
   *  \param old_son The son to replace.
 
80771
   *  \param new_son The new son. */
66118
80772
  void ReplaceSon (CTree *old_son, CTree *new_son) 
66119
 
   { if (old_son == _value) _value = new_son; }
 
80773
   { CTree::ReplaceSon (_value, old_son, new_son); }
66120
80774
   private:
66121
80775
  typedef CT_Integer CCExprResolveExpr;
66122
80776
 
66123
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80777
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66124
80778
 public :
66125
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80779
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66126
80780
  typedef CT_Integer CExprResolveExpr;
66127
80781
 
66128
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80782
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66129
80783
 public :
66130
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66131
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80784
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80785
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66132
80786
};
66133
80787
 
 
80788
/** \class CT_Character CTree.h Puma/CTree.h
 
80789
 *  Tree node representing a single character constant. */
66134
80790
 
66135
 
#line 66136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80791
#line 80792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66136
80792
} // closed Puma
 
80793
class CCExprResolve;
 
80794
class CExprResolve;
66137
80795
class WinIfExists;
66138
80796
class WinImportHandler;
66139
80797
class WinMacros;
66140
 
class CMatchSyntax;
66141
 
class ExtGnu;
 
80798
class WinAsm;
 
80799
class WinDeclSpecs;
 
80800
class WinMemberExplSpec;
 
80801
class WinTypeKeywords;
 
80802
class WinFriend;
66142
80803
class ExtAC;
66143
80804
class ExtACBuilderCoupling;
66144
80805
class ExtACSyntaxCoupling;
66145
80806
class ExtACTree;
66146
80807
class ExtACKeywords;
66147
 
class WinAsm;
66148
 
class WinDeclSpecs;
66149
 
class WinMemberExplSpec;
66150
 
class WinTypeKeywords;
 
80808
class ExtGnu;
66151
80809
class PragmaOnceUnitState;
66152
80810
class PragmaOnce;
66153
 
class CCExprResolve;
66154
 
class CExprResolve;
66155
 
namespace Puma {
66156
 
 
66157
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80811
class CMatchSyntax;
 
80812
namespace Puma {
 
80813
 
 
80814
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80815
 
 
80816
#line 80817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80817
} // closed Puma
 
80818
 
 
80819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80821
#include "CCExprResolveH.ah"
 
80822
#endif
 
80823
namespace Puma {
 
80824
 
 
80825
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80826
 
 
80827
#line 80828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80828
} // closed Puma
 
80829
 
 
80830
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80831
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80832
#include "CExprResolveH.ah"
 
80833
#endif
 
80834
namespace Puma {
 
80835
 
 
80836
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66158
80837
class CT_Character : public CT_Expression {
66159
 
#line 66160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80838
#line 80839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80839
  friend class ::CCExprResolve;
 
80840
  friend class ::CExprResolve;
66160
80841
  friend class ::WinIfExists;
66161
80842
  friend class ::WinImportHandler;
66162
80843
  friend class ::WinMacros;
66163
 
  friend class ::CMatchSyntax;
66164
 
  friend class ::ExtGnu;
 
80844
  friend class ::WinAsm;
 
80845
  friend class ::WinDeclSpecs;
 
80846
  friend class ::WinMemberExplSpec;
 
80847
  friend class ::WinTypeKeywords;
 
80848
  friend class ::WinFriend;
66165
80849
  friend class ::ExtAC;
66166
80850
  friend class ::ExtACBuilderCoupling;
66167
80851
  friend class ::ExtACSyntaxCoupling;
66168
80852
  friend class ::ExtACTree;
66169
80853
  friend class ::ExtACKeywords;
66170
 
  friend class ::WinAsm;
66171
 
  friend class ::WinDeclSpecs;
66172
 
  friend class ::WinMemberExplSpec;
66173
 
  friend class ::WinTypeKeywords;
 
80854
  friend class ::ExtGnu;
66174
80855
  friend class ::PragmaOnceUnitState;
66175
80856
  friend class ::PragmaOnce;
66176
 
  friend class ::CCExprResolve;
66177
 
  friend class ::CExprResolve;
 
80857
  friend class ::CMatchSyntax;
66178
80858
 
66179
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80859
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66180
80860
 
66181
80861
  CTree *_value;  // CT_Token
66182
80862
 
66183
80863
public:
66184
 
  CT_Character (CTree *t) : _value (t) {}
 
80864
  /** Constructor.
 
80865
   *  \param token The token containing the character value. */
 
80866
  CT_Character (CTree *token) { AddSon (_value, token); }
 
80867
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66185
80868
  static const char *NodeId ();
 
80869
  /** Get the name of the node. Can be compared with NodeId(). */
66186
80870
  const char *NodeName () const { return NodeId (); }
 
80871
  /** Get the number of sons. */
66187
80872
  int Sons () const { return 1; }
 
80873
  /** Get the n-th son.
 
80874
   *  \param n The index of the son.
 
80875
   *  \return The n-th son or NULL. */
66188
80876
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
80877
  /** Replace a son.
 
80878
   *  \param old_son The son to replace.
 
80879
   *  \param new_son The new son. */
66189
80880
  void ReplaceSon (CTree *old_son, CTree *new_son) 
66190
 
   { if (old_son == _value) _value = new_son; }
 
80881
   { CTree::ReplaceSon (_value, old_son, new_son); }
66191
80882
   private:
66192
80883
  typedef CT_Character CCExprResolveExpr;
66193
80884
 
66194
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80885
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66195
80886
 public :
66196
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80887
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66197
80888
  typedef CT_Character CExprResolveExpr;
66198
80889
 
66199
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80890
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66200
80891
 public :
66201
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66202
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80892
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80893
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66203
80894
};
66204
80895
 
 
80896
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
80897
 *  Tree node representing a wide character constant. */
66205
80898
 
66206
 
#line 66207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80899
#line 80900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66207
80900
} // closed Puma
 
80901
class CCExprResolve;
 
80902
class CExprResolve;
66208
80903
class WinIfExists;
66209
80904
class WinImportHandler;
66210
80905
class WinMacros;
66211
 
class CMatchSyntax;
66212
 
class ExtGnu;
 
80906
class WinAsm;
 
80907
class WinDeclSpecs;
 
80908
class WinMemberExplSpec;
 
80909
class WinTypeKeywords;
 
80910
class WinFriend;
66213
80911
class ExtAC;
66214
80912
class ExtACBuilderCoupling;
66215
80913
class ExtACSyntaxCoupling;
66216
80914
class ExtACTree;
66217
80915
class ExtACKeywords;
66218
 
class WinAsm;
66219
 
class WinDeclSpecs;
66220
 
class WinMemberExplSpec;
66221
 
class WinTypeKeywords;
 
80916
class ExtGnu;
66222
80917
class PragmaOnceUnitState;
66223
80918
class PragmaOnce;
66224
 
class CCExprResolve;
66225
 
class CExprResolve;
66226
 
namespace Puma {
66227
 
 
66228
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80919
class CMatchSyntax;
 
80920
namespace Puma {
 
80921
 
 
80922
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80923
 
 
80924
#line 80925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80925
} // closed Puma
 
80926
 
 
80927
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80928
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80929
#include "CCExprResolveH.ah"
 
80930
#endif
 
80931
namespace Puma {
 
80932
 
 
80933
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80934
 
 
80935
#line 80936 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80936
} // closed Puma
 
80937
 
 
80938
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80939
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80940
#include "CExprResolveH.ah"
 
80941
#endif
 
80942
namespace Puma {
 
80943
 
 
80944
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66229
80945
class CT_WideCharacter : public CT_Character {
66230
 
#line 66231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80946
#line 80947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
80947
  friend class ::CCExprResolve;
 
80948
  friend class ::CExprResolve;
66231
80949
  friend class ::WinIfExists;
66232
80950
  friend class ::WinImportHandler;
66233
80951
  friend class ::WinMacros;
66234
 
  friend class ::CMatchSyntax;
66235
 
  friend class ::ExtGnu;
 
80952
  friend class ::WinAsm;
 
80953
  friend class ::WinDeclSpecs;
 
80954
  friend class ::WinMemberExplSpec;
 
80955
  friend class ::WinTypeKeywords;
 
80956
  friend class ::WinFriend;
66236
80957
  friend class ::ExtAC;
66237
80958
  friend class ::ExtACBuilderCoupling;
66238
80959
  friend class ::ExtACSyntaxCoupling;
66239
80960
  friend class ::ExtACTree;
66240
80961
  friend class ::ExtACKeywords;
66241
 
  friend class ::WinAsm;
66242
 
  friend class ::WinDeclSpecs;
66243
 
  friend class ::WinMemberExplSpec;
66244
 
  friend class ::WinTypeKeywords;
 
80962
  friend class ::ExtGnu;
66245
80963
  friend class ::PragmaOnceUnitState;
66246
80964
  friend class ::PragmaOnce;
66247
 
  friend class ::CCExprResolve;
66248
 
  friend class ::CExprResolve;
66249
 
 
66250
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66251
 
 
66252
 
  CTree *_value;  // CT_Token
 
80965
  friend class ::CMatchSyntax;
 
80966
 
 
80967
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66253
80968
 
66254
80969
public:
66255
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
80970
  /** Constructor.
 
80971
   *  \param token The token containing the wide character value. */
 
80972
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
80973
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66256
80974
  static const char *NodeId ();
 
80975
  /** Get the name of the node. Can be compared with NodeId(). */
66257
80976
  const char *NodeName () const { return NodeId (); }
66258
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
66259
 
   { if (old_son == _value) _value = new_son; }
66260
80977
   private:
66261
80978
  typedef CT_WideCharacter CCExprResolveExpr;
66262
80979
 
66263
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80980
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66264
80981
 public :
66265
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80982
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66266
80983
  typedef CT_WideCharacter CExprResolveExpr;
66267
80984
 
66268
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80985
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66269
80986
 public :
66270
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66271
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80987
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80988
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66272
80989
};
66273
80990
 
 
80991
/** \class CT_Float CTree.h Puma/CTree.h
 
80992
 *  Tree node representing a floating point constant. */
66274
80993
 
66275
 
#line 66276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
80994
#line 80995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66276
80995
} // closed Puma
 
80996
class CCExprResolve;
 
80997
class CExprResolve;
66277
80998
class WinIfExists;
66278
80999
class WinImportHandler;
66279
81000
class WinMacros;
66280
 
class CMatchSyntax;
66281
 
class ExtGnu;
 
81001
class WinAsm;
 
81002
class WinDeclSpecs;
 
81003
class WinMemberExplSpec;
 
81004
class WinTypeKeywords;
 
81005
class WinFriend;
66282
81006
class ExtAC;
66283
81007
class ExtACBuilderCoupling;
66284
81008
class ExtACSyntaxCoupling;
66285
81009
class ExtACTree;
66286
81010
class ExtACKeywords;
66287
 
class WinAsm;
66288
 
class WinDeclSpecs;
66289
 
class WinMemberExplSpec;
66290
 
class WinTypeKeywords;
 
81011
class ExtGnu;
66291
81012
class PragmaOnceUnitState;
66292
81013
class PragmaOnce;
66293
 
class CCExprResolve;
66294
 
class CExprResolve;
66295
 
namespace Puma {
66296
 
 
66297
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81014
class CMatchSyntax;
 
81015
namespace Puma {
 
81016
 
 
81017
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81018
 
 
81019
#line 81020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81020
} // closed Puma
 
81021
 
 
81022
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81023
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81024
#include "CCExprResolveH.ah"
 
81025
#endif
 
81026
namespace Puma {
 
81027
 
 
81028
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81029
 
 
81030
#line 81031 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81031
} // closed Puma
 
81032
 
 
81033
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81034
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81035
#include "CExprResolveH.ah"
 
81036
#endif
 
81037
namespace Puma {
 
81038
 
 
81039
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66298
81040
class CT_Float : public CT_Expression {
66299
 
#line 66300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81041
#line 81042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81042
  friend class ::CCExprResolve;
 
81043
  friend class ::CExprResolve;
66300
81044
  friend class ::WinIfExists;
66301
81045
  friend class ::WinImportHandler;
66302
81046
  friend class ::WinMacros;
66303
 
  friend class ::CMatchSyntax;
66304
 
  friend class ::ExtGnu;
 
81047
  friend class ::WinAsm;
 
81048
  friend class ::WinDeclSpecs;
 
81049
  friend class ::WinMemberExplSpec;
 
81050
  friend class ::WinTypeKeywords;
 
81051
  friend class ::WinFriend;
66305
81052
  friend class ::ExtAC;
66306
81053
  friend class ::ExtACBuilderCoupling;
66307
81054
  friend class ::ExtACSyntaxCoupling;
66308
81055
  friend class ::ExtACTree;
66309
81056
  friend class ::ExtACKeywords;
66310
 
  friend class ::WinAsm;
66311
 
  friend class ::WinDeclSpecs;
66312
 
  friend class ::WinMemberExplSpec;
66313
 
  friend class ::WinTypeKeywords;
 
81057
  friend class ::ExtGnu;
66314
81058
  friend class ::PragmaOnceUnitState;
66315
81059
  friend class ::PragmaOnce;
66316
 
  friend class ::CCExprResolve;
66317
 
  friend class ::CExprResolve;
 
81060
  friend class ::CMatchSyntax;
66318
81061
 
66319
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81062
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66320
81063
 
66321
81064
  CTree *_value;  // CT_Token
66322
81065
 
66323
81066
public:
66324
 
  CT_Float (CTree *t) : _value (t) {}
 
81067
  /** Constructor.
 
81068
   *  \param token The token containing the floating point value. */
 
81069
  CT_Float (CTree *token) { AddSon (_value, token); }
 
81070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66325
81071
  static const char *NodeId ();
 
81072
  /** Get the name of the node. Can be compared with NodeId(). */
66326
81073
  const char *NodeName () const { return NodeId (); }
 
81074
  /** Get the number of sons. */
66327
81075
  int Sons () const { return 1; }
 
81076
  /** Get the n-th son.
 
81077
   *  \param n The index of the son.
 
81078
   *  \return The n-th son or NULL. */
66328
81079
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
81080
  /** Replace a son.
 
81081
   *  \param old_son The son to replace.
 
81082
   *  \param new_son The new son. */
66329
81083
  void ReplaceSon (CTree *old_son, CTree *new_son) 
66330
 
   { if (old_son == _value) _value = new_son; }
 
81084
   { CTree::ReplaceSon (_value, old_son, new_son); }
66331
81085
   private:
66332
81086
  typedef CT_Float CCExprResolveExpr;
66333
81087
 
66334
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81088
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66335
81089
 public :
66336
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81090
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66337
81091
  typedef CT_Float CExprResolveExpr;
66338
81092
 
66339
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81093
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66340
81094
 public :
66341
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66342
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81095
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81096
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66343
81097
};
66344
81098
 
 
81099
/** \class CT_Bool CTree.h Puma/CTree.h
 
81100
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
66345
81101
 
66346
 
#line 66347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81102
#line 81103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66347
81103
} // closed Puma
 
81104
class CCExprResolve;
 
81105
class CExprResolve;
66348
81106
class WinIfExists;
66349
81107
class WinImportHandler;
66350
81108
class WinMacros;
66351
 
class CMatchSyntax;
66352
 
class ExtGnu;
 
81109
class WinAsm;
 
81110
class WinDeclSpecs;
 
81111
class WinMemberExplSpec;
 
81112
class WinTypeKeywords;
 
81113
class WinFriend;
66353
81114
class ExtAC;
66354
81115
class ExtACBuilderCoupling;
66355
81116
class ExtACSyntaxCoupling;
66356
81117
class ExtACTree;
66357
81118
class ExtACKeywords;
66358
 
class WinAsm;
66359
 
class WinDeclSpecs;
66360
 
class WinMemberExplSpec;
66361
 
class WinTypeKeywords;
 
81119
class ExtGnu;
66362
81120
class PragmaOnceUnitState;
66363
81121
class PragmaOnce;
66364
 
class CCExprResolve;
66365
 
class CExprResolve;
66366
 
namespace Puma {
66367
 
 
66368
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81122
class CMatchSyntax;
 
81123
namespace Puma {
 
81124
 
 
81125
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81126
 
 
81127
#line 81128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81128
} // closed Puma
 
81129
 
 
81130
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81131
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81132
#include "CCExprResolveH.ah"
 
81133
#endif
 
81134
namespace Puma {
 
81135
 
 
81136
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81137
 
 
81138
#line 81139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81139
} // closed Puma
 
81140
 
 
81141
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81142
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81143
#include "CExprResolveH.ah"
 
81144
#endif
 
81145
namespace Puma {
 
81146
 
 
81147
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66369
81148
class CT_Bool : public CT_Expression {
66370
 
#line 66371 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81149
#line 81150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81150
  friend class ::CCExprResolve;
 
81151
  friend class ::CExprResolve;
66371
81152
  friend class ::WinIfExists;
66372
81153
  friend class ::WinImportHandler;
66373
81154
  friend class ::WinMacros;
66374
 
  friend class ::CMatchSyntax;
66375
 
  friend class ::ExtGnu;
 
81155
  friend class ::WinAsm;
 
81156
  friend class ::WinDeclSpecs;
 
81157
  friend class ::WinMemberExplSpec;
 
81158
  friend class ::WinTypeKeywords;
 
81159
  friend class ::WinFriend;
66376
81160
  friend class ::ExtAC;
66377
81161
  friend class ::ExtACBuilderCoupling;
66378
81162
  friend class ::ExtACSyntaxCoupling;
66379
81163
  friend class ::ExtACTree;
66380
81164
  friend class ::ExtACKeywords;
66381
 
  friend class ::WinAsm;
66382
 
  friend class ::WinDeclSpecs;
66383
 
  friend class ::WinMemberExplSpec;
66384
 
  friend class ::WinTypeKeywords;
 
81165
  friend class ::ExtGnu;
66385
81166
  friend class ::PragmaOnceUnitState;
66386
81167
  friend class ::PragmaOnce;
66387
 
  friend class ::CCExprResolve;
66388
 
  friend class ::CExprResolve;
 
81168
  friend class ::CMatchSyntax;
66389
81169
 
66390
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81170
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66391
81171
 
66392
81172
  CTree *_value;  // CT_Token
66393
81173
 
66394
81174
public:
66395
 
  CT_Bool (CTree *t) : _value (t) {}
 
81175
  /** Constructor.
 
81176
   *  \param token The token containing the boolean value. */
 
81177
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
81178
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66396
81179
  static const char *NodeId ();
 
81180
  /** Get the name of the node. Can be compared with NodeId(). */
66397
81181
  const char *NodeName () const { return NodeId (); }
 
81182
  /** Get the number of sons. */
66398
81183
  int Sons () const { return 1; }
 
81184
  /** Get the n-th son.
 
81185
   *  \param n The index of the son.
 
81186
   *  \return The n-th son or NULL. */
66399
81187
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
81188
  /** Replace a son.
 
81189
   *  \param old_son The son to replace.
 
81190
   *  \param new_son The new son. */
66400
81191
  void ReplaceSon (CTree *old_son, CTree *new_son) 
66401
 
   { if (old_son == _value) _value = new_son; }
 
81192
   { CTree::ReplaceSon (_value, old_son, new_son); }
66402
81193
   private:
66403
81194
  typedef CT_Bool CCExprResolveExpr;
66404
81195
 
66405
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81196
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66406
81197
 public :
66407
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81198
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66408
81199
  typedef CT_Bool CExprResolveExpr;
66409
81200
 
66410
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81201
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66411
81202
 public :
66412
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66413
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81203
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81204
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66414
81205
};
66415
81206
 
 
81207
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
81208
 *  Tree node representing a braced expression, e.g. (a+b). */
66416
81209
 
66417
 
#line 66418 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81210
#line 81211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66418
81211
} // closed Puma
 
81212
class CCExprResolve;
 
81213
class CExprResolve;
66419
81214
class WinIfExists;
66420
81215
class WinImportHandler;
66421
81216
class WinMacros;
66422
 
class CMatchSyntax;
66423
 
class ExtGnu;
 
81217
class WinAsm;
 
81218
class WinDeclSpecs;
 
81219
class WinMemberExplSpec;
 
81220
class WinTypeKeywords;
 
81221
class WinFriend;
66424
81222
class ExtAC;
66425
81223
class ExtACBuilderCoupling;
66426
81224
class ExtACSyntaxCoupling;
66427
81225
class ExtACTree;
66428
81226
class ExtACKeywords;
66429
 
class WinAsm;
66430
 
class WinDeclSpecs;
66431
 
class WinMemberExplSpec;
66432
 
class WinTypeKeywords;
 
81227
class ExtGnu;
66433
81228
class PragmaOnceUnitState;
66434
81229
class PragmaOnce;
66435
 
class CCExprResolve;
66436
 
class CExprResolve;
66437
 
namespace Puma {
66438
 
 
66439
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81230
class CMatchSyntax;
 
81231
namespace Puma {
 
81232
 
 
81233
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81234
 
 
81235
#line 81236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81236
} // closed Puma
 
81237
 
 
81238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81240
#include "CCExprResolveH.ah"
 
81241
#endif
 
81242
namespace Puma {
 
81243
 
 
81244
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81245
 
 
81246
#line 81247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81247
} // closed Puma
 
81248
 
 
81249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81251
#include "CExprResolveH.ah"
 
81252
#endif
 
81253
namespace Puma {
 
81254
 
 
81255
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66440
81256
class CT_BracedExpr : public CT_Expression {
66441
 
#line 66442 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81257
#line 81258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81258
  friend class ::CCExprResolve;
 
81259
  friend class ::CExprResolve;
66442
81260
  friend class ::WinIfExists;
66443
81261
  friend class ::WinImportHandler;
66444
81262
  friend class ::WinMacros;
66445
 
  friend class ::CMatchSyntax;
66446
 
  friend class ::ExtGnu;
 
81263
  friend class ::WinAsm;
 
81264
  friend class ::WinDeclSpecs;
 
81265
  friend class ::WinMemberExplSpec;
 
81266
  friend class ::WinTypeKeywords;
 
81267
  friend class ::WinFriend;
66447
81268
  friend class ::ExtAC;
66448
81269
  friend class ::ExtACBuilderCoupling;
66449
81270
  friend class ::ExtACSyntaxCoupling;
66450
81271
  friend class ::ExtACTree;
66451
81272
  friend class ::ExtACKeywords;
66452
 
  friend class ::WinAsm;
66453
 
  friend class ::WinDeclSpecs;
66454
 
  friend class ::WinMemberExplSpec;
66455
 
  friend class ::WinTypeKeywords;
 
81273
  friend class ::ExtGnu;
66456
81274
  friend class ::PragmaOnceUnitState;
66457
81275
  friend class ::PragmaOnce;
66458
 
  friend class ::CCExprResolve;
66459
 
  friend class ::CExprResolve;
 
81276
  friend class ::CMatchSyntax;
66460
81277
 
66461
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81278
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66462
81279
 
66463
81280
  CTree *sons[3]; // open, expr, close
66464
81281
 
66465
81282
public:
 
81283
  /** Constructor.
 
81284
   *  \param o The opening brace.
 
81285
   *  \param e The enclosed expression.
 
81286
   *  \param c The closing brace. */
66466
81287
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
66467
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
81288
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
66468
81289
  }
 
81290
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66469
81291
  static const char *NodeId ();
 
81292
  /** Get the name of the node. Can be compared with NodeId(). */
66470
81293
  const char *NodeName () const { return NodeId (); }
 
81294
  /** Get the number of sons. */
66471
81295
  int Sons () const { return 3; }
 
81296
  /** Get the n-th son.
 
81297
   *  \param n The index of the son.
 
81298
   *  \return The n-th son or NULL. */
66472
81299
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
81300
  /** Get the enclosed expression. */
66473
81301
  CTree *Expr () const { return sons[1]; }
 
81302
  /** Get the type of the enclosed expression. */
66474
81303
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
81304
  /** Get the value of the enclosed expression. */
66475
81305
  CExprValue *Value () const { return Expr ()->Value (); }
 
81306
  /** Get the semantic value object. */
66476
81307
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
81308
  /** Replace a son.
 
81309
   *  \param old_son The son to replace.
 
81310
   *  \param new_son The new son. */
66477
81311
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66478
81312
    CTree::ReplaceSon (sons, 3, old_son, new_son);
66479
81313
  }
66480
81314
   private:
66481
81315
  typedef CT_BracedExpr CCExprResolveExpr;
66482
81316
 
66483
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81317
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66484
81318
 public :
66485
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81319
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66486
81320
  typedef CT_BracedExpr CExprResolveExpr;
66487
81321
 
66488
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81322
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66489
81323
 public :
66490
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66491
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81324
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81325
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66492
81326
};
66493
81327
 
 
81328
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
81329
 *  Base class for all tree nodes representing a name. */
66494
81330
 
66495
 
#line 66496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81331
#line 81332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66496
81332
} // closed Puma
 
81333
class CCExprResolve;
 
81334
class CExprResolve;
66497
81335
class WinIfExists;
66498
81336
class WinImportHandler;
66499
81337
class WinMacros;
66500
 
class CMatchSyntax;
66501
 
class ExtGnu;
 
81338
class WinAsm;
 
81339
class WinDeclSpecs;
 
81340
class WinMemberExplSpec;
 
81341
class WinTypeKeywords;
 
81342
class WinFriend;
66502
81343
class ExtAC;
66503
81344
class ExtACBuilderCoupling;
66504
81345
class ExtACSyntaxCoupling;
66505
81346
class ExtACTree;
66506
81347
class ExtACKeywords;
66507
 
class WinAsm;
66508
 
class WinDeclSpecs;
66509
 
class WinMemberExplSpec;
66510
 
class WinTypeKeywords;
 
81348
class ExtGnu;
66511
81349
class PragmaOnceUnitState;
66512
81350
class PragmaOnce;
66513
 
class CCExprResolve;
66514
 
class CExprResolve;
66515
 
namespace Puma {
66516
 
 
66517
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81351
class CMatchSyntax;
 
81352
namespace Puma {
 
81353
 
 
81354
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81355
 
 
81356
#line 81357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81357
} // closed Puma
 
81358
 
 
81359
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81360
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81361
#include "CCExprResolveH.ah"
 
81362
#endif
 
81363
namespace Puma {
 
81364
 
 
81365
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81366
 
 
81367
#line 81368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81368
} // closed Puma
 
81369
 
 
81370
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81371
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81372
#include "CExprResolveH.ah"
 
81373
#endif
 
81374
namespace Puma {
 
81375
 
 
81376
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66518
81377
class CT_SimpleName : public CT_List, public Printable, 
66519
81378
                      public CSemValue, public CSemObject {
66520
 
#line 66521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81379
#line 81380 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81380
  friend class ::CCExprResolve;
 
81381
  friend class ::CExprResolve;
66521
81382
  friend class ::WinIfExists;
66522
81383
  friend class ::WinImportHandler;
66523
81384
  friend class ::WinMacros;
66524
 
  friend class ::CMatchSyntax;
66525
 
  friend class ::ExtGnu;
 
81385
  friend class ::WinAsm;
 
81386
  friend class ::WinDeclSpecs;
 
81387
  friend class ::WinMemberExplSpec;
 
81388
  friend class ::WinTypeKeywords;
 
81389
  friend class ::WinFriend;
66526
81390
  friend class ::ExtAC;
66527
81391
  friend class ::ExtACBuilderCoupling;
66528
81392
  friend class ::ExtACSyntaxCoupling;
66529
81393
  friend class ::ExtACTree;
66530
81394
  friend class ::ExtACKeywords;
66531
 
  friend class ::WinAsm;
66532
 
  friend class ::WinDeclSpecs;
66533
 
  friend class ::WinMemberExplSpec;
66534
 
  friend class ::WinTypeKeywords;
 
81395
  friend class ::ExtGnu;
66535
81396
  friend class ::PragmaOnceUnitState;
66536
81397
  friend class ::PragmaOnce;
66537
 
  friend class ::CCExprResolve;
66538
 
  friend class ::CExprResolve;
 
81398
  friend class ::CMatchSyntax;
66539
81399
 
66540
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81400
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66541
81401
 
66542
81402
protected:
 
81403
  /** Constructor.
 
81404
   *  \param size The number of sub-names (for qualified names). */
66543
81405
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
81406
  /** Constructor.
 
81407
   *  \param size The number of sub-names (for qualified names). 
 
81408
   *  \param properties Additional name list properties (for root qualified names). */
66544
81409
  CT_SimpleName (int size, int properties) : 
66545
81410
    CT_List (size, 2, properties) {}
66546
81411
  
66547
81412
public:
 
81413
  /** Constructor.
 
81414
   *  \param n The sub-tree containing the name. */
66548
81415
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
81416
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66549
81417
  static const char *NodeId ();
 
81418
  /** Get the name of the node. Can be compared with NodeId(). */
66550
81419
  const char *NodeName () const { return NodeId (); }
 
81420
  /** Get the string containing the name. */
66551
81421
  virtual const char *Text () const 
66552
81422
   { return Son (Sons ()-1)->token ()->text (); }
 
81423
  /** Print the name on the given stream. 
 
81424
   *  \param os The output stream. */
66553
81425
  virtual void print (ostream &os) const { os << Text (); }
 
81426
  /** Get this. */
66554
81427
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
81428
  /** Get the type of the entity represented by the name. */
66555
81429
  CTypeInfo *Type () const { return type; }
 
81430
  /** Get the value of the entity represented by the name. */ 
66556
81431
  CExprValue *Value () const { return value; }
 
81432
  /** Get the sematic value information object. */
66557
81433
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
81434
  /** Get the sematic information object. */
66558
81435
  CSemObject *SemObject () const { return (CSemObject*)this; }
66559
 
  // special new / delete with reusing memory
66560
 
  void *operator new (size_t);
66561
 
  void  operator delete (void *);
66562
 
  // classification function
 
81436
  /** Get this. */
66563
81437
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
81438
 
 
81439
public:
 
81440
  /** Own new operator reusing memory. */
 
81441
  void *operator new (size_t);
 
81442
  /** Own delete operator. */
 
81443
  void operator delete (void *);
66564
81444
   private:
66565
81445
  typedef CT_SimpleName CCExprResolveExpr;
66566
81446
 
66567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81447
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66568
81448
 public :
66569
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81449
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66570
81450
  typedef CT_SimpleName CExprResolveExpr;
66571
81451
 
66572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81452
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66573
81453
 public :
66574
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66575
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81454
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81455
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66576
81456
};
66577
81457
 
 
81458
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
81459
 *  Base class for tree nodes representing a special name, like destructor names. */
66578
81460
 
66579
 
#line 66580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81461
#line 81462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66580
81462
} // closed Puma
 
81463
class CCExprResolve;
 
81464
class CExprResolve;
66581
81465
class WinIfExists;
66582
81466
class WinImportHandler;
66583
81467
class WinMacros;
66584
 
class CMatchSyntax;
66585
 
class ExtGnu;
 
81468
class WinAsm;
 
81469
class WinDeclSpecs;
 
81470
class WinMemberExplSpec;
 
81471
class WinTypeKeywords;
 
81472
class WinFriend;
66586
81473
class ExtAC;
66587
81474
class ExtACBuilderCoupling;
66588
81475
class ExtACSyntaxCoupling;
66589
81476
class ExtACTree;
66590
81477
class ExtACKeywords;
66591
 
class WinAsm;
66592
 
class WinDeclSpecs;
66593
 
class WinMemberExplSpec;
66594
 
class WinTypeKeywords;
 
81478
class ExtGnu;
66595
81479
class PragmaOnceUnitState;
66596
81480
class PragmaOnce;
66597
 
class CCExprResolve;
66598
 
class CExprResolve;
66599
 
namespace Puma {
66600
 
 
66601
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81481
class CMatchSyntax;
 
81482
namespace Puma {
 
81483
 
 
81484
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81485
 
 
81486
#line 81487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81487
} // closed Puma
 
81488
 
 
81489
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81490
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81491
#include "CCExprResolveH.ah"
 
81492
#endif
 
81493
namespace Puma {
 
81494
 
 
81495
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81496
 
 
81497
#line 81498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81498
} // closed Puma
 
81499
 
 
81500
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81501
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81502
#include "CExprResolveH.ah"
 
81503
#endif
 
81504
namespace Puma {
 
81505
 
 
81506
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66602
81507
class CT_SpecialName : public CT_SimpleName {
66603
 
#line 66604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81508
#line 81509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81509
  friend class ::CCExprResolve;
 
81510
  friend class ::CExprResolve;
66604
81511
  friend class ::WinIfExists;
66605
81512
  friend class ::WinImportHandler;
66606
81513
  friend class ::WinMacros;
66607
 
  friend class ::CMatchSyntax;
66608
 
  friend class ::ExtGnu;
 
81514
  friend class ::WinAsm;
 
81515
  friend class ::WinDeclSpecs;
 
81516
  friend class ::WinMemberExplSpec;
 
81517
  friend class ::WinTypeKeywords;
 
81518
  friend class ::WinFriend;
66609
81519
  friend class ::ExtAC;
66610
81520
  friend class ::ExtACBuilderCoupling;
66611
81521
  friend class ::ExtACSyntaxCoupling;
66612
81522
  friend class ::ExtACTree;
66613
81523
  friend class ::ExtACKeywords;
66614
 
  friend class ::WinAsm;
66615
 
  friend class ::WinDeclSpecs;
66616
 
  friend class ::WinMemberExplSpec;
66617
 
  friend class ::WinTypeKeywords;
 
81524
  friend class ::ExtGnu;
66618
81525
  friend class ::PragmaOnceUnitState;
66619
81526
  friend class ::PragmaOnce;
66620
 
  friend class ::CCExprResolve;
66621
 
  friend class ::CExprResolve;
 
81527
  friend class ::CMatchSyntax;
66622
81528
 
66623
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81529
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66624
81530
 
66625
81531
  char *_name;
66626
81532
  
66627
81533
protected:
 
81534
  /** Constructor.
 
81535
   *  \param size The number of sub-names (for qualified names). */
66628
81536
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
66629
81537
  
66630
81538
public:
 
81539
  /** Destructor. Deletes the name string. */
66631
81540
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
81541
  /** Get the string containing the name. */
66632
81542
  const char *Text () const { return _name; }
 
81543
  /** Set the name. The name is copied.
 
81544
   *  \param n The name. */
66633
81545
  void Name (const char *n) { 
66634
81546
    if (n) { 
66635
81547
      _name = new char[strlen(n) + 1];
66636
81548
      strcpy (_name,n);
66637
81549
    }
66638
81550
  }
66639
 
  // special new / delete with reusing memory
 
81551
 
 
81552
public:
 
81553
  /** Own new operator reusing memory. */
66640
81554
  void *operator new (size_t);
66641
 
  void  operator delete (void *);
 
81555
  /** Own delete operator. */
 
81556
  void operator delete (void *);
66642
81557
   private:
66643
81558
  typedef CT_SpecialName CCExprResolveExpr;
66644
81559
 
66645
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81560
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66646
81561
 public :
66647
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81562
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66648
81563
  typedef CT_SpecialName CExprResolveExpr;
66649
81564
 
66650
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81565
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66651
81566
 public :
66652
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66653
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81567
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81568
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66654
81569
};
66655
81570
 
 
81571
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
81572
 *  Tree node representing a private name. Private names 
 
81573
 *  are generated names for abstract declarators etc. */
66656
81574
 
66657
 
#line 66658 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81575
#line 81576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66658
81576
} // closed Puma
 
81577
class CCExprResolve;
 
81578
class CExprResolve;
66659
81579
class WinIfExists;
66660
81580
class WinImportHandler;
66661
81581
class WinMacros;
66662
 
class CMatchSyntax;
66663
 
class ExtGnu;
 
81582
class WinAsm;
 
81583
class WinDeclSpecs;
 
81584
class WinMemberExplSpec;
 
81585
class WinTypeKeywords;
 
81586
class WinFriend;
66664
81587
class ExtAC;
66665
81588
class ExtACBuilderCoupling;
66666
81589
class ExtACSyntaxCoupling;
66667
81590
class ExtACTree;
66668
81591
class ExtACKeywords;
66669
 
class WinAsm;
66670
 
class WinDeclSpecs;
66671
 
class WinMemberExplSpec;
66672
 
class WinTypeKeywords;
 
81592
class ExtGnu;
66673
81593
class PragmaOnceUnitState;
66674
81594
class PragmaOnce;
66675
 
class CCExprResolve;
66676
 
class CExprResolve;
66677
 
namespace Puma {
66678
 
 
66679
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81595
class CMatchSyntax;
 
81596
namespace Puma {
 
81597
 
 
81598
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81599
 
 
81600
#line 81601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81601
} // closed Puma
 
81602
 
 
81603
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81604
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81605
#include "CCExprResolveH.ah"
 
81606
#endif
 
81607
namespace Puma {
 
81608
 
 
81609
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81610
 
 
81611
#line 81612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81612
} // closed Puma
 
81613
 
 
81614
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81615
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81616
#include "CExprResolveH.ah"
 
81617
#endif
 
81618
namespace Puma {
 
81619
 
 
81620
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66680
81621
class CT_PrivateName : public CT_SpecialName {
66681
 
#line 66682 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81622
#line 81623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81623
  friend class ::CCExprResolve;
 
81624
  friend class ::CExprResolve;
66682
81625
  friend class ::WinIfExists;
66683
81626
  friend class ::WinImportHandler;
66684
81627
  friend class ::WinMacros;
66685
 
  friend class ::CMatchSyntax;
66686
 
  friend class ::ExtGnu;
 
81628
  friend class ::WinAsm;
 
81629
  friend class ::WinDeclSpecs;
 
81630
  friend class ::WinMemberExplSpec;
 
81631
  friend class ::WinTypeKeywords;
 
81632
  friend class ::WinFriend;
66687
81633
  friend class ::ExtAC;
66688
81634
  friend class ::ExtACBuilderCoupling;
66689
81635
  friend class ::ExtACSyntaxCoupling;
66690
81636
  friend class ::ExtACTree;
66691
81637
  friend class ::ExtACKeywords;
66692
 
  friend class ::WinAsm;
66693
 
  friend class ::WinDeclSpecs;
66694
 
  friend class ::WinMemberExplSpec;
66695
 
  friend class ::WinTypeKeywords;
 
81638
  friend class ::ExtGnu;
66696
81639
  friend class ::PragmaOnceUnitState;
66697
81640
  friend class ::PragmaOnce;
66698
 
  friend class ::CCExprResolve;
66699
 
  friend class ::CExprResolve;
 
81641
  friend class ::CMatchSyntax;
66700
81642
 
66701
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81643
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66702
81644
 
66703
81645
public:
 
81646
  /** Constructor.
 
81647
   *  \param n The private (generated) name. */
66704
81648
  CT_PrivateName (const char *n) { Name (n); }
 
81649
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66705
81650
  static const char *NodeId ();
 
81651
  /** Get the name of the node. Can be compared with NodeId(). */
66706
81652
  const char *NodeName () const { return NodeId (); }
 
81653
  /** Get the number of sons. */
66707
81654
  int Sons () const { return 0; }
 
81655
  /** Get the n-th son.
 
81656
   *  \param n The index of the son.
 
81657
   *  \return The n-th son or NULL. */
66708
81658
  CTree *Son (int n) const { return (CTree*)0; }
66709
 
  // special new / delete with reusing memory
 
81659
 
 
81660
public:
 
81661
  /** Own new operator reusing memory. */
66710
81662
  void *operator new (size_t);
66711
 
  void  operator delete (void *);
 
81663
  /** Own delete operator. */
 
81664
  void operator delete (void *);
66712
81665
   private:
66713
81666
  typedef CT_PrivateName CCExprResolveExpr;
66714
81667
 
66715
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81668
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66716
81669
 public :
66717
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81670
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66718
81671
  typedef CT_PrivateName CExprResolveExpr;
66719
81672
 
66720
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81673
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66721
81674
 public :
66722
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66723
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81675
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81676
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66724
81677
};
66725
81678
 
 
81679
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
81680
 *  Tree node representing a destructor name. */
66726
81681
 
66727
 
#line 66728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81682
#line 81683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66728
81683
} // closed Puma
 
81684
class CCExprResolve;
 
81685
class CExprResolve;
66729
81686
class WinIfExists;
66730
81687
class WinImportHandler;
66731
81688
class WinMacros;
66732
 
class CMatchSyntax;
66733
 
class ExtGnu;
 
81689
class WinAsm;
 
81690
class WinDeclSpecs;
 
81691
class WinMemberExplSpec;
 
81692
class WinTypeKeywords;
 
81693
class WinFriend;
66734
81694
class ExtAC;
66735
81695
class ExtACBuilderCoupling;
66736
81696
class ExtACSyntaxCoupling;
66737
81697
class ExtACTree;
66738
81698
class ExtACKeywords;
66739
 
class WinAsm;
66740
 
class WinDeclSpecs;
66741
 
class WinMemberExplSpec;
66742
 
class WinTypeKeywords;
 
81699
class ExtGnu;
66743
81700
class PragmaOnceUnitState;
66744
81701
class PragmaOnce;
66745
 
class CCExprResolve;
66746
 
class CExprResolve;
66747
 
namespace Puma {
66748
 
 
66749
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81702
class CMatchSyntax;
 
81703
namespace Puma {
 
81704
 
 
81705
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81706
 
 
81707
#line 81708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81708
} // closed Puma
 
81709
 
 
81710
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81711
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81712
#include "CCExprResolveH.ah"
 
81713
#endif
 
81714
namespace Puma {
 
81715
 
 
81716
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81717
 
 
81718
#line 81719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81719
} // closed Puma
 
81720
 
 
81721
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81722
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81723
#include "CExprResolveH.ah"
 
81724
#endif
 
81725
namespace Puma {
 
81726
 
 
81727
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66750
81728
class CT_DestructorName : public CT_SpecialName {
66751
 
#line 66752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81729
#line 81730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81730
  friend class ::CCExprResolve;
 
81731
  friend class ::CExprResolve;
66752
81732
  friend class ::WinIfExists;
66753
81733
  friend class ::WinImportHandler;
66754
81734
  friend class ::WinMacros;
66755
 
  friend class ::CMatchSyntax;
66756
 
  friend class ::ExtGnu;
 
81735
  friend class ::WinAsm;
 
81736
  friend class ::WinDeclSpecs;
 
81737
  friend class ::WinMemberExplSpec;
 
81738
  friend class ::WinTypeKeywords;
 
81739
  friend class ::WinFriend;
66757
81740
  friend class ::ExtAC;
66758
81741
  friend class ::ExtACBuilderCoupling;
66759
81742
  friend class ::ExtACSyntaxCoupling;
66760
81743
  friend class ::ExtACTree;
66761
81744
  friend class ::ExtACKeywords;
66762
 
  friend class ::WinAsm;
66763
 
  friend class ::WinDeclSpecs;
66764
 
  friend class ::WinMemberExplSpec;
66765
 
  friend class ::WinTypeKeywords;
 
81745
  friend class ::ExtGnu;
66766
81746
  friend class ::PragmaOnceUnitState;
66767
81747
  friend class ::PragmaOnce;
66768
 
  friend class ::CCExprResolve;
66769
 
  friend class ::CExprResolve;
 
81748
  friend class ::CMatchSyntax;
66770
81749
 
66771
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81750
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66772
81751
 
66773
81752
public:
66774
 
  CT_DestructorName (CTree *, CTree *);
 
81753
  /** Constructor.
 
81754
   *  \param t The tilde operator.
 
81755
   *  \param n The class name. */
 
81756
  CT_DestructorName (CTree *t, CTree *n);
 
81757
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66775
81758
  static const char *NodeId ();
 
81759
  /** Get the name of the node. Can be compared with NodeId(). */
66776
81760
  const char *NodeName () const { return NodeId (); }
66777
 
  // special new / delete with reusing memory
 
81761
 
 
81762
public:
 
81763
  /** Own new operator reusing memory. */
66778
81764
  void *operator new (size_t);
66779
 
  void  operator delete (void *);
 
81765
  /** Own delete operator. */
 
81766
  void operator delete (void *);
66780
81767
   private:
66781
81768
  typedef CT_DestructorName CCExprResolveExpr;
66782
81769
 
66783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81770
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66784
81771
 public :
66785
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81772
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66786
81773
  typedef CT_DestructorName CExprResolveExpr;
66787
81774
 
66788
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81775
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66789
81776
 public :
66790
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66791
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81777
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81778
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66792
81779
};
66793
81780
 
 
81781
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
81782
 *  Tree node representing a template name. */
66794
81783
 
66795
 
#line 66796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81784
#line 81785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66796
81785
} // closed Puma
 
81786
class CCExprResolve;
 
81787
class CExprResolve;
66797
81788
class WinIfExists;
66798
81789
class WinImportHandler;
66799
81790
class WinMacros;
66800
 
class CMatchSyntax;
66801
 
class ExtGnu;
 
81791
class WinAsm;
 
81792
class WinDeclSpecs;
 
81793
class WinMemberExplSpec;
 
81794
class WinTypeKeywords;
 
81795
class WinFriend;
66802
81796
class ExtAC;
66803
81797
class ExtACBuilderCoupling;
66804
81798
class ExtACSyntaxCoupling;
66805
81799
class ExtACTree;
66806
81800
class ExtACKeywords;
66807
 
class WinAsm;
66808
 
class WinDeclSpecs;
66809
 
class WinMemberExplSpec;
66810
 
class WinTypeKeywords;
 
81801
class ExtGnu;
66811
81802
class PragmaOnceUnitState;
66812
81803
class PragmaOnce;
66813
 
class CCExprResolve;
66814
 
class CExprResolve;
66815
 
namespace Puma {
66816
 
 
66817
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81804
class CMatchSyntax;
 
81805
namespace Puma {
 
81806
 
 
81807
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81808
 
 
81809
#line 81810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81810
} // closed Puma
 
81811
 
 
81812
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81813
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81814
#include "CCExprResolveH.ah"
 
81815
#endif
 
81816
namespace Puma {
 
81817
 
 
81818
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81819
 
 
81820
#line 81821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81821
} // closed Puma
 
81822
 
 
81823
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81824
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81825
#include "CExprResolveH.ah"
 
81826
#endif
 
81827
namespace Puma {
 
81828
 
 
81829
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66818
81830
class CT_TemplateName : public CT_SpecialName {
66819
 
#line 66820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81831
#line 81832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81832
  friend class ::CCExprResolve;
 
81833
  friend class ::CExprResolve;
66820
81834
  friend class ::WinIfExists;
66821
81835
  friend class ::WinImportHandler;
66822
81836
  friend class ::WinMacros;
66823
 
  friend class ::CMatchSyntax;
66824
 
  friend class ::ExtGnu;
 
81837
  friend class ::WinAsm;
 
81838
  friend class ::WinDeclSpecs;
 
81839
  friend class ::WinMemberExplSpec;
 
81840
  friend class ::WinTypeKeywords;
 
81841
  friend class ::WinFriend;
66825
81842
  friend class ::ExtAC;
66826
81843
  friend class ::ExtACBuilderCoupling;
66827
81844
  friend class ::ExtACSyntaxCoupling;
66828
81845
  friend class ::ExtACTree;
66829
81846
  friend class ::ExtACKeywords;
66830
 
  friend class ::WinAsm;
66831
 
  friend class ::WinDeclSpecs;
66832
 
  friend class ::WinMemberExplSpec;
66833
 
  friend class ::WinTypeKeywords;
 
81847
  friend class ::ExtGnu;
66834
81848
  friend class ::PragmaOnceUnitState;
66835
81849
  friend class ::PragmaOnce;
66836
 
  friend class ::CCExprResolve;
66837
 
  friend class ::CExprResolve;
 
81850
  friend class ::CMatchSyntax;
66838
81851
 
66839
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81852
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66840
81853
 
66841
81854
public:
 
81855
  /** Constructor.
 
81856
   *  \param n The template class or function name.
 
81857
   *  \param a The template argument list. */
66842
81858
  CT_TemplateName (CTree *n, CTree *a) 
66843
81859
   { AddSon (n); AddSon (a); }
 
81860
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66844
81861
  static const char *NodeId ();
 
81862
  /** Get the name of the node. Can be compared with NodeId(). */
66845
81863
  const char *NodeName () const { return NodeId (); }
 
81864
  /** Get the template argument list. */
66846
81865
  CT_TemplateArgList *Arguments () const 
66847
81866
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
81867
  /** Get the template class or function name. */
66848
81868
  CT_SimpleName *TemplateName () const 
66849
81869
   { return (CT_SimpleName*)Son (Sons ()-2); }
66850
81870
  // may change in the future
66851
81871
  const char *Text () const { return TemplateName ()->Text (); }
66852
 
  // special new / delete with reusing memory
 
81872
 
 
81873
public:
 
81874
  /** Own new operator reusing memory. */
66853
81875
  void *operator new (size_t);
66854
 
  void  operator delete (void *);
 
81876
  /** Own delete operator. */
 
81877
  void operator delete (void *);
66855
81878
   private:
66856
81879
  typedef CT_TemplateName CCExprResolveExpr;
66857
81880
 
66858
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
81881
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66859
81882
 public :
66860
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
81883
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66861
81884
  typedef CT_TemplateName CExprResolveExpr;
66862
81885
 
66863
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
81886
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66864
81887
 public :
66865
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66866
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81888
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
81889
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66867
81890
};
66868
81891
 
 
81892
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
81893
 *  Tree node representing the name of an overloaded operator. */
66869
81894
 
66870
 
#line 66871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81895
#line 81896 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66871
81896
} // closed Puma
 
81897
class CCExprResolve;
 
81898
class CExprResolve;
66872
81899
class WinIfExists;
66873
81900
class WinImportHandler;
66874
81901
class WinMacros;
66875
 
class CMatchSyntax;
66876
 
class ExtGnu;
 
81902
class WinAsm;
 
81903
class WinDeclSpecs;
 
81904
class WinMemberExplSpec;
 
81905
class WinTypeKeywords;
 
81906
class WinFriend;
66877
81907
class ExtAC;
66878
81908
class ExtACBuilderCoupling;
66879
81909
class ExtACSyntaxCoupling;
66880
81910
class ExtACTree;
66881
81911
class ExtACKeywords;
66882
 
class WinAsm;
66883
 
class WinDeclSpecs;
66884
 
class WinMemberExplSpec;
66885
 
class WinTypeKeywords;
 
81912
class ExtGnu;
66886
81913
class PragmaOnceUnitState;
66887
81914
class PragmaOnce;
66888
 
class CCExprResolve;
66889
 
class CExprResolve;
66890
 
namespace Puma {
66891
 
 
66892
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81915
class CMatchSyntax;
 
81916
namespace Puma {
 
81917
 
 
81918
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81919
 
 
81920
#line 81921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81921
} // closed Puma
 
81922
 
 
81923
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81924
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
81925
#include "CCExprResolveH.ah"
 
81926
#endif
 
81927
namespace Puma {
 
81928
 
 
81929
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81930
 
 
81931
#line 81932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81932
} // closed Puma
 
81933
 
 
81934
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81935
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
81936
#include "CExprResolveH.ah"
 
81937
#endif
 
81938
namespace Puma {
 
81939
 
 
81940
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66893
81941
class CT_OperatorName : public CT_SpecialName {
66894
 
#line 66895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
81942
#line 81943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
81943
  friend class ::CCExprResolve;
 
81944
  friend class ::CExprResolve;
66895
81945
  friend class ::WinIfExists;
66896
81946
  friend class ::WinImportHandler;
66897
81947
  friend class ::WinMacros;
66898
 
  friend class ::CMatchSyntax;
66899
 
  friend class ::ExtGnu;
 
81948
  friend class ::WinAsm;
 
81949
  friend class ::WinDeclSpecs;
 
81950
  friend class ::WinMemberExplSpec;
 
81951
  friend class ::WinTypeKeywords;
 
81952
  friend class ::WinFriend;
66900
81953
  friend class ::ExtAC;
66901
81954
  friend class ::ExtACBuilderCoupling;
66902
81955
  friend class ::ExtACSyntaxCoupling;
66903
81956
  friend class ::ExtACTree;
66904
81957
  friend class ::ExtACKeywords;
66905
 
  friend class ::WinAsm;
66906
 
  friend class ::WinDeclSpecs;
66907
 
  friend class ::WinMemberExplSpec;
66908
 
  friend class ::WinTypeKeywords;
 
81958
  friend class ::ExtGnu;
66909
81959
  friend class ::PragmaOnceUnitState;
66910
81960
  friend class ::PragmaOnce;
66911
 
  friend class ::CCExprResolve;
66912
 
  friend class ::CExprResolve;
 
81961
  friend class ::CMatchSyntax;
66913
81962
 
66914
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81963
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66915
81964
 
66916
81965
  int _oper;
66917
81966
 
66918
81967
public:
66919
 
  enum { // complex operators
66920
 
    FCT_CALL = -100,
66921
 
    SUBSCRIPT,
66922
 
    NEW_ARRAY,
66923
 
    DEL_ARRAY
 
81968
  /** Complex operator types. */
 
81969
  enum { 
 
81970
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
81971
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
81972
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
81973
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
66924
81974
  };
66925
81975
 
66926
81976
public:
66927
 
  CT_OperatorName (CTree *);
66928
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
81977
  /** Constructor.
 
81978
   *  \param op The token containing the operator. */
 
81979
  CT_OperatorName (CTree *op);
 
81980
  /** Constructor.
 
81981
   *  \param f The operator function keyword 'operator'.
 
81982
   *  \param op The token containing the operator. 
 
81983
   *  \param o The token of '[' or '('.
 
81984
   *  \param c The token of ']' or ')'. */
 
81985
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
81986
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66929
81987
  static const char *NodeId ();
 
81988
  /** Get the name of the node. Can be compared with NodeId(). */
66930
81989
  const char *NodeName () const { return NodeId (); }
 
81990
  /** Get the operator type (either the token type or one of 
 
81991
   *  the complex operator types). */
66931
81992
  int Operator () const { return _oper; }
66932
 
  // special new / delete with reusing memory
 
81993
 
 
81994
public:
 
81995
  /** Own new operator reusing memory. */
66933
81996
  void *operator new (size_t);
66934
 
  void  operator delete (void *);
 
81997
  /** Own delete operator. */
 
81998
  void operator delete (void *);
66935
81999
   private:
66936
82000
  typedef CT_OperatorName CCExprResolveExpr;
66937
82001
 
66938
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82002
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66939
82003
 public :
66940
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82004
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66941
82005
  typedef CT_OperatorName CExprResolveExpr;
66942
82006
 
66943
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82007
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66944
82008
 public :
66945
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66946
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82009
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82010
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66947
82011
};
66948
82012
 
 
82013
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
82014
 *  Tree node representing the name of a conversion function. */
66949
82015
 
66950
 
#line 66951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82016
#line 82017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
66951
82017
} // closed Puma
 
82018
class CCExprResolve;
 
82019
class CExprResolve;
66952
82020
class WinIfExists;
66953
82021
class WinImportHandler;
66954
82022
class WinMacros;
66955
 
class CMatchSyntax;
66956
 
class ExtGnu;
 
82023
class WinAsm;
 
82024
class WinDeclSpecs;
 
82025
class WinMemberExplSpec;
 
82026
class WinTypeKeywords;
 
82027
class WinFriend;
66957
82028
class ExtAC;
66958
82029
class ExtACBuilderCoupling;
66959
82030
class ExtACSyntaxCoupling;
66960
82031
class ExtACTree;
66961
82032
class ExtACKeywords;
66962
 
class WinAsm;
66963
 
class WinDeclSpecs;
66964
 
class WinMemberExplSpec;
66965
 
class WinTypeKeywords;
 
82033
class ExtGnu;
66966
82034
class PragmaOnceUnitState;
66967
82035
class PragmaOnce;
66968
 
class CCExprResolve;
66969
 
class CExprResolve;
66970
 
namespace Puma {
66971
 
 
66972
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82036
class CMatchSyntax;
 
82037
namespace Puma {
 
82038
 
 
82039
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82040
 
 
82041
#line 82042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82042
} // closed Puma
 
82043
 
 
82044
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82045
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82046
#include "CCExprResolveH.ah"
 
82047
#endif
 
82048
namespace Puma {
 
82049
 
 
82050
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82051
 
 
82052
#line 82053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82053
} // closed Puma
 
82054
 
 
82055
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82056
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82057
#include "CExprResolveH.ah"
 
82058
#endif
 
82059
namespace Puma {
 
82060
 
 
82061
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66973
82062
class CT_ConversionName : public CT_SpecialName {
66974
 
#line 66975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82063
#line 82064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82064
  friend class ::CCExprResolve;
 
82065
  friend class ::CExprResolve;
66975
82066
  friend class ::WinIfExists;
66976
82067
  friend class ::WinImportHandler;
66977
82068
  friend class ::WinMacros;
66978
 
  friend class ::CMatchSyntax;
66979
 
  friend class ::ExtGnu;
 
82069
  friend class ::WinAsm;
 
82070
  friend class ::WinDeclSpecs;
 
82071
  friend class ::WinMemberExplSpec;
 
82072
  friend class ::WinTypeKeywords;
 
82073
  friend class ::WinFriend;
66980
82074
  friend class ::ExtAC;
66981
82075
  friend class ::ExtACBuilderCoupling;
66982
82076
  friend class ::ExtACSyntaxCoupling;
66983
82077
  friend class ::ExtACTree;
66984
82078
  friend class ::ExtACKeywords;
66985
 
  friend class ::WinAsm;
66986
 
  friend class ::WinDeclSpecs;
66987
 
  friend class ::WinMemberExplSpec;
66988
 
  friend class ::WinTypeKeywords;
 
82079
  friend class ::ExtGnu;
66989
82080
  friend class ::PragmaOnceUnitState;
66990
82081
  friend class ::PragmaOnce;
66991
 
  friend class ::CCExprResolve;
66992
 
  friend class ::CExprResolve;
 
82082
  friend class ::CMatchSyntax;
66993
82083
 
66994
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82084
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66995
82085
 
66996
82086
public:
66997
 
  CT_ConversionName (CTree *, CTree *);
 
82087
  /** Constructor.
 
82088
   *  \param f The operator function keyword 'operator'.
 
82089
   *  \param t The sub-tree containing the conversion type. */
 
82090
  CT_ConversionName (CTree *f, CTree *t);
 
82091
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66998
82092
  static const char *NodeId ();
 
82093
  /** Get the name of the node. Can be compared with NodeId(). */
66999
82094
  const char *NodeName () const { return NodeId (); }
 
82095
  /** Get the conversion type. */
67000
82096
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
67001
 
  // special new / delete with reusing memory
 
82097
 
 
82098
public:
 
82099
  /** Own new operator reusing memory. */
67002
82100
  void *operator new (size_t);
67003
 
  void  operator delete (void *);
 
82101
  /** Own delete operator. */
 
82102
  void operator delete (void *);
67004
82103
   private:
67005
82104
  typedef CT_ConversionName CCExprResolveExpr;
67006
82105
 
67007
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82106
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67008
82107
 public :
67009
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82108
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67010
82109
  typedef CT_ConversionName CExprResolveExpr;
67011
82110
 
67012
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82111
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67013
82112
 public :
67014
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67015
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82113
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82114
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67016
82115
};
67017
82116
 
 
82117
/** \class CT_QualName CTree.h Puma/CTree.h
 
82118
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
67018
82119
 
67019
 
#line 67020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82120
#line 82121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67020
82121
} // closed Puma
 
82122
class CCExprResolve;
 
82123
class CExprResolve;
67021
82124
class WinIfExists;
67022
82125
class WinImportHandler;
67023
82126
class WinMacros;
67024
 
class CMatchSyntax;
67025
 
class ExtGnu;
 
82127
class WinAsm;
 
82128
class WinDeclSpecs;
 
82129
class WinMemberExplSpec;
 
82130
class WinTypeKeywords;
 
82131
class WinFriend;
67026
82132
class ExtAC;
67027
82133
class ExtACBuilderCoupling;
67028
82134
class ExtACSyntaxCoupling;
67029
82135
class ExtACTree;
67030
82136
class ExtACKeywords;
67031
 
class WinAsm;
67032
 
class WinDeclSpecs;
67033
 
class WinMemberExplSpec;
67034
 
class WinTypeKeywords;
 
82137
class ExtGnu;
67035
82138
class PragmaOnceUnitState;
67036
82139
class PragmaOnce;
67037
 
class CCExprResolve;
67038
 
class CExprResolve;
67039
 
namespace Puma {
67040
 
 
67041
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82140
class CMatchSyntax;
 
82141
namespace Puma {
 
82142
 
 
82143
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82144
 
 
82145
#line 82146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82146
} // closed Puma
 
82147
 
 
82148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82150
#include "CCExprResolveH.ah"
 
82151
#endif
 
82152
namespace Puma {
 
82153
 
 
82154
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82155
 
 
82156
#line 82157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82157
} // closed Puma
 
82158
 
 
82159
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82160
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82161
#include "CExprResolveH.ah"
 
82162
#endif
 
82163
namespace Puma {
 
82164
 
 
82165
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67042
82166
class CT_QualName : public CT_SimpleName {
67043
 
#line 67044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82167
#line 82168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82168
  friend class ::CCExprResolve;
 
82169
  friend class ::CExprResolve;
67044
82170
  friend class ::WinIfExists;
67045
82171
  friend class ::WinImportHandler;
67046
82172
  friend class ::WinMacros;
67047
 
  friend class ::CMatchSyntax;
67048
 
  friend class ::ExtGnu;
 
82173
  friend class ::WinAsm;
 
82174
  friend class ::WinDeclSpecs;
 
82175
  friend class ::WinMemberExplSpec;
 
82176
  friend class ::WinTypeKeywords;
 
82177
  friend class ::WinFriend;
67049
82178
  friend class ::ExtAC;
67050
82179
  friend class ::ExtACBuilderCoupling;
67051
82180
  friend class ::ExtACSyntaxCoupling;
67052
82181
  friend class ::ExtACTree;
67053
82182
  friend class ::ExtACKeywords;
67054
 
  friend class ::WinAsm;
67055
 
  friend class ::WinDeclSpecs;
67056
 
  friend class ::WinMemberExplSpec;
67057
 
  friend class ::WinTypeKeywords;
 
82183
  friend class ::ExtGnu;
67058
82184
  friend class ::PragmaOnceUnitState;
67059
82185
  friend class ::PragmaOnce;
67060
 
  friend class ::CCExprResolve;
67061
 
  friend class ::CExprResolve;
 
82186
  friend class ::CMatchSyntax;
67062
82187
 
67063
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82188
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67064
82189
 
67065
82190
public:
 
82191
  /** Constructor.
 
82192
   *  \param size The initial number sub-names plus separators. */
67066
82193
  CT_QualName (int size = 3) : 
67067
82194
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
82195
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67068
82196
  static const char *NodeId ();
 
82197
  /** Get the name of the node. Can be compared with NodeId(). */
67069
82198
  const char *NodeName () const { return NodeId (); }
67070
 
  void print (ostream &) const;
 
82199
  /** Print the qualified name on the given stream. 
 
82200
   *  \param os The output stream. */
 
82201
  void print (ostream &os) const;
 
82202
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
67071
82203
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
82204
  /** Get the string containing the last name of the qualified name. */
67072
82205
  const char *Text () const { return Name ()->Text (); }
 
82206
  /** Get the type of the last name. */
67073
82207
  CTypeInfo *Type () const { return Name ()->Type (); }
 
82208
  /** Get the value of the last name. */
67074
82209
  CExprValue *Value () const { return Name ()->Value (); }
 
82210
  /** Get the semantic value object of the last name. */
67075
82211
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
82212
  /** Get the semantic information object of the last name. */
67076
82213
  CSemObject *SemObject () const { return Name ()->SemObject (); }
67077
 
  // special new / delete with reusing memory
 
82214
 
 
82215
public:
 
82216
  /** Own new operator reusing memory. */
67078
82217
  void *operator new (size_t);
67079
 
  void  operator delete (void *);
 
82218
  /** Own delete operator. */
 
82219
  void operator delete (void *);
67080
82220
   private:
67081
82221
  typedef CT_QualName CCExprResolveExpr;
67082
82222
 
67083
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82223
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67084
82224
 public :
67085
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82225
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67086
82226
  typedef CT_QualName CExprResolveExpr;
67087
82227
 
67088
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82228
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67089
82229
 public :
67090
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67091
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82230
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82231
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67092
82232
};
67093
82233
 
 
82234
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
82235
 *  Tree node representing a qualified name with introducing name separator,
 
82236
 *  e.g. ::X::Y::Z. */
67094
82237
 
67095
 
#line 67096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82238
#line 82239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67096
82239
} // closed Puma
 
82240
class CCExprResolve;
 
82241
class CExprResolve;
67097
82242
class WinIfExists;
67098
82243
class WinImportHandler;
67099
82244
class WinMacros;
67100
 
class CMatchSyntax;
67101
 
class ExtGnu;
 
82245
class WinAsm;
 
82246
class WinDeclSpecs;
 
82247
class WinMemberExplSpec;
 
82248
class WinTypeKeywords;
 
82249
class WinFriend;
67102
82250
class ExtAC;
67103
82251
class ExtACBuilderCoupling;
67104
82252
class ExtACSyntaxCoupling;
67105
82253
class ExtACTree;
67106
82254
class ExtACKeywords;
67107
 
class WinAsm;
67108
 
class WinDeclSpecs;
67109
 
class WinMemberExplSpec;
67110
 
class WinTypeKeywords;
 
82255
class ExtGnu;
67111
82256
class PragmaOnceUnitState;
67112
82257
class PragmaOnce;
67113
 
class CCExprResolve;
67114
 
class CExprResolve;
67115
 
namespace Puma {
67116
 
 
67117
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82258
class CMatchSyntax;
 
82259
namespace Puma {
 
82260
 
 
82261
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82262
 
 
82263
#line 82264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82264
} // closed Puma
 
82265
 
 
82266
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82267
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82268
#include "CCExprResolveH.ah"
 
82269
#endif
 
82270
namespace Puma {
 
82271
 
 
82272
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82273
 
 
82274
#line 82275 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82275
} // closed Puma
 
82276
 
 
82277
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82278
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82279
#include "CExprResolveH.ah"
 
82280
#endif
 
82281
namespace Puma {
 
82282
 
 
82283
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67118
82284
class CT_RootQualName : public CT_QualName {
67119
 
#line 67120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82285
#line 82286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82286
  friend class ::CCExprResolve;
 
82287
  friend class ::CExprResolve;
67120
82288
  friend class ::WinIfExists;
67121
82289
  friend class ::WinImportHandler;
67122
82290
  friend class ::WinMacros;
67123
 
  friend class ::CMatchSyntax;
67124
 
  friend class ::ExtGnu;
 
82291
  friend class ::WinAsm;
 
82292
  friend class ::WinDeclSpecs;
 
82293
  friend class ::WinMemberExplSpec;
 
82294
  friend class ::WinTypeKeywords;
 
82295
  friend class ::WinFriend;
67125
82296
  friend class ::ExtAC;
67126
82297
  friend class ::ExtACBuilderCoupling;
67127
82298
  friend class ::ExtACSyntaxCoupling;
67128
82299
  friend class ::ExtACTree;
67129
82300
  friend class ::ExtACKeywords;
67130
 
  friend class ::WinAsm;
67131
 
  friend class ::WinDeclSpecs;
67132
 
  friend class ::WinMemberExplSpec;
67133
 
  friend class ::WinTypeKeywords;
 
82301
  friend class ::ExtGnu;
67134
82302
  friend class ::PragmaOnceUnitState;
67135
82303
  friend class ::PragmaOnce;
67136
 
  friend class ::CCExprResolve;
67137
 
  friend class ::CExprResolve;
 
82304
  friend class ::CMatchSyntax;
67138
82305
 
67139
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82306
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67140
82307
 
67141
82308
public:
 
82309
  /** Constructor.
 
82310
   *  \param size Initial number of sub-name plus separator. */
67142
82311
  CT_RootQualName (int size = 2) : 
67143
82312
    CT_QualName (size) { AddProperties (INTRO); }
 
82313
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67144
82314
  static const char *NodeId ();
 
82315
  /** Get the name of the node. Can be compared with NodeId(). */
67145
82316
  const char *NodeName () const { return NodeId (); }
67146
 
  // special new / delete with reusing memory
 
82317
 
 
82318
public:
 
82319
  /** Own new operator reusing memory. */
67147
82320
  void *operator new (size_t);
67148
 
  void  operator delete (void *);
 
82321
  /** Own delete operator. */
 
82322
  void operator delete (void *);
67149
82323
   private:
67150
82324
  typedef CT_RootQualName CCExprResolveExpr;
67151
82325
 
67152
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82326
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67153
82327
 public :
67154
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82328
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67155
82329
  typedef CT_RootQualName CExprResolveExpr;
67156
82330
 
67157
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82331
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67158
82332
 public :
67159
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67160
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82333
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82334
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67161
82335
};
67162
82336
 
 
82337
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
82338
 *  Tree node representing a binary expression, e.g. a+b. */
67163
82339
 
67164
 
#line 67165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82340
#line 82341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67165
82341
} // closed Puma
 
82342
class CCExprResolve;
 
82343
class CExprResolve;
67166
82344
class WinIfExists;
67167
82345
class WinImportHandler;
67168
82346
class WinMacros;
67169
 
class CMatchSyntax;
67170
 
class ExtGnu;
 
82347
class WinAsm;
 
82348
class WinDeclSpecs;
 
82349
class WinMemberExplSpec;
 
82350
class WinTypeKeywords;
 
82351
class WinFriend;
67171
82352
class ExtAC;
67172
82353
class ExtACBuilderCoupling;
67173
82354
class ExtACSyntaxCoupling;
67174
82355
class ExtACTree;
67175
82356
class ExtACKeywords;
67176
 
class WinAsm;
67177
 
class WinDeclSpecs;
67178
 
class WinMemberExplSpec;
67179
 
class WinTypeKeywords;
 
82357
class ExtGnu;
67180
82358
class PragmaOnceUnitState;
67181
82359
class PragmaOnce;
67182
 
class CCExprResolve;
67183
 
class CExprResolve;
67184
 
namespace Puma {
67185
 
 
67186
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67187
 
class CT_BinaryExpr : public CT_Expression {
67188
 
#line 67189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82360
class CMatchSyntax;
 
82361
namespace Puma {
 
82362
 
 
82363
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82364
 
 
82365
#line 82366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82366
} // closed Puma
 
82367
 
 
82368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82370
#include "CCExprResolveH.ah"
 
82371
#endif
 
82372
namespace Puma {
 
82373
 
 
82374
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82375
 
 
82376
#line 82377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82377
} // closed Puma
 
82378
 
 
82379
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82380
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82381
#include "CExprResolveH.ah"
 
82382
#endif
 
82383
namespace Puma {
 
82384
 
 
82385
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82386
class CT_BinaryExpr : public CT_Call {
 
82387
#line 82388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82388
  friend class ::CCExprResolve;
 
82389
  friend class ::CExprResolve;
67189
82390
  friend class ::WinIfExists;
67190
82391
  friend class ::WinImportHandler;
67191
82392
  friend class ::WinMacros;
67192
 
  friend class ::CMatchSyntax;
67193
 
  friend class ::ExtGnu;
 
82393
  friend class ::WinAsm;
 
82394
  friend class ::WinDeclSpecs;
 
82395
  friend class ::WinMemberExplSpec;
 
82396
  friend class ::WinTypeKeywords;
 
82397
  friend class ::WinFriend;
67194
82398
  friend class ::ExtAC;
67195
82399
  friend class ::ExtACBuilderCoupling;
67196
82400
  friend class ::ExtACSyntaxCoupling;
67197
82401
  friend class ::ExtACTree;
67198
82402
  friend class ::ExtACKeywords;
67199
 
  friend class ::WinAsm;
67200
 
  friend class ::WinDeclSpecs;
67201
 
  friend class ::WinMemberExplSpec;
67202
 
  friend class ::WinTypeKeywords;
 
82403
  friend class ::ExtGnu;
67203
82404
  friend class ::PragmaOnceUnitState;
67204
82405
  friend class ::PragmaOnce;
67205
 
  friend class ::CCExprResolve;
67206
 
  friend class ::CExprResolve;
 
82406
  friend class ::CMatchSyntax;
67207
82407
 
67208
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82408
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67209
82409
 
67210
82410
  CTree *sons[3]; // expr, oper, expr
67211
82411
 
67212
82412
public:
 
82413
  /** Constructor. 
 
82414
   *  \param l Left hand side of the expression. 
 
82415
   *  \param o The operator token. 
 
82416
   *  \param r Right hand side of the expression. */
67213
82417
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
67214
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
82418
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
67215
82419
  }
 
82420
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67216
82421
  static const char *NodeId ();
 
82422
  /** Get the name of the node. Can be compared with NodeId(). */
67217
82423
  const char *NodeName () const { return NodeId (); }
 
82424
  /** Get the number of sons. */
67218
82425
  int Sons () const { return 3; }
 
82426
  /** Get the n-th son.
 
82427
   *  \param n The index of the son.
 
82428
   *  \return The n-th son or NULL. */
67219
82429
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
82430
  /** Replace a son.
 
82431
   *  \param old_son The son to replace.
 
82432
   *  \param new_son The new son. */
67220
82433
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67221
82434
    CTree::ReplaceSon (sons, 3, old_son, new_son);
67222
82435
  }
67223
82436
   private:
67224
82437
  typedef CT_BinaryExpr CCExprResolveExpr;
67225
82438
 
67226
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82439
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67227
82440
 public :
67228
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82441
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67229
82442
  typedef CT_BinaryExpr CExprResolveExpr;
67230
82443
 
67231
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82444
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67232
82445
 public :
67233
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67234
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82446
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82447
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67235
82448
};
67236
82449
 
 
82450
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
82451
 *  Tree node representing a member pointer expression, e.g. a->b. */
67237
82452
 
67238
 
#line 67239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82453
#line 82454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67239
82454
} // closed Puma
 
82455
class CCExprResolve;
 
82456
class CExprResolve;
67240
82457
class WinIfExists;
67241
82458
class WinImportHandler;
67242
82459
class WinMacros;
67243
 
class CMatchSyntax;
67244
 
class ExtGnu;
 
82460
class WinAsm;
 
82461
class WinDeclSpecs;
 
82462
class WinMemberExplSpec;
 
82463
class WinTypeKeywords;
 
82464
class WinFriend;
67245
82465
class ExtAC;
67246
82466
class ExtACBuilderCoupling;
67247
82467
class ExtACSyntaxCoupling;
67248
82468
class ExtACTree;
67249
82469
class ExtACKeywords;
67250
 
class WinAsm;
67251
 
class WinDeclSpecs;
67252
 
class WinMemberExplSpec;
67253
 
class WinTypeKeywords;
 
82470
class ExtGnu;
67254
82471
class PragmaOnceUnitState;
67255
82472
class PragmaOnce;
67256
 
class CCExprResolve;
67257
 
class CExprResolve;
67258
 
namespace Puma {
67259
 
 
67260
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67261
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
67262
 
#line 67263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82473
class CMatchSyntax;
 
82474
namespace Puma {
 
82475
 
 
82476
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82477
 
 
82478
#line 82479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82479
} // closed Puma
 
82480
 
 
82481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82483
#include "CCExprResolveH.ah"
 
82484
#endif
 
82485
namespace Puma {
 
82486
 
 
82487
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82488
 
 
82489
#line 82490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82490
} // closed Puma
 
82491
 
 
82492
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82493
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82494
#include "CExprResolveH.ah"
 
82495
#endif
 
82496
namespace Puma {
 
82497
 
 
82498
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82499
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
82500
#line 82501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82501
  friend class ::CCExprResolve;
 
82502
  friend class ::CExprResolve;
67263
82503
  friend class ::WinIfExists;
67264
82504
  friend class ::WinImportHandler;
67265
82505
  friend class ::WinMacros;
67266
 
  friend class ::CMatchSyntax;
67267
 
  friend class ::ExtGnu;
 
82506
  friend class ::WinAsm;
 
82507
  friend class ::WinDeclSpecs;
 
82508
  friend class ::WinMemberExplSpec;
 
82509
  friend class ::WinTypeKeywords;
 
82510
  friend class ::WinFriend;
67268
82511
  friend class ::ExtAC;
67269
82512
  friend class ::ExtACBuilderCoupling;
67270
82513
  friend class ::ExtACSyntaxCoupling;
67271
82514
  friend class ::ExtACTree;
67272
82515
  friend class ::ExtACKeywords;
67273
 
  friend class ::WinAsm;
67274
 
  friend class ::WinDeclSpecs;
67275
 
  friend class ::WinMemberExplSpec;
67276
 
  friend class ::WinTypeKeywords;
 
82516
  friend class ::ExtGnu;
67277
82517
  friend class ::PragmaOnceUnitState;
67278
82518
  friend class ::PragmaOnce;
67279
 
  friend class ::CCExprResolve;
67280
 
  friend class ::CExprResolve;
67281
 
 
67282
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67283
 
 
 
82519
  friend class ::CMatchSyntax;
 
82520
 
 
82521
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82522
 
 
82523
  CTree *sons[3]; // expr, oper, expr
 
82524
  
67284
82525
public:
67285
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
67286
 
    CT_BinaryExpr (e, o, i) {}
 
82526
  /** Constructor.
 
82527
   *  \param e Expression on which to call the member.
 
82528
   *  \param o The arrow operator token.
 
82529
   *  \param i The member name. */
 
82530
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
82531
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
82532
  }
 
82533
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67287
82534
  static const char *NodeId ();
 
82535
  /** Get the name of the node. Can be compared with NodeId(). */
67288
82536
  const char *NodeName () const { return NodeId (); }
67289
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
82537
  /** Get the number of sons. */
 
82538
  int Sons () const { return 3; }
 
82539
  /** Get the n-th son.
 
82540
   *  \param n The index of the son.
 
82541
   *  \return The n-th son or NULL. */
 
82542
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
82543
  /** Replace a son.
 
82544
   *  \param old_son The son to replace.
 
82545
   *  \param new_son The new son. */
 
82546
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
82547
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
82548
  }
67290
82549
   private:
67291
82550
  typedef CT_MembPtrExpr CCExprResolveExpr;
67292
82551
 
67293
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82552
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67294
82553
 public :
67295
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82554
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67296
82555
  typedef CT_MembPtrExpr CExprResolveExpr;
67297
82556
 
67298
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82557
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67299
82558
 public :
67300
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67301
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82559
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82560
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67302
82561
};
67303
82562
 
 
82563
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
82564
 *  Tree node representing a member reference expression, e.g. a.b. */
67304
82565
 
67305
 
#line 67306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82566
#line 82567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67306
82567
} // closed Puma
 
82568
class CCExprResolve;
 
82569
class CExprResolve;
67307
82570
class WinIfExists;
67308
82571
class WinImportHandler;
67309
82572
class WinMacros;
67310
 
class CMatchSyntax;
67311
 
class ExtGnu;
 
82573
class WinAsm;
 
82574
class WinDeclSpecs;
 
82575
class WinMemberExplSpec;
 
82576
class WinTypeKeywords;
 
82577
class WinFriend;
67312
82578
class ExtAC;
67313
82579
class ExtACBuilderCoupling;
67314
82580
class ExtACSyntaxCoupling;
67315
82581
class ExtACTree;
67316
82582
class ExtACKeywords;
67317
 
class WinAsm;
67318
 
class WinDeclSpecs;
67319
 
class WinMemberExplSpec;
67320
 
class WinTypeKeywords;
 
82583
class ExtGnu;
67321
82584
class PragmaOnceUnitState;
67322
82585
class PragmaOnce;
67323
 
class CCExprResolve;
67324
 
class CExprResolve;
67325
 
namespace Puma {
67326
 
 
67327
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82586
class CMatchSyntax;
 
82587
namespace Puma {
 
82588
 
 
82589
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82590
 
 
82591
#line 82592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82592
} // closed Puma
 
82593
 
 
82594
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82595
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82596
#include "CCExprResolveH.ah"
 
82597
#endif
 
82598
namespace Puma {
 
82599
 
 
82600
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82601
 
 
82602
#line 82603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82603
} // closed Puma
 
82604
 
 
82605
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82606
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82607
#include "CExprResolveH.ah"
 
82608
#endif
 
82609
namespace Puma {
 
82610
 
 
82611
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67328
82612
class CT_MembRefExpr : public CT_MembPtrExpr {
67329
 
#line 67330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82613
#line 82614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82614
  friend class ::CCExprResolve;
 
82615
  friend class ::CExprResolve;
67330
82616
  friend class ::WinIfExists;
67331
82617
  friend class ::WinImportHandler;
67332
82618
  friend class ::WinMacros;
67333
 
  friend class ::CMatchSyntax;
67334
 
  friend class ::ExtGnu;
 
82619
  friend class ::WinAsm;
 
82620
  friend class ::WinDeclSpecs;
 
82621
  friend class ::WinMemberExplSpec;
 
82622
  friend class ::WinTypeKeywords;
 
82623
  friend class ::WinFriend;
67335
82624
  friend class ::ExtAC;
67336
82625
  friend class ::ExtACBuilderCoupling;
67337
82626
  friend class ::ExtACSyntaxCoupling;
67338
82627
  friend class ::ExtACTree;
67339
82628
  friend class ::ExtACKeywords;
67340
 
  friend class ::WinAsm;
67341
 
  friend class ::WinDeclSpecs;
67342
 
  friend class ::WinMemberExplSpec;
67343
 
  friend class ::WinTypeKeywords;
 
82629
  friend class ::ExtGnu;
67344
82630
  friend class ::PragmaOnceUnitState;
67345
82631
  friend class ::PragmaOnce;
67346
 
  friend class ::CCExprResolve;
67347
 
  friend class ::CExprResolve;
 
82632
  friend class ::CMatchSyntax;
67348
82633
 
67349
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82634
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67350
82635
 
67351
82636
public:
 
82637
  /** Constructor.
 
82638
   *  \param e Expression on which to call the member.
 
82639
   *  \param o The dot operator.
 
82640
   *  \param i The member name. */
67352
82641
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
67353
82642
    CT_MembPtrExpr (e, o, i) {}
 
82643
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67354
82644
  static const char *NodeId ();
 
82645
  /** Get the name of the node. Can be compared with NodeId(). */
67355
82646
  const char *NodeName () const { return NodeId (); }
67356
82647
   private:
67357
82648
  typedef CT_MembRefExpr CCExprResolveExpr;
67358
82649
 
67359
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82650
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67360
82651
 public :
67361
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82652
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67362
82653
  typedef CT_MembRefExpr CExprResolveExpr;
67363
82654
 
67364
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82655
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67365
82656
 public :
67366
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67367
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82657
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82658
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67368
82659
};
67369
82660
 
 
82661
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
82662
 *  Base class for tree nodes representing unary expressions. */
67370
82663
 
67371
 
#line 67372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82664
#line 82665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67372
82665
} // closed Puma
 
82666
class CCExprResolve;
 
82667
class CExprResolve;
67373
82668
class WinIfExists;
67374
82669
class WinImportHandler;
67375
82670
class WinMacros;
67376
 
class CMatchSyntax;
67377
 
class ExtGnu;
 
82671
class WinAsm;
 
82672
class WinDeclSpecs;
 
82673
class WinMemberExplSpec;
 
82674
class WinTypeKeywords;
 
82675
class WinFriend;
67378
82676
class ExtAC;
67379
82677
class ExtACBuilderCoupling;
67380
82678
class ExtACSyntaxCoupling;
67381
82679
class ExtACTree;
67382
82680
class ExtACKeywords;
67383
 
class WinAsm;
67384
 
class WinDeclSpecs;
67385
 
class WinMemberExplSpec;
67386
 
class WinTypeKeywords;
 
82681
class ExtGnu;
67387
82682
class PragmaOnceUnitState;
67388
82683
class PragmaOnce;
67389
 
class CCExprResolve;
67390
 
class CExprResolve;
67391
 
namespace Puma {
67392
 
 
67393
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67394
 
class CT_UnaryExpr : public CT_Expression {
67395
 
#line 67396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82684
class CMatchSyntax;
 
82685
namespace Puma {
 
82686
 
 
82687
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82688
 
 
82689
#line 82690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82690
} // closed Puma
 
82691
 
 
82692
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82693
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82694
#include "CCExprResolveH.ah"
 
82695
#endif
 
82696
namespace Puma {
 
82697
 
 
82698
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82699
 
 
82700
#line 82701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82701
} // closed Puma
 
82702
 
 
82703
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82704
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82705
#include "CExprResolveH.ah"
 
82706
#endif
 
82707
namespace Puma {
 
82708
 
 
82709
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82710
class CT_UnaryExpr : public CT_Call {
 
82711
#line 82712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82712
  friend class ::CCExprResolve;
 
82713
  friend class ::CExprResolve;
67396
82714
  friend class ::WinIfExists;
67397
82715
  friend class ::WinImportHandler;
67398
82716
  friend class ::WinMacros;
67399
 
  friend class ::CMatchSyntax;
67400
 
  friend class ::ExtGnu;
 
82717
  friend class ::WinAsm;
 
82718
  friend class ::WinDeclSpecs;
 
82719
  friend class ::WinMemberExplSpec;
 
82720
  friend class ::WinTypeKeywords;
 
82721
  friend class ::WinFriend;
67401
82722
  friend class ::ExtAC;
67402
82723
  friend class ::ExtACBuilderCoupling;
67403
82724
  friend class ::ExtACSyntaxCoupling;
67404
82725
  friend class ::ExtACTree;
67405
82726
  friend class ::ExtACKeywords;
67406
 
  friend class ::WinAsm;
67407
 
  friend class ::WinDeclSpecs;
67408
 
  friend class ::WinMemberExplSpec;
67409
 
  friend class ::WinTypeKeywords;
 
82727
  friend class ::ExtGnu;
67410
82728
  friend class ::PragmaOnceUnitState;
67411
82729
  friend class ::PragmaOnce;
67412
 
  friend class ::CCExprResolve;
67413
 
  friend class ::CExprResolve;
 
82730
  friend class ::CMatchSyntax;
67414
82731
 
67415
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82732
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67416
82733
 
67417
82734
  CTree *sons[2]; // oper, expr
67418
82735
 
67419
82736
public:
67420
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
82737
  /** Constructor.
 
82738
   *  \param o The unary operator.
 
82739
   *  \param e The expression on which the operator is invoked. */
 
82740
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
82741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67421
82742
  static const char *NodeId ();
 
82743
  /** Get the name of the node. Can be compared with NodeId(). */
67422
82744
  const char *NodeName () const { return NodeId (); }
 
82745
  /** Get the number of sons. */
67423
82746
  int Sons () const { return 2; }
 
82747
  /** Get the n-th son.
 
82748
   *  \param n The index of the son.
 
82749
   *  \return The n-th son or NULL. */
67424
82750
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
82751
  /** Replace a son.
 
82752
   *  \param old_son The son to replace.
 
82753
   *  \param new_son The new son. */
67425
82754
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67426
82755
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67427
82756
  }
 
82757
  /** Get the expression node. */
67428
82758
  CTree *Expr () const { return sons[1]; }
67429
82759
   private:
67430
82760
  typedef CT_UnaryExpr CCExprResolveExpr;
67431
82761
 
67432
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82762
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67433
82763
 public :
67434
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82764
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67435
82765
  typedef CT_UnaryExpr CExprResolveExpr;
67436
82766
 
67437
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82767
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67438
82768
 public :
67439
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67440
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82769
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82770
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67441
82771
};
67442
82772
 
 
82773
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
82774
 *  Tree node representing a postfix expression, e.g. a++. */
67443
82775
 
67444
 
#line 67445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82776
#line 82777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67445
82777
} // closed Puma
 
82778
class CCExprResolve;
 
82779
class CExprResolve;
67446
82780
class WinIfExists;
67447
82781
class WinImportHandler;
67448
82782
class WinMacros;
67449
 
class CMatchSyntax;
67450
 
class ExtGnu;
 
82783
class WinAsm;
 
82784
class WinDeclSpecs;
 
82785
class WinMemberExplSpec;
 
82786
class WinTypeKeywords;
 
82787
class WinFriend;
67451
82788
class ExtAC;
67452
82789
class ExtACBuilderCoupling;
67453
82790
class ExtACSyntaxCoupling;
67454
82791
class ExtACTree;
67455
82792
class ExtACKeywords;
67456
 
class WinAsm;
67457
 
class WinDeclSpecs;
67458
 
class WinMemberExplSpec;
67459
 
class WinTypeKeywords;
 
82793
class ExtGnu;
67460
82794
class PragmaOnceUnitState;
67461
82795
class PragmaOnce;
67462
 
class CCExprResolve;
67463
 
class CExprResolve;
67464
 
namespace Puma {
67465
 
 
67466
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82796
class CMatchSyntax;
 
82797
namespace Puma {
 
82798
 
 
82799
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82800
 
 
82801
#line 82802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82802
} // closed Puma
 
82803
 
 
82804
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82805
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82806
#include "CCExprResolveH.ah"
 
82807
#endif
 
82808
namespace Puma {
 
82809
 
 
82810
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82811
 
 
82812
#line 82813 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82813
} // closed Puma
 
82814
 
 
82815
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82816
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82817
#include "CExprResolveH.ah"
 
82818
#endif
 
82819
namespace Puma {
 
82820
 
 
82821
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67467
82822
class CT_PostfixExpr : public CT_UnaryExpr {
67468
 
#line 67469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82823
#line 82824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82824
  friend class ::CCExprResolve;
 
82825
  friend class ::CExprResolve;
67469
82826
  friend class ::WinIfExists;
67470
82827
  friend class ::WinImportHandler;
67471
82828
  friend class ::WinMacros;
67472
 
  friend class ::CMatchSyntax;
67473
 
  friend class ::ExtGnu;
 
82829
  friend class ::WinAsm;
 
82830
  friend class ::WinDeclSpecs;
 
82831
  friend class ::WinMemberExplSpec;
 
82832
  friend class ::WinTypeKeywords;
 
82833
  friend class ::WinFriend;
67474
82834
  friend class ::ExtAC;
67475
82835
  friend class ::ExtACBuilderCoupling;
67476
82836
  friend class ::ExtACSyntaxCoupling;
67477
82837
  friend class ::ExtACTree;
67478
82838
  friend class ::ExtACKeywords;
67479
 
  friend class ::WinAsm;
67480
 
  friend class ::WinDeclSpecs;
67481
 
  friend class ::WinMemberExplSpec;
67482
 
  friend class ::WinTypeKeywords;
 
82839
  friend class ::ExtGnu;
67483
82840
  friend class ::PragmaOnceUnitState;
67484
82841
  friend class ::PragmaOnce;
67485
 
  friend class ::CCExprResolve;
67486
 
  friend class ::CExprResolve;
 
82842
  friend class ::CMatchSyntax;
67487
82843
 
67488
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82844
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67489
82845
 
67490
82846
public:
 
82847
  /** Constructor.
 
82848
   *  \param e The expression on which to invoke the operator. 
 
82849
   *  \param o The postfix operator. */
67491
82850
  CT_PostfixExpr (CTree *e, CTree *o) :
67492
82851
    CT_UnaryExpr (e, o) {}
 
82852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67493
82853
  static const char *NodeId ();
 
82854
  /** Get the name of the node. Can be compared with NodeId(). */
67494
82855
  const char *NodeName () const { return NodeId (); }
67495
82856
   private:
67496
82857
  typedef CT_PostfixExpr CCExprResolveExpr;
67497
82858
 
67498
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82859
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67499
82860
 public :
67500
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82861
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67501
82862
  typedef CT_PostfixExpr CExprResolveExpr;
67502
82863
 
67503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82864
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67504
82865
 public :
67505
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67506
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82866
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82867
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67507
82868
};
67508
82869
 
 
82870
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
82871
 *  Tree node representing an address expression, e.g. &a. */
67509
82872
 
67510
 
#line 67511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82873
#line 82874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67511
82874
} // closed Puma
 
82875
class CCExprResolve;
 
82876
class CExprResolve;
67512
82877
class WinIfExists;
67513
82878
class WinImportHandler;
67514
82879
class WinMacros;
67515
 
class CMatchSyntax;
67516
 
class ExtGnu;
 
82880
class WinAsm;
 
82881
class WinDeclSpecs;
 
82882
class WinMemberExplSpec;
 
82883
class WinTypeKeywords;
 
82884
class WinFriend;
67517
82885
class ExtAC;
67518
82886
class ExtACBuilderCoupling;
67519
82887
class ExtACSyntaxCoupling;
67520
82888
class ExtACTree;
67521
82889
class ExtACKeywords;
67522
 
class WinAsm;
67523
 
class WinDeclSpecs;
67524
 
class WinMemberExplSpec;
67525
 
class WinTypeKeywords;
 
82890
class ExtGnu;
67526
82891
class PragmaOnceUnitState;
67527
82892
class PragmaOnce;
67528
 
class CCExprResolve;
67529
 
class CExprResolve;
67530
 
namespace Puma {
67531
 
 
67532
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82893
class CMatchSyntax;
 
82894
namespace Puma {
 
82895
 
 
82896
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82897
 
 
82898
#line 82899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82899
} // closed Puma
 
82900
 
 
82901
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82902
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82903
#include "CCExprResolveH.ah"
 
82904
#endif
 
82905
namespace Puma {
 
82906
 
 
82907
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82908
 
 
82909
#line 82910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82910
} // closed Puma
 
82911
 
 
82912
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82913
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
82914
#include "CExprResolveH.ah"
 
82915
#endif
 
82916
namespace Puma {
 
82917
 
 
82918
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67533
82919
class CT_AddrExpr : public CT_UnaryExpr {
67534
 
#line 67535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82920
#line 82921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82921
  friend class ::CCExprResolve;
 
82922
  friend class ::CExprResolve;
67535
82923
  friend class ::WinIfExists;
67536
82924
  friend class ::WinImportHandler;
67537
82925
  friend class ::WinMacros;
67538
 
  friend class ::CMatchSyntax;
67539
 
  friend class ::ExtGnu;
 
82926
  friend class ::WinAsm;
 
82927
  friend class ::WinDeclSpecs;
 
82928
  friend class ::WinMemberExplSpec;
 
82929
  friend class ::WinTypeKeywords;
 
82930
  friend class ::WinFriend;
67540
82931
  friend class ::ExtAC;
67541
82932
  friend class ::ExtACBuilderCoupling;
67542
82933
  friend class ::ExtACSyntaxCoupling;
67543
82934
  friend class ::ExtACTree;
67544
82935
  friend class ::ExtACKeywords;
67545
 
  friend class ::WinAsm;
67546
 
  friend class ::WinDeclSpecs;
67547
 
  friend class ::WinMemberExplSpec;
67548
 
  friend class ::WinTypeKeywords;
 
82936
  friend class ::ExtGnu;
67549
82937
  friend class ::PragmaOnceUnitState;
67550
82938
  friend class ::PragmaOnce;
67551
 
  friend class ::CCExprResolve;
67552
 
  friend class ::CExprResolve;
 
82939
  friend class ::CMatchSyntax;
67553
82940
 
67554
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82941
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67555
82942
 
67556
82943
public:
 
82944
  /** Constructor.
 
82945
   *  \param o The address operator, i.e. '&'.
 
82946
   *  \param e The expression from which to take the address. */
67557
82947
  CT_AddrExpr (CTree *o, CTree *e) :
67558
82948
    CT_UnaryExpr (o, e) {}
 
82949
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67559
82950
  static const char *NodeId ();
 
82951
  /** Get the name of the node. Can be compared with NodeId(). */
67560
82952
  const char *NodeName () const { return NodeId (); }
67561
82953
   private:
67562
82954
  typedef CT_AddrExpr CCExprResolveExpr;
67563
82955
 
67564
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
82956
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67565
82957
 public :
67566
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
82958
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67567
82959
  typedef CT_AddrExpr CExprResolveExpr;
67568
82960
 
67569
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
82961
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67570
82962
 public :
67571
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67572
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82963
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
82964
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67573
82965
};
67574
82966
 
 
82967
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
82968
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
67575
82969
 
67576
 
#line 67577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
82970
#line 82971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67577
82971
} // closed Puma
 
82972
class CCExprResolve;
 
82973
class CExprResolve;
67578
82974
class WinIfExists;
67579
82975
class WinImportHandler;
67580
82976
class WinMacros;
67581
 
class CMatchSyntax;
67582
 
class ExtGnu;
 
82977
class WinAsm;
 
82978
class WinDeclSpecs;
 
82979
class WinMemberExplSpec;
 
82980
class WinTypeKeywords;
 
82981
class WinFriend;
67583
82982
class ExtAC;
67584
82983
class ExtACBuilderCoupling;
67585
82984
class ExtACSyntaxCoupling;
67586
82985
class ExtACTree;
67587
82986
class ExtACKeywords;
67588
 
class WinAsm;
67589
 
class WinDeclSpecs;
67590
 
class WinMemberExplSpec;
67591
 
class WinTypeKeywords;
 
82987
class ExtGnu;
67592
82988
class PragmaOnceUnitState;
67593
82989
class PragmaOnce;
67594
 
class CCExprResolve;
67595
 
class CExprResolve;
67596
 
namespace Puma {
67597
 
 
67598
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82990
class CMatchSyntax;
 
82991
namespace Puma {
 
82992
 
 
82993
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
82994
 
 
82995
#line 82996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
82996
} // closed Puma
 
82997
 
 
82998
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
82999
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83000
#include "CCExprResolveH.ah"
 
83001
#endif
 
83002
namespace Puma {
 
83003
 
 
83004
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83005
 
 
83006
#line 83007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83007
} // closed Puma
 
83008
 
 
83009
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83010
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83011
#include "CExprResolveH.ah"
 
83012
#endif
 
83013
namespace Puma {
 
83014
 
 
83015
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67599
83016
class CT_DerefExpr : public CT_UnaryExpr {
67600
 
#line 67601 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83017
#line 83018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83018
  friend class ::CCExprResolve;
 
83019
  friend class ::CExprResolve;
67601
83020
  friend class ::WinIfExists;
67602
83021
  friend class ::WinImportHandler;
67603
83022
  friend class ::WinMacros;
67604
 
  friend class ::CMatchSyntax;
67605
 
  friend class ::ExtGnu;
 
83023
  friend class ::WinAsm;
 
83024
  friend class ::WinDeclSpecs;
 
83025
  friend class ::WinMemberExplSpec;
 
83026
  friend class ::WinTypeKeywords;
 
83027
  friend class ::WinFriend;
67606
83028
  friend class ::ExtAC;
67607
83029
  friend class ::ExtACBuilderCoupling;
67608
83030
  friend class ::ExtACSyntaxCoupling;
67609
83031
  friend class ::ExtACTree;
67610
83032
  friend class ::ExtACKeywords;
67611
 
  friend class ::WinAsm;
67612
 
  friend class ::WinDeclSpecs;
67613
 
  friend class ::WinMemberExplSpec;
67614
 
  friend class ::WinTypeKeywords;
 
83033
  friend class ::ExtGnu;
67615
83034
  friend class ::PragmaOnceUnitState;
67616
83035
  friend class ::PragmaOnce;
67617
 
  friend class ::CCExprResolve;
67618
 
  friend class ::CExprResolve;
 
83036
  friend class ::CMatchSyntax;
67619
83037
 
67620
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83038
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67621
83039
 
67622
83040
public:
 
83041
  /** Constructor.
 
83042
   *  \param o The dereferencing operator, i.e. '*'.
 
83043
   *  \param e The expression to dereference. */
67623
83044
  CT_DerefExpr (CTree *o, CTree *e) :
67624
83045
    CT_UnaryExpr (o, e) {}
 
83046
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67625
83047
  static const char *NodeId ();
 
83048
  /** Get the name of the node. Can be compared with NodeId(). */
67626
83049
  const char *NodeName () const { return NodeId (); }
67627
83050
   private:
67628
83051
  typedef CT_DerefExpr CCExprResolveExpr;
67629
83052
 
67630
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83053
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67631
83054
 public :
67632
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83055
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67633
83056
  typedef CT_DerefExpr CExprResolveExpr;
67634
83057
 
67635
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83058
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67636
83059
 public :
67637
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67638
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83060
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83061
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67639
83062
};
67640
83063
 
 
83064
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
83065
 *  Tree node representing a delete expression, e.g. delete a. */
67641
83066
 
67642
 
#line 67643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83067
#line 83068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67643
83068
} // closed Puma
 
83069
class CCExprResolve;
 
83070
class CExprResolve;
67644
83071
class WinIfExists;
67645
83072
class WinImportHandler;
67646
83073
class WinMacros;
67647
 
class CMatchSyntax;
67648
 
class ExtGnu;
 
83074
class WinAsm;
 
83075
class WinDeclSpecs;
 
83076
class WinMemberExplSpec;
 
83077
class WinTypeKeywords;
 
83078
class WinFriend;
67649
83079
class ExtAC;
67650
83080
class ExtACBuilderCoupling;
67651
83081
class ExtACSyntaxCoupling;
67652
83082
class ExtACTree;
67653
83083
class ExtACKeywords;
67654
 
class WinAsm;
67655
 
class WinDeclSpecs;
67656
 
class WinMemberExplSpec;
67657
 
class WinTypeKeywords;
 
83084
class ExtGnu;
67658
83085
class PragmaOnceUnitState;
67659
83086
class PragmaOnce;
67660
 
class CCExprResolve;
67661
 
class CExprResolve;
67662
 
namespace Puma {
67663
 
 
67664
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83087
class CMatchSyntax;
 
83088
namespace Puma {
 
83089
 
 
83090
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83091
 
 
83092
#line 83093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83093
} // closed Puma
 
83094
 
 
83095
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83096
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83097
#include "CCExprResolveH.ah"
 
83098
#endif
 
83099
namespace Puma {
 
83100
 
 
83101
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83102
 
 
83103
#line 83104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83104
} // closed Puma
 
83105
 
 
83106
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83107
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83108
#include "CExprResolveH.ah"
 
83109
#endif
 
83110
namespace Puma {
 
83111
 
 
83112
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67665
83113
class CT_DeleteExpr : public CT_Expression, public CSemObject {
67666
 
#line 67667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83114
#line 83115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83115
  friend class ::CCExprResolve;
 
83116
  friend class ::CExprResolve;
67667
83117
  friend class ::WinIfExists;
67668
83118
  friend class ::WinImportHandler;
67669
83119
  friend class ::WinMacros;
67670
 
  friend class ::CMatchSyntax;
67671
 
  friend class ::ExtGnu;
 
83120
  friend class ::WinAsm;
 
83121
  friend class ::WinDeclSpecs;
 
83122
  friend class ::WinMemberExplSpec;
 
83123
  friend class ::WinTypeKeywords;
 
83124
  friend class ::WinFriend;
67672
83125
  friend class ::ExtAC;
67673
83126
  friend class ::ExtACBuilderCoupling;
67674
83127
  friend class ::ExtACSyntaxCoupling;
67675
83128
  friend class ::ExtACTree;
67676
83129
  friend class ::ExtACKeywords;
67677
 
  friend class ::WinAsm;
67678
 
  friend class ::WinDeclSpecs;
67679
 
  friend class ::WinMemberExplSpec;
67680
 
  friend class ::WinTypeKeywords;
 
83130
  friend class ::ExtGnu;
67681
83131
  friend class ::PragmaOnceUnitState;
67682
83132
  friend class ::PragmaOnce;
67683
 
  friend class ::CCExprResolve;
67684
 
  friend class ::CExprResolve;
 
83133
  friend class ::CMatchSyntax;
67685
83134
 
67686
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83135
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67687
83136
 
67688
83137
  CTree *sons[2]; // oper, expr
67689
83138
 
67690
83139
public:
67691
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
83140
  /** Constructor.
 
83141
   *  \param op The delete operator.
 
83142
   *  \param e The expression representing the object to delete. */
 
83143
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
83144
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67692
83145
  static const char *NodeId ();
 
83146
  /** Get the name of the node. Can be compared with NodeId(). */
67693
83147
  const char *NodeName () const { return NodeId (); }
 
83148
  /** Get the number of sons. */
67694
83149
  int Sons () const { return 2; }
 
83150
  /** Get the n-th son.
 
83151
   *  \param n The index of the son.
 
83152
   *  \return The n-th son or NULL. */
67695
83153
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
83154
  /** Replace a son.
 
83155
   *  \param old_son The son to replace.
 
83156
   *  \param new_son The new son. */
67696
83157
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67697
83158
    CTree::ReplaceSon (sons, 2, old_son, new_son);
67698
83159
  }
 
83160
  /** Get the expression. */
67699
83161
  CTree *Expr () const { return sons[1]; }
 
83162
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
67700
83163
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
83164
  /** Get the semantic information object. */
67701
83165
  CSemObject *SemObject () const { return (CSemObject*)this; }
67702
83166
   private:
67703
83167
  typedef CT_DeleteExpr CCExprResolveExpr;
67704
83168
 
67705
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83169
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67706
83170
 public :
67707
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83171
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67708
83172
  typedef CT_DeleteExpr CExprResolveExpr;
67709
83173
 
67710
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83174
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67711
83175
 public :
67712
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67713
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83176
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83177
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67714
83178
};
67715
83179
 
 
83180
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
83181
 *  Tree node representing a new expression, e.g. new A(). */
67716
83182
 
67717
 
#line 67718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83183
#line 83184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67718
83184
} // closed Puma
 
83185
class CCExprResolve;
 
83186
class CExprResolve;
67719
83187
class WinIfExists;
67720
83188
class WinImportHandler;
67721
83189
class WinMacros;
67722
 
class CMatchSyntax;
67723
 
class ExtGnu;
 
83190
class WinAsm;
 
83191
class WinDeclSpecs;
 
83192
class WinMemberExplSpec;
 
83193
class WinTypeKeywords;
 
83194
class WinFriend;
67724
83195
class ExtAC;
67725
83196
class ExtACBuilderCoupling;
67726
83197
class ExtACSyntaxCoupling;
67727
83198
class ExtACTree;
67728
83199
class ExtACKeywords;
67729
 
class WinAsm;
67730
 
class WinDeclSpecs;
67731
 
class WinMemberExplSpec;
67732
 
class WinTypeKeywords;
 
83200
class ExtGnu;
67733
83201
class PragmaOnceUnitState;
67734
83202
class PragmaOnce;
67735
 
class CCExprResolve;
67736
 
class CExprResolve;
67737
 
namespace Puma {
67738
 
 
67739
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83203
class CMatchSyntax;
 
83204
namespace Puma {
 
83205
 
 
83206
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83207
 
 
83208
#line 83209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83209
} // closed Puma
 
83210
 
 
83211
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83212
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83213
#include "CCExprResolveH.ah"
 
83214
#endif
 
83215
namespace Puma {
 
83216
 
 
83217
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83218
 
 
83219
#line 83220 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83220
} // closed Puma
 
83221
 
 
83222
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83223
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83224
#include "CExprResolveH.ah"
 
83225
#endif
 
83226
namespace Puma {
 
83227
 
 
83228
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67740
83229
class CT_NewExpr : public CT_Expression, public CSemObject {
67741
 
#line 67742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83230
#line 83231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83231
  friend class ::CCExprResolve;
 
83232
  friend class ::CExprResolve;
67742
83233
  friend class ::WinIfExists;
67743
83234
  friend class ::WinImportHandler;
67744
83235
  friend class ::WinMacros;
67745
 
  friend class ::CMatchSyntax;
67746
 
  friend class ::ExtGnu;
 
83236
  friend class ::WinAsm;
 
83237
  friend class ::WinDeclSpecs;
 
83238
  friend class ::WinMemberExplSpec;
 
83239
  friend class ::WinTypeKeywords;
 
83240
  friend class ::WinFriend;
67747
83241
  friend class ::ExtAC;
67748
83242
  friend class ::ExtACBuilderCoupling;
67749
83243
  friend class ::ExtACSyntaxCoupling;
67750
83244
  friend class ::ExtACTree;
67751
83245
  friend class ::ExtACKeywords;
67752
 
  friend class ::WinAsm;
67753
 
  friend class ::WinDeclSpecs;
67754
 
  friend class ::WinMemberExplSpec;
67755
 
  friend class ::WinTypeKeywords;
 
83246
  friend class ::ExtGnu;
67756
83247
  friend class ::PragmaOnceUnitState;
67757
83248
  friend class ::PragmaOnce;
67758
 
  friend class ::CCExprResolve;
67759
 
  friend class ::CExprResolve;
 
83249
  friend class ::CMatchSyntax;
67760
83250
 
67761
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83251
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67762
83252
 
67763
83253
  CTree *sons[6]; // oper, placement, open, type, close, init
67764
83254
 
67765
83255
public:
 
83256
  /** Constructor.
 
83257
   *  \param op The new operator.
 
83258
   *  \param p The optional placement expression.
 
83259
   *  \param o The optional left parenthesis around the type identifier.
 
83260
   *  \param t The type identifier specifying the type of the object to create.
 
83261
   *  \param c The optional right parenthesis around the type identifier.
 
83262
   *  \param i The optional initializer. */
67766
83263
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
67767
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
83264
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
83265
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
67768
83266
  }
 
83267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67769
83268
  static const char *NodeId ();
 
83269
  /** Get the name of the node. Can be compared with NodeId(). */
67770
83270
  const char *NodeName () const { return NodeId (); }
 
83271
  /** Get the number of sons. */
67771
83272
  int Sons () const { return CTree::Sons (sons, 6); }
 
83273
  /** Get the n-th son.
 
83274
   *  \param n The index of the son.
 
83275
   *  \return The n-th son or NULL. */
67772
83276
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
83277
  /** Replace a son.
 
83278
   *  \param old_son The son to replace.
 
83279
   *  \param new_son The new son. */
67773
83280
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67774
83281
    CTree::ReplaceSon (sons, 6, old_son, new_son);
67775
83282
  }
 
83283
  /** Get the operator name. */
67776
83284
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
83285
  /** Get the placement expression. */
67777
83286
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
83287
  /** Get the initializer. */
67778
83288
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
83289
  /** Get the type of the object to create. */
67779
83290
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
83291
  /** Get the semantic information object. */
67780
83292
  CSemObject *SemObject () const { return (CSemObject*)this; }
67781
83293
   private:
67782
83294
  typedef CT_NewExpr CCExprResolveExpr;
67783
83295
 
67784
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67785
83297
 public :
67786
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83298
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67787
83299
  typedef CT_NewExpr CExprResolveExpr;
67788
83300
 
67789
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67790
83302
 public :
67791
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67792
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83303
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83304
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67793
83305
};
67794
83306
 
 
83307
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
83308
 *  Tree node representing an if-then expression, 
 
83309
 *  e.g. a>0?a:b or a?:b. */
67795
83310
 
67796
 
#line 67797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83311
#line 83312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67797
83312
} // closed Puma
 
83313
class CCExprResolve;
 
83314
class CExprResolve;
67798
83315
class WinIfExists;
67799
83316
class WinImportHandler;
67800
83317
class WinMacros;
67801
 
class CMatchSyntax;
67802
 
class ExtGnu;
 
83318
class WinAsm;
 
83319
class WinDeclSpecs;
 
83320
class WinMemberExplSpec;
 
83321
class WinTypeKeywords;
 
83322
class WinFriend;
67803
83323
class ExtAC;
67804
83324
class ExtACBuilderCoupling;
67805
83325
class ExtACSyntaxCoupling;
67806
83326
class ExtACTree;
67807
83327
class ExtACKeywords;
67808
 
class WinAsm;
67809
 
class WinDeclSpecs;
67810
 
class WinMemberExplSpec;
67811
 
class WinTypeKeywords;
 
83328
class ExtGnu;
67812
83329
class PragmaOnceUnitState;
67813
83330
class PragmaOnce;
67814
 
class CCExprResolve;
67815
 
class CExprResolve;
67816
 
namespace Puma {
67817
 
 
67818
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83331
class CMatchSyntax;
 
83332
namespace Puma {
 
83333
 
 
83334
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83335
 
 
83336
#line 83337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83337
} // closed Puma
 
83338
 
 
83339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83341
#include "CCExprResolveH.ah"
 
83342
#endif
 
83343
namespace Puma {
 
83344
 
 
83345
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83346
 
 
83347
#line 83348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83348
} // closed Puma
 
83349
 
 
83350
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83351
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83352
#include "CExprResolveH.ah"
 
83353
#endif
 
83354
namespace Puma {
 
83355
 
 
83356
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67819
83357
class CT_IfThenExpr : public CT_Expression {
67820
 
#line 67821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83358
#line 83359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83359
  friend class ::CCExprResolve;
 
83360
  friend class ::CExprResolve;
67821
83361
  friend class ::WinIfExists;
67822
83362
  friend class ::WinImportHandler;
67823
83363
  friend class ::WinMacros;
67824
 
  friend class ::CMatchSyntax;
67825
 
  friend class ::ExtGnu;
 
83364
  friend class ::WinAsm;
 
83365
  friend class ::WinDeclSpecs;
 
83366
  friend class ::WinMemberExplSpec;
 
83367
  friend class ::WinTypeKeywords;
 
83368
  friend class ::WinFriend;
67826
83369
  friend class ::ExtAC;
67827
83370
  friend class ::ExtACBuilderCoupling;
67828
83371
  friend class ::ExtACSyntaxCoupling;
67829
83372
  friend class ::ExtACTree;
67830
83373
  friend class ::ExtACKeywords;
67831
 
  friend class ::WinAsm;
67832
 
  friend class ::WinDeclSpecs;
67833
 
  friend class ::WinMemberExplSpec;
67834
 
  friend class ::WinTypeKeywords;
 
83374
  friend class ::ExtGnu;
67835
83375
  friend class ::PragmaOnceUnitState;
67836
83376
  friend class ::PragmaOnce;
67837
 
  friend class ::CCExprResolve;
67838
 
  friend class ::CExprResolve;
 
83377
  friend class ::CMatchSyntax;
67839
83378
 
67840
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83379
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67841
83380
 
67842
83381
  CTree *sons[5]; // cond, oper, left, colon, right
67843
83382
 
67844
83383
public:
 
83384
  /** Constructor.
 
83385
   *  \param c1 The condition expression.
 
83386
   *  \param o The question mark operator. 
 
83387
   *  \param l The expression to the left of the colon.
 
83388
   *  \param c2 The colon operator.
 
83389
   *  \param r The expression to the right of the colon. */ 
67845
83390
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
67846
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
83391
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
83392
    AddSon (sons[3], c2); AddSon (sons[4], r);
67847
83393
  }
 
83394
  /** Constructor.
 
83395
   *  \param c1 The condition expression.
 
83396
   *  \param o The question mark operator. 
 
83397
   *  \param c2 The colon operator.
 
83398
   *  \param r The expression to the right of the colon. */ 
67848
83399
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
67849
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
83400
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
83401
    AddSon (sons[3], c2); AddSon (sons[4], r);
67850
83402
  }
 
83403
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67851
83404
  static const char *NodeId ();
 
83405
  /** Get the name of the node. Can be compared with NodeId(). */
67852
83406
  const char *NodeName () const { return NodeId (); }
 
83407
  /** Get the number of sons. */
67853
83408
  int Sons () const { return CTree::Sons (sons, 5); }
 
83409
  /** Get the n-th son.
 
83410
   *  \param n The index of the son.
 
83411
   *  \return The n-th son or NULL. */
67854
83412
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
83413
  /** Get the condition expression. */
67855
83414
  CTree *Condition () const { return sons[0]; }
 
83415
  /** Get the left expression (condition=true). */
67856
83416
  CTree *LeftOperand () const { return sons[2]; }
 
83417
  /** Get the right expression (condition=false). */
67857
83418
  CTree *RightOperand () const { return sons[4]; }
 
83419
  /** Replace a son.
 
83420
   *  \param old_son The son to replace.
 
83421
   *  \param new_son The new son. */
67858
83422
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67859
83423
    CTree::ReplaceSon (sons, 5, old_son, new_son);
67860
83424
  }
67861
83425
   private:
67862
83426
  typedef CT_IfThenExpr CCExprResolveExpr;
67863
83427
 
67864
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83428
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67865
83429
 public :
67866
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83430
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67867
83431
  typedef CT_IfThenExpr CExprResolveExpr;
67868
83432
 
67869
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83433
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67870
83434
 public :
67871
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67872
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83435
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83436
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67873
83437
};
67874
83438
 
 
83439
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
83440
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
67875
83441
 
67876
 
#line 67877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83442
#line 83443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67877
83443
} // closed Puma
 
83444
class CCExprResolve;
 
83445
class CExprResolve;
67878
83446
class WinIfExists;
67879
83447
class WinImportHandler;
67880
83448
class WinMacros;
67881
 
class CMatchSyntax;
67882
 
class ExtGnu;
 
83449
class WinAsm;
 
83450
class WinDeclSpecs;
 
83451
class WinMemberExplSpec;
 
83452
class WinTypeKeywords;
 
83453
class WinFriend;
67883
83454
class ExtAC;
67884
83455
class ExtACBuilderCoupling;
67885
83456
class ExtACSyntaxCoupling;
67886
83457
class ExtACTree;
67887
83458
class ExtACKeywords;
67888
 
class WinAsm;
67889
 
class WinDeclSpecs;
67890
 
class WinMemberExplSpec;
67891
 
class WinTypeKeywords;
 
83459
class ExtGnu;
67892
83460
class PragmaOnceUnitState;
67893
83461
class PragmaOnce;
67894
 
class CCExprResolve;
67895
 
class CExprResolve;
67896
 
namespace Puma {
67897
 
 
67898
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83462
class CMatchSyntax;
 
83463
namespace Puma {
 
83464
 
 
83465
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83466
 
 
83467
#line 83468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83468
} // closed Puma
 
83469
 
 
83470
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83471
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83472
#include "CCExprResolveH.ah"
 
83473
#endif
 
83474
namespace Puma {
 
83475
 
 
83476
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83477
 
 
83478
#line 83479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83479
} // closed Puma
 
83480
 
 
83481
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83482
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83483
#include "CExprResolveH.ah"
 
83484
#endif
 
83485
namespace Puma {
 
83486
 
 
83487
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67899
83488
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
67900
 
#line 67901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83489
#line 83490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83490
  friend class ::CCExprResolve;
 
83491
  friend class ::CExprResolve;
67901
83492
  friend class ::WinIfExists;
67902
83493
  friend class ::WinImportHandler;
67903
83494
  friend class ::WinMacros;
67904
 
  friend class ::CMatchSyntax;
67905
 
  friend class ::ExtGnu;
 
83495
  friend class ::WinAsm;
 
83496
  friend class ::WinDeclSpecs;
 
83497
  friend class ::WinMemberExplSpec;
 
83498
  friend class ::WinTypeKeywords;
 
83499
  friend class ::WinFriend;
67906
83500
  friend class ::ExtAC;
67907
83501
  friend class ::ExtACBuilderCoupling;
67908
83502
  friend class ::ExtACSyntaxCoupling;
67909
83503
  friend class ::ExtACTree;
67910
83504
  friend class ::ExtACKeywords;
67911
 
  friend class ::WinAsm;
67912
 
  friend class ::WinDeclSpecs;
67913
 
  friend class ::WinMemberExplSpec;
67914
 
  friend class ::WinTypeKeywords;
 
83505
  friend class ::ExtGnu;
67915
83506
  friend class ::PragmaOnceUnitState;
67916
83507
  friend class ::PragmaOnce;
67917
 
  friend class ::CCExprResolve;
67918
 
  friend class ::CExprResolve;
 
83508
  friend class ::CMatchSyntax;
67919
83509
 
67920
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83510
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67921
83511
 
67922
83512
  CTree *sons[4]; // open, type, close, init
67923
83513
 
67924
83514
public:
 
83515
  /** Constructor.
 
83516
   *  \param r Left parenthesis of the type name.
 
83517
   *  \param t The type name.
 
83518
   *  \param cr Right parenthesis of the type name.
 
83519
   *  \param i The initializer list. */
67925
83520
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
67926
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
83521
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
83522
    AddSon (sons[2], cr); AddSon (sons[3], i);
67927
83523
  }
 
83524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67928
83525
  static const char *NodeId ();
 
83526
  /** Get the name of the node. Can be compared with NodeId(). */
67929
83527
  const char *NodeName () const { return NodeId (); }
 
83528
  /** Get the number of sons. */
67930
83529
  int Sons () const { return 4; }
 
83530
  /** Get the n-th son.
 
83531
   *  \param n The index of the son.
 
83532
   *  \return The n-th son or NULL. */
67931
83533
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
83534
  /** Replace a son.
 
83535
   *  \param old_son The son to replace.
 
83536
   *  \param new_son The new son. */
67932
83537
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67933
83538
    CTree::ReplaceSon (sons, 4, old_son, new_son);
67934
83539
  }
 
83540
  /** Get the type name. */
67935
83541
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
83542
  /** Get the initializer list. */
67936
83543
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
83544
  /** Get the semantic information object. */
67937
83545
  CSemObject *SemObject () const { return (CSemObject*)this; }
67938
83546
   private:
67939
83547
  typedef CT_CmpdLiteral CCExprResolveExpr;
67940
83548
 
67941
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
67942
83550
 public :
67943
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83551
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
67944
83552
  typedef CT_CmpdLiteral CExprResolveExpr;
67945
83553
 
67946
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83554
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
67947
83555
 public :
67948
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
67949
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83556
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83557
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67950
83558
};
67951
83559
 
 
83560
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
83561
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
67952
83562
 
67953
 
#line 67954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83563
#line 83564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
67954
83564
} // closed Puma
 
83565
class CCExprResolve;
 
83566
class CExprResolve;
67955
83567
class WinIfExists;
67956
83568
class WinImportHandler;
67957
83569
class WinMacros;
67958
 
class CMatchSyntax;
67959
 
class ExtGnu;
 
83570
class WinAsm;
 
83571
class WinDeclSpecs;
 
83572
class WinMemberExplSpec;
 
83573
class WinTypeKeywords;
 
83574
class WinFriend;
67960
83575
class ExtAC;
67961
83576
class ExtACBuilderCoupling;
67962
83577
class ExtACSyntaxCoupling;
67963
83578
class ExtACTree;
67964
83579
class ExtACKeywords;
67965
 
class WinAsm;
67966
 
class WinDeclSpecs;
67967
 
class WinMemberExplSpec;
67968
 
class WinTypeKeywords;
 
83580
class ExtGnu;
67969
83581
class PragmaOnceUnitState;
67970
83582
class PragmaOnce;
67971
 
class CCExprResolve;
67972
 
class CExprResolve;
67973
 
namespace Puma {
67974
 
 
67975
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83583
class CMatchSyntax;
 
83584
namespace Puma {
 
83585
 
 
83586
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83587
 
 
83588
#line 83589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83589
} // closed Puma
 
83590
 
 
83591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83593
#include "CCExprResolveH.ah"
 
83594
#endif
 
83595
namespace Puma {
 
83596
 
 
83597
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83598
 
 
83599
#line 83600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83600
} // closed Puma
 
83601
 
 
83602
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83603
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83604
#include "CExprResolveH.ah"
 
83605
#endif
 
83606
namespace Puma {
 
83607
 
 
83608
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67976
83609
class CT_ConstructExpr : public CT_Expression, public CSemObject {
67977
 
#line 67978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83610
#line 83611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83611
  friend class ::CCExprResolve;
 
83612
  friend class ::CExprResolve;
67978
83613
  friend class ::WinIfExists;
67979
83614
  friend class ::WinImportHandler;
67980
83615
  friend class ::WinMacros;
67981
 
  friend class ::CMatchSyntax;
67982
 
  friend class ::ExtGnu;
 
83616
  friend class ::WinAsm;
 
83617
  friend class ::WinDeclSpecs;
 
83618
  friend class ::WinMemberExplSpec;
 
83619
  friend class ::WinTypeKeywords;
 
83620
  friend class ::WinFriend;
67983
83621
  friend class ::ExtAC;
67984
83622
  friend class ::ExtACBuilderCoupling;
67985
83623
  friend class ::ExtACSyntaxCoupling;
67986
83624
  friend class ::ExtACTree;
67987
83625
  friend class ::ExtACKeywords;
67988
 
  friend class ::WinAsm;
67989
 
  friend class ::WinDeclSpecs;
67990
 
  friend class ::WinMemberExplSpec;
67991
 
  friend class ::WinTypeKeywords;
 
83626
  friend class ::ExtGnu;
67992
83627
  friend class ::PragmaOnceUnitState;
67993
83628
  friend class ::PragmaOnce;
67994
 
  friend class ::CCExprResolve;
67995
 
  friend class ::CExprResolve;
 
83629
  friend class ::CMatchSyntax;
67996
83630
 
67997
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83631
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67998
83632
 
67999
83633
  CTree *sons[2]; // type, init
68000
83634
 
68001
83635
public:
68002
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
83636
  /** Constructor.
 
83637
   *  \param t The type name.
 
83638
   *  \param i The initializer list. */
 
83639
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
83640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68003
83641
  static const char *NodeId ();
 
83642
  /** Get the name of the node. Can be compared with NodeId(). */
68004
83643
  const char *NodeName () const { return NodeId (); }
 
83644
  /** Get the number of sons. */
68005
83645
  int Sons () const { return 2; }
 
83646
  /** Get the n-th son.
 
83647
   *  \param n The index of the son.
 
83648
   *  \return The n-th son or NULL. */
68006
83649
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
83650
  /** Replace a son.
 
83651
   *  \param old_son The son to replace.
 
83652
   *  \param new_son The new son. */
68007
83653
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68008
83654
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68009
83655
  }
 
83656
  /** Get the type name. */
68010
83657
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
83658
  /** Get the initializer. */
68011
83659
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
83660
  /** Get the semantic information object. */
68012
83661
  CSemObject *SemObject () const { return (CSemObject*)this; }
68013
83662
   private:
68014
83663
  typedef CT_ConstructExpr CCExprResolveExpr;
68015
83664
 
68016
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83665
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68017
83666
 public :
68018
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83667
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68019
83668
  typedef CT_ConstructExpr CExprResolveExpr;
68020
83669
 
68021
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83670
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68022
83671
 public :
68023
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68024
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83672
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83673
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68025
83674
};
68026
83675
 
 
83676
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
83677
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
68027
83678
 
68028
 
#line 68029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83679
#line 83680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68029
83680
} // closed Puma
 
83681
class CCExprResolve;
 
83682
class CExprResolve;
68030
83683
class WinIfExists;
68031
83684
class WinImportHandler;
68032
83685
class WinMacros;
68033
 
class CMatchSyntax;
68034
 
class ExtGnu;
 
83686
class WinAsm;
 
83687
class WinDeclSpecs;
 
83688
class WinMemberExplSpec;
 
83689
class WinTypeKeywords;
 
83690
class WinFriend;
68035
83691
class ExtAC;
68036
83692
class ExtACBuilderCoupling;
68037
83693
class ExtACSyntaxCoupling;
68038
83694
class ExtACTree;
68039
83695
class ExtACKeywords;
68040
 
class WinAsm;
68041
 
class WinDeclSpecs;
68042
 
class WinMemberExplSpec;
68043
 
class WinTypeKeywords;
 
83696
class ExtGnu;
68044
83697
class PragmaOnceUnitState;
68045
83698
class PragmaOnce;
68046
 
class CCExprResolve;
68047
 
class CExprResolve;
68048
 
namespace Puma {
68049
 
 
68050
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83699
class CMatchSyntax;
 
83700
namespace Puma {
 
83701
 
 
83702
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83703
 
 
83704
#line 83705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83705
} // closed Puma
 
83706
 
 
83707
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83708
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83709
#include "CCExprResolveH.ah"
 
83710
#endif
 
83711
namespace Puma {
 
83712
 
 
83713
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83714
 
 
83715
#line 83716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83716
} // closed Puma
 
83717
 
 
83718
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83719
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83720
#include "CExprResolveH.ah"
 
83721
#endif
 
83722
namespace Puma {
 
83723
 
 
83724
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68051
83725
class CT_ThrowExpr : public CT_Expression {
68052
 
#line 68053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83726
#line 83727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83727
  friend class ::CCExprResolve;
 
83728
  friend class ::CExprResolve;
68053
83729
  friend class ::WinIfExists;
68054
83730
  friend class ::WinImportHandler;
68055
83731
  friend class ::WinMacros;
68056
 
  friend class ::CMatchSyntax;
68057
 
  friend class ::ExtGnu;
 
83732
  friend class ::WinAsm;
 
83733
  friend class ::WinDeclSpecs;
 
83734
  friend class ::WinMemberExplSpec;
 
83735
  friend class ::WinTypeKeywords;
 
83736
  friend class ::WinFriend;
68058
83737
  friend class ::ExtAC;
68059
83738
  friend class ::ExtACBuilderCoupling;
68060
83739
  friend class ::ExtACSyntaxCoupling;
68061
83740
  friend class ::ExtACTree;
68062
83741
  friend class ::ExtACKeywords;
68063
 
  friend class ::WinAsm;
68064
 
  friend class ::WinDeclSpecs;
68065
 
  friend class ::WinMemberExplSpec;
68066
 
  friend class ::WinTypeKeywords;
 
83742
  friend class ::ExtGnu;
68067
83743
  friend class ::PragmaOnceUnitState;
68068
83744
  friend class ::PragmaOnce;
68069
 
  friend class ::CCExprResolve;
68070
 
  friend class ::CExprResolve;
 
83745
  friend class ::CMatchSyntax;
68071
83746
 
68072
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83747
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68073
83748
 
68074
83749
  CTree *sons[2]; // throw, expr
68075
83750
 
68076
83751
public:
68077
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
83752
  /** Constructor.
 
83753
   *  \param t The 'throw' keyword.
 
83754
   *  \param e The expression. */
 
83755
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
83756
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68078
83757
  static const char *NodeId ();
 
83758
  /** Get the name of the node. Can be compared with NodeId(). */
68079
83759
  const char *NodeName () const { return NodeId (); }
 
83760
  /** Get the number of sons. */
68080
83761
  int Sons () const { return CTree::Sons (sons, 2); }
 
83762
  /** Get the n-th son.
 
83763
   *  \param n The index of the son.
 
83764
   *  \return The n-th son or NULL. */
68081
83765
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
83766
  /** Replace a son.
 
83767
   *  \param old_son The son to replace.
 
83768
   *  \param new_son The new son. */
68082
83769
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68083
83770
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68084
83771
  }
 
83772
  /** Get the expression. */
68085
83773
  CTree *Expr () const { return sons[1]; }
68086
83774
   private:
68087
83775
  typedef CT_ThrowExpr CCExprResolveExpr;
68088
83776
 
68089
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83777
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68090
83778
 public :
68091
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83779
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68092
83780
  typedef CT_ThrowExpr CExprResolveExpr;
68093
83781
 
68094
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83782
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68095
83783
 public :
68096
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68097
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83784
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83785
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68098
83786
};
68099
83787
 
 
83788
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
83789
 *  Tree node representing an index expression. */
68100
83790
 
68101
 
#line 68102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83791
#line 83792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68102
83792
} // closed Puma
 
83793
class CCExprResolve;
 
83794
class CExprResolve;
68103
83795
class WinIfExists;
68104
83796
class WinImportHandler;
68105
83797
class WinMacros;
68106
 
class CMatchSyntax;
68107
 
class ExtGnu;
 
83798
class WinAsm;
 
83799
class WinDeclSpecs;
 
83800
class WinMemberExplSpec;
 
83801
class WinTypeKeywords;
 
83802
class WinFriend;
68108
83803
class ExtAC;
68109
83804
class ExtACBuilderCoupling;
68110
83805
class ExtACSyntaxCoupling;
68111
83806
class ExtACTree;
68112
83807
class ExtACKeywords;
68113
 
class WinAsm;
68114
 
class WinDeclSpecs;
68115
 
class WinMemberExplSpec;
68116
 
class WinTypeKeywords;
 
83808
class ExtGnu;
68117
83809
class PragmaOnceUnitState;
68118
83810
class PragmaOnce;
68119
 
class CCExprResolve;
68120
 
class CExprResolve;
68121
 
namespace Puma {
68122
 
 
68123
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68124
 
class CT_IndexExpr : public CT_Expression {
68125
 
#line 68126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83811
class CMatchSyntax;
 
83812
namespace Puma {
 
83813
 
 
83814
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83815
 
 
83816
#line 83817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83817
} // closed Puma
 
83818
 
 
83819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83821
#include "CCExprResolveH.ah"
 
83822
#endif
 
83823
namespace Puma {
 
83824
 
 
83825
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83826
 
 
83827
#line 83828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83828
} // closed Puma
 
83829
 
 
83830
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83831
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83832
#include "CExprResolveH.ah"
 
83833
#endif
 
83834
namespace Puma {
 
83835
 
 
83836
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83837
class CT_IndexExpr : public CT_Call {
 
83838
#line 83839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83839
  friend class ::CCExprResolve;
 
83840
  friend class ::CExprResolve;
68126
83841
  friend class ::WinIfExists;
68127
83842
  friend class ::WinImportHandler;
68128
83843
  friend class ::WinMacros;
68129
 
  friend class ::CMatchSyntax;
68130
 
  friend class ::ExtGnu;
 
83844
  friend class ::WinAsm;
 
83845
  friend class ::WinDeclSpecs;
 
83846
  friend class ::WinMemberExplSpec;
 
83847
  friend class ::WinTypeKeywords;
 
83848
  friend class ::WinFriend;
68131
83849
  friend class ::ExtAC;
68132
83850
  friend class ::ExtACBuilderCoupling;
68133
83851
  friend class ::ExtACSyntaxCoupling;
68134
83852
  friend class ::ExtACTree;
68135
83853
  friend class ::ExtACKeywords;
68136
 
  friend class ::WinAsm;
68137
 
  friend class ::WinDeclSpecs;
68138
 
  friend class ::WinMemberExplSpec;
68139
 
  friend class ::WinTypeKeywords;
 
83854
  friend class ::ExtGnu;
68140
83855
  friend class ::PragmaOnceUnitState;
68141
83856
  friend class ::PragmaOnce;
68142
 
  friend class ::CCExprResolve;
68143
 
  friend class ::CExprResolve;
 
83857
  friend class ::CMatchSyntax;
68144
83858
 
68145
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83859
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68146
83860
 
68147
83861
  CTree *sons[4]; // expr, open, index, close
68148
83862
 
68149
83863
public:
 
83864
  /** Constructor.
 
83865
   *  \param e The expression on which to invoke the index operator.
 
83866
   *  \param o Left parenthesis of the index expression.
 
83867
   *  \param i The index expression. 
 
83868
   *  \param c Right parenthesis of the index expression. */
68150
83869
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
68151
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
83870
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
83871
    AddSon (sons[2], i); AddSon (sons[3], c);
68152
83872
  }
 
83873
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68153
83874
  static const char *NodeId ();
 
83875
  /** Get the name of the node. Can be compared with NodeId(). */
68154
83876
  const char *NodeName () const { return NodeId (); }
 
83877
  /** Get the number of sons. */
68155
83878
  int Sons () const { return 4; }
 
83879
  /** Get the n-th son.
 
83880
   *  \param n The index of the son.
 
83881
   *  \return The n-th son or NULL. */
68156
83882
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
83883
  /** Replace a son.
 
83884
   *  \param old_son The son to replace.
 
83885
   *  \param new_son The new son. */
68157
83886
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68158
83887
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68159
83888
  }
68160
83889
   private:
68161
83890
  typedef CT_IndexExpr CCExprResolveExpr;
68162
83891
 
68163
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
83892
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68164
83893
 public :
68165
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
83894
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68166
83895
  typedef CT_IndexExpr CExprResolveExpr;
68167
83896
 
68168
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
83897
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68169
83898
 public :
68170
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68171
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83899
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
83900
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68172
83901
};
68173
83902
 
 
83903
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
83904
 *  Tree node representing a function call expression, e.g. f(i). */
68174
83905
 
68175
 
#line 68176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83906
#line 83907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68176
83907
} // closed Puma
 
83908
class CCExprResolve;
 
83909
class CExprResolve;
68177
83910
class WinIfExists;
68178
83911
class WinImportHandler;
68179
83912
class WinMacros;
68180
 
class CMatchSyntax;
68181
 
class ExtGnu;
 
83913
class WinAsm;
 
83914
class WinDeclSpecs;
 
83915
class WinMemberExplSpec;
 
83916
class WinTypeKeywords;
 
83917
class WinFriend;
68182
83918
class ExtAC;
68183
83919
class ExtACBuilderCoupling;
68184
83920
class ExtACSyntaxCoupling;
68185
83921
class ExtACTree;
68186
83922
class ExtACKeywords;
68187
 
class WinAsm;
68188
 
class WinDeclSpecs;
68189
 
class WinMemberExplSpec;
68190
 
class WinTypeKeywords;
 
83923
class ExtGnu;
68191
83924
class PragmaOnceUnitState;
68192
83925
class PragmaOnce;
68193
 
class CCExprResolve;
68194
 
class CExprResolve;
68195
 
namespace Puma {
68196
 
 
68197
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
68198
 
class CT_CallExpr : public CT_Expression, public CSemObject {
68199
 
#line 68200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
83926
class CMatchSyntax;
 
83927
namespace Puma {
 
83928
 
 
83929
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83930
 
 
83931
#line 83932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83932
} // closed Puma
 
83933
 
 
83934
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83935
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
83936
#include "CCExprResolveH.ah"
 
83937
#endif
 
83938
namespace Puma {
 
83939
 
 
83940
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83941
 
 
83942
#line 83943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83943
} // closed Puma
 
83944
 
 
83945
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83946
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
83947
#include "CExprResolveH.ah"
 
83948
#endif
 
83949
namespace Puma {
 
83950
 
 
83951
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83952
class CT_CallExpr : public CT_Call {
 
83953
#line 83954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
83954
  friend class ::CCExprResolve;
 
83955
  friend class ::CExprResolve;
68200
83956
  friend class ::WinIfExists;
68201
83957
  friend class ::WinImportHandler;
68202
83958
  friend class ::WinMacros;
68203
 
  friend class ::CMatchSyntax;
68204
 
  friend class ::ExtGnu;
 
83959
  friend class ::WinAsm;
 
83960
  friend class ::WinDeclSpecs;
 
83961
  friend class ::WinMemberExplSpec;
 
83962
  friend class ::WinTypeKeywords;
 
83963
  friend class ::WinFriend;
68205
83964
  friend class ::ExtAC;
68206
83965
  friend class ::ExtACBuilderCoupling;
68207
83966
  friend class ::ExtACSyntaxCoupling;
68208
83967
  friend class ::ExtACTree;
68209
83968
  friend class ::ExtACKeywords;
68210
 
  friend class ::WinAsm;
68211
 
  friend class ::WinDeclSpecs;
68212
 
  friend class ::WinMemberExplSpec;
68213
 
  friend class ::WinTypeKeywords;
 
83969
  friend class ::ExtGnu;
68214
83970
  friend class ::PragmaOnceUnitState;
68215
83971
  friend class ::PragmaOnce;
68216
 
  friend class ::CCExprResolve;
68217
 
  friend class ::CExprResolve;
 
83972
  friend class ::CMatchSyntax;
68218
83973
 
68219
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
83974
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68220
83975
 
68221
83976
  CTree *sons[2]; // expr, args
68222
83977
 
68223
83978
public:
68224
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
68225
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
83979
  /** Constructor.
 
83980
   *  \param e The expression on which the call is invoked. */
 
83981
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
83982
  /** Constructor.
 
83983
   *  \param e The expression on which the call is invoked.
 
83984
   *  \param l The argument list of the call. */
 
83985
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
83986
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68226
83987
  static const char *NodeId ();
 
83988
  /** Get the name of the node. Can be compared with NodeId(). */
68227
83989
  const char *NodeName () const { return NodeId (); }
 
83990
  /** Get the number of sons. */
68228
83991
  int Sons () const { return CTree::Sons (sons, 2); }
 
83992
  /** Get the n-th son.
 
83993
   *  \param n The index of the son.
 
83994
   *  \return The n-th son or NULL. */
68229
83995
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
83996
  /** Replace a son.
 
83997
   *  \param old_son The son to replace.
 
83998
   *  \param new_son The new son. */
68230
83999
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68231
84000
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68232
84001
  }
68233
84002
  CTree *Expr () const { return sons[0]; }
68234
84003
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
68235
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
68236
84004
   private:
68237
84005
  typedef CT_CallExpr CCExprResolveExpr;
68238
84006
 
68239
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84007
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68240
84008
 public :
68241
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84009
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68242
84010
  typedef CT_CallExpr CExprResolveExpr;
68243
84011
 
68244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84012
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68245
84013
 public :
68246
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68247
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84014
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84015
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68248
84016
};
68249
84017
 
 
84018
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
84019
 *  Tree node representing a cast expression, e.g. (int)a. */
68250
84020
 
68251
 
#line 68252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84021
#line 84022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68252
84022
} // closed Puma
 
84023
class CCExprResolve;
 
84024
class CExprResolve;
68253
84025
class WinIfExists;
68254
84026
class WinImportHandler;
68255
84027
class WinMacros;
68256
 
class CMatchSyntax;
68257
 
class ExtGnu;
 
84028
class WinAsm;
 
84029
class WinDeclSpecs;
 
84030
class WinMemberExplSpec;
 
84031
class WinTypeKeywords;
 
84032
class WinFriend;
68258
84033
class ExtAC;
68259
84034
class ExtACBuilderCoupling;
68260
84035
class ExtACSyntaxCoupling;
68261
84036
class ExtACTree;
68262
84037
class ExtACKeywords;
68263
 
class WinAsm;
68264
 
class WinDeclSpecs;
68265
 
class WinMemberExplSpec;
68266
 
class WinTypeKeywords;
 
84038
class ExtGnu;
68267
84039
class PragmaOnceUnitState;
68268
84040
class PragmaOnce;
68269
 
class CCExprResolve;
68270
 
class CExprResolve;
68271
 
namespace Puma {
68272
 
 
68273
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84041
class CMatchSyntax;
 
84042
namespace Puma {
 
84043
 
 
84044
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84045
 
 
84046
#line 84047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84047
} // closed Puma
 
84048
 
 
84049
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84050
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84051
#include "CCExprResolveH.ah"
 
84052
#endif
 
84053
namespace Puma {
 
84054
 
 
84055
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84056
 
 
84057
#line 84058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84058
} // closed Puma
 
84059
 
 
84060
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84061
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84062
#include "CExprResolveH.ah"
 
84063
#endif
 
84064
namespace Puma {
 
84065
 
 
84066
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68274
84067
class CT_CastExpr : public CT_Expression {
68275
 
#line 68276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84068
#line 84069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84069
  friend class ::CCExprResolve;
 
84070
  friend class ::CExprResolve;
68276
84071
  friend class ::WinIfExists;
68277
84072
  friend class ::WinImportHandler;
68278
84073
  friend class ::WinMacros;
68279
 
  friend class ::CMatchSyntax;
68280
 
  friend class ::ExtGnu;
 
84074
  friend class ::WinAsm;
 
84075
  friend class ::WinDeclSpecs;
 
84076
  friend class ::WinMemberExplSpec;
 
84077
  friend class ::WinTypeKeywords;
 
84078
  friend class ::WinFriend;
68281
84079
  friend class ::ExtAC;
68282
84080
  friend class ::ExtACBuilderCoupling;
68283
84081
  friend class ::ExtACSyntaxCoupling;
68284
84082
  friend class ::ExtACTree;
68285
84083
  friend class ::ExtACKeywords;
68286
 
  friend class ::WinAsm;
68287
 
  friend class ::WinDeclSpecs;
68288
 
  friend class ::WinMemberExplSpec;
68289
 
  friend class ::WinTypeKeywords;
 
84084
  friend class ::ExtGnu;
68290
84085
  friend class ::PragmaOnceUnitState;
68291
84086
  friend class ::PragmaOnce;
68292
 
  friend class ::CCExprResolve;
68293
 
  friend class ::CExprResolve;
 
84087
  friend class ::CMatchSyntax;
68294
84088
 
68295
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84089
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68296
84090
 
68297
84091
  CTree *sons[4]; // open, type, close, expr
68298
84092
 
68299
84093
public:
 
84094
  /** Constructor.
 
84095
   *  \param o Left parenthesis of the type name.
 
84096
   *  \param t The type to cast to.
 
84097
   *  \param c Right parenthesis of the type name. 
 
84098
   *  \param e The expression to cast. */
68300
84099
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
68301
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
84100
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
84101
    AddSon (sons[2], c); AddSon (sons[3], e);
68302
84102
  }
 
84103
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68303
84104
  static const char *NodeId ();
 
84105
  /** Get the name of the node. Can be compared with NodeId(). */
68304
84106
  const char *NodeName () const { return NodeId (); }
 
84107
  /** Get the number of sons. */
68305
84108
  int Sons () const { return 4; }
 
84109
  /** Get the n-th son.
 
84110
   *  \param n The index of the son.
 
84111
   *  \return The n-th son or NULL. */
68306
84112
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
84113
  /** Replace a son.
 
84114
   *  \param old_son The son to replace.
 
84115
   *  \param new_son The new son. */
68307
84116
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68308
84117
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68309
84118
  }
 
84119
  /** Get the casted expression. */
68310
84120
  CTree *Expr () const { return sons[3]; }
 
84121
  /** Get the type to cast to. */
68311
84122
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
68312
84123
   private:
68313
84124
  typedef CT_CastExpr CCExprResolveExpr;
68314
84125
 
68315
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84126
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68316
84127
 public :
68317
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84128
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68318
84129
  typedef CT_CastExpr CExprResolveExpr;
68319
84130
 
68320
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84131
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68321
84132
 public :
68322
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68323
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84133
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84134
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68324
84135
};
68325
84136
 
 
84137
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
84138
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
68326
84139
 
68327
 
#line 68328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84140
#line 84141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68328
84141
} // closed Puma
 
84142
class CCExprResolve;
 
84143
class CExprResolve;
68329
84144
class WinIfExists;
68330
84145
class WinImportHandler;
68331
84146
class WinMacros;
68332
 
class CMatchSyntax;
68333
 
class ExtGnu;
 
84147
class WinAsm;
 
84148
class WinDeclSpecs;
 
84149
class WinMemberExplSpec;
 
84150
class WinTypeKeywords;
 
84151
class WinFriend;
68334
84152
class ExtAC;
68335
84153
class ExtACBuilderCoupling;
68336
84154
class ExtACSyntaxCoupling;
68337
84155
class ExtACTree;
68338
84156
class ExtACKeywords;
68339
 
class WinAsm;
68340
 
class WinDeclSpecs;
68341
 
class WinMemberExplSpec;
68342
 
class WinTypeKeywords;
 
84157
class ExtGnu;
68343
84158
class PragmaOnceUnitState;
68344
84159
class PragmaOnce;
68345
 
class CCExprResolve;
68346
 
class CExprResolve;
68347
 
namespace Puma {
68348
 
 
68349
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84160
class CMatchSyntax;
 
84161
namespace Puma {
 
84162
 
 
84163
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84164
 
 
84165
#line 84166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84166
} // closed Puma
 
84167
 
 
84168
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84169
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84170
#include "CCExprResolveH.ah"
 
84171
#endif
 
84172
namespace Puma {
 
84173
 
 
84174
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84175
 
 
84176
#line 84177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84177
} // closed Puma
 
84178
 
 
84179
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84180
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84181
#include "CExprResolveH.ah"
 
84182
#endif
 
84183
namespace Puma {
 
84184
 
 
84185
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68350
84186
class CT_StaticCast : public CT_Expression {
68351
 
#line 68352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84187
#line 84188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84188
  friend class ::CCExprResolve;
 
84189
  friend class ::CExprResolve;
68352
84190
  friend class ::WinIfExists;
68353
84191
  friend class ::WinImportHandler;
68354
84192
  friend class ::WinMacros;
68355
 
  friend class ::CMatchSyntax;
68356
 
  friend class ::ExtGnu;
 
84193
  friend class ::WinAsm;
 
84194
  friend class ::WinDeclSpecs;
 
84195
  friend class ::WinMemberExplSpec;
 
84196
  friend class ::WinTypeKeywords;
 
84197
  friend class ::WinFriend;
68357
84198
  friend class ::ExtAC;
68358
84199
  friend class ::ExtACBuilderCoupling;
68359
84200
  friend class ::ExtACSyntaxCoupling;
68360
84201
  friend class ::ExtACTree;
68361
84202
  friend class ::ExtACKeywords;
68362
 
  friend class ::WinAsm;
68363
 
  friend class ::WinDeclSpecs;
68364
 
  friend class ::WinMemberExplSpec;
68365
 
  friend class ::WinTypeKeywords;
 
84203
  friend class ::ExtGnu;
68366
84204
  friend class ::PragmaOnceUnitState;
68367
84205
  friend class ::PragmaOnce;
68368
 
  friend class ::CCExprResolve;
68369
 
  friend class ::CExprResolve;
 
84206
  friend class ::CMatchSyntax;
68370
84207
 
68371
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84208
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68372
84209
 
68373
84210
  CTree *sons[5]; // cast, open, type, close, expr
68374
84211
 
68375
84212
public:
 
84213
  /** Constructor.
 
84214
   *  \param cst The cast operator, i.e. 'static_cast'.
 
84215
   *  \param o Left arrow bracket of the type name.
 
84216
   *  \param t The type to cast to.
 
84217
   *  \param c Right array bracket of the type name.
 
84218
   *  \param e The expression to cast. */
68376
84219
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
68377
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
84220
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
84221
    AddSon (sons[3], c); AddSon (sons[4], e);
68378
84222
  }
 
84223
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68379
84224
  static const char *NodeId ();
 
84225
  /** Get the name of the node. Can be compared with NodeId(). */
68380
84226
  const char *NodeName () const { return NodeId (); }
 
84227
  /** Get the number of sons. */
68381
84228
  int Sons () const { return 5; }
 
84229
  /** Get the n-th son.
 
84230
   *  \param n The index of the son.
 
84231
   *  \return The n-th son or NULL. */
68382
84232
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
84233
  /** Replace a son.
 
84234
   *  \param old_son The son to replace.
 
84235
   *  \param new_son The new son. */
68383
84236
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68384
84237
    CTree::ReplaceSon (sons, 5, old_son, new_son);
68385
84238
  }
 
84239
  /** Get the casted expression. */
68386
84240
  CTree *Expr () const { return sons[4]; }
 
84241
  /** Get the type to cast to. */
68387
84242
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
68388
84243
   private:
68389
84244
  typedef CT_StaticCast CCExprResolveExpr;
68390
84245
 
68391
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68392
84247
 public :
68393
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84248
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68394
84249
  typedef CT_StaticCast CExprResolveExpr;
68395
84250
 
68396
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84251
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68397
84252
 public :
68398
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68399
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84253
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84254
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68400
84255
};
68401
84256
 
 
84257
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
84258
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
68402
84259
 
68403
 
#line 68404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84260
#line 84261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68404
84261
} // closed Puma
 
84262
class CCExprResolve;
 
84263
class CExprResolve;
68405
84264
class WinIfExists;
68406
84265
class WinImportHandler;
68407
84266
class WinMacros;
68408
 
class CMatchSyntax;
68409
 
class ExtGnu;
 
84267
class WinAsm;
 
84268
class WinDeclSpecs;
 
84269
class WinMemberExplSpec;
 
84270
class WinTypeKeywords;
 
84271
class WinFriend;
68410
84272
class ExtAC;
68411
84273
class ExtACBuilderCoupling;
68412
84274
class ExtACSyntaxCoupling;
68413
84275
class ExtACTree;
68414
84276
class ExtACKeywords;
68415
 
class WinAsm;
68416
 
class WinDeclSpecs;
68417
 
class WinMemberExplSpec;
68418
 
class WinTypeKeywords;
 
84277
class ExtGnu;
68419
84278
class PragmaOnceUnitState;
68420
84279
class PragmaOnce;
68421
 
class CCExprResolve;
68422
 
class CExprResolve;
68423
 
namespace Puma {
68424
 
 
68425
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84280
class CMatchSyntax;
 
84281
namespace Puma {
 
84282
 
 
84283
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84284
 
 
84285
#line 84286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84286
} // closed Puma
 
84287
 
 
84288
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84289
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84290
#include "CCExprResolveH.ah"
 
84291
#endif
 
84292
namespace Puma {
 
84293
 
 
84294
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84295
 
 
84296
#line 84297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84297
} // closed Puma
 
84298
 
 
84299
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84300
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84301
#include "CExprResolveH.ah"
 
84302
#endif
 
84303
namespace Puma {
 
84304
 
 
84305
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68426
84306
class CT_ConstCast : public CT_StaticCast {
68427
 
#line 68428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84307
#line 84308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84308
  friend class ::CCExprResolve;
 
84309
  friend class ::CExprResolve;
68428
84310
  friend class ::WinIfExists;
68429
84311
  friend class ::WinImportHandler;
68430
84312
  friend class ::WinMacros;
68431
 
  friend class ::CMatchSyntax;
68432
 
  friend class ::ExtGnu;
 
84313
  friend class ::WinAsm;
 
84314
  friend class ::WinDeclSpecs;
 
84315
  friend class ::WinMemberExplSpec;
 
84316
  friend class ::WinTypeKeywords;
 
84317
  friend class ::WinFriend;
68433
84318
  friend class ::ExtAC;
68434
84319
  friend class ::ExtACBuilderCoupling;
68435
84320
  friend class ::ExtACSyntaxCoupling;
68436
84321
  friend class ::ExtACTree;
68437
84322
  friend class ::ExtACKeywords;
68438
 
  friend class ::WinAsm;
68439
 
  friend class ::WinDeclSpecs;
68440
 
  friend class ::WinMemberExplSpec;
68441
 
  friend class ::WinTypeKeywords;
 
84323
  friend class ::ExtGnu;
68442
84324
  friend class ::PragmaOnceUnitState;
68443
84325
  friend class ::PragmaOnce;
68444
 
  friend class ::CCExprResolve;
68445
 
  friend class ::CExprResolve;
 
84326
  friend class ::CMatchSyntax;
68446
84327
 
68447
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84328
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68448
84329
 
68449
84330
public:
 
84331
  /** Constructor.
 
84332
   *  \param cst The cast operator, i.e. 'const_cast'.
 
84333
   *  \param o Left arrow bracket of the type name.
 
84334
   *  \param t The type to cast to.
 
84335
   *  \param c Right array bracket of the type name.
 
84336
   *  \param e The expression to cast. */
68450
84337
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
68451
84338
    CT_StaticCast (cst, o, t, c, e) {}
 
84339
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68452
84340
  static const char *NodeId ();
 
84341
  /** Get the name of the node. Can be compared with NodeId(). */
68453
84342
  const char *NodeName () const { return NodeId (); }
68454
84343
   private:
68455
84344
  typedef CT_ConstCast CCExprResolveExpr;
68456
84345
 
68457
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84346
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68458
84347
 public :
68459
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84348
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68460
84349
  typedef CT_ConstCast CExprResolveExpr;
68461
84350
 
68462
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84351
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68463
84352
 public :
68464
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68465
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84353
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84354
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68466
84355
};
68467
84356
 
 
84357
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
84358
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
68468
84359
 
68469
 
#line 68470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84360
#line 84361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68470
84361
} // closed Puma
 
84362
class CCExprResolve;
 
84363
class CExprResolve;
68471
84364
class WinIfExists;
68472
84365
class WinImportHandler;
68473
84366
class WinMacros;
68474
 
class CMatchSyntax;
68475
 
class ExtGnu;
 
84367
class WinAsm;
 
84368
class WinDeclSpecs;
 
84369
class WinMemberExplSpec;
 
84370
class WinTypeKeywords;
 
84371
class WinFriend;
68476
84372
class ExtAC;
68477
84373
class ExtACBuilderCoupling;
68478
84374
class ExtACSyntaxCoupling;
68479
84375
class ExtACTree;
68480
84376
class ExtACKeywords;
68481
 
class WinAsm;
68482
 
class WinDeclSpecs;
68483
 
class WinMemberExplSpec;
68484
 
class WinTypeKeywords;
 
84377
class ExtGnu;
68485
84378
class PragmaOnceUnitState;
68486
84379
class PragmaOnce;
68487
 
class CCExprResolve;
68488
 
class CExprResolve;
68489
 
namespace Puma {
68490
 
 
68491
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84380
class CMatchSyntax;
 
84381
namespace Puma {
 
84382
 
 
84383
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84384
 
 
84385
#line 84386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84386
} // closed Puma
 
84387
 
 
84388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84390
#include "CCExprResolveH.ah"
 
84391
#endif
 
84392
namespace Puma {
 
84393
 
 
84394
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84395
 
 
84396
#line 84397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84397
} // closed Puma
 
84398
 
 
84399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84401
#include "CExprResolveH.ah"
 
84402
#endif
 
84403
namespace Puma {
 
84404
 
 
84405
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68492
84406
class CT_ReintCast : public CT_StaticCast {
68493
 
#line 68494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84407
#line 84408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84408
  friend class ::CCExprResolve;
 
84409
  friend class ::CExprResolve;
68494
84410
  friend class ::WinIfExists;
68495
84411
  friend class ::WinImportHandler;
68496
84412
  friend class ::WinMacros;
68497
 
  friend class ::CMatchSyntax;
68498
 
  friend class ::ExtGnu;
 
84413
  friend class ::WinAsm;
 
84414
  friend class ::WinDeclSpecs;
 
84415
  friend class ::WinMemberExplSpec;
 
84416
  friend class ::WinTypeKeywords;
 
84417
  friend class ::WinFriend;
68499
84418
  friend class ::ExtAC;
68500
84419
  friend class ::ExtACBuilderCoupling;
68501
84420
  friend class ::ExtACSyntaxCoupling;
68502
84421
  friend class ::ExtACTree;
68503
84422
  friend class ::ExtACKeywords;
68504
 
  friend class ::WinAsm;
68505
 
  friend class ::WinDeclSpecs;
68506
 
  friend class ::WinMemberExplSpec;
68507
 
  friend class ::WinTypeKeywords;
 
84423
  friend class ::ExtGnu;
68508
84424
  friend class ::PragmaOnceUnitState;
68509
84425
  friend class ::PragmaOnce;
68510
 
  friend class ::CCExprResolve;
68511
 
  friend class ::CExprResolve;
 
84426
  friend class ::CMatchSyntax;
68512
84427
 
68513
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84428
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68514
84429
 
68515
84430
public:
 
84431
  /** Constructor.
 
84432
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
84433
   *  \param o Left arrow bracket of the type name.
 
84434
   *  \param t The type to cast to.
 
84435
   *  \param c Right array bracket of the type name.
 
84436
   *  \param e The expression to cast. */
68516
84437
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
68517
84438
    CT_StaticCast (cst, o, t, c, e) {}
 
84439
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68518
84440
  static const char *NodeId ();
 
84441
  /** Get the name of the node. Can be compared with NodeId(). */
68519
84442
  const char *NodeName () const { return NodeId (); }
68520
84443
   private:
68521
84444
  typedef CT_ReintCast CCExprResolveExpr;
68522
84445
 
68523
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84446
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68524
84447
 public :
68525
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84448
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68526
84449
  typedef CT_ReintCast CExprResolveExpr;
68527
84450
 
68528
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84451
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68529
84452
 public :
68530
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68531
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84453
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84454
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68532
84455
};
68533
84456
 
 
84457
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
84458
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
68534
84459
 
68535
 
#line 68536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84460
#line 84461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68536
84461
} // closed Puma
 
84462
class CCExprResolve;
 
84463
class CExprResolve;
68537
84464
class WinIfExists;
68538
84465
class WinImportHandler;
68539
84466
class WinMacros;
68540
 
class CMatchSyntax;
68541
 
class ExtGnu;
 
84467
class WinAsm;
 
84468
class WinDeclSpecs;
 
84469
class WinMemberExplSpec;
 
84470
class WinTypeKeywords;
 
84471
class WinFriend;
68542
84472
class ExtAC;
68543
84473
class ExtACBuilderCoupling;
68544
84474
class ExtACSyntaxCoupling;
68545
84475
class ExtACTree;
68546
84476
class ExtACKeywords;
68547
 
class WinAsm;
68548
 
class WinDeclSpecs;
68549
 
class WinMemberExplSpec;
68550
 
class WinTypeKeywords;
 
84477
class ExtGnu;
68551
84478
class PragmaOnceUnitState;
68552
84479
class PragmaOnce;
68553
 
class CCExprResolve;
68554
 
class CExprResolve;
68555
 
namespace Puma {
68556
 
 
68557
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84480
class CMatchSyntax;
 
84481
namespace Puma {
 
84482
 
 
84483
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84484
 
 
84485
#line 84486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84486
} // closed Puma
 
84487
 
 
84488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84490
#include "CCExprResolveH.ah"
 
84491
#endif
 
84492
namespace Puma {
 
84493
 
 
84494
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84495
 
 
84496
#line 84497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84497
} // closed Puma
 
84498
 
 
84499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84501
#include "CExprResolveH.ah"
 
84502
#endif
 
84503
namespace Puma {
 
84504
 
 
84505
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68558
84506
class CT_DynamicCast : public CT_StaticCast {
68559
 
#line 68560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84507
#line 84508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84508
  friend class ::CCExprResolve;
 
84509
  friend class ::CExprResolve;
68560
84510
  friend class ::WinIfExists;
68561
84511
  friend class ::WinImportHandler;
68562
84512
  friend class ::WinMacros;
68563
 
  friend class ::CMatchSyntax;
68564
 
  friend class ::ExtGnu;
 
84513
  friend class ::WinAsm;
 
84514
  friend class ::WinDeclSpecs;
 
84515
  friend class ::WinMemberExplSpec;
 
84516
  friend class ::WinTypeKeywords;
 
84517
  friend class ::WinFriend;
68565
84518
  friend class ::ExtAC;
68566
84519
  friend class ::ExtACBuilderCoupling;
68567
84520
  friend class ::ExtACSyntaxCoupling;
68568
84521
  friend class ::ExtACTree;
68569
84522
  friend class ::ExtACKeywords;
68570
 
  friend class ::WinAsm;
68571
 
  friend class ::WinDeclSpecs;
68572
 
  friend class ::WinMemberExplSpec;
68573
 
  friend class ::WinTypeKeywords;
 
84523
  friend class ::ExtGnu;
68574
84524
  friend class ::PragmaOnceUnitState;
68575
84525
  friend class ::PragmaOnce;
68576
 
  friend class ::CCExprResolve;
68577
 
  friend class ::CExprResolve;
 
84526
  friend class ::CMatchSyntax;
68578
84527
 
68579
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84528
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68580
84529
 
68581
84530
public:
 
84531
  /** Constructor.
 
84532
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
84533
   *  \param o Left arrow bracket of the type name.
 
84534
   *  \param t The type to cast to.
 
84535
   *  \param c Right array bracket of the type name.
 
84536
   *  \param e The expression to cast. */
68582
84537
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
68583
84538
    CT_StaticCast (cst, o, t, c, e) {}
 
84539
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68584
84540
  static const char *NodeId ();
 
84541
  /** Get the name of the node. Can be compared with NodeId(). */
68585
84542
  const char *NodeName () const { return NodeId (); }
68586
84543
   private:
68587
84544
  typedef CT_DynamicCast CCExprResolveExpr;
68588
84545
 
68589
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84546
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68590
84547
 public :
68591
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84548
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68592
84549
  typedef CT_DynamicCast CExprResolveExpr;
68593
84550
 
68594
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84551
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68595
84552
 public :
68596
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68597
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84553
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84554
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68598
84555
};
68599
84556
 
 
84557
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
84558
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
84559
 *  where 1.2 is implicitely casted from float to int. */
68600
84560
 
68601
 
#line 68602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84561
#line 84562 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68602
84562
} // closed Puma
 
84563
class CCExprResolve;
 
84564
class CExprResolve;
68603
84565
class WinIfExists;
68604
84566
class WinImportHandler;
68605
84567
class WinMacros;
68606
 
class CMatchSyntax;
68607
 
class ExtGnu;
 
84568
class WinAsm;
 
84569
class WinDeclSpecs;
 
84570
class WinMemberExplSpec;
 
84571
class WinTypeKeywords;
 
84572
class WinFriend;
68608
84573
class ExtAC;
68609
84574
class ExtACBuilderCoupling;
68610
84575
class ExtACSyntaxCoupling;
68611
84576
class ExtACTree;
68612
84577
class ExtACKeywords;
68613
 
class WinAsm;
68614
 
class WinDeclSpecs;
68615
 
class WinMemberExplSpec;
68616
 
class WinTypeKeywords;
 
84578
class ExtGnu;
68617
84579
class PragmaOnceUnitState;
68618
84580
class PragmaOnce;
68619
 
class CCExprResolve;
68620
 
class CExprResolve;
68621
 
namespace Puma {
68622
 
 
68623
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84581
class CMatchSyntax;
 
84582
namespace Puma {
 
84583
 
 
84584
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84585
 
 
84586
#line 84587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84587
} // closed Puma
 
84588
 
 
84589
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84590
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84591
#include "CCExprResolveH.ah"
 
84592
#endif
 
84593
namespace Puma {
 
84594
 
 
84595
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84596
 
 
84597
#line 84598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84598
} // closed Puma
 
84599
 
 
84600
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84601
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84602
#include "CExprResolveH.ah"
 
84603
#endif
 
84604
namespace Puma {
 
84605
 
 
84606
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68624
84607
class CT_ImplicitCast : public CT_Expression {
68625
 
#line 68626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84608
#line 84609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84609
  friend class ::CCExprResolve;
 
84610
  friend class ::CExprResolve;
68626
84611
  friend class ::WinIfExists;
68627
84612
  friend class ::WinImportHandler;
68628
84613
  friend class ::WinMacros;
68629
 
  friend class ::CMatchSyntax;
68630
 
  friend class ::ExtGnu;
 
84614
  friend class ::WinAsm;
 
84615
  friend class ::WinDeclSpecs;
 
84616
  friend class ::WinMemberExplSpec;
 
84617
  friend class ::WinTypeKeywords;
 
84618
  friend class ::WinFriend;
68631
84619
  friend class ::ExtAC;
68632
84620
  friend class ::ExtACBuilderCoupling;
68633
84621
  friend class ::ExtACSyntaxCoupling;
68634
84622
  friend class ::ExtACTree;
68635
84623
  friend class ::ExtACKeywords;
68636
 
  friend class ::WinAsm;
68637
 
  friend class ::WinDeclSpecs;
68638
 
  friend class ::WinMemberExplSpec;
68639
 
  friend class ::WinTypeKeywords;
 
84624
  friend class ::ExtGnu;
68640
84625
  friend class ::PragmaOnceUnitState;
68641
84626
  friend class ::PragmaOnce;
68642
 
  friend class ::CCExprResolve;
68643
 
  friend class ::CExprResolve;
 
84627
  friend class ::CMatchSyntax;
68644
84628
 
68645
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84629
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68646
84630
 
68647
84631
  CTree *_expr; // casted expression
68648
84632
 
68649
84633
public:
68650
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
84634
  /** Constructor.
 
84635
   *  \param e The expression that is implicitely casted. */
 
84636
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
84637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68651
84638
  static const char *NodeId ();
 
84639
  /** Get the name of the node. Can be compared with NodeId(). */
68652
84640
  const char *NodeName () const { return NodeId (); }
 
84641
  /** Get the number of sons. */
68653
84642
  int Sons () const { return 1; }
 
84643
  /** Get the n-th son.
 
84644
   *  \param n The index of the son.
 
84645
   *  \return The n-th son or NULL. */
68654
84646
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
84647
  /** Get the casted expression. */
68655
84648
  CTree *Expr () const { return _expr; }
 
84649
  /** Replace a son.
 
84650
   *  \param old_son The son to replace.
 
84651
   *  \param new_son The new son. */
68656
84652
  void ReplaceSon (CTree *old_son, CTree *new_son) 
68657
 
   { if (old_son == _expr) _expr = new_son; }
 
84653
   { CTree::ReplaceSon (_expr, old_son, new_son); }
68658
84654
   private:
68659
84655
  typedef CT_ImplicitCast CCExprResolveExpr;
68660
84656
 
68661
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84657
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68662
84658
 public :
68663
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84659
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68664
84660
  typedef CT_ImplicitCast CExprResolveExpr;
68665
84661
 
68666
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84662
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68667
84663
 public :
68668
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68669
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84664
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84665
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68670
84666
};
68671
84667
 
 
84668
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
84669
 *  Tree node representing a typeid expression, e.g. typeid(X). */
68672
84670
 
68673
 
#line 68674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84671
#line 84672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68674
84672
} // closed Puma
 
84673
class CCExprResolve;
 
84674
class CExprResolve;
68675
84675
class WinIfExists;
68676
84676
class WinImportHandler;
68677
84677
class WinMacros;
68678
 
class CMatchSyntax;
68679
 
class ExtGnu;
 
84678
class WinAsm;
 
84679
class WinDeclSpecs;
 
84680
class WinMemberExplSpec;
 
84681
class WinTypeKeywords;
 
84682
class WinFriend;
68680
84683
class ExtAC;
68681
84684
class ExtACBuilderCoupling;
68682
84685
class ExtACSyntaxCoupling;
68683
84686
class ExtACTree;
68684
84687
class ExtACKeywords;
68685
 
class WinAsm;
68686
 
class WinDeclSpecs;
68687
 
class WinMemberExplSpec;
68688
 
class WinTypeKeywords;
 
84688
class ExtGnu;
68689
84689
class PragmaOnceUnitState;
68690
84690
class PragmaOnce;
68691
 
class CCExprResolve;
68692
 
class CExprResolve;
68693
 
namespace Puma {
68694
 
 
68695
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84691
class CMatchSyntax;
 
84692
namespace Puma {
 
84693
 
 
84694
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84695
 
 
84696
#line 84697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84697
} // closed Puma
 
84698
 
 
84699
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84700
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84701
#include "CCExprResolveH.ah"
 
84702
#endif
 
84703
namespace Puma {
 
84704
 
 
84705
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84706
 
 
84707
#line 84708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84708
} // closed Puma
 
84709
 
 
84710
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84711
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84712
#include "CExprResolveH.ah"
 
84713
#endif
 
84714
namespace Puma {
 
84715
 
 
84716
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68696
84717
class CT_TypeidExpr : public CT_Expression {
68697
 
#line 68698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84718
#line 84719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84719
  friend class ::CCExprResolve;
 
84720
  friend class ::CExprResolve;
68698
84721
  friend class ::WinIfExists;
68699
84722
  friend class ::WinImportHandler;
68700
84723
  friend class ::WinMacros;
68701
 
  friend class ::CMatchSyntax;
68702
 
  friend class ::ExtGnu;
 
84724
  friend class ::WinAsm;
 
84725
  friend class ::WinDeclSpecs;
 
84726
  friend class ::WinMemberExplSpec;
 
84727
  friend class ::WinTypeKeywords;
 
84728
  friend class ::WinFriend;
68703
84729
  friend class ::ExtAC;
68704
84730
  friend class ::ExtACBuilderCoupling;
68705
84731
  friend class ::ExtACSyntaxCoupling;
68706
84732
  friend class ::ExtACTree;
68707
84733
  friend class ::ExtACKeywords;
68708
 
  friend class ::WinAsm;
68709
 
  friend class ::WinDeclSpecs;
68710
 
  friend class ::WinMemberExplSpec;
68711
 
  friend class ::WinTypeKeywords;
 
84734
  friend class ::ExtGnu;
68712
84735
  friend class ::PragmaOnceUnitState;
68713
84736
  friend class ::PragmaOnce;
68714
 
  friend class ::CCExprResolve;
68715
 
  friend class ::CExprResolve;
 
84737
  friend class ::CMatchSyntax;
68716
84738
 
68717
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84739
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68718
84740
 
68719
84741
  CTree *sons[4]; // typeid, open, type_id/expr, close
68720
84742
 
68721
84743
public:
 
84744
  /** Constructor.
 
84745
   *  \param tid The 'typeid' operator.
 
84746
   *  \param o The left parenthesis of the type name or expression.
 
84747
   *  \param e The expression or type name for which to get the type identifier.
 
84748
   *  \param c The right parenthesis of the type name or expression. */
68722
84749
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
68723
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
84750
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
84751
    AddSon (sons[2], e); AddSon (sons[3], c);
68724
84752
  }
 
84753
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68725
84754
  static const char *NodeId ();
 
84755
  /** Get the name of the node. Can be compared with NodeId(). */
68726
84756
  const char *NodeName () const { return NodeId (); }
 
84757
  /** Get the number of sons. */
68727
84758
  int Sons () const { return 4; }
 
84759
  /** Get the n-th son.
 
84760
   *  \param n The index of the son.
 
84761
   *  \return The n-th son or NULL. */
68728
84762
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
84763
  /** Replace a son.
 
84764
   *  \param old_son The son to replace.
 
84765
   *  \param new_son The new son. */
68729
84766
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68730
84767
    CTree::ReplaceSon (sons, 4, old_son, new_son);
68731
84768
  }
 
84769
  /** Get the typeid argument, i.e. the expression or type name for
 
84770
   *  which to get the type identifier. */
68732
84771
  CTree *Arg () const { return sons[2]; }
68733
84772
   private:
68734
84773
  typedef CT_TypeidExpr CCExprResolveExpr;
68735
84774
 
68736
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84775
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68737
84776
 public :
68738
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84777
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68739
84778
  typedef CT_TypeidExpr CExprResolveExpr;
68740
84779
 
68741
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84780
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68742
84781
 public :
68743
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68744
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84782
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84783
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68745
84784
};
68746
84785
 
 
84786
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
84787
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
68747
84788
 
68748
 
#line 68749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84789
#line 84790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68749
84790
} // closed Puma
 
84791
class CCExprResolve;
 
84792
class CExprResolve;
68750
84793
class WinIfExists;
68751
84794
class WinImportHandler;
68752
84795
class WinMacros;
68753
 
class CMatchSyntax;
68754
 
class ExtGnu;
 
84796
class WinAsm;
 
84797
class WinDeclSpecs;
 
84798
class WinMemberExplSpec;
 
84799
class WinTypeKeywords;
 
84800
class WinFriend;
68755
84801
class ExtAC;
68756
84802
class ExtACBuilderCoupling;
68757
84803
class ExtACSyntaxCoupling;
68758
84804
class ExtACTree;
68759
84805
class ExtACKeywords;
68760
 
class WinAsm;
68761
 
class WinDeclSpecs;
68762
 
class WinMemberExplSpec;
68763
 
class WinTypeKeywords;
 
84806
class ExtGnu;
68764
84807
class PragmaOnceUnitState;
68765
84808
class PragmaOnce;
68766
 
class CCExprResolve;
68767
 
class CExprResolve;
68768
 
namespace Puma {
68769
 
 
68770
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84809
class CMatchSyntax;
 
84810
namespace Puma {
 
84811
 
 
84812
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84813
 
 
84814
#line 84815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84815
} // closed Puma
 
84816
 
 
84817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84819
#include "CCExprResolveH.ah"
 
84820
#endif
 
84821
namespace Puma {
 
84822
 
 
84823
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84824
 
 
84825
#line 84826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84826
} // closed Puma
 
84827
 
 
84828
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84829
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84830
#include "CExprResolveH.ah"
 
84831
#endif
 
84832
namespace Puma {
 
84833
 
 
84834
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68771
84835
class CT_SizeofExpr : public CT_Expression {
68772
 
#line 68773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84836
#line 84837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84837
  friend class ::CCExprResolve;
 
84838
  friend class ::CExprResolve;
68773
84839
  friend class ::WinIfExists;
68774
84840
  friend class ::WinImportHandler;
68775
84841
  friend class ::WinMacros;
68776
 
  friend class ::CMatchSyntax;
68777
 
  friend class ::ExtGnu;
 
84842
  friend class ::WinAsm;
 
84843
  friend class ::WinDeclSpecs;
 
84844
  friend class ::WinMemberExplSpec;
 
84845
  friend class ::WinTypeKeywords;
 
84846
  friend class ::WinFriend;
68778
84847
  friend class ::ExtAC;
68779
84848
  friend class ::ExtACBuilderCoupling;
68780
84849
  friend class ::ExtACSyntaxCoupling;
68781
84850
  friend class ::ExtACTree;
68782
84851
  friend class ::ExtACKeywords;
68783
 
  friend class ::WinAsm;
68784
 
  friend class ::WinDeclSpecs;
68785
 
  friend class ::WinMemberExplSpec;
68786
 
  friend class ::WinTypeKeywords;
 
84852
  friend class ::ExtGnu;
68787
84853
  friend class ::PragmaOnceUnitState;
68788
84854
  friend class ::PragmaOnce;
68789
 
  friend class ::CCExprResolve;
68790
 
  friend class ::CExprResolve;
 
84855
  friend class ::CMatchSyntax;
68791
84856
 
68792
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84857
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68793
84858
 
68794
84859
  CTree *sons[5]; // key, open, type, close, expr
68795
84860
 
68796
84861
public:
 
84862
  /** Constructor.
 
84863
   *  \param k The 'sizeof' keyword.
 
84864
   *  \param o Left parenthesis around the type name.
 
84865
   *  \param t The type from which to get the size.
 
84866
   *  \param c Right parenthesis around the type name. */
68797
84867
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
68798
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
84868
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
84869
    AddSon (sons[3], c); AddSon (sons[4], 0);
68799
84870
  }
 
84871
  /** Constructor.
 
84872
   *  \param k The 'sizeof' keyword.
 
84873
   *  \param e The expression from which to get the size. */
68800
84874
  CT_SizeofExpr (CTree *k, CTree *e) {
68801
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
84875
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
84876
    AddSon (sons[3], 0); AddSon (sons[4], e);
68802
84877
  }
 
84878
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68803
84879
  static const char *NodeId ();
 
84880
  /** Get the name of the node. Can be compared with NodeId(). */
68804
84881
  const char *NodeName () const { return NodeId (); }
 
84882
  /** Get the number of sons. */
68805
84883
  int Sons () const { return CTree::Sons (sons, 5); }
 
84884
  /** Get the n-th son.
 
84885
   *  \param n The index of the son.
 
84886
   *  \return The n-th son or NULL. */
68806
84887
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
84888
  /** Replace a son.
 
84889
   *  \param old_son The son to replace.
 
84890
   *  \param new_son The new son. */
68807
84891
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68808
84892
    CTree::ReplaceSon (sons, 5, old_son, new_son);
68809
84893
  }
 
84894
  /** Get the expression. */
68810
84895
  CTree *Expr () const { return sons[4]; }
 
84896
  /** Get the type name. */
68811
84897
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
68812
84898
   private:
68813
84899
  typedef CT_SizeofExpr CCExprResolveExpr;
68814
84900
 
68815
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
84901
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68816
84902
 public :
68817
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
84903
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68818
84904
  typedef CT_SizeofExpr CExprResolveExpr;
68819
84905
 
68820
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
84906
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68821
84907
 public :
68822
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68823
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84908
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
84909
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68824
84910
};
68825
84911
 
 
84912
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
84913
 *  Tree node representing an index designator, i.e. [1]. */
68826
84914
 
68827
 
#line 68828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84915
#line 84916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68828
84916
} // closed Puma
 
84917
class CCExprResolve;
 
84918
class CExprResolve;
68829
84919
class WinIfExists;
68830
84920
class WinImportHandler;
68831
84921
class WinMacros;
68832
 
class CMatchSyntax;
68833
 
class ExtGnu;
 
84922
class WinAsm;
 
84923
class WinDeclSpecs;
 
84924
class WinMemberExplSpec;
 
84925
class WinTypeKeywords;
 
84926
class WinFriend;
68834
84927
class ExtAC;
68835
84928
class ExtACBuilderCoupling;
68836
84929
class ExtACSyntaxCoupling;
68837
84930
class ExtACTree;
68838
84931
class ExtACKeywords;
68839
 
class WinAsm;
68840
 
class WinDeclSpecs;
68841
 
class WinMemberExplSpec;
68842
 
class WinTypeKeywords;
 
84932
class ExtGnu;
68843
84933
class PragmaOnceUnitState;
68844
84934
class PragmaOnce;
68845
 
class CCExprResolve;
68846
 
class CExprResolve;
68847
 
namespace Puma {
68848
 
 
68849
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84935
class CMatchSyntax;
 
84936
namespace Puma {
 
84937
 
 
84938
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84939
 
 
84940
#line 84941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84941
} // closed Puma
 
84942
 
 
84943
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84944
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
84945
#include "CCExprResolveH.ah"
 
84946
#endif
 
84947
namespace Puma {
 
84948
 
 
84949
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84950
 
 
84951
#line 84952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84952
} // closed Puma
 
84953
 
 
84954
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84955
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
84956
#include "CExprResolveH.ah"
 
84957
#endif
 
84958
namespace Puma {
 
84959
 
 
84960
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68850
84961
class CT_IndexDesignator : public CT_Expression {
68851
 
#line 68852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
84962
#line 84963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
84963
  friend class ::CCExprResolve;
 
84964
  friend class ::CExprResolve;
68852
84965
  friend class ::WinIfExists;
68853
84966
  friend class ::WinImportHandler;
68854
84967
  friend class ::WinMacros;
68855
 
  friend class ::CMatchSyntax;
68856
 
  friend class ::ExtGnu;
 
84968
  friend class ::WinAsm;
 
84969
  friend class ::WinDeclSpecs;
 
84970
  friend class ::WinMemberExplSpec;
 
84971
  friend class ::WinTypeKeywords;
 
84972
  friend class ::WinFriend;
68857
84973
  friend class ::ExtAC;
68858
84974
  friend class ::ExtACBuilderCoupling;
68859
84975
  friend class ::ExtACSyntaxCoupling;
68860
84976
  friend class ::ExtACTree;
68861
84977
  friend class ::ExtACKeywords;
68862
 
  friend class ::WinAsm;
68863
 
  friend class ::WinDeclSpecs;
68864
 
  friend class ::WinMemberExplSpec;
68865
 
  friend class ::WinTypeKeywords;
 
84978
  friend class ::ExtGnu;
68866
84979
  friend class ::PragmaOnceUnitState;
68867
84980
  friend class ::PragmaOnce;
68868
 
  friend class ::CCExprResolve;
68869
 
  friend class ::CExprResolve;
 
84981
  friend class ::CMatchSyntax;
68870
84982
 
68871
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
84983
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68872
84984
 
68873
84985
  CTree *sons[3]; // open, index, close
68874
84986
 
68875
84987
public:
 
84988
  /** Constructor.
 
84989
   *  \param o Left bracket of the index designator.
 
84990
   *  \param i The index expression.
 
84991
   *  \param c Right bracket of the index designator. */
68876
84992
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
68877
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
84993
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
68878
84994
  }
 
84995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68879
84996
  static const char *NodeId ();
 
84997
  /** Get the name of the node. Can be compared with NodeId(). */
68880
84998
  const char *NodeName () const { return NodeId (); }
 
84999
  /** Get the number of sons. */
68881
85000
  int Sons () const { return 3; }
 
85001
  /** Get the n-th son.
 
85002
   *  \param n The index of the son.
 
85003
   *  \return The n-th son or NULL. */
68882
85004
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
85005
  /** Replace a son.
 
85006
   *  \param old_son The son to replace.
 
85007
   *  \param new_son The new son. */
68883
85008
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68884
85009
    CTree::ReplaceSon (sons, 3, old_son, new_son);
68885
85010
  }
68886
85011
   private:
68887
85012
  typedef CT_IndexDesignator CCExprResolveExpr;
68888
85013
 
68889
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85014
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68890
85015
 public :
68891
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85016
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68892
85017
  typedef CT_IndexDesignator CExprResolveExpr;
68893
85018
 
68894
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85019
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68895
85020
 public :
68896
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68897
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85021
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85022
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68898
85023
};
68899
85024
 
 
85025
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
85026
 *  Tree node representing a member designator, e.g. .a. */
68900
85027
 
68901
 
#line 68902 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85028
#line 85029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68902
85029
} // closed Puma
 
85030
class CCExprResolve;
 
85031
class CExprResolve;
68903
85032
class WinIfExists;
68904
85033
class WinImportHandler;
68905
85034
class WinMacros;
68906
 
class CMatchSyntax;
68907
 
class ExtGnu;
 
85035
class WinAsm;
 
85036
class WinDeclSpecs;
 
85037
class WinMemberExplSpec;
 
85038
class WinTypeKeywords;
 
85039
class WinFriend;
68908
85040
class ExtAC;
68909
85041
class ExtACBuilderCoupling;
68910
85042
class ExtACSyntaxCoupling;
68911
85043
class ExtACTree;
68912
85044
class ExtACKeywords;
68913
 
class WinAsm;
68914
 
class WinDeclSpecs;
68915
 
class WinMemberExplSpec;
68916
 
class WinTypeKeywords;
 
85045
class ExtGnu;
68917
85046
class PragmaOnceUnitState;
68918
85047
class PragmaOnce;
68919
 
class CCExprResolve;
68920
 
class CExprResolve;
68921
 
namespace Puma {
68922
 
 
68923
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85048
class CMatchSyntax;
 
85049
namespace Puma {
 
85050
 
 
85051
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85052
 
 
85053
#line 85054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85054
} // closed Puma
 
85055
 
 
85056
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85057
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
85058
#include "CCExprResolveH.ah"
 
85059
#endif
 
85060
namespace Puma {
 
85061
 
 
85062
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85063
 
 
85064
#line 85065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85065
} // closed Puma
 
85066
 
 
85067
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85068
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
85069
#include "CExprResolveH.ah"
 
85070
#endif
 
85071
namespace Puma {
 
85072
 
 
85073
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68924
85074
class CT_MembDesignator : public CT_Expression {
68925
 
#line 68926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85075
#line 85076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85076
  friend class ::CCExprResolve;
 
85077
  friend class ::CExprResolve;
68926
85078
  friend class ::WinIfExists;
68927
85079
  friend class ::WinImportHandler;
68928
85080
  friend class ::WinMacros;
68929
 
  friend class ::CMatchSyntax;
68930
 
  friend class ::ExtGnu;
 
85081
  friend class ::WinAsm;
 
85082
  friend class ::WinDeclSpecs;
 
85083
  friend class ::WinMemberExplSpec;
 
85084
  friend class ::WinTypeKeywords;
 
85085
  friend class ::WinFriend;
68931
85086
  friend class ::ExtAC;
68932
85087
  friend class ::ExtACBuilderCoupling;
68933
85088
  friend class ::ExtACSyntaxCoupling;
68934
85089
  friend class ::ExtACTree;
68935
85090
  friend class ::ExtACKeywords;
68936
 
  friend class ::WinAsm;
68937
 
  friend class ::WinDeclSpecs;
68938
 
  friend class ::WinMemberExplSpec;
68939
 
  friend class ::WinTypeKeywords;
 
85091
  friend class ::ExtGnu;
68940
85092
  friend class ::PragmaOnceUnitState;
68941
85093
  friend class ::PragmaOnce;
68942
 
  friend class ::CCExprResolve;
68943
 
  friend class ::CExprResolve;
 
85094
  friend class ::CMatchSyntax;
68944
85095
 
68945
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85096
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68946
85097
 
68947
85098
  CTree *sons[2]; // dot, member
68948
85099
 
68949
85100
public:
68950
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
85101
  /** Constructor.
 
85102
   *  \param d The dot before the member name.
 
85103
   *  \param m The member name. */
 
85104
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
85105
  /** Get the identifier for this node type. Can be compared with NodeName(). */
68951
85106
  static const char *NodeId ();
 
85107
  /** Get the name of the node. Can be compared with NodeId(). */
68952
85108
  const char *NodeName () const { return NodeId (); }
 
85109
  /** Get the number of sons. */
68953
85110
  int Sons () const { return 2; }
 
85111
  /** Get the n-th son.
 
85112
   *  \param n The index of the son.
 
85113
   *  \return The n-th son or NULL. */
68954
85114
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
85115
  /** Replace a son.
 
85116
   *  \param old_son The son to replace.
 
85117
   *  \param new_son The new son. */
68955
85118
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
68956
85119
    CTree::ReplaceSon (sons, 2, old_son, new_son);
68957
85120
  }
68958
85121
   private:
68959
85122
  typedef CT_MembDesignator CCExprResolveExpr;
68960
85123
 
68961
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
85124
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
68962
85125
 public :
68963
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
85126
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
68964
85127
  typedef CT_MembDesignator CExprResolveExpr;
68965
85128
 
68966
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
85129
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
68967
85130
 public :
68968
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
68969
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85131
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
85132
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68970
85133
};
68971
85134
 
 
85135
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
85136
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
68972
85137
 
68973
 
#line 68974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85138
#line 85139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
68974
85139
} // closed Puma
 
85140
class CCExprResolve;
 
85141
class CExprResolve;
68975
85142
class WinIfExists;
68976
85143
class WinImportHandler;
68977
85144
class WinMacros;
68978
 
class CMatchSyntax;
68979
 
class ExtGnu;
 
85145
class WinAsm;
 
85146
class WinDeclSpecs;
 
85147
class WinMemberExplSpec;
 
85148
class WinTypeKeywords;
 
85149
class WinFriend;
68980
85150
class ExtAC;
68981
85151
class ExtACBuilderCoupling;
68982
85152
class ExtACSyntaxCoupling;
68983
85153
class ExtACTree;
68984
85154
class ExtACKeywords;
68985
 
class WinAsm;
68986
 
class WinDeclSpecs;
68987
 
class WinMemberExplSpec;
68988
 
class WinTypeKeywords;
 
85155
class ExtGnu;
68989
85156
class PragmaOnceUnitState;
68990
85157
class PragmaOnce;
68991
 
class CCExprResolve;
68992
 
class CExprResolve;
 
85158
class CMatchSyntax;
68993
85159
namespace Puma {
68994
85160
 
68995
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85161
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
68996
85162
class CT_DesignatorSeq : public CT_List, public CSemValue {
68997
 
#line 68998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85163
#line 85164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85164
  friend class ::CCExprResolve;
 
85165
  friend class ::CExprResolve;
68998
85166
  friend class ::WinIfExists;
68999
85167
  friend class ::WinImportHandler;
69000
85168
  friend class ::WinMacros;
69001
 
  friend class ::CMatchSyntax;
69002
 
  friend class ::ExtGnu;
 
85169
  friend class ::WinAsm;
 
85170
  friend class ::WinDeclSpecs;
 
85171
  friend class ::WinMemberExplSpec;
 
85172
  friend class ::WinTypeKeywords;
 
85173
  friend class ::WinFriend;
69003
85174
  friend class ::ExtAC;
69004
85175
  friend class ::ExtACBuilderCoupling;
69005
85176
  friend class ::ExtACSyntaxCoupling;
69006
85177
  friend class ::ExtACTree;
69007
85178
  friend class ::ExtACKeywords;
69008
 
  friend class ::WinAsm;
69009
 
  friend class ::WinDeclSpecs;
69010
 
  friend class ::WinMemberExplSpec;
69011
 
  friend class ::WinTypeKeywords;
 
85179
  friend class ::ExtGnu;
69012
85180
  friend class ::PragmaOnceUnitState;
69013
85181
  friend class ::PragmaOnce;
69014
 
  friend class ::CCExprResolve;
69015
 
  friend class ::CExprResolve;
 
85182
  friend class ::CMatchSyntax;
69016
85183
 
69017
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85184
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69018
85185
 
69019
85186
public:
 
85187
  /** Constructor.
 
85188
   *  \param size Initial number of designators. */
69020
85189
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
85190
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69021
85191
  static const char *NodeId ();
 
85192
  /** Get the name of the node. Can be compared with NodeId(). */
69022
85193
  const char *NodeName () const { return NodeId (); }
69023
85194
 
 
85195
  /** Get the type of the entity to initialize. */
69024
85196
  CTypeInfo *Type () const { return type; }
 
85197
  /** Get the value of the entity to initialize. */
69025
85198
  CExprValue *Value () const { return value; }
 
85199
  /** Get the semantic value object. */
69026
85200
  CSemValue *SemValue () const { return (CSemValue*)this; }
69027
85201
};
69028
85202
 
69032
85206
/*                                                                           */
69033
85207
/*****************************************************************************/
69034
85208
 
 
85209
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
85210
 *  Base class for all tree nodes representing declaration specifiers. */
69035
85211
 
69036
 
#line 69037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85212
#line 85213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69037
85213
} // closed Puma
 
85214
class CCExprResolve;
 
85215
class CExprResolve;
69038
85216
class WinIfExists;
69039
85217
class WinImportHandler;
69040
85218
class WinMacros;
69041
 
class CMatchSyntax;
69042
 
class ExtGnu;
 
85219
class WinAsm;
 
85220
class WinDeclSpecs;
 
85221
class WinMemberExplSpec;
 
85222
class WinTypeKeywords;
 
85223
class WinFriend;
69043
85224
class ExtAC;
69044
85225
class ExtACBuilderCoupling;
69045
85226
class ExtACSyntaxCoupling;
69046
85227
class ExtACTree;
69047
85228
class ExtACKeywords;
69048
 
class WinAsm;
69049
 
class WinDeclSpecs;
69050
 
class WinMemberExplSpec;
69051
 
class WinTypeKeywords;
 
85229
class ExtGnu;
69052
85230
class PragmaOnceUnitState;
69053
85231
class PragmaOnce;
69054
 
class CCExprResolve;
69055
 
class CExprResolve;
 
85232
class CMatchSyntax;
69056
85233
namespace Puma {
69057
85234
 
69058
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85235
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69059
85236
class CT_DeclSpec : public CTree {
69060
 
#line 69061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85237
#line 85238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85238
  friend class ::CCExprResolve;
 
85239
  friend class ::CExprResolve;
69061
85240
  friend class ::WinIfExists;
69062
85241
  friend class ::WinImportHandler;
69063
85242
  friend class ::WinMacros;
69064
 
  friend class ::CMatchSyntax;
69065
 
  friend class ::ExtGnu;
 
85243
  friend class ::WinAsm;
 
85244
  friend class ::WinDeclSpecs;
 
85245
  friend class ::WinMemberExplSpec;
 
85246
  friend class ::WinTypeKeywords;
 
85247
  friend class ::WinFriend;
69066
85248
  friend class ::ExtAC;
69067
85249
  friend class ::ExtACBuilderCoupling;
69068
85250
  friend class ::ExtACSyntaxCoupling;
69069
85251
  friend class ::ExtACTree;
69070
85252
  friend class ::ExtACKeywords;
69071
 
  friend class ::WinAsm;
69072
 
  friend class ::WinDeclSpecs;
69073
 
  friend class ::WinMemberExplSpec;
69074
 
  friend class ::WinTypeKeywords;
 
85253
  friend class ::ExtGnu;
69075
85254
  friend class ::PragmaOnceUnitState;
69076
85255
  friend class ::PragmaOnce;
69077
 
  friend class ::CCExprResolve;
69078
 
  friend class ::CExprResolve;
 
85256
  friend class ::CMatchSyntax;
69079
85257
 
69080
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85258
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69081
85259
 
69082
85260
protected:
 
85261
  /** Constructor. */
69083
85262
  CT_DeclSpec () {}
69084
85263
};
69085
85264
 
 
85265
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
85266
 *  Tree node representing a primitive declaration specifier. */
69086
85267
 
69087
 
#line 69088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85268
#line 85269 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69088
85269
} // closed Puma
 
85270
class CCExprResolve;
 
85271
class CExprResolve;
69089
85272
class WinIfExists;
69090
85273
class WinImportHandler;
69091
85274
class WinMacros;
69092
 
class CMatchSyntax;
69093
 
class ExtGnu;
 
85275
class WinAsm;
 
85276
class WinDeclSpecs;
 
85277
class WinMemberExplSpec;
 
85278
class WinTypeKeywords;
 
85279
class WinFriend;
69094
85280
class ExtAC;
69095
85281
class ExtACBuilderCoupling;
69096
85282
class ExtACSyntaxCoupling;
69097
85283
class ExtACTree;
69098
85284
class ExtACKeywords;
69099
 
class WinAsm;
69100
 
class WinDeclSpecs;
69101
 
class WinMemberExplSpec;
69102
 
class WinTypeKeywords;
 
85285
class ExtGnu;
69103
85286
class PragmaOnceUnitState;
69104
85287
class PragmaOnce;
69105
 
class CCExprResolve;
69106
 
class CExprResolve;
 
85288
class CMatchSyntax;
69107
85289
namespace Puma {
69108
85290
 
69109
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85291
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69110
85292
class CT_PrimDeclSpec : public CT_DeclSpec {
69111
 
#line 69112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85293
#line 85294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85294
  friend class ::CCExprResolve;
 
85295
  friend class ::CExprResolve;
69112
85296
  friend class ::WinIfExists;
69113
85297
  friend class ::WinImportHandler;
69114
85298
  friend class ::WinMacros;
69115
 
  friend class ::CMatchSyntax;
69116
 
  friend class ::ExtGnu;
 
85299
  friend class ::WinAsm;
 
85300
  friend class ::WinDeclSpecs;
 
85301
  friend class ::WinMemberExplSpec;
 
85302
  friend class ::WinTypeKeywords;
 
85303
  friend class ::WinFriend;
69117
85304
  friend class ::ExtAC;
69118
85305
  friend class ::ExtACBuilderCoupling;
69119
85306
  friend class ::ExtACSyntaxCoupling;
69120
85307
  friend class ::ExtACTree;
69121
85308
  friend class ::ExtACKeywords;
69122
 
  friend class ::WinAsm;
69123
 
  friend class ::WinDeclSpecs;
69124
 
  friend class ::WinMemberExplSpec;
69125
 
  friend class ::WinTypeKeywords;
 
85309
  friend class ::ExtGnu;
69126
85310
  friend class ::PragmaOnceUnitState;
69127
85311
  friend class ::PragmaOnce;
69128
 
  friend class ::CCExprResolve;
69129
 
  friend class ::CExprResolve;
 
85312
  friend class ::CMatchSyntax;
69130
85313
 
69131
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85314
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69132
85315
 
69133
85316
public:
69134
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
69135
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
69136
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
69137
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
69138
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
69139
 
              // AspectC++ specific type specifier
69140
 
              PDS_UNKNOWN_T,
69141
 
              // Win specific declaration specifiers
69142
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
69143
 
              PDS_UNKNOWN, PDS_NUM };
 
85317
  /** Declaration specifier types. */
 
85318
  enum Type { 
 
85319
    PDS_FRIEND,    /** friend */
 
85320
    PDS_TYPEDEF,   /** typedef */
 
85321
    PDS_AUTO,      /** auto */
 
85322
    PDS_REGISTER,  /** register */
 
85323
    PDS_STATIC,    /** static */
 
85324
    PDS_EXTERN,    /** extern */
 
85325
    PDS_MUTABLE,   /** mutable */
 
85326
    PDS_INLINE,    /** inline */
 
85327
    PDS_VIRTUAL,   /** virtual */
 
85328
    PDS_EXPLICIT,  /** explicit */
 
85329
    PDS_CONST,     /** const */
 
85330
    PDS_VOLATILE,  /** volatile */
 
85331
    PDS_RESTRICT,  /** restrict */
 
85332
    PDS_CHAR,      /** char */
 
85333
    PDS_WCHAR_T,   /** wchar_t */
 
85334
    PDS_BOOL,      /** bool */
 
85335
    PDS_SHORT,     /** short */
 
85336
    PDS_INT,       /** int */
 
85337
    PDS_LONG,      /** long */
 
85338
    PDS_SIGNED,    /** signed */
 
85339
    PDS_UNSIGNED,  /** unsigned */
 
85340
    PDS_FLOAT,     /** float */
 
85341
    PDS_DOUBLE,    /** double */
 
85342
    PDS_VOID,      /** void */
 
85343
    // AspectC++ specific type specifier
 
85344
    PDS_UNKNOWN_T, /** unknown_t */
 
85345
    // Win specific declaration specifiers
 
85346
    PDS_CDECL,     /** __cdecl */
 
85347
    PDS_STDCALL,   /** __stdcall */
 
85348
    PDS_FASTCALL,  /** __fastcall */
 
85349
    PDS_INT64,     /** __int64 */
 
85350
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
85351
    PDS_NUM        /** Number of declaration specifier types. */
 
85352
  };
69144
85353
 
69145
85354
private:
69146
85355
  Type _type;
69147
 
  CT_Token *_token;
 
85356
  CTree *_token; // has to be a CT_Token
69148
85357
 
69149
85358
  void determine_type ();
69150
85359
 
69151
85360
public:
69152
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
85361
  /** Constructor.
 
85362
   *  \param t The token containing the declaration specifier. */
 
85363
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
85364
  /** Constructor.
 
85365
   *  \param t The declaration specifier type. */
69153
85366
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
85367
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69154
85368
  static const char *NodeId ();
 
85369
  /** Get the name of the node. Can be compared with NodeId(). */
69155
85370
  const char *NodeName () const { return NodeId (); }
 
85371
  /** Get the number of sons. */
69156
85372
  int Sons () const { return _token ? 1 : 0; }
 
85373
  /** Get the n-th son.
 
85374
   *  \param n The index of the son.
 
85375
   *  \return The n-th son or NULL. */
69157
85376
  CTree *Son (int n) const 
69158
85377
   { return (n == 0) ? _token : (CTree*)0; }
 
85378
  /** Get the textual representation of the declaration specifier.
 
85379
   *  \return The string representation or " ". */
69159
85380
  const char *SpecText () const 
69160
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
85381
   { return _token ? _token->token ()->text () : " "; }
 
85382
  /** Get the declaration specifier type. */
69161
85383
  Type SpecType () const { return _type; }
 
85384
  /** Number of declaration specifier types. */
69162
85385
  static const int NumTypes = PDS_NUM;
 
85386
  /** Replace a son.
 
85387
   *  \param old_son The son to replace.
 
85388
   *  \param new_son The new son. */
 
85389
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
85390
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
85391
    determine_type ();
 
85392
  }
69163
85393
};
69164
85394
 
 
85395
/** \class CT_NamedType CTree.h Puma/CTree.h
 
85396
 *  Tree node representing a named type, e.g. (int*)a. 
 
85397
 *  where int* is a type with a generated name. */
69165
85398
 
69166
 
#line 69167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85399
#line 85400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69167
85400
} // closed Puma
 
85401
class CCExprResolve;
 
85402
class CExprResolve;
69168
85403
class WinIfExists;
69169
85404
class WinImportHandler;
69170
85405
class WinMacros;
69171
 
class CMatchSyntax;
69172
 
class ExtGnu;
 
85406
class WinAsm;
 
85407
class WinDeclSpecs;
 
85408
class WinMemberExplSpec;
 
85409
class WinTypeKeywords;
 
85410
class WinFriend;
69173
85411
class ExtAC;
69174
85412
class ExtACBuilderCoupling;
69175
85413
class ExtACSyntaxCoupling;
69176
85414
class ExtACTree;
69177
85415
class ExtACKeywords;
69178
 
class WinAsm;
69179
 
class WinDeclSpecs;
69180
 
class WinMemberExplSpec;
69181
 
class WinTypeKeywords;
 
85416
class ExtGnu;
69182
85417
class PragmaOnceUnitState;
69183
85418
class PragmaOnce;
69184
 
class CCExprResolve;
69185
 
class CExprResolve;
 
85419
class CMatchSyntax;
69186
85420
namespace Puma {
69187
85421
 
69188
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85422
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69189
85423
class CT_NamedType : public CT_DeclSpec, public CSemObject {
69190
 
#line 69191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85424
#line 85425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85425
  friend class ::CCExprResolve;
 
85426
  friend class ::CExprResolve;
69191
85427
  friend class ::WinIfExists;
69192
85428
  friend class ::WinImportHandler;
69193
85429
  friend class ::WinMacros;
69194
 
  friend class ::CMatchSyntax;
69195
 
  friend class ::ExtGnu;
 
85430
  friend class ::WinAsm;
 
85431
  friend class ::WinDeclSpecs;
 
85432
  friend class ::WinMemberExplSpec;
 
85433
  friend class ::WinTypeKeywords;
 
85434
  friend class ::WinFriend;
69196
85435
  friend class ::ExtAC;
69197
85436
  friend class ::ExtACBuilderCoupling;
69198
85437
  friend class ::ExtACSyntaxCoupling;
69199
85438
  friend class ::ExtACTree;
69200
85439
  friend class ::ExtACKeywords;
69201
 
  friend class ::WinAsm;
69202
 
  friend class ::WinDeclSpecs;
69203
 
  friend class ::WinMemberExplSpec;
69204
 
  friend class ::WinTypeKeywords;
 
85440
  friend class ::ExtGnu;
69205
85441
  friend class ::PragmaOnceUnitState;
69206
85442
  friend class ::PragmaOnce;
69207
 
  friend class ::CCExprResolve;
69208
 
  friend class ::CExprResolve;
 
85443
  friend class ::CMatchSyntax;
69209
85444
 
69210
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85445
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69211
85446
 
69212
85447
  CTree *sons[2]; // declspecs, declarator
69213
85448
 
69214
85449
public:
69215
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
85450
  /** Constructor.
 
85451
   *  \param dss The declaration specifier sequence of the type.
 
85452
   *  \param d The type declarator. */
 
85453
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
85454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69216
85455
  static const char *NodeId ();
 
85456
  /** Get the name of the node. Can be compared with NodeId(). */
69217
85457
  const char *NodeName () const { return NodeId (); }
 
85458
  /** Get the number of sons. */
69218
85459
  int Sons () const { return CTree::Sons (sons, 2); }
 
85460
  /** Get the n-th son.
 
85461
   *  \param n The index of the son.
 
85462
   *  \return The n-th son or NULL. */
69219
85463
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
85464
  /** Get the declarator. */
69220
85465
  CTree *Declarator () const { return sons[1]; }
 
85466
  /** Replace a son.
 
85467
   *  \param old_son The son to replace.
 
85468
   *  \param new_son The new son. */
69221
85469
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69222
85470
    CTree::ReplaceSon (sons, 2, old_son, new_son);
69223
85471
  }
 
85472
  /** Get the semantic information object. */
69224
85473
  CSemObject *SemObject () const { return (CSemObject*)this; }
69225
85474
};
69226
85475
      
 
85476
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
85477
 *  Tree node representing a class specifier, e.g. class X. */
69227
85478
 
69228
 
#line 69229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85479
#line 85480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69229
85480
} // closed Puma
 
85481
class CCExprResolve;
 
85482
class CExprResolve;
69230
85483
class WinIfExists;
69231
85484
class WinImportHandler;
69232
85485
class WinMacros;
69233
 
class CMatchSyntax;
69234
 
class ExtGnu;
 
85486
class WinAsm;
 
85487
class WinDeclSpecs;
 
85488
class WinMemberExplSpec;
 
85489
class WinTypeKeywords;
 
85490
class WinFriend;
69235
85491
class ExtAC;
69236
85492
class ExtACBuilderCoupling;
69237
85493
class ExtACSyntaxCoupling;
69238
85494
class ExtACTree;
69239
85495
class ExtACKeywords;
69240
 
class WinAsm;
69241
 
class WinDeclSpecs;
69242
 
class WinMemberExplSpec;
69243
 
class WinTypeKeywords;
 
85496
class ExtGnu;
69244
85497
class PragmaOnceUnitState;
69245
85498
class PragmaOnce;
69246
 
class CCExprResolve;
69247
 
class CExprResolve;
 
85499
class CMatchSyntax;
69248
85500
namespace Puma {
69249
85501
 
69250
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85502
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69251
85503
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
69252
 
#line 69253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85504
#line 85505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85505
  friend class ::CCExprResolve;
 
85506
  friend class ::CExprResolve;
69253
85507
  friend class ::WinIfExists;
69254
85508
  friend class ::WinImportHandler;
69255
85509
  friend class ::WinMacros;
69256
 
  friend class ::CMatchSyntax;
69257
 
  friend class ::ExtGnu;
 
85510
  friend class ::WinAsm;
 
85511
  friend class ::WinDeclSpecs;
 
85512
  friend class ::WinMemberExplSpec;
 
85513
  friend class ::WinTypeKeywords;
 
85514
  friend class ::WinFriend;
69258
85515
  friend class ::ExtAC;
69259
85516
  friend class ::ExtACBuilderCoupling;
69260
85517
  friend class ::ExtACSyntaxCoupling;
69261
85518
  friend class ::ExtACTree;
69262
85519
  friend class ::ExtACKeywords;
69263
 
  friend class ::WinAsm;
69264
 
  friend class ::WinDeclSpecs;
69265
 
  friend class ::WinMemberExplSpec;
69266
 
  friend class ::WinTypeKeywords;
 
85520
  friend class ::ExtGnu;
69267
85521
  friend class ::PragmaOnceUnitState;
69268
85522
  friend class ::PragmaOnce;
69269
 
  friend class ::CCExprResolve;
69270
 
  friend class ::CExprResolve;
 
85523
  friend class ::CMatchSyntax;
69271
85524
 
69272
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85525
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69273
85526
 
69274
85527
  CTree *sons[2]; // key, name
69275
85528
  
69276
85529
public:
69277
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
85530
  /** Constructor.
 
85531
   *  \param k The 'class' or 'struct' keyword.
 
85532
   *  \param n The class name. */
 
85533
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
85534
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69278
85535
  static const char *NodeId ();
 
85536
  /** Get the name of the node. Can be compared with NodeId(). */
69279
85537
  const char *NodeName () const { return NodeId (); }
 
85538
  /** Get the number of sons. */
69280
85539
  int Sons () const { return 2; }
 
85540
  /** Get the n-th son.
 
85541
   *  \param n The index of the son.
 
85542
   *  \return The n-th son or NULL. */
69281
85543
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
85544
  /** Get the class name. */
69282
85545
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
85546
  /** Get the semantic information object. */
69283
85547
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
85548
  /** Replace a son.
 
85549
   *  \param old_son The son to replace.
 
85550
   *  \param new_son The new son. */
69284
85551
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69285
85552
    CTree::ReplaceSon (sons, 2, old_son, new_son);
69286
85553
  }
69287
85554
};
69288
85555
 
 
85556
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
85557
 *  Tree node representing a union specifier, e.g. union X. */
69289
85558
 
69290
 
#line 69291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85559
#line 85560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69291
85560
} // closed Puma
 
85561
class CCExprResolve;
 
85562
class CExprResolve;
69292
85563
class WinIfExists;
69293
85564
class WinImportHandler;
69294
85565
class WinMacros;
69295
 
class CMatchSyntax;
69296
 
class ExtGnu;
 
85566
class WinAsm;
 
85567
class WinDeclSpecs;
 
85568
class WinMemberExplSpec;
 
85569
class WinTypeKeywords;
 
85570
class WinFriend;
69297
85571
class ExtAC;
69298
85572
class ExtACBuilderCoupling;
69299
85573
class ExtACSyntaxCoupling;
69300
85574
class ExtACTree;
69301
85575
class ExtACKeywords;
69302
 
class WinAsm;
69303
 
class WinDeclSpecs;
69304
 
class WinMemberExplSpec;
69305
 
class WinTypeKeywords;
 
85576
class ExtGnu;
69306
85577
class PragmaOnceUnitState;
69307
85578
class PragmaOnce;
69308
 
class CCExprResolve;
69309
 
class CExprResolve;
 
85579
class CMatchSyntax;
69310
85580
namespace Puma {
69311
85581
 
69312
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85582
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69313
85583
class CT_UnionSpec : public CT_ClassSpec {
69314
 
#line 69315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85584
#line 85585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85585
  friend class ::CCExprResolve;
 
85586
  friend class ::CExprResolve;
69315
85587
  friend class ::WinIfExists;
69316
85588
  friend class ::WinImportHandler;
69317
85589
  friend class ::WinMacros;
69318
 
  friend class ::CMatchSyntax;
69319
 
  friend class ::ExtGnu;
 
85590
  friend class ::WinAsm;
 
85591
  friend class ::WinDeclSpecs;
 
85592
  friend class ::WinMemberExplSpec;
 
85593
  friend class ::WinTypeKeywords;
 
85594
  friend class ::WinFriend;
69320
85595
  friend class ::ExtAC;
69321
85596
  friend class ::ExtACBuilderCoupling;
69322
85597
  friend class ::ExtACSyntaxCoupling;
69323
85598
  friend class ::ExtACTree;
69324
85599
  friend class ::ExtACKeywords;
69325
 
  friend class ::WinAsm;
69326
 
  friend class ::WinDeclSpecs;
69327
 
  friend class ::WinMemberExplSpec;
69328
 
  friend class ::WinTypeKeywords;
 
85600
  friend class ::ExtGnu;
69329
85601
  friend class ::PragmaOnceUnitState;
69330
85602
  friend class ::PragmaOnce;
69331
 
  friend class ::CCExprResolve;
69332
 
  friend class ::CExprResolve;
 
85603
  friend class ::CMatchSyntax;
69333
85604
 
69334
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85605
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69335
85606
 
69336
85607
public:
 
85608
  /** Constructor.
 
85609
   *  \param k The 'union' keyword.
 
85610
   *  \param n The name of the union. */
69337
85611
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
85612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69338
85613
  static const char *NodeId ();
 
85614
  /** Get the name of the node. Can be compared with NodeId(). */
69339
85615
  const char *NodeName () const { return NodeId (); }
69340
85616
};
69341
85617
 
 
85618
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
85619
 *  Tree node representing an enumeration specifier, e.g. enum X. */
69342
85620
 
69343
 
#line 69344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85621
#line 85622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69344
85622
} // closed Puma
 
85623
class CCExprResolve;
 
85624
class CExprResolve;
69345
85625
class WinIfExists;
69346
85626
class WinImportHandler;
69347
85627
class WinMacros;
69348
 
class CMatchSyntax;
69349
 
class ExtGnu;
 
85628
class WinAsm;
 
85629
class WinDeclSpecs;
 
85630
class WinMemberExplSpec;
 
85631
class WinTypeKeywords;
 
85632
class WinFriend;
69350
85633
class ExtAC;
69351
85634
class ExtACBuilderCoupling;
69352
85635
class ExtACSyntaxCoupling;
69353
85636
class ExtACTree;
69354
85637
class ExtACKeywords;
69355
 
class WinAsm;
69356
 
class WinDeclSpecs;
69357
 
class WinMemberExplSpec;
69358
 
class WinTypeKeywords;
 
85638
class ExtGnu;
69359
85639
class PragmaOnceUnitState;
69360
85640
class PragmaOnce;
69361
 
class CCExprResolve;
69362
 
class CExprResolve;
 
85641
class CMatchSyntax;
69363
85642
namespace Puma {
69364
85643
 
69365
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85644
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69366
85645
class CT_EnumSpec : public CT_ClassSpec {
69367
 
#line 69368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85646
#line 85647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85647
  friend class ::CCExprResolve;
 
85648
  friend class ::CExprResolve;
69368
85649
  friend class ::WinIfExists;
69369
85650
  friend class ::WinImportHandler;
69370
85651
  friend class ::WinMacros;
69371
 
  friend class ::CMatchSyntax;
69372
 
  friend class ::ExtGnu;
 
85652
  friend class ::WinAsm;
 
85653
  friend class ::WinDeclSpecs;
 
85654
  friend class ::WinMemberExplSpec;
 
85655
  friend class ::WinTypeKeywords;
 
85656
  friend class ::WinFriend;
69373
85657
  friend class ::ExtAC;
69374
85658
  friend class ::ExtACBuilderCoupling;
69375
85659
  friend class ::ExtACSyntaxCoupling;
69376
85660
  friend class ::ExtACTree;
69377
85661
  friend class ::ExtACKeywords;
69378
 
  friend class ::WinAsm;
69379
 
  friend class ::WinDeclSpecs;
69380
 
  friend class ::WinMemberExplSpec;
69381
 
  friend class ::WinTypeKeywords;
 
85662
  friend class ::ExtGnu;
69382
85663
  friend class ::PragmaOnceUnitState;
69383
85664
  friend class ::PragmaOnce;
69384
 
  friend class ::CCExprResolve;
69385
 
  friend class ::CExprResolve;
 
85665
  friend class ::CMatchSyntax;
69386
85666
 
69387
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85667
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69388
85668
 
69389
85669
public:
 
85670
  /** Constructor.
 
85671
   *  \param k The 'enum' keyword. 
 
85672
   *  \param n The name of the enumeration. */
69390
85673
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
85674
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69391
85675
  static const char *NodeId ();
 
85676
  /** Get the name of the node. Can be compared with NodeId(). */
69392
85677
  const char *NodeName () const { return NodeId (); }
69393
85678
};
69394
85679
 
 
85680
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
85681
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
69395
85682
 
69396
 
#line 69397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85683
#line 85684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69397
85684
} // closed Puma
 
85685
class CCExprResolve;
 
85686
class CExprResolve;
69398
85687
class WinIfExists;
69399
85688
class WinImportHandler;
69400
85689
class WinMacros;
69401
 
class CMatchSyntax;
69402
 
class ExtGnu;
 
85690
class WinAsm;
 
85691
class WinDeclSpecs;
 
85692
class WinMemberExplSpec;
 
85693
class WinTypeKeywords;
 
85694
class WinFriend;
69403
85695
class ExtAC;
69404
85696
class ExtACBuilderCoupling;
69405
85697
class ExtACSyntaxCoupling;
69406
85698
class ExtACTree;
69407
85699
class ExtACKeywords;
69408
 
class WinAsm;
69409
 
class WinDeclSpecs;
69410
 
class WinMemberExplSpec;
69411
 
class WinTypeKeywords;
 
85700
class ExtGnu;
69412
85701
class PragmaOnceUnitState;
69413
85702
class PragmaOnce;
69414
 
class CCExprResolve;
69415
 
class CExprResolve;
 
85703
class CMatchSyntax;
69416
85704
namespace Puma {
69417
85705
 
69418
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85706
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69419
85707
class CT_ExceptionSpec : public CT_DeclSpec {
69420
 
#line 69421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85708
#line 85709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85709
  friend class ::CCExprResolve;
 
85710
  friend class ::CExprResolve;
69421
85711
  friend class ::WinIfExists;
69422
85712
  friend class ::WinImportHandler;
69423
85713
  friend class ::WinMacros;
69424
 
  friend class ::CMatchSyntax;
69425
 
  friend class ::ExtGnu;
 
85714
  friend class ::WinAsm;
 
85715
  friend class ::WinDeclSpecs;
 
85716
  friend class ::WinMemberExplSpec;
 
85717
  friend class ::WinTypeKeywords;
 
85718
  friend class ::WinFriend;
69426
85719
  friend class ::ExtAC;
69427
85720
  friend class ::ExtACBuilderCoupling;
69428
85721
  friend class ::ExtACSyntaxCoupling;
69429
85722
  friend class ::ExtACTree;
69430
85723
  friend class ::ExtACKeywords;
69431
 
  friend class ::WinAsm;
69432
 
  friend class ::WinDeclSpecs;
69433
 
  friend class ::WinMemberExplSpec;
69434
 
  friend class ::WinTypeKeywords;
 
85724
  friend class ::ExtGnu;
69435
85725
  friend class ::PragmaOnceUnitState;
69436
85726
  friend class ::PragmaOnce;
69437
 
  friend class ::CCExprResolve;
69438
 
  friend class ::CExprResolve;
 
85727
  friend class ::CMatchSyntax;
69439
85728
 
69440
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85729
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69441
85730
 
69442
85731
  CTree *sons[2]; // throw, type_id_list
69443
85732
  
69444
85733
public:
69445
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
85734
  /** Constructor.
 
85735
   *  \param k The 'throw' keyword.
 
85736
   *  \param l The type list for the exception type to throw. */
 
85737
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
85738
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69446
85739
  static const char *NodeId ();
 
85740
  /** Get the name of the node. Can be compared with NodeId(). */
69447
85741
  const char *NodeName () const { return NodeId (); }
 
85742
  /** Get the number of sons. */
69448
85743
  int Sons () const { return 2; }
 
85744
  /** Get the n-th son.
 
85745
   *  \param n The index of the son.
 
85746
   *  \return The n-th son or NULL. */
69449
85747
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
85748
  /** Get the exception type list. */
69450
85749
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
85750
  /** Replace a son.
 
85751
   *  \param old_son The son to replace.
 
85752
   *  \param new_son The new son. */
69451
85753
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69452
85754
    CTree::ReplaceSon (sons, 2, old_son, new_son);
69453
85755
  }
69459
85761
/*                                                                           */
69460
85762
/*****************************************************************************/
69461
85763
 
 
85764
/** \class CT_Decl CTree.h Puma/CTree.h
 
85765
 *  Base class for all tree nodes representing declarations. */
69462
85766
 
69463
 
#line 69464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85767
#line 85768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69464
85768
} // closed Puma
 
85769
class CCExprResolve;
 
85770
class CExprResolve;
69465
85771
class WinIfExists;
69466
85772
class WinImportHandler;
69467
85773
class WinMacros;
69468
 
class CMatchSyntax;
69469
 
class ExtGnu;
 
85774
class WinAsm;
 
85775
class WinDeclSpecs;
 
85776
class WinMemberExplSpec;
 
85777
class WinTypeKeywords;
 
85778
class WinFriend;
69470
85779
class ExtAC;
69471
85780
class ExtACBuilderCoupling;
69472
85781
class ExtACSyntaxCoupling;
69473
85782
class ExtACTree;
69474
85783
class ExtACKeywords;
69475
 
class WinAsm;
69476
 
class WinDeclSpecs;
69477
 
class WinMemberExplSpec;
69478
 
class WinTypeKeywords;
 
85784
class ExtGnu;
69479
85785
class PragmaOnceUnitState;
69480
85786
class PragmaOnce;
69481
 
class CCExprResolve;
69482
 
class CExprResolve;
 
85787
class CMatchSyntax;
69483
85788
namespace Puma {
69484
85789
 
69485
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85790
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69486
85791
class CT_Decl : public CTree {
69487
 
#line 69488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85792
#line 85793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85793
  friend class ::CCExprResolve;
 
85794
  friend class ::CExprResolve;
69488
85795
  friend class ::WinIfExists;
69489
85796
  friend class ::WinImportHandler;
69490
85797
  friend class ::WinMacros;
69491
 
  friend class ::CMatchSyntax;
69492
 
  friend class ::ExtGnu;
 
85798
  friend class ::WinAsm;
 
85799
  friend class ::WinDeclSpecs;
 
85800
  friend class ::WinMemberExplSpec;
 
85801
  friend class ::WinTypeKeywords;
 
85802
  friend class ::WinFriend;
69493
85803
  friend class ::ExtAC;
69494
85804
  friend class ::ExtACBuilderCoupling;
69495
85805
  friend class ::ExtACSyntaxCoupling;
69496
85806
  friend class ::ExtACTree;
69497
85807
  friend class ::ExtACKeywords;
69498
 
  friend class ::WinAsm;
69499
 
  friend class ::WinDeclSpecs;
69500
 
  friend class ::WinMemberExplSpec;
69501
 
  friend class ::WinTypeKeywords;
 
85808
  friend class ::ExtGnu;
69502
85809
  friend class ::PragmaOnceUnitState;
69503
85810
  friend class ::PragmaOnce;
69504
 
  friend class ::CCExprResolve;
69505
 
  friend class ::CExprResolve;
 
85811
  friend class ::CMatchSyntax;
69506
85812
 
69507
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85813
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69508
85814
 
69509
85815
  CT_LinkageSpec *_linkage;
 
85816
  
69510
85817
protected:
 
85818
  /** Constructor. */
69511
85819
  CT_Decl () : _linkage (0) {}
 
85820
  
69512
85821
public:
 
85822
  /** Set the linkage of the declared entity.
 
85823
   *  \param l The linkage specifiers. */
69513
85824
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
85825
  /** Get the linkage specifiers. */
69514
85826
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
85827
  /** Get this. */
 
85828
  virtual CT_Decl *IsDeclaration () { return this; }
69515
85829
};
69516
85830
 
 
85831
/** \class CT_Program CTree.h Puma/CTree.h
 
85832
 *  Root node of C/C++ syntax tree. */
69517
85833
 
69518
 
#line 69519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85834
#line 85835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69519
85835
} // closed Puma
 
85836
class CCExprResolve;
 
85837
class CExprResolve;
69520
85838
class WinIfExists;
69521
85839
class WinImportHandler;
69522
85840
class WinMacros;
69523
 
class CMatchSyntax;
69524
 
class ExtGnu;
 
85841
class WinAsm;
 
85842
class WinDeclSpecs;
 
85843
class WinMemberExplSpec;
 
85844
class WinTypeKeywords;
 
85845
class WinFriend;
69525
85846
class ExtAC;
69526
85847
class ExtACBuilderCoupling;
69527
85848
class ExtACSyntaxCoupling;
69528
85849
class ExtACTree;
69529
85850
class ExtACKeywords;
69530
 
class WinAsm;
69531
 
class WinDeclSpecs;
69532
 
class WinMemberExplSpec;
69533
 
class WinTypeKeywords;
 
85851
class ExtGnu;
69534
85852
class PragmaOnceUnitState;
69535
85853
class PragmaOnce;
69536
 
class CCExprResolve;
69537
 
class CExprResolve;
 
85854
class CMatchSyntax;
69538
85855
namespace Puma {
69539
85856
 
69540
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85857
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69541
85858
class CT_Program : public CT_DeclList, public CSemScope {
69542
 
#line 69543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85859
#line 85860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85860
  friend class ::CCExprResolve;
 
85861
  friend class ::CExprResolve;
69543
85862
  friend class ::WinIfExists;
69544
85863
  friend class ::WinImportHandler;
69545
85864
  friend class ::WinMacros;
69546
 
  friend class ::CMatchSyntax;
69547
 
  friend class ::ExtGnu;
 
85865
  friend class ::WinAsm;
 
85866
  friend class ::WinDeclSpecs;
 
85867
  friend class ::WinMemberExplSpec;
 
85868
  friend class ::WinTypeKeywords;
 
85869
  friend class ::WinFriend;
69548
85870
  friend class ::ExtAC;
69549
85871
  friend class ::ExtACBuilderCoupling;
69550
85872
  friend class ::ExtACSyntaxCoupling;
69551
85873
  friend class ::ExtACTree;
69552
85874
  friend class ::ExtACKeywords;
69553
 
  friend class ::WinAsm;
69554
 
  friend class ::WinDeclSpecs;
69555
 
  friend class ::WinMemberExplSpec;
69556
 
  friend class ::WinTypeKeywords;
 
85875
  friend class ::ExtGnu;
69557
85876
  friend class ::PragmaOnceUnitState;
69558
85877
  friend class ::PragmaOnce;
69559
 
  friend class ::CCExprResolve;
69560
 
  friend class ::CExprResolve;
 
85878
  friend class ::CMatchSyntax;
69561
85879
 
69562
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85880
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69563
85881
 
69564
85882
public:
 
85883
  /** Constructor.
 
85884
   *  \param size The initial number of declarations in the program.
 
85885
   *  \param incr The initial increment count. */
69565
85886
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
85887
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69566
85888
  static const char *NodeId ();
 
85889
  /** Get the name of the node. Can be compared with NodeId(). */
69567
85890
  const char *NodeName () const { return NodeId (); }
 
85891
  /** Get the semantic scope object. */
 
85892
  CSemScope *SemScope () const { return (CSemScope*)this; }
69568
85893
};
69569
85894
   
 
85895
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
85896
 *  Tree node representing an object declaration, e.g. int *i. */
69570
85897
 
69571
 
#line 69572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85898
#line 85899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69572
85899
} // closed Puma
 
85900
class CCExprResolve;
 
85901
class CExprResolve;
69573
85902
class WinIfExists;
69574
85903
class WinImportHandler;
69575
85904
class WinMacros;
69576
 
class CMatchSyntax;
69577
 
class ExtGnu;
 
85905
class WinAsm;
 
85906
class WinDeclSpecs;
 
85907
class WinMemberExplSpec;
 
85908
class WinTypeKeywords;
 
85909
class WinFriend;
69578
85910
class ExtAC;
69579
85911
class ExtACBuilderCoupling;
69580
85912
class ExtACSyntaxCoupling;
69581
85913
class ExtACTree;
69582
85914
class ExtACKeywords;
69583
 
class WinAsm;
69584
 
class WinDeclSpecs;
69585
 
class WinMemberExplSpec;
69586
 
class WinTypeKeywords;
 
85915
class ExtGnu;
69587
85916
class PragmaOnceUnitState;
69588
85917
class PragmaOnce;
69589
 
class CCExprResolve;
69590
 
class CExprResolve;
 
85918
class CMatchSyntax;
69591
85919
namespace Puma {
69592
85920
 
69593
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85921
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69594
85922
class CT_ObjDecl : public CT_Decl {
69595
 
#line 69596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85923
#line 85924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
85924
  friend class ::CCExprResolve;
 
85925
  friend class ::CExprResolve;
69596
85926
  friend class ::WinIfExists;
69597
85927
  friend class ::WinImportHandler;
69598
85928
  friend class ::WinMacros;
69599
 
  friend class ::CMatchSyntax;
69600
 
  friend class ::ExtGnu;
 
85929
  friend class ::WinAsm;
 
85930
  friend class ::WinDeclSpecs;
 
85931
  friend class ::WinMemberExplSpec;
 
85932
  friend class ::WinTypeKeywords;
 
85933
  friend class ::WinFriend;
69601
85934
  friend class ::ExtAC;
69602
85935
  friend class ::ExtACBuilderCoupling;
69603
85936
  friend class ::ExtACSyntaxCoupling;
69604
85937
  friend class ::ExtACTree;
69605
85938
  friend class ::ExtACKeywords;
69606
 
  friend class ::WinAsm;
69607
 
  friend class ::WinDeclSpecs;
69608
 
  friend class ::WinMemberExplSpec;
69609
 
  friend class ::WinTypeKeywords;
 
85939
  friend class ::ExtGnu;
69610
85940
  friend class ::PragmaOnceUnitState;
69611
85941
  friend class ::PragmaOnce;
69612
 
  friend class ::CCExprResolve;
69613
 
  friend class ::CExprResolve;
 
85942
  friend class ::CMatchSyntax;
69614
85943
 
69615
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
85944
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69616
85945
 
69617
85946
  CTree *sons[3]; // declspecs, declarators, colon
69618
85947
 
69619
85948
public:
 
85949
  /** Constructor.
 
85950
   *  \param dsl The declaration specifier sequence.
 
85951
   *  \param dl The declarator list.
 
85952
   *  \param c Optional colon. */
69620
85953
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
69621
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
85954
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
69622
85955
  }
 
85956
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69623
85957
  static const char *NodeId ();
 
85958
  /** Get the name of the node. Can be compared with NodeId(). */
69624
85959
  const char *NodeName () const { return NodeId (); }
 
85960
  /** Get the number of sons. */
69625
85961
  int Sons () const { return 3; }
 
85962
  /** Get the n-th son.
 
85963
   *  \param n The index of the son.
 
85964
   *  \return The n-th son or NULL. */
69626
85965
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
85966
  /** Get the declaration specifier sequence. */
69627
85967
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
85968
  /** Get the declarator list. */
69628
85969
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
85970
  /** Replace a son.
 
85971
   *  \param old_son The son to replace.
 
85972
   *  \param new_son The new son. */
69629
85973
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69630
85974
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69631
85975
  }
69632
85976
};
69633
85977
 
 
85978
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
85979
 *  Tree node representing a template declaration. */
69634
85980
 
69635
 
#line 69636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
85981
#line 85982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69636
85982
} // closed Puma
 
85983
class CCExprResolve;
 
85984
class CExprResolve;
69637
85985
class WinIfExists;
69638
85986
class WinImportHandler;
69639
85987
class WinMacros;
69640
 
class CMatchSyntax;
69641
 
class ExtGnu;
 
85988
class WinAsm;
 
85989
class WinDeclSpecs;
 
85990
class WinMemberExplSpec;
 
85991
class WinTypeKeywords;
 
85992
class WinFriend;
69642
85993
class ExtAC;
69643
85994
class ExtACBuilderCoupling;
69644
85995
class ExtACSyntaxCoupling;
69645
85996
class ExtACTree;
69646
85997
class ExtACKeywords;
69647
 
class WinAsm;
69648
 
class WinDeclSpecs;
69649
 
class WinMemberExplSpec;
69650
 
class WinTypeKeywords;
 
85998
class ExtGnu;
69651
85999
class PragmaOnceUnitState;
69652
86000
class PragmaOnce;
69653
 
class CCExprResolve;
69654
 
class CExprResolve;
 
86001
class CMatchSyntax;
69655
86002
namespace Puma {
69656
86003
 
69657
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86004
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69658
86005
class CT_TemplateDecl : public CT_Decl, public CSemScope {
69659
 
#line 69660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86006
#line 86007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86007
  friend class ::CCExprResolve;
 
86008
  friend class ::CExprResolve;
69660
86009
  friend class ::WinIfExists;
69661
86010
  friend class ::WinImportHandler;
69662
86011
  friend class ::WinMacros;
69663
 
  friend class ::CMatchSyntax;
69664
 
  friend class ::ExtGnu;
 
86012
  friend class ::WinAsm;
 
86013
  friend class ::WinDeclSpecs;
 
86014
  friend class ::WinMemberExplSpec;
 
86015
  friend class ::WinTypeKeywords;
 
86016
  friend class ::WinFriend;
69665
86017
  friend class ::ExtAC;
69666
86018
  friend class ::ExtACBuilderCoupling;
69667
86019
  friend class ::ExtACSyntaxCoupling;
69668
86020
  friend class ::ExtACTree;
69669
86021
  friend class ::ExtACKeywords;
69670
 
  friend class ::WinAsm;
69671
 
  friend class ::WinDeclSpecs;
69672
 
  friend class ::WinMemberExplSpec;
69673
 
  friend class ::WinTypeKeywords;
 
86022
  friend class ::ExtGnu;
69674
86023
  friend class ::PragmaOnceUnitState;
69675
86024
  friend class ::PragmaOnce;
69676
 
  friend class ::CCExprResolve;
69677
 
  friend class ::CExprResolve;
 
86025
  friend class ::CMatchSyntax;
69678
86026
 
69679
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86027
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69680
86028
 
69681
86029
  CTree *sons[3]; // export, param_list, decl
69682
86030
 
69683
86031
public:
 
86032
  /** Constructor.
 
86033
   *  \param e Optional 'export' keyword. 
 
86034
   *  \param p The template parameter list.
 
86035
   *  \param d The class or function declaration. */
69684
86036
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
69685
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
86037
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
69686
86038
  }
 
86039
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69687
86040
  static const char *NodeId ();
 
86041
  /** Get the name of the node. Can be compared with NodeId(). */
69688
86042
  const char *NodeName () const { return NodeId (); }
 
86043
  /** Get the number of sons. */
69689
86044
  int Sons () const { return CTree::Sons (sons, 3); }
 
86045
  /** Get the n-th son.
 
86046
   *  \param n The index of the son.
 
86047
   *  \return The n-th son or NULL. */
69690
86048
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
86049
  /** Replace a son.
 
86050
   *  \param old_son The son to replace.
 
86051
   *  \param new_son The new son. */
69691
86052
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69692
86053
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
69693
86054
  }
 
86055
  /** Get the 'export' keyword. */
69694
86056
  CTree *Export () const { return sons[0]; }
 
86057
  /** Get the template parameter list. */
69695
86058
  CT_TemplateParamList *Parameters () const { 
69696
86059
    return (CT_TemplateParamList*)sons[1]; 
69697
86060
  }
 
86061
  /** Get the class or function declaration. */
69698
86062
  CTree *Declaration () const { return sons[2]; }
 
86063
  /** Get the semantic scope object. */
 
86064
  CSemScope *SemScope () const { return (CSemScope*)this; }
69699
86065
};
69700
86066
 
 
86067
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
86068
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
69701
86069
 
69702
 
#line 69703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86070
#line 86071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69703
86071
} // closed Puma
 
86072
class CCExprResolve;
 
86073
class CExprResolve;
69704
86074
class WinIfExists;
69705
86075
class WinImportHandler;
69706
86076
class WinMacros;
69707
 
class CMatchSyntax;
69708
 
class ExtGnu;
 
86077
class WinAsm;
 
86078
class WinDeclSpecs;
 
86079
class WinMemberExplSpec;
 
86080
class WinTypeKeywords;
 
86081
class WinFriend;
69709
86082
class ExtAC;
69710
86083
class ExtACBuilderCoupling;
69711
86084
class ExtACSyntaxCoupling;
69712
86085
class ExtACTree;
69713
86086
class ExtACKeywords;
69714
 
class WinAsm;
69715
 
class WinDeclSpecs;
69716
 
class WinMemberExplSpec;
69717
 
class WinTypeKeywords;
 
86087
class ExtGnu;
69718
86088
class PragmaOnceUnitState;
69719
86089
class PragmaOnce;
69720
 
class CCExprResolve;
69721
 
class CExprResolve;
 
86090
class CMatchSyntax;
69722
86091
namespace Puma {
69723
86092
 
69724
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86093
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69725
86094
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
69726
 
#line 69727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86095
#line 86096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86096
  friend class ::CCExprResolve;
 
86097
  friend class ::CExprResolve;
69727
86098
  friend class ::WinIfExists;
69728
86099
  friend class ::WinImportHandler;
69729
86100
  friend class ::WinMacros;
69730
 
  friend class ::CMatchSyntax;
69731
 
  friend class ::ExtGnu;
 
86101
  friend class ::WinAsm;
 
86102
  friend class ::WinDeclSpecs;
 
86103
  friend class ::WinMemberExplSpec;
 
86104
  friend class ::WinTypeKeywords;
 
86105
  friend class ::WinFriend;
69732
86106
  friend class ::ExtAC;
69733
86107
  friend class ::ExtACBuilderCoupling;
69734
86108
  friend class ::ExtACSyntaxCoupling;
69735
86109
  friend class ::ExtACTree;
69736
86110
  friend class ::ExtACKeywords;
69737
 
  friend class ::WinAsm;
69738
 
  friend class ::WinDeclSpecs;
69739
 
  friend class ::WinMemberExplSpec;
69740
 
  friend class ::WinTypeKeywords;
 
86111
  friend class ::ExtGnu;
69741
86112
  friend class ::PragmaOnceUnitState;
69742
86113
  friend class ::PragmaOnce;
69743
 
  friend class ::CCExprResolve;
69744
 
  friend class ::CExprResolve;
 
86114
  friend class ::CMatchSyntax;
69745
86115
 
69746
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86116
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69747
86117
 
69748
86118
protected:
 
86119
  /** Constructor. */
69749
86120
  CT_TemplateParamDecl () {}
69750
86121
  
69751
86122
public:
 
86123
  /** Get the template default argument. */
69752
86124
  virtual CT_ExprList *DefaultArgument () const = 0;
 
86125
  /** Get the semantic information object. */
69753
86126
  CSemObject *SemObject () const { return (CSemObject*)this; }
69754
86127
};
69755
86128
 
69756
86129
 
69757
 
#line 69758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86130
#line 86131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69758
86131
} // closed Puma
 
86132
class CCExprResolve;
 
86133
class CExprResolve;
69759
86134
class WinIfExists;
69760
86135
class WinImportHandler;
69761
86136
class WinMacros;
69762
 
class CMatchSyntax;
69763
 
class ExtGnu;
 
86137
class WinAsm;
 
86138
class WinDeclSpecs;
 
86139
class WinMemberExplSpec;
 
86140
class WinTypeKeywords;
 
86141
class WinFriend;
69764
86142
class ExtAC;
69765
86143
class ExtACBuilderCoupling;
69766
86144
class ExtACSyntaxCoupling;
69767
86145
class ExtACTree;
69768
86146
class ExtACKeywords;
69769
 
class WinAsm;
69770
 
class WinDeclSpecs;
69771
 
class WinMemberExplSpec;
69772
 
class WinTypeKeywords;
 
86147
class ExtGnu;
69773
86148
class PragmaOnceUnitState;
69774
86149
class PragmaOnce;
69775
 
class CCExprResolve;
69776
 
class CExprResolve;
 
86150
class CMatchSyntax;
69777
86151
namespace Puma {
69778
86152
 
69779
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86153
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69780
86154
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
69781
 
#line 69782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86155
#line 86156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86156
  friend class ::CCExprResolve;
 
86157
  friend class ::CExprResolve;
69782
86158
  friend class ::WinIfExists;
69783
86159
  friend class ::WinImportHandler;
69784
86160
  friend class ::WinMacros;
69785
 
  friend class ::CMatchSyntax;
69786
 
  friend class ::ExtGnu;
 
86161
  friend class ::WinAsm;
 
86162
  friend class ::WinDeclSpecs;
 
86163
  friend class ::WinMemberExplSpec;
 
86164
  friend class ::WinTypeKeywords;
 
86165
  friend class ::WinFriend;
69787
86166
  friend class ::ExtAC;
69788
86167
  friend class ::ExtACBuilderCoupling;
69789
86168
  friend class ::ExtACSyntaxCoupling;
69790
86169
  friend class ::ExtACTree;
69791
86170
  friend class ::ExtACKeywords;
69792
 
  friend class ::WinAsm;
69793
 
  friend class ::WinDeclSpecs;
69794
 
  friend class ::WinMemberExplSpec;
69795
 
  friend class ::WinTypeKeywords;
 
86171
  friend class ::ExtGnu;
69796
86172
  friend class ::PragmaOnceUnitState;
69797
86173
  friend class ::PragmaOnce;
69798
 
  friend class ::CCExprResolve;
69799
 
  friend class ::CExprResolve;
 
86174
  friend class ::CMatchSyntax;
69800
86175
 
69801
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86176
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69802
86177
 
69803
86178
  CTree *sons[3]; // declspecs, declarator, init
69804
86179
 
69805
86180
public:
69806
86181
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
69807
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
86182
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
69808
86183
  }
 
86184
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69809
86185
  static const char *NodeId ();
 
86186
  /** Get the name of the node. Can be compared with NodeId(). */
69810
86187
  const char *NodeName () const { return NodeId (); }
 
86188
  /** Get the number of sons. */
69811
86189
  int Sons () const { return CTree::Sons (sons, 3); }
 
86190
  /** Get the n-th son.
 
86191
   *  \param n The index of the son.
 
86192
   *  \return The n-th son or NULL. */
69812
86193
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69813
86194
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
69814
86195
  CTree *Declarator () const { return sons[1]; }
69815
86196
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
69816
86197
  CSemObject *SemObject () const { return (CSemObject*)this; }
69817
 
  void Initializer (CTree *i) { sons[2] = i; }
 
86198
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
86199
  /** Replace a son.
 
86200
   *  \param old_son The son to replace.
 
86201
   *  \param new_son The new son. */
69818
86202
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69819
86203
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69820
86204
  }
69821
86205
};
69822
86206
 
69823
86207
 
69824
 
#line 69825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86208
#line 86209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69825
86209
} // closed Puma
 
86210
class CCExprResolve;
 
86211
class CExprResolve;
69826
86212
class WinIfExists;
69827
86213
class WinImportHandler;
69828
86214
class WinMacros;
69829
 
class CMatchSyntax;
69830
 
class ExtGnu;
 
86215
class WinAsm;
 
86216
class WinDeclSpecs;
 
86217
class WinMemberExplSpec;
 
86218
class WinTypeKeywords;
 
86219
class WinFriend;
69831
86220
class ExtAC;
69832
86221
class ExtACBuilderCoupling;
69833
86222
class ExtACSyntaxCoupling;
69834
86223
class ExtACTree;
69835
86224
class ExtACKeywords;
69836
 
class WinAsm;
69837
 
class WinDeclSpecs;
69838
 
class WinMemberExplSpec;
69839
 
class WinTypeKeywords;
 
86225
class ExtGnu;
69840
86226
class PragmaOnceUnitState;
69841
86227
class PragmaOnce;
69842
 
class CCExprResolve;
69843
 
class CExprResolve;
 
86228
class CMatchSyntax;
69844
86229
namespace Puma {
69845
86230
 
69846
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86231
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69847
86232
class CT_TypeParamDecl : public CT_TemplateParamDecl {
69848
 
#line 69849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86233
#line 86234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86234
  friend class ::CCExprResolve;
 
86235
  friend class ::CExprResolve;
69849
86236
  friend class ::WinIfExists;
69850
86237
  friend class ::WinImportHandler;
69851
86238
  friend class ::WinMacros;
69852
 
  friend class ::CMatchSyntax;
69853
 
  friend class ::ExtGnu;
 
86239
  friend class ::WinAsm;
 
86240
  friend class ::WinDeclSpecs;
 
86241
  friend class ::WinMemberExplSpec;
 
86242
  friend class ::WinTypeKeywords;
 
86243
  friend class ::WinFriend;
69854
86244
  friend class ::ExtAC;
69855
86245
  friend class ::ExtACBuilderCoupling;
69856
86246
  friend class ::ExtACSyntaxCoupling;
69857
86247
  friend class ::ExtACTree;
69858
86248
  friend class ::ExtACKeywords;
69859
 
  friend class ::WinAsm;
69860
 
  friend class ::WinDeclSpecs;
69861
 
  friend class ::WinMemberExplSpec;
69862
 
  friend class ::WinTypeKeywords;
 
86249
  friend class ::ExtGnu;
69863
86250
  friend class ::PragmaOnceUnitState;
69864
86251
  friend class ::PragmaOnce;
69865
 
  friend class ::CCExprResolve;
69866
 
  friend class ::CExprResolve;
 
86252
  friend class ::CMatchSyntax;
69867
86253
 
69868
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86254
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69869
86255
 
69870
86256
  CTree *sons[4]; // params, key, id, init
69871
86257
 
69872
86258
public:
69873
86259
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
69874
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
86260
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
86261
    AddSon (sons[2], id); AddSon (sons[3], i);
69875
86262
  }
 
86263
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69876
86264
  static const char *NodeId ();
 
86265
  /** Get the name of the node. Can be compared with NodeId(). */
69877
86266
  const char *NodeName () const { return NodeId (); }
 
86267
  /** Get the number of sons. */
69878
86268
  int Sons () const { return CTree::Sons (sons, 4); }
 
86269
  /** Get the n-th son.
 
86270
   *  \param n The index of the son.
 
86271
   *  \return The n-th son or NULL. */
69879
86272
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
69880
86273
  CT_TemplateParamList *Parameters () const { 
69881
86274
    return (CT_TemplateParamList*)sons[0]; 
69882
86275
  }
69883
86276
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
69884
86277
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
69885
 
  void Initializer (CTree *i) { sons[3] = i; }
 
86278
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
86279
  /** Replace a son.
 
86280
   *  \param old_son The son to replace.
 
86281
   *  \param new_son The new son. */
69886
86282
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69887
86283
    CTree::ReplaceSon (sons, 4, old_son, new_son);
69888
86284
  }
69889
86285
};
69890
86286
 
69891
86287
 
69892
 
#line 69893 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86288
#line 86289 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69893
86289
} // closed Puma
 
86290
class CCExprResolve;
 
86291
class CExprResolve;
69894
86292
class WinIfExists;
69895
86293
class WinImportHandler;
69896
86294
class WinMacros;
69897
 
class CMatchSyntax;
69898
 
class ExtGnu;
 
86295
class WinAsm;
 
86296
class WinDeclSpecs;
 
86297
class WinMemberExplSpec;
 
86298
class WinTypeKeywords;
 
86299
class WinFriend;
69899
86300
class ExtAC;
69900
86301
class ExtACBuilderCoupling;
69901
86302
class ExtACSyntaxCoupling;
69902
86303
class ExtACTree;
69903
86304
class ExtACKeywords;
69904
 
class WinAsm;
69905
 
class WinDeclSpecs;
69906
 
class WinMemberExplSpec;
69907
 
class WinTypeKeywords;
 
86305
class ExtGnu;
69908
86306
class PragmaOnceUnitState;
69909
86307
class PragmaOnce;
69910
 
class CCExprResolve;
69911
 
class CExprResolve;
 
86308
class CMatchSyntax;
69912
86309
namespace Puma {
69913
86310
 
69914
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86311
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69915
86312
class CT_EnumDef : public CT_Decl, public CSemObject {
69916
 
#line 69917 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86313
#line 86314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86314
  friend class ::CCExprResolve;
 
86315
  friend class ::CExprResolve;
69917
86316
  friend class ::WinIfExists;
69918
86317
  friend class ::WinImportHandler;
69919
86318
  friend class ::WinMacros;
69920
 
  friend class ::CMatchSyntax;
69921
 
  friend class ::ExtGnu;
 
86319
  friend class ::WinAsm;
 
86320
  friend class ::WinDeclSpecs;
 
86321
  friend class ::WinMemberExplSpec;
 
86322
  friend class ::WinTypeKeywords;
 
86323
  friend class ::WinFriend;
69922
86324
  friend class ::ExtAC;
69923
86325
  friend class ::ExtACBuilderCoupling;
69924
86326
  friend class ::ExtACSyntaxCoupling;
69925
86327
  friend class ::ExtACTree;
69926
86328
  friend class ::ExtACKeywords;
69927
 
  friend class ::WinAsm;
69928
 
  friend class ::WinDeclSpecs;
69929
 
  friend class ::WinMemberExplSpec;
69930
 
  friend class ::WinTypeKeywords;
 
86329
  friend class ::ExtGnu;
69931
86330
  friend class ::PragmaOnceUnitState;
69932
86331
  friend class ::PragmaOnce;
69933
 
  friend class ::CCExprResolve;
69934
 
  friend class ::CExprResolve;
 
86332
  friend class ::CMatchSyntax;
69935
86333
 
69936
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86334
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69937
86335
 
69938
86336
  CTree *sons[3]; // key, name, enumerators
69939
86337
 
69940
86338
public:
69941
86339
  CT_EnumDef (CTree *k, CTree *n) {
69942
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
86340
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
69943
86341
  }
 
86342
  /** Get the identifier for this node type. Can be compared with NodeName(). */
69944
86343
  static const char *NodeId ();
 
86344
  /** Get the name of the node. Can be compared with NodeId(). */
69945
86345
  const char *NodeName () const { return NodeId (); }
 
86346
  /** Get the number of sons. */
69946
86347
  int Sons () const { return CTree::Sons (sons, 3); }
 
86348
  /** Get the n-th son.
 
86349
   *  \param n The index of the son.
 
86350
   *  \return The n-th son or NULL. */
69947
86351
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
69948
86352
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
69949
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
86353
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
69950
86354
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
86355
  /** Replace a son.
 
86356
   *  \param old_son The son to replace.
 
86357
   *  \param new_son The new son. */
69951
86358
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
69952
86359
    CTree::ReplaceSon (sons, 3, old_son, new_son);
69953
86360
  }
69955
86362
};
69956
86363
 
69957
86364
 
69958
 
#line 69959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86365
#line 86366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
69959
86366
} // closed Puma
 
86367
class CCExprResolve;
 
86368
class CExprResolve;
69960
86369
class WinIfExists;
69961
86370
class WinImportHandler;
69962
86371
class WinMacros;
69963
 
class CMatchSyntax;
69964
 
class ExtGnu;
 
86372
class WinAsm;
 
86373
class WinDeclSpecs;
 
86374
class WinMemberExplSpec;
 
86375
class WinTypeKeywords;
 
86376
class WinFriend;
69965
86377
class ExtAC;
69966
86378
class ExtACBuilderCoupling;
69967
86379
class ExtACSyntaxCoupling;
69968
86380
class ExtACTree;
69969
86381
class ExtACKeywords;
69970
 
class WinAsm;
69971
 
class WinDeclSpecs;
69972
 
class WinMemberExplSpec;
69973
 
class WinTypeKeywords;
 
86382
class ExtGnu;
69974
86383
class PragmaOnceUnitState;
69975
86384
class PragmaOnce;
69976
 
class CCExprResolve;
69977
 
class CExprResolve;
 
86385
class CMatchSyntax;
69978
86386
namespace Puma {
69979
86387
 
69980
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86388
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
69981
86389
class CT_Enumerator : public CT_Decl, public CSemObject {
69982
 
#line 69983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86390
#line 86391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86391
  friend class ::CCExprResolve;
 
86392
  friend class ::CExprResolve;
69983
86393
  friend class ::WinIfExists;
69984
86394
  friend class ::WinImportHandler;
69985
86395
  friend class ::WinMacros;
69986
 
  friend class ::CMatchSyntax;
69987
 
  friend class ::ExtGnu;
 
86396
  friend class ::WinAsm;
 
86397
  friend class ::WinDeclSpecs;
 
86398
  friend class ::WinMemberExplSpec;
 
86399
  friend class ::WinTypeKeywords;
 
86400
  friend class ::WinFriend;
69988
86401
  friend class ::ExtAC;
69989
86402
  friend class ::ExtACBuilderCoupling;
69990
86403
  friend class ::ExtACSyntaxCoupling;
69991
86404
  friend class ::ExtACTree;
69992
86405
  friend class ::ExtACKeywords;
69993
 
  friend class ::WinAsm;
69994
 
  friend class ::WinDeclSpecs;
69995
 
  friend class ::WinMemberExplSpec;
69996
 
  friend class ::WinTypeKeywords;
 
86406
  friend class ::ExtGnu;
69997
86407
  friend class ::PragmaOnceUnitState;
69998
86408
  friend class ::PragmaOnce;
69999
 
  friend class ::CCExprResolve;
70000
 
  friend class ::CExprResolve;
 
86409
  friend class ::CMatchSyntax;
70001
86410
 
70002
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86411
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70003
86412
 
70004
86413
  CTree *sons[2]; // name, init
70005
86414
 
70006
86415
public:
70007
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
86416
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
86417
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70008
86418
  static const char *NodeId ();
 
86419
  /** Get the name of the node. Can be compared with NodeId(). */
70009
86420
  const char *NodeName () const { return NodeId (); }
 
86421
  /** Get the number of sons. */
70010
86422
  int Sons () const { return CTree::Sons (sons, 2); }
 
86423
  /** Get the n-th son.
 
86424
   *  \param n The index of the son.
 
86425
   *  \return The n-th son or NULL. */
70011
86426
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
70012
86427
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
70013
 
  void Initializer (CTree *i) { sons[1] = i; }
 
86428
  void Initializer (CTree *i) { AddSon (sons[1], i); }
70014
86429
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
86430
  /** Replace a son.
 
86431
   *  \param old_son The son to replace.
 
86432
   *  \param new_son The new son. */
70015
86433
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70016
86434
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
70017
86435
  }
70019
86437
};
70020
86438
 
70021
86439
 
70022
 
#line 70023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86440
#line 86441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70023
86441
} // closed Puma
 
86442
class CCExprResolve;
 
86443
class CExprResolve;
70024
86444
class WinIfExists;
70025
86445
class WinImportHandler;
70026
86446
class WinMacros;
70027
 
class CMatchSyntax;
70028
 
class ExtGnu;
 
86447
class WinAsm;
 
86448
class WinDeclSpecs;
 
86449
class WinMemberExplSpec;
 
86450
class WinTypeKeywords;
 
86451
class WinFriend;
70029
86452
class ExtAC;
70030
86453
class ExtACBuilderCoupling;
70031
86454
class ExtACSyntaxCoupling;
70032
86455
class ExtACTree;
70033
86456
class ExtACKeywords;
70034
 
class WinAsm;
70035
 
class WinDeclSpecs;
70036
 
class WinMemberExplSpec;
70037
 
class WinTypeKeywords;
 
86457
class ExtGnu;
70038
86458
class PragmaOnceUnitState;
70039
86459
class PragmaOnce;
70040
 
class CCExprResolve;
70041
 
class CExprResolve;
 
86460
class CMatchSyntax;
70042
86461
namespace Puma {
70043
86462
 
70044
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86463
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70045
86464
class CT_FctDef : public CT_Decl, public CSemObject {
70046
 
#line 70047 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86465
#line 86466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86466
  friend class ::CCExprResolve;
 
86467
  friend class ::CExprResolve;
70047
86468
  friend class ::WinIfExists;
70048
86469
  friend class ::WinImportHandler;
70049
86470
  friend class ::WinMacros;
70050
 
  friend class ::CMatchSyntax;
70051
 
  friend class ::ExtGnu;
 
86471
  friend class ::WinAsm;
 
86472
  friend class ::WinDeclSpecs;
 
86473
  friend class ::WinMemberExplSpec;
 
86474
  friend class ::WinTypeKeywords;
 
86475
  friend class ::WinFriend;
70052
86476
  friend class ::ExtAC;
70053
86477
  friend class ::ExtACBuilderCoupling;
70054
86478
  friend class ::ExtACSyntaxCoupling;
70055
86479
  friend class ::ExtACTree;
70056
86480
  friend class ::ExtACKeywords;
70057
 
  friend class ::WinAsm;
70058
 
  friend class ::WinDeclSpecs;
70059
 
  friend class ::WinMemberExplSpec;
70060
 
  friend class ::WinTypeKeywords;
 
86481
  friend class ::ExtGnu;
70061
86482
  friend class ::PragmaOnceUnitState;
70062
86483
  friend class ::PragmaOnce;
70063
 
  friend class ::CCExprResolve;
70064
 
  friend class ::CExprResolve;
 
86484
  friend class ::CMatchSyntax;
70065
86485
 
70066
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86486
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70067
86487
 
70068
86488
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
70069
86489
 
70070
86490
public:
70071
86491
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
70072
86492
             CTree *b, CTree *hs) {
70073
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
70074
 
    sons[5] = b; sons[6] = hs; 
 
86493
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
86494
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
86495
    AddSon (sons[6], hs); 
70075
86496
  }
 
86497
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70076
86498
  static const char *NodeId ();
 
86499
  /** Get the name of the node. Can be compared with NodeId(). */
70077
86500
  const char *NodeName () const { return NodeId (); }
 
86501
  /** Get the number of sons. */
70078
86502
  int Sons () const { return CTree::Sons (sons, 7); }
 
86503
  /** Get the n-th son.
 
86504
   *  \param n The index of the son.
 
86505
   *  \return The n-th son or NULL. */
70079
86506
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
70080
86507
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
70081
86508
  CTree *Declarator () const { return sons[1]; }
70085
86512
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
70086
86513
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
70087
86514
  CSemObject *SemObject () const { return (CSemObject*)this; }
70088
 
  void CtorInit (CTree *i) { sons[3] = i; }
70089
 
  void Body (CTree *b) { sons[5] = b; }
 
86515
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
86516
  void Body (CTree *b) { AddSon (sons[5], b); }
70090
86517
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
70091
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
86518
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
86519
    AddSon (sons[5], b); AddSon (sons[6], h);
70092
86520
  }
 
86521
  /** Replace a son.
 
86522
   *  \param old_son The son to replace.
 
86523
   *  \param new_son The new son. */
70093
86524
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70094
86525
    CTree::ReplaceSon (sons, 7, old_son, new_son);
70095
86526
  }
70096
86527
};
70097
86528
 
70098
86529
 
70099
 
#line 70100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86530
#line 86531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70100
86531
} // closed Puma
 
86532
class CCExprResolve;
 
86533
class CExprResolve;
70101
86534
class WinIfExists;
70102
86535
class WinImportHandler;
70103
86536
class WinMacros;
70104
 
class CMatchSyntax;
70105
 
class ExtGnu;
 
86537
class WinAsm;
 
86538
class WinDeclSpecs;
 
86539
class WinMemberExplSpec;
 
86540
class WinTypeKeywords;
 
86541
class WinFriend;
70106
86542
class ExtAC;
70107
86543
class ExtACBuilderCoupling;
70108
86544
class ExtACSyntaxCoupling;
70109
86545
class ExtACTree;
70110
86546
class ExtACKeywords;
70111
 
class WinAsm;
70112
 
class WinDeclSpecs;
70113
 
class WinMemberExplSpec;
70114
 
class WinTypeKeywords;
 
86547
class ExtGnu;
70115
86548
class PragmaOnceUnitState;
70116
86549
class PragmaOnce;
70117
 
class CCExprResolve;
70118
 
class CExprResolve;
 
86550
class CMatchSyntax;
70119
86551
namespace Puma {
70120
86552
 
70121
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86553
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70122
86554
class CT_AsmDef : public CT_Decl {
70123
 
#line 70124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86555
#line 86556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86556
  friend class ::CCExprResolve;
 
86557
  friend class ::CExprResolve;
70124
86558
  friend class ::WinIfExists;
70125
86559
  friend class ::WinImportHandler;
70126
86560
  friend class ::WinMacros;
70127
 
  friend class ::CMatchSyntax;
70128
 
  friend class ::ExtGnu;
 
86561
  friend class ::WinAsm;
 
86562
  friend class ::WinDeclSpecs;
 
86563
  friend class ::WinMemberExplSpec;
 
86564
  friend class ::WinTypeKeywords;
 
86565
  friend class ::WinFriend;
70129
86566
  friend class ::ExtAC;
70130
86567
  friend class ::ExtACBuilderCoupling;
70131
86568
  friend class ::ExtACSyntaxCoupling;
70132
86569
  friend class ::ExtACTree;
70133
86570
  friend class ::ExtACKeywords;
70134
 
  friend class ::WinAsm;
70135
 
  friend class ::WinDeclSpecs;
70136
 
  friend class ::WinMemberExplSpec;
70137
 
  friend class ::WinTypeKeywords;
 
86571
  friend class ::ExtGnu;
70138
86572
  friend class ::PragmaOnceUnitState;
70139
86573
  friend class ::PragmaOnce;
70140
 
  friend class ::CCExprResolve;
70141
 
  friend class ::CExprResolve;
 
86574
  friend class ::CMatchSyntax;
70142
86575
 
70143
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86576
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70144
86577
 
70145
86578
  CTree *sons[5]; // asm, open, str, close, semi_colon
70146
86579
 
70147
86580
public:
70148
86581
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
70149
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
86582
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
86583
    AddSon (sons[3], c); AddSon (sons[4], sc); 
70150
86584
  }
 
86585
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70151
86586
  static const char *NodeId ();
 
86587
  /** Get the name of the node. Can be compared with NodeId(). */
70152
86588
  const char *NodeName () const { return NodeId (); }
 
86589
  /** Get the number of sons. */
70153
86590
  int Sons () const { return 5; }
 
86591
  /** Get the n-th son.
 
86592
   *  \param n The index of the son.
 
86593
   *  \return The n-th son or NULL. */
70154
86594
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70155
86595
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
86596
  /** Replace a son.
 
86597
   *  \param old_son The son to replace.
 
86598
   *  \param new_son The new son. */
70156
86599
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70157
86600
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70158
86601
  }
70159
86602
};
70160
86603
 
70161
86604
 
70162
 
#line 70163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86605
#line 86606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70163
86606
} // closed Puma
 
86607
class CCExprResolve;
 
86608
class CExprResolve;
70164
86609
class WinIfExists;
70165
86610
class WinImportHandler;
70166
86611
class WinMacros;
70167
 
class CMatchSyntax;
70168
 
class ExtGnu;
 
86612
class WinAsm;
 
86613
class WinDeclSpecs;
 
86614
class WinMemberExplSpec;
 
86615
class WinTypeKeywords;
 
86616
class WinFriend;
70169
86617
class ExtAC;
70170
86618
class ExtACBuilderCoupling;
70171
86619
class ExtACSyntaxCoupling;
70172
86620
class ExtACTree;
70173
86621
class ExtACKeywords;
70174
 
class WinAsm;
70175
 
class WinDeclSpecs;
70176
 
class WinMemberExplSpec;
70177
 
class WinTypeKeywords;
 
86622
class ExtGnu;
70178
86623
class PragmaOnceUnitState;
70179
86624
class PragmaOnce;
70180
 
class CCExprResolve;
70181
 
class CExprResolve;
 
86625
class CMatchSyntax;
70182
86626
namespace Puma {
70183
86627
 
70184
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86628
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70185
86629
class CT_Handler : public CT_Decl, public CSemScope {
70186
 
#line 70187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86630
#line 86631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86631
  friend class ::CCExprResolve;
 
86632
  friend class ::CExprResolve;
70187
86633
  friend class ::WinIfExists;
70188
86634
  friend class ::WinImportHandler;
70189
86635
  friend class ::WinMacros;
70190
 
  friend class ::CMatchSyntax;
70191
 
  friend class ::ExtGnu;
 
86636
  friend class ::WinAsm;
 
86637
  friend class ::WinDeclSpecs;
 
86638
  friend class ::WinMemberExplSpec;
 
86639
  friend class ::WinTypeKeywords;
 
86640
  friend class ::WinFriend;
70192
86641
  friend class ::ExtAC;
70193
86642
  friend class ::ExtACBuilderCoupling;
70194
86643
  friend class ::ExtACSyntaxCoupling;
70195
86644
  friend class ::ExtACTree;
70196
86645
  friend class ::ExtACKeywords;
70197
 
  friend class ::WinAsm;
70198
 
  friend class ::WinDeclSpecs;
70199
 
  friend class ::WinMemberExplSpec;
70200
 
  friend class ::WinTypeKeywords;
 
86646
  friend class ::ExtGnu;
70201
86647
  friend class ::PragmaOnceUnitState;
70202
86648
  friend class ::PragmaOnce;
70203
 
  friend class ::CCExprResolve;
70204
 
  friend class ::CExprResolve;
 
86649
  friend class ::CMatchSyntax;
70205
86650
 
70206
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86651
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70207
86652
 
70208
86653
  CTree *sons[3]; // catch, exception_decl, stmt
70209
86654
 
70210
86655
public:
70211
86656
  CT_Handler (CTree *c, CTree *e, CTree *s) {
70212
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
86657
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
70213
86658
  }
 
86659
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70214
86660
  static const char *NodeId ();
 
86661
  /** Get the name of the node. Can be compared with NodeId(). */
70215
86662
  const char *NodeName () const { return NodeId (); }
 
86663
  /** Get the number of sons. */
70216
86664
  int Sons () const { return 3; }
 
86665
  /** Get the n-th son.
 
86666
   *  \param n The index of the son.
 
86667
   *  \return The n-th son or NULL. */
70217
86668
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70218
86669
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
70219
86670
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
86671
  /** Replace a son.
 
86672
   *  \param old_son The son to replace.
 
86673
   *  \param new_son The new son. */
70220
86674
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70221
86675
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70222
86676
  }
 
86677
  CSemScope *SemScope () const { return (CSemScope*)this; }
70223
86678
};
70224
86679
 
70225
86680
 
70226
 
#line 70227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86681
#line 86682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70227
86682
} // closed Puma
 
86683
class CCExprResolve;
 
86684
class CExprResolve;
70228
86685
class WinIfExists;
70229
86686
class WinImportHandler;
70230
86687
class WinMacros;
70231
 
class CMatchSyntax;
70232
 
class ExtGnu;
 
86688
class WinAsm;
 
86689
class WinDeclSpecs;
 
86690
class WinMemberExplSpec;
 
86691
class WinTypeKeywords;
 
86692
class WinFriend;
70233
86693
class ExtAC;
70234
86694
class ExtACBuilderCoupling;
70235
86695
class ExtACSyntaxCoupling;
70236
86696
class ExtACTree;
70237
86697
class ExtACKeywords;
70238
 
class WinAsm;
70239
 
class WinDeclSpecs;
70240
 
class WinMemberExplSpec;
70241
 
class WinTypeKeywords;
 
86698
class ExtGnu;
70242
86699
class PragmaOnceUnitState;
70243
86700
class PragmaOnce;
70244
 
class CCExprResolve;
70245
 
class CExprResolve;
 
86701
class CMatchSyntax;
70246
86702
namespace Puma {
70247
86703
 
70248
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86704
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70249
86705
class CT_LinkageSpec : public CT_Decl {
70250
 
#line 70251 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86706
#line 86707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86707
  friend class ::CCExprResolve;
 
86708
  friend class ::CExprResolve;
70251
86709
  friend class ::WinIfExists;
70252
86710
  friend class ::WinImportHandler;
70253
86711
  friend class ::WinMacros;
70254
 
  friend class ::CMatchSyntax;
70255
 
  friend class ::ExtGnu;
 
86712
  friend class ::WinAsm;
 
86713
  friend class ::WinDeclSpecs;
 
86714
  friend class ::WinMemberExplSpec;
 
86715
  friend class ::WinTypeKeywords;
 
86716
  friend class ::WinFriend;
70256
86717
  friend class ::ExtAC;
70257
86718
  friend class ::ExtACBuilderCoupling;
70258
86719
  friend class ::ExtACSyntaxCoupling;
70259
86720
  friend class ::ExtACTree;
70260
86721
  friend class ::ExtACKeywords;
70261
 
  friend class ::WinAsm;
70262
 
  friend class ::WinDeclSpecs;
70263
 
  friend class ::WinMemberExplSpec;
70264
 
  friend class ::WinTypeKeywords;
 
86722
  friend class ::ExtGnu;
70265
86723
  friend class ::PragmaOnceUnitState;
70266
86724
  friend class ::PragmaOnce;
70267
 
  friend class ::CCExprResolve;
70268
 
  friend class ::CExprResolve;
 
86725
  friend class ::CMatchSyntax;
70269
86726
 
70270
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86727
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70271
86728
 
70272
86729
  CTree *sons[5]; // extern, str, open, decls, close
70273
86730
 
70274
86731
public:
70275
86732
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
70276
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
86733
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
86734
    AddSon (sons[3], d); AddSon (sons[4], c);
70277
86735
    if (isList ())
70278
86736
      ((CT_DeclList*)Decls ())->Linkage (this);
70279
86737
    else
70280
86738
      ((CT_Decl*)Decls ())->Linkage (this);
70281
86739
  }
 
86740
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70282
86741
  static const char *NodeId ();
 
86742
  /** Get the name of the node. Can be compared with NodeId(). */
70283
86743
  const char *NodeName () const { return NodeId (); }
 
86744
  /** Get the number of sons. */
70284
86745
  int Sons () const { return CTree::Sons (sons, 5); }
 
86746
  /** Get the n-th son.
 
86747
   *  \param n The index of the son.
 
86748
   *  \return The n-th son or NULL. */
70285
86749
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70286
86750
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
70287
86751
  CTree *Decls () const { return sons[3]; }
70288
86752
  bool isList () const {
70289
86753
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
70290
86754
  }
 
86755
  /** Replace a son.
 
86756
   *  \param old_son The son to replace.
 
86757
   *  \param new_son The new son. */
70291
86758
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70292
86759
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70293
86760
  }
70294
86761
};
70295
86762
 
70296
86763
 
70297
 
#line 70298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86764
#line 86765 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70298
86765
} // closed Puma
 
86766
class CCExprResolve;
 
86767
class CExprResolve;
70299
86768
class WinIfExists;
70300
86769
class WinImportHandler;
70301
86770
class WinMacros;
70302
 
class CMatchSyntax;
70303
 
class ExtGnu;
 
86771
class WinAsm;
 
86772
class WinDeclSpecs;
 
86773
class WinMemberExplSpec;
 
86774
class WinTypeKeywords;
 
86775
class WinFriend;
70304
86776
class ExtAC;
70305
86777
class ExtACBuilderCoupling;
70306
86778
class ExtACSyntaxCoupling;
70307
86779
class ExtACTree;
70308
86780
class ExtACKeywords;
70309
 
class WinAsm;
70310
 
class WinDeclSpecs;
70311
 
class WinMemberExplSpec;
70312
 
class WinTypeKeywords;
 
86781
class ExtGnu;
70313
86782
class PragmaOnceUnitState;
70314
86783
class PragmaOnce;
70315
 
class CCExprResolve;
70316
 
class CExprResolve;
 
86784
class CMatchSyntax;
70317
86785
namespace Puma {
70318
86786
 
70319
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86787
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70320
86788
class CT_ArgDecl : public CT_Decl, public CSemObject {
70321
 
#line 70322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86789
#line 86790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86790
  friend class ::CCExprResolve;
 
86791
  friend class ::CExprResolve;
70322
86792
  friend class ::WinIfExists;
70323
86793
  friend class ::WinImportHandler;
70324
86794
  friend class ::WinMacros;
70325
 
  friend class ::CMatchSyntax;
70326
 
  friend class ::ExtGnu;
 
86795
  friend class ::WinAsm;
 
86796
  friend class ::WinDeclSpecs;
 
86797
  friend class ::WinMemberExplSpec;
 
86798
  friend class ::WinTypeKeywords;
 
86799
  friend class ::WinFriend;
70327
86800
  friend class ::ExtAC;
70328
86801
  friend class ::ExtACBuilderCoupling;
70329
86802
  friend class ::ExtACSyntaxCoupling;
70330
86803
  friend class ::ExtACTree;
70331
86804
  friend class ::ExtACKeywords;
70332
 
  friend class ::WinAsm;
70333
 
  friend class ::WinDeclSpecs;
70334
 
  friend class ::WinMemberExplSpec;
70335
 
  friend class ::WinTypeKeywords;
 
86805
  friend class ::ExtGnu;
70336
86806
  friend class ::PragmaOnceUnitState;
70337
86807
  friend class ::PragmaOnce;
70338
 
  friend class ::CCExprResolve;
70339
 
  friend class ::CExprResolve;
 
86808
  friend class ::CMatchSyntax;
70340
86809
 
70341
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86810
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70342
86811
 
70343
86812
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
70344
86813
 
70345
86814
public:
70346
86815
  CT_ArgDecl (CTree *dsl, CTree *d) {
70347
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
86816
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
86817
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
70348
86818
  }
70349
86819
  CT_ArgDecl (CTree *ellipsis) {
70350
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
86820
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
86821
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
70351
86822
  }
 
86823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70352
86824
  static const char *NodeId ();
 
86825
  /** Get the name of the node. Can be compared with NodeId(). */
70353
86826
  const char *NodeName () const { return NodeId (); }
 
86827
  /** Get the number of sons. */
70354
86828
  int Sons () const { return CTree::Sons (sons, 4); }
 
86829
  /** Get the n-th son.
 
86830
   *  \param n The index of the son.
 
86831
   *  \return The n-th son or NULL. */
70355
86832
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70356
86833
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
70357
86834
  CTree *Declarator () const { return sons[1]; }
70358
86835
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
70359
86836
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
70360
86837
  CSemObject *SemObject () const { return (CSemObject*)this; }
70361
 
  void Initializer (CTree *i) { sons[2] = i; }
 
86838
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
86839
  /** Replace a son.
 
86840
   *  \param old_son The son to replace.
 
86841
   *  \param new_son The new son. */
70362
86842
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70363
86843
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70364
86844
  }
70365
86845
};
70366
86846
 
70367
86847
 
70368
 
#line 70369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86848
#line 86849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70369
86849
} // closed Puma
 
86850
class CCExprResolve;
 
86851
class CExprResolve;
70370
86852
class WinIfExists;
70371
86853
class WinImportHandler;
70372
86854
class WinMacros;
70373
 
class CMatchSyntax;
70374
 
class ExtGnu;
 
86855
class WinAsm;
 
86856
class WinDeclSpecs;
 
86857
class WinMemberExplSpec;
 
86858
class WinTypeKeywords;
 
86859
class WinFriend;
70375
86860
class ExtAC;
70376
86861
class ExtACBuilderCoupling;
70377
86862
class ExtACSyntaxCoupling;
70378
86863
class ExtACTree;
70379
86864
class ExtACKeywords;
70380
 
class WinAsm;
70381
 
class WinDeclSpecs;
70382
 
class WinMemberExplSpec;
70383
 
class WinTypeKeywords;
 
86865
class ExtGnu;
70384
86866
class PragmaOnceUnitState;
70385
86867
class PragmaOnce;
70386
 
class CCExprResolve;
70387
 
class CExprResolve;
 
86868
class CMatchSyntax;
70388
86869
namespace Puma {
70389
86870
 
70390
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86871
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70391
86872
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
70392
 
#line 70393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86873
#line 86874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86874
  friend class ::CCExprResolve;
 
86875
  friend class ::CExprResolve;
70393
86876
  friend class ::WinIfExists;
70394
86877
  friend class ::WinImportHandler;
70395
86878
  friend class ::WinMacros;
70396
 
  friend class ::CMatchSyntax;
70397
 
  friend class ::ExtGnu;
 
86879
  friend class ::WinAsm;
 
86880
  friend class ::WinDeclSpecs;
 
86881
  friend class ::WinMemberExplSpec;
 
86882
  friend class ::WinTypeKeywords;
 
86883
  friend class ::WinFriend;
70398
86884
  friend class ::ExtAC;
70399
86885
  friend class ::ExtACBuilderCoupling;
70400
86886
  friend class ::ExtACSyntaxCoupling;
70401
86887
  friend class ::ExtACTree;
70402
86888
  friend class ::ExtACKeywords;
70403
 
  friend class ::WinAsm;
70404
 
  friend class ::WinDeclSpecs;
70405
 
  friend class ::WinMemberExplSpec;
70406
 
  friend class ::WinTypeKeywords;
 
86889
  friend class ::ExtGnu;
70407
86890
  friend class ::PragmaOnceUnitState;
70408
86891
  friend class ::PragmaOnce;
70409
 
  friend class ::CCExprResolve;
70410
 
  friend class ::CExprResolve;
 
86892
  friend class ::CMatchSyntax;
70411
86893
 
70412
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86894
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70413
86895
 
70414
86896
public:
70415
86897
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
70416
86898
   CT_DeclList (size, 2) { AddProperties (props); }
 
86899
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70417
86900
  static const char *NodeId ();
 
86901
  /** Get the name of the node. Can be compared with NodeId(). */
70418
86902
  const char *NodeName () const { return NodeId (); }
 
86903
  CSemScope *SemScope () const { return (CSemScope*)this; }
70419
86904
};
70420
86905
 
70421
86906
 
70422
 
#line 70423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86907
#line 86908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70423
86908
} // closed Puma
 
86909
class CCExprResolve;
 
86910
class CExprResolve;
70424
86911
class WinIfExists;
70425
86912
class WinImportHandler;
70426
86913
class WinMacros;
70427
 
class CMatchSyntax;
70428
 
class ExtGnu;
 
86914
class WinAsm;
 
86915
class WinDeclSpecs;
 
86916
class WinMemberExplSpec;
 
86917
class WinTypeKeywords;
 
86918
class WinFriend;
70429
86919
class ExtAC;
70430
86920
class ExtACBuilderCoupling;
70431
86921
class ExtACSyntaxCoupling;
70432
86922
class ExtACTree;
70433
86923
class ExtACKeywords;
70434
 
class WinAsm;
70435
 
class WinDeclSpecs;
70436
 
class WinMemberExplSpec;
70437
 
class WinTypeKeywords;
 
86924
class ExtGnu;
70438
86925
class PragmaOnceUnitState;
70439
86926
class PragmaOnce;
70440
 
class CCExprResolve;
70441
 
class CExprResolve;
 
86927
class CMatchSyntax;
70442
86928
namespace Puma {
70443
86929
 
70444
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86930
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70445
86931
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
70446
 
#line 70447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86932
#line 86933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86933
  friend class ::CCExprResolve;
 
86934
  friend class ::CExprResolve;
70447
86935
  friend class ::WinIfExists;
70448
86936
  friend class ::WinImportHandler;
70449
86937
  friend class ::WinMacros;
70450
 
  friend class ::CMatchSyntax;
70451
 
  friend class ::ExtGnu;
 
86938
  friend class ::WinAsm;
 
86939
  friend class ::WinDeclSpecs;
 
86940
  friend class ::WinMemberExplSpec;
 
86941
  friend class ::WinTypeKeywords;
 
86942
  friend class ::WinFriend;
70452
86943
  friend class ::ExtAC;
70453
86944
  friend class ::ExtACBuilderCoupling;
70454
86945
  friend class ::ExtACSyntaxCoupling;
70455
86946
  friend class ::ExtACTree;
70456
86947
  friend class ::ExtACKeywords;
70457
 
  friend class ::WinAsm;
70458
 
  friend class ::WinDeclSpecs;
70459
 
  friend class ::WinMemberExplSpec;
70460
 
  friend class ::WinTypeKeywords;
 
86948
  friend class ::ExtGnu;
70461
86949
  friend class ::PragmaOnceUnitState;
70462
86950
  friend class ::PragmaOnce;
70463
 
  friend class ::CCExprResolve;
70464
 
  friend class ::CExprResolve;
 
86951
  friend class ::CMatchSyntax;
70465
86952
 
70466
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86953
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70467
86954
 
70468
86955
public:
70469
86956
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
86957
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70470
86958
  static const char *NodeId ();
 
86959
  /** Get the name of the node. Can be compared with NodeId(). */
70471
86960
  const char *NodeName () const { return NodeId (); }
 
86961
  CSemScope *SemScope () const { return (CSemScope*)this; }
70472
86962
};
70473
86963
 
70474
86964
 
70475
 
#line 70476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86965
#line 86966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70476
86966
} // closed Puma
 
86967
class CCExprResolve;
 
86968
class CExprResolve;
70477
86969
class WinIfExists;
70478
86970
class WinImportHandler;
70479
86971
class WinMacros;
70480
 
class CMatchSyntax;
70481
 
class ExtGnu;
 
86972
class WinAsm;
 
86973
class WinDeclSpecs;
 
86974
class WinMemberExplSpec;
 
86975
class WinTypeKeywords;
 
86976
class WinFriend;
70482
86977
class ExtAC;
70483
86978
class ExtACBuilderCoupling;
70484
86979
class ExtACSyntaxCoupling;
70485
86980
class ExtACTree;
70486
86981
class ExtACKeywords;
70487
 
class WinAsm;
70488
 
class WinDeclSpecs;
70489
 
class WinMemberExplSpec;
70490
 
class WinTypeKeywords;
 
86982
class ExtGnu;
70491
86983
class PragmaOnceUnitState;
70492
86984
class PragmaOnce;
70493
 
class CCExprResolve;
70494
 
class CExprResolve;
 
86985
class CMatchSyntax;
70495
86986
namespace Puma {
70496
86987
 
70497
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
86988
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70498
86989
class CT_ArgNameList : public CT_ArgDeclList {
70499
 
#line 70500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
86990
#line 86991 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
86991
  friend class ::CCExprResolve;
 
86992
  friend class ::CExprResolve;
70500
86993
  friend class ::WinIfExists;
70501
86994
  friend class ::WinImportHandler;
70502
86995
  friend class ::WinMacros;
70503
 
  friend class ::CMatchSyntax;
70504
 
  friend class ::ExtGnu;
 
86996
  friend class ::WinAsm;
 
86997
  friend class ::WinDeclSpecs;
 
86998
  friend class ::WinMemberExplSpec;
 
86999
  friend class ::WinTypeKeywords;
 
87000
  friend class ::WinFriend;
70505
87001
  friend class ::ExtAC;
70506
87002
  friend class ::ExtACBuilderCoupling;
70507
87003
  friend class ::ExtACSyntaxCoupling;
70508
87004
  friend class ::ExtACTree;
70509
87005
  friend class ::ExtACKeywords;
70510
 
  friend class ::WinAsm;
70511
 
  friend class ::WinDeclSpecs;
70512
 
  friend class ::WinMemberExplSpec;
70513
 
  friend class ::WinTypeKeywords;
 
87006
  friend class ::ExtGnu;
70514
87007
  friend class ::PragmaOnceUnitState;
70515
87008
  friend class ::PragmaOnce;
70516
 
  friend class ::CCExprResolve;
70517
 
  friend class ::CExprResolve;
 
87009
  friend class ::CMatchSyntax;
70518
87010
 
70519
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87011
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70520
87012
 
70521
87013
public:
70522
87014
  CT_ArgNameList () : CT_ArgDeclList () {}
 
87015
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70523
87016
  static const char *NodeId ();
 
87017
  /** Get the name of the node. Can be compared with NodeId(). */
70524
87018
  const char *NodeName () const { return NodeId (); }
70525
87019
};
70526
87020
 
70527
87021
 
70528
 
#line 70529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87022
#line 87023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70529
87023
} // closed Puma
 
87024
class CCExprResolve;
 
87025
class CExprResolve;
70530
87026
class WinIfExists;
70531
87027
class WinImportHandler;
70532
87028
class WinMacros;
70533
 
class CMatchSyntax;
70534
 
class ExtGnu;
 
87029
class WinAsm;
 
87030
class WinDeclSpecs;
 
87031
class WinMemberExplSpec;
 
87032
class WinTypeKeywords;
 
87033
class WinFriend;
70535
87034
class ExtAC;
70536
87035
class ExtACBuilderCoupling;
70537
87036
class ExtACSyntaxCoupling;
70538
87037
class ExtACTree;
70539
87038
class ExtACKeywords;
70540
 
class WinAsm;
70541
 
class WinDeclSpecs;
70542
 
class WinMemberExplSpec;
70543
 
class WinTypeKeywords;
 
87039
class ExtGnu;
70544
87040
class PragmaOnceUnitState;
70545
87041
class PragmaOnce;
70546
 
class CCExprResolve;
70547
 
class CExprResolve;
 
87042
class CMatchSyntax;
70548
87043
namespace Puma {
70549
87044
 
70550
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87045
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70551
87046
class CT_NamespaceDef : public CT_Decl, public CSemObject {
70552
 
#line 70553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87047
#line 87048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87048
  friend class ::CCExprResolve;
 
87049
  friend class ::CExprResolve;
70553
87050
  friend class ::WinIfExists;
70554
87051
  friend class ::WinImportHandler;
70555
87052
  friend class ::WinMacros;
70556
 
  friend class ::CMatchSyntax;
70557
 
  friend class ::ExtGnu;
 
87053
  friend class ::WinAsm;
 
87054
  friend class ::WinDeclSpecs;
 
87055
  friend class ::WinMemberExplSpec;
 
87056
  friend class ::WinTypeKeywords;
 
87057
  friend class ::WinFriend;
70558
87058
  friend class ::ExtAC;
70559
87059
  friend class ::ExtACBuilderCoupling;
70560
87060
  friend class ::ExtACSyntaxCoupling;
70561
87061
  friend class ::ExtACTree;
70562
87062
  friend class ::ExtACKeywords;
70563
 
  friend class ::WinAsm;
70564
 
  friend class ::WinDeclSpecs;
70565
 
  friend class ::WinMemberExplSpec;
70566
 
  friend class ::WinTypeKeywords;
 
87063
  friend class ::ExtGnu;
70567
87064
  friend class ::PragmaOnceUnitState;
70568
87065
  friend class ::PragmaOnce;
70569
 
  friend class ::CCExprResolve;
70570
 
  friend class ::CExprResolve;
 
87066
  friend class ::CMatchSyntax;
70571
87067
 
70572
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87068
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70573
87069
 
70574
87070
  CTree *sons[3]; // ns, name, members
70575
87071
 
70576
87072
public:
70577
87073
  CT_NamespaceDef (CTree *n, CTree *nm) {
70578
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
87074
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
70579
87075
  }
70580
87076
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
70581
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
87077
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
70582
87078
  }
 
87079
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70583
87080
  static const char *NodeId ();
 
87081
  /** Get the name of the node. Can be compared with NodeId(). */
70584
87082
  const char *NodeName () const { return NodeId (); }
 
87083
  /** Get the number of sons. */
70585
87084
  int Sons () const { return CTree::Sons (sons, 3); }
 
87085
  /** Get the n-th son.
 
87086
   *  \param n The index of the son.
 
87087
   *  \return The n-th son or NULL. */
70586
87088
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70587
 
  void Members (CTree *m) { sons[2] = m; }
 
87089
  void Members (CTree *m) { AddSon (sons[2], m); }
70588
87090
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
70589
87091
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
70590
87092
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
87093
  /** Replace a son.
 
87094
   *  \param old_son The son to replace.
 
87095
   *  \param new_son The new son. */
70591
87096
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70592
87097
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70593
87098
  }
70594
87099
};
70595
87100
 
70596
87101
 
70597
 
#line 70598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87102
#line 87103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70598
87103
} // closed Puma
 
87104
class CCExprResolve;
 
87105
class CExprResolve;
70599
87106
class WinIfExists;
70600
87107
class WinImportHandler;
70601
87108
class WinMacros;
70602
 
class CMatchSyntax;
70603
 
class ExtGnu;
 
87109
class WinAsm;
 
87110
class WinDeclSpecs;
 
87111
class WinMemberExplSpec;
 
87112
class WinTypeKeywords;
 
87113
class WinFriend;
70604
87114
class ExtAC;
70605
87115
class ExtACBuilderCoupling;
70606
87116
class ExtACSyntaxCoupling;
70607
87117
class ExtACTree;
70608
87118
class ExtACKeywords;
70609
 
class WinAsm;
70610
 
class WinDeclSpecs;
70611
 
class WinMemberExplSpec;
70612
 
class WinTypeKeywords;
 
87119
class ExtGnu;
70613
87120
class PragmaOnceUnitState;
70614
87121
class PragmaOnce;
70615
 
class CCExprResolve;
70616
 
class CExprResolve;
 
87122
class CMatchSyntax;
70617
87123
namespace Puma {
70618
87124
 
70619
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87125
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70620
87126
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
70621
 
#line 70622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87127
#line 87128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87128
  friend class ::CCExprResolve;
 
87129
  friend class ::CExprResolve;
70622
87130
  friend class ::WinIfExists;
70623
87131
  friend class ::WinImportHandler;
70624
87132
  friend class ::WinMacros;
70625
 
  friend class ::CMatchSyntax;
70626
 
  friend class ::ExtGnu;
 
87133
  friend class ::WinAsm;
 
87134
  friend class ::WinDeclSpecs;
 
87135
  friend class ::WinMemberExplSpec;
 
87136
  friend class ::WinTypeKeywords;
 
87137
  friend class ::WinFriend;
70627
87138
  friend class ::ExtAC;
70628
87139
  friend class ::ExtACBuilderCoupling;
70629
87140
  friend class ::ExtACSyntaxCoupling;
70630
87141
  friend class ::ExtACTree;
70631
87142
  friend class ::ExtACKeywords;
70632
 
  friend class ::WinAsm;
70633
 
  friend class ::WinDeclSpecs;
70634
 
  friend class ::WinMemberExplSpec;
70635
 
  friend class ::WinTypeKeywords;
 
87143
  friend class ::ExtGnu;
70636
87144
  friend class ::PragmaOnceUnitState;
70637
87145
  friend class ::PragmaOnce;
70638
 
  friend class ::CCExprResolve;
70639
 
  friend class ::CExprResolve;
 
87146
  friend class ::CMatchSyntax;
70640
87147
 
70641
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87148
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70642
87149
 
70643
87150
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
70644
87151
 
70645
87152
public:
70646
87153
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
70647
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
87154
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
87155
    AddSon (sons[3], nm); AddSon (sons[4], s); 
70648
87156
  }
 
87157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70649
87158
  static const char *NodeId ();
 
87159
  /** Get the name of the node. Can be compared with NodeId(). */
70650
87160
  const char *NodeName () const { return NodeId (); }
 
87161
  /** Get the number of sons. */
70651
87162
  int Sons () const { return 5; }
 
87163
  /** Get the n-th son.
 
87164
   *  \param n The index of the son.
 
87165
   *  \return The n-th son or NULL. */
70652
87166
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
70653
87167
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
70654
87168
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
70655
87169
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
87170
  /** Replace a son.
 
87171
   *  \param old_son The son to replace.
 
87172
   *  \param new_son The new son. */
70656
87173
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70657
87174
    CTree::ReplaceSon (sons, 5, old_son, new_son);
70658
87175
  }
70659
87176
};
70660
87177
 
70661
87178
 
70662
 
#line 70663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87179
#line 87180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70663
87180
} // closed Puma
 
87181
class CCExprResolve;
 
87182
class CExprResolve;
70664
87183
class WinIfExists;
70665
87184
class WinImportHandler;
70666
87185
class WinMacros;
70667
 
class CMatchSyntax;
70668
 
class ExtGnu;
 
87186
class WinAsm;
 
87187
class WinDeclSpecs;
 
87188
class WinMemberExplSpec;
 
87189
class WinTypeKeywords;
 
87190
class WinFriend;
70669
87191
class ExtAC;
70670
87192
class ExtACBuilderCoupling;
70671
87193
class ExtACSyntaxCoupling;
70672
87194
class ExtACTree;
70673
87195
class ExtACKeywords;
70674
 
class WinAsm;
70675
 
class WinDeclSpecs;
70676
 
class WinMemberExplSpec;
70677
 
class WinTypeKeywords;
 
87196
class ExtGnu;
70678
87197
class PragmaOnceUnitState;
70679
87198
class PragmaOnce;
70680
 
class CCExprResolve;
70681
 
class CExprResolve;
 
87199
class CMatchSyntax;
70682
87200
namespace Puma {
70683
87201
 
70684
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87202
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70685
87203
class CT_UsingDirective : public CT_Decl {
70686
 
#line 70687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87204
#line 87205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87205
  friend class ::CCExprResolve;
 
87206
  friend class ::CExprResolve;
70687
87207
  friend class ::WinIfExists;
70688
87208
  friend class ::WinImportHandler;
70689
87209
  friend class ::WinMacros;
70690
 
  friend class ::CMatchSyntax;
70691
 
  friend class ::ExtGnu;
 
87210
  friend class ::WinAsm;
 
87211
  friend class ::WinDeclSpecs;
 
87212
  friend class ::WinMemberExplSpec;
 
87213
  friend class ::WinTypeKeywords;
 
87214
  friend class ::WinFriend;
70692
87215
  friend class ::ExtAC;
70693
87216
  friend class ::ExtACBuilderCoupling;
70694
87217
  friend class ::ExtACSyntaxCoupling;
70695
87218
  friend class ::ExtACTree;
70696
87219
  friend class ::ExtACKeywords;
70697
 
  friend class ::WinAsm;
70698
 
  friend class ::WinDeclSpecs;
70699
 
  friend class ::WinMemberExplSpec;
70700
 
  friend class ::WinTypeKeywords;
 
87220
  friend class ::ExtGnu;
70701
87221
  friend class ::PragmaOnceUnitState;
70702
87222
  friend class ::PragmaOnce;
70703
 
  friend class ::CCExprResolve;
70704
 
  friend class ::CExprResolve;
 
87223
  friend class ::CMatchSyntax;
70705
87224
 
70706
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87225
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70707
87226
 
70708
87227
  CTree *sons[4]; // using, ns, name, semi_colon
70709
87228
 
70710
87229
public:
70711
87230
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
70712
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
87231
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
87232
    AddSon (sons[3], s); 
70713
87233
  }
 
87234
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70714
87235
  static const char *NodeId ();
 
87236
  /** Get the name of the node. Can be compared with NodeId(). */
70715
87237
  const char *NodeName () const { return NodeId (); }
 
87238
  /** Get the number of sons. */
70716
87239
  int Sons () const { return 4; }
 
87240
  /** Get the n-th son.
 
87241
   *  \param n The index of the son.
 
87242
   *  \return The n-th son or NULL. */
70717
87243
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70718
87244
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
87245
  /** Replace a son.
 
87246
   *  \param old_son The son to replace.
 
87247
   *  \param new_son The new son. */
70719
87248
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70720
87249
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70721
87250
  }
70728
87257
/*****************************************************************************/
70729
87258
 
70730
87259
 
70731
 
#line 70732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87260
#line 87261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70732
87261
} // closed Puma
 
87262
class CCExprResolve;
 
87263
class CExprResolve;
70733
87264
class WinIfExists;
70734
87265
class WinImportHandler;
70735
87266
class WinMacros;
70736
 
class CMatchSyntax;
70737
 
class ExtGnu;
 
87267
class WinAsm;
 
87268
class WinDeclSpecs;
 
87269
class WinMemberExplSpec;
 
87270
class WinTypeKeywords;
 
87271
class WinFriend;
70738
87272
class ExtAC;
70739
87273
class ExtACBuilderCoupling;
70740
87274
class ExtACSyntaxCoupling;
70741
87275
class ExtACTree;
70742
87276
class ExtACKeywords;
70743
 
class WinAsm;
70744
 
class WinDeclSpecs;
70745
 
class WinMemberExplSpec;
70746
 
class WinTypeKeywords;
 
87277
class ExtGnu;
70747
87278
class PragmaOnceUnitState;
70748
87279
class PragmaOnce;
70749
 
class CCExprResolve;
70750
 
class CExprResolve;
 
87280
class CMatchSyntax;
70751
87281
namespace Puma {
70752
87282
 
70753
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87283
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70754
87284
class CT_Declarator : public CTree {
70755
 
#line 70756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87285
#line 87286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87286
  friend class ::CCExprResolve;
 
87287
  friend class ::CExprResolve;
70756
87288
  friend class ::WinIfExists;
70757
87289
  friend class ::WinImportHandler;
70758
87290
  friend class ::WinMacros;
70759
 
  friend class ::CMatchSyntax;
70760
 
  friend class ::ExtGnu;
 
87291
  friend class ::WinAsm;
 
87292
  friend class ::WinDeclSpecs;
 
87293
  friend class ::WinMemberExplSpec;
 
87294
  friend class ::WinTypeKeywords;
 
87295
  friend class ::WinFriend;
70761
87296
  friend class ::ExtAC;
70762
87297
  friend class ::ExtACBuilderCoupling;
70763
87298
  friend class ::ExtACSyntaxCoupling;
70764
87299
  friend class ::ExtACTree;
70765
87300
  friend class ::ExtACKeywords;
70766
 
  friend class ::WinAsm;
70767
 
  friend class ::WinDeclSpecs;
70768
 
  friend class ::WinMemberExplSpec;
70769
 
  friend class ::WinTypeKeywords;
 
87301
  friend class ::ExtGnu;
70770
87302
  friend class ::PragmaOnceUnitState;
70771
87303
  friend class ::PragmaOnce;
70772
 
  friend class ::CCExprResolve;
70773
 
  friend class ::CExprResolve;
 
87304
  friend class ::CMatchSyntax;
70774
87305
 
70775
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87306
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70776
87307
 
70777
87308
protected:
70778
87309
  CT_Declarator () {}
70787
87318
};
70788
87319
 
70789
87320
 
70790
 
#line 70791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87321
#line 87322 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70791
87322
} // closed Puma
 
87323
class CCExprResolve;
 
87324
class CExprResolve;
70792
87325
class WinIfExists;
70793
87326
class WinImportHandler;
70794
87327
class WinMacros;
70795
 
class CMatchSyntax;
70796
 
class ExtGnu;
 
87328
class WinAsm;
 
87329
class WinDeclSpecs;
 
87330
class WinMemberExplSpec;
 
87331
class WinTypeKeywords;
 
87332
class WinFriend;
70797
87333
class ExtAC;
70798
87334
class ExtACBuilderCoupling;
70799
87335
class ExtACSyntaxCoupling;
70800
87336
class ExtACTree;
70801
87337
class ExtACKeywords;
70802
 
class WinAsm;
70803
 
class WinDeclSpecs;
70804
 
class WinMemberExplSpec;
70805
 
class WinTypeKeywords;
 
87338
class ExtGnu;
70806
87339
class PragmaOnceUnitState;
70807
87340
class PragmaOnce;
70808
 
class CCExprResolve;
70809
 
class CExprResolve;
 
87341
class CMatchSyntax;
70810
87342
namespace Puma {
70811
87343
 
70812
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87344
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70813
87345
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
70814
 
#line 70815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87346
#line 87347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87347
  friend class ::CCExprResolve;
 
87348
  friend class ::CExprResolve;
70815
87349
  friend class ::WinIfExists;
70816
87350
  friend class ::WinImportHandler;
70817
87351
  friend class ::WinMacros;
70818
 
  friend class ::CMatchSyntax;
70819
 
  friend class ::ExtGnu;
 
87352
  friend class ::WinAsm;
 
87353
  friend class ::WinDeclSpecs;
 
87354
  friend class ::WinMemberExplSpec;
 
87355
  friend class ::WinTypeKeywords;
 
87356
  friend class ::WinFriend;
70820
87357
  friend class ::ExtAC;
70821
87358
  friend class ::ExtACBuilderCoupling;
70822
87359
  friend class ::ExtACSyntaxCoupling;
70823
87360
  friend class ::ExtACTree;
70824
87361
  friend class ::ExtACKeywords;
70825
 
  friend class ::WinAsm;
70826
 
  friend class ::WinDeclSpecs;
70827
 
  friend class ::WinMemberExplSpec;
70828
 
  friend class ::WinTypeKeywords;
 
87362
  friend class ::ExtGnu;
70829
87363
  friend class ::PragmaOnceUnitState;
70830
87364
  friend class ::PragmaOnce;
70831
 
  friend class ::CCExprResolve;
70832
 
  friend class ::CExprResolve;
70833
 
 
70834
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
70835
 
 
70836
 
  CTree *sons[2]; // declarator, init
 
87365
  friend class ::CMatchSyntax;
 
87366
 
 
87367
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87368
 
 
87369
  CTree *sons[3]; // declarator, ext, init
70837
87370
  CTree *obj_decl;
70838
87371
 
70839
87372
public:
70840
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
70841
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
87373
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
87374
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
87375
    AddSon (obj_decl, 0); 
70842
87376
  }
 
87377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70843
87378
  static const char *NodeId ();
 
87379
  /** Get the name of the node. Can be compared with NodeId(). */
70844
87380
  const char *NodeName () const { return NodeId (); }
70845
 
  int Sons () const { return CTree::Sons (sons, 2); }
70846
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
87381
  /** Get the number of sons. */
 
87382
  int Sons () const { return CTree::Sons (sons, 3); }
 
87383
  /** Get the n-th son.
 
87384
   *  \param n The index of the son.
 
87385
   *  \return The n-th son or NULL. */
 
87386
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
70847
87387
  CTree *Declarator () const { return sons[0]; }
70848
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
87388
  CTree *Extension () const { return sons[1]; }
 
87389
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
70849
87390
  CSemObject *SemObject () const { return (CSemObject*)this; }
70850
87391
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
70851
 
  void Initializer (CTree* i) { sons[1] = i; }
70852
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
87392
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
87393
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
87394
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
87395
  /** Replace a son.
 
87396
   *  \param old_son The son to replace.
 
87397
   *  \param new_son The new son. */
70853
87398
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70854
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
87399
    CTree::ReplaceSon (sons, 3, old_son, new_son);
70855
87400
  }
70856
87401
};
70857
87402
 
70858
87403
 
70859
 
#line 70860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87404
#line 87405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70860
87405
} // closed Puma
 
87406
class CCExprResolve;
 
87407
class CExprResolve;
70861
87408
class WinIfExists;
70862
87409
class WinImportHandler;
70863
87410
class WinMacros;
70864
 
class CMatchSyntax;
70865
 
class ExtGnu;
 
87411
class WinAsm;
 
87412
class WinDeclSpecs;
 
87413
class WinMemberExplSpec;
 
87414
class WinTypeKeywords;
 
87415
class WinFriend;
70866
87416
class ExtAC;
70867
87417
class ExtACBuilderCoupling;
70868
87418
class ExtACSyntaxCoupling;
70869
87419
class ExtACTree;
70870
87420
class ExtACKeywords;
70871
 
class WinAsm;
70872
 
class WinDeclSpecs;
70873
 
class WinMemberExplSpec;
70874
 
class WinTypeKeywords;
 
87421
class ExtGnu;
70875
87422
class PragmaOnceUnitState;
70876
87423
class PragmaOnce;
70877
 
class CCExprResolve;
70878
 
class CExprResolve;
 
87424
class CMatchSyntax;
70879
87425
namespace Puma {
70880
87426
 
70881
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87427
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70882
87428
class CT_BracedDeclarator : public CT_Declarator {
70883
 
#line 70884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87429
#line 87430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87430
  friend class ::CCExprResolve;
 
87431
  friend class ::CExprResolve;
70884
87432
  friend class ::WinIfExists;
70885
87433
  friend class ::WinImportHandler;
70886
87434
  friend class ::WinMacros;
70887
 
  friend class ::CMatchSyntax;
70888
 
  friend class ::ExtGnu;
 
87435
  friend class ::WinAsm;
 
87436
  friend class ::WinDeclSpecs;
 
87437
  friend class ::WinMemberExplSpec;
 
87438
  friend class ::WinTypeKeywords;
 
87439
  friend class ::WinFriend;
70889
87440
  friend class ::ExtAC;
70890
87441
  friend class ::ExtACBuilderCoupling;
70891
87442
  friend class ::ExtACSyntaxCoupling;
70892
87443
  friend class ::ExtACTree;
70893
87444
  friend class ::ExtACKeywords;
70894
 
  friend class ::WinAsm;
70895
 
  friend class ::WinDeclSpecs;
70896
 
  friend class ::WinMemberExplSpec;
70897
 
  friend class ::WinTypeKeywords;
 
87445
  friend class ::ExtGnu;
70898
87446
  friend class ::PragmaOnceUnitState;
70899
87447
  friend class ::PragmaOnce;
70900
 
  friend class ::CCExprResolve;
70901
 
  friend class ::CExprResolve;
 
87448
  friend class ::CMatchSyntax;
70902
87449
 
70903
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87450
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70904
87451
 
70905
87452
  CTree *sons[4]; // open, win_specs, declarator, close
70906
87453
 
70907
87454
public:
70908
87455
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
70909
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
87456
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
87457
    AddSon (sons[2], d); AddSon (sons[3], c); 
70910
87458
  }
70911
87459
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
70912
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
87460
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
87461
    AddSon (sons[2], d); AddSon (sons[3], c); 
70913
87462
  }
 
87463
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70914
87464
  static const char *NodeId ();
 
87465
  /** Get the name of the node. Can be compared with NodeId(). */
70915
87466
  const char *NodeName () const { return NodeId (); }
 
87467
  /** Get the number of sons. */
70916
87468
  int Sons () const { return CTree::Sons (sons, 4); }
 
87469
  /** Get the n-th son.
 
87470
   *  \param n The index of the son.
 
87471
   *  \return The n-th son or NULL. */
70917
87472
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70918
87473
  CTree *Declarator () const { return sons[2]; }
 
87474
  /** Replace a son.
 
87475
   *  \param old_son The son to replace.
 
87476
   *  \param new_son The new son. */
70919
87477
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70920
87478
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70921
87479
  }
70922
87480
};
70923
87481
 
70924
87482
 
70925
 
#line 70926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87483
#line 87484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70926
87484
} // closed Puma
 
87485
class CCExprResolve;
 
87486
class CExprResolve;
70927
87487
class WinIfExists;
70928
87488
class WinImportHandler;
70929
87489
class WinMacros;
70930
 
class CMatchSyntax;
70931
 
class ExtGnu;
 
87490
class WinAsm;
 
87491
class WinDeclSpecs;
 
87492
class WinMemberExplSpec;
 
87493
class WinTypeKeywords;
 
87494
class WinFriend;
70932
87495
class ExtAC;
70933
87496
class ExtACBuilderCoupling;
70934
87497
class ExtACSyntaxCoupling;
70935
87498
class ExtACTree;
70936
87499
class ExtACKeywords;
70937
 
class WinAsm;
70938
 
class WinDeclSpecs;
70939
 
class WinMemberExplSpec;
70940
 
class WinTypeKeywords;
 
87500
class ExtGnu;
70941
87501
class PragmaOnceUnitState;
70942
87502
class PragmaOnce;
70943
 
class CCExprResolve;
70944
 
class CExprResolve;
 
87503
class CMatchSyntax;
70945
87504
namespace Puma {
70946
87505
 
70947
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87506
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70948
87507
class CT_ArrayDelimiter : public CTree {
70949
 
#line 70950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87508
#line 87509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87509
  friend class ::CCExprResolve;
 
87510
  friend class ::CExprResolve;
70950
87511
  friend class ::WinIfExists;
70951
87512
  friend class ::WinImportHandler;
70952
87513
  friend class ::WinMacros;
70953
 
  friend class ::CMatchSyntax;
70954
 
  friend class ::ExtGnu;
 
87514
  friend class ::WinAsm;
 
87515
  friend class ::WinDeclSpecs;
 
87516
  friend class ::WinMemberExplSpec;
 
87517
  friend class ::WinTypeKeywords;
 
87518
  friend class ::WinFriend;
70955
87519
  friend class ::ExtAC;
70956
87520
  friend class ::ExtACBuilderCoupling;
70957
87521
  friend class ::ExtACSyntaxCoupling;
70958
87522
  friend class ::ExtACTree;
70959
87523
  friend class ::ExtACKeywords;
70960
 
  friend class ::WinAsm;
70961
 
  friend class ::WinDeclSpecs;
70962
 
  friend class ::WinMemberExplSpec;
70963
 
  friend class ::WinTypeKeywords;
 
87524
  friend class ::ExtGnu;
70964
87525
  friend class ::PragmaOnceUnitState;
70965
87526
  friend class ::PragmaOnce;
70966
 
  friend class ::CCExprResolve;
70967
 
  friend class ::CExprResolve;
 
87527
  friend class ::CMatchSyntax;
70968
87528
 
70969
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87529
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
70970
87530
 
70971
87531
  CTree *sons[4]; // star, static, quals, expr
70972
87532
  bool pos0;
70973
87533
 
70974
87534
public:
70975
87535
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
70976
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
87536
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
87537
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
70977
87538
  }
 
87539
  /** Get the identifier for this node type. Can be compared with NodeName(). */
70978
87540
  static const char *NodeId ();
 
87541
  /** Get the name of the node. Can be compared with NodeId(). */
70979
87542
  const char *NodeName () const { return NodeId (); }
 
87543
  /** Get the number of sons. */
70980
87544
  int Sons () const { return CTree::Sons (sons, 4); }
 
87545
  /** Get the n-th son.
 
87546
   *  \param n The index of the son.
 
87547
   *  \return The n-th son or NULL. */
70981
87548
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
70982
87549
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
70983
87550
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
70984
87551
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
70985
87552
  CTree *Expr () const { return sons[3]; }
 
87553
  /** Replace a son.
 
87554
   *  \param old_son The son to replace.
 
87555
   *  \param new_son The new son. */
70986
87556
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
70987
87557
    CTree::ReplaceSon (sons, 4, old_son, new_son);
70988
87558
  }
70989
87559
};
70990
87560
 
70991
87561
 
70992
 
#line 70993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87562
#line 87563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
70993
87563
} // closed Puma
 
87564
class CCExprResolve;
 
87565
class CExprResolve;
70994
87566
class WinIfExists;
70995
87567
class WinImportHandler;
70996
87568
class WinMacros;
70997
 
class CMatchSyntax;
70998
 
class ExtGnu;
 
87569
class WinAsm;
 
87570
class WinDeclSpecs;
 
87571
class WinMemberExplSpec;
 
87572
class WinTypeKeywords;
 
87573
class WinFriend;
70999
87574
class ExtAC;
71000
87575
class ExtACBuilderCoupling;
71001
87576
class ExtACSyntaxCoupling;
71002
87577
class ExtACTree;
71003
87578
class ExtACKeywords;
71004
 
class WinAsm;
71005
 
class WinDeclSpecs;
71006
 
class WinMemberExplSpec;
71007
 
class WinTypeKeywords;
 
87579
class ExtGnu;
71008
87580
class PragmaOnceUnitState;
71009
87581
class PragmaOnce;
71010
 
class CCExprResolve;
71011
 
class CExprResolve;
 
87582
class CMatchSyntax;
71012
87583
namespace Puma {
71013
87584
 
71014
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87585
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71015
87586
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
71016
 
#line 71017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87587
#line 87588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87588
  friend class ::CCExprResolve;
 
87589
  friend class ::CExprResolve;
71017
87590
  friend class ::WinIfExists;
71018
87591
  friend class ::WinImportHandler;
71019
87592
  friend class ::WinMacros;
71020
 
  friend class ::CMatchSyntax;
71021
 
  friend class ::ExtGnu;
 
87593
  friend class ::WinAsm;
 
87594
  friend class ::WinDeclSpecs;
 
87595
  friend class ::WinMemberExplSpec;
 
87596
  friend class ::WinTypeKeywords;
 
87597
  friend class ::WinFriend;
71022
87598
  friend class ::ExtAC;
71023
87599
  friend class ::ExtACBuilderCoupling;
71024
87600
  friend class ::ExtACSyntaxCoupling;
71025
87601
  friend class ::ExtACTree;
71026
87602
  friend class ::ExtACKeywords;
71027
 
  friend class ::WinAsm;
71028
 
  friend class ::WinDeclSpecs;
71029
 
  friend class ::WinMemberExplSpec;
71030
 
  friend class ::WinTypeKeywords;
 
87603
  friend class ::ExtGnu;
71031
87604
  friend class ::PragmaOnceUnitState;
71032
87605
  friend class ::PragmaOnce;
71033
 
  friend class ::CCExprResolve;
71034
 
  friend class ::CExprResolve;
 
87606
  friend class ::CMatchSyntax;
71035
87607
 
71036
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87608
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71037
87609
 
71038
87610
  CTree *sons[4]; // declarator, open, delim, close
71039
87611
 
71040
87612
public:
71041
87613
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
71042
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
87614
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
87615
    AddSon (sons[2], ad); AddSon (sons[3], c); 
71043
87616
  }
 
87617
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71044
87618
  static const char *NodeId ();
 
87619
  /** Get the name of the node. Can be compared with NodeId(). */
71045
87620
  const char *NodeName () const { return NodeId (); }
 
87621
  /** Get the number of sons. */
71046
87622
  int Sons () const { return 4; }
 
87623
  /** Get the n-th son.
 
87624
   *  \param n The index of the son.
 
87625
   *  \return The n-th son or NULL. */
71047
87626
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
71048
87627
  CTree *Declarator () const { return sons[0]; }
71049
87628
  CT_ArrayDelimiter *Delimiter () const 
71050
87629
   { return (CT_ArrayDelimiter*)sons[2]; }
 
87630
  /** Replace a son.
 
87631
   *  \param old_son The son to replace.
 
87632
   *  \param new_son The new son. */
71051
87633
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71052
87634
    CTree::ReplaceSon (sons, 4, old_son, new_son);
71053
87635
  }
71057
87639
};
71058
87640
 
71059
87641
 
71060
 
#line 71061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87642
#line 87643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71061
87643
} // closed Puma
 
87644
class CCExprResolve;
 
87645
class CExprResolve;
71062
87646
class WinIfExists;
71063
87647
class WinImportHandler;
71064
87648
class WinMacros;
71065
 
class CMatchSyntax;
71066
 
class ExtGnu;
 
87649
class WinAsm;
 
87650
class WinDeclSpecs;
 
87651
class WinMemberExplSpec;
 
87652
class WinTypeKeywords;
 
87653
class WinFriend;
71067
87654
class ExtAC;
71068
87655
class ExtACBuilderCoupling;
71069
87656
class ExtACSyntaxCoupling;
71070
87657
class ExtACTree;
71071
87658
class ExtACKeywords;
71072
 
class WinAsm;
71073
 
class WinDeclSpecs;
71074
 
class WinMemberExplSpec;
71075
 
class WinTypeKeywords;
 
87659
class ExtGnu;
71076
87660
class PragmaOnceUnitState;
71077
87661
class PragmaOnce;
71078
 
class CCExprResolve;
71079
 
class CExprResolve;
 
87662
class CMatchSyntax;
71080
87663
namespace Puma {
71081
87664
 
71082
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87665
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71083
87666
class CT_FctDeclarator : public CT_Declarator {
71084
 
#line 71085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87667
#line 87668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87668
  friend class ::CCExprResolve;
 
87669
  friend class ::CExprResolve;
71085
87670
  friend class ::WinIfExists;
71086
87671
  friend class ::WinImportHandler;
71087
87672
  friend class ::WinMacros;
71088
 
  friend class ::CMatchSyntax;
71089
 
  friend class ::ExtGnu;
 
87673
  friend class ::WinAsm;
 
87674
  friend class ::WinDeclSpecs;
 
87675
  friend class ::WinMemberExplSpec;
 
87676
  friend class ::WinTypeKeywords;
 
87677
  friend class ::WinFriend;
71090
87678
  friend class ::ExtAC;
71091
87679
  friend class ::ExtACBuilderCoupling;
71092
87680
  friend class ::ExtACSyntaxCoupling;
71093
87681
  friend class ::ExtACTree;
71094
87682
  friend class ::ExtACKeywords;
71095
 
  friend class ::WinAsm;
71096
 
  friend class ::WinDeclSpecs;
71097
 
  friend class ::WinMemberExplSpec;
71098
 
  friend class ::WinTypeKeywords;
 
87683
  friend class ::ExtGnu;
71099
87684
  friend class ::PragmaOnceUnitState;
71100
87685
  friend class ::PragmaOnce;
71101
 
  friend class ::CCExprResolve;
71102
 
  friend class ::CExprResolve;
 
87686
  friend class ::CMatchSyntax;
71103
87687
 
71104
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87688
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71105
87689
 
71106
87690
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
71107
87691
 
71108
87692
public:
71109
87693
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
71110
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
87694
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
87695
    AddSon (sons[2], cv); AddSon (sons[3], es); 
71111
87696
  }
 
87697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71112
87698
  static const char *NodeId ();
 
87699
  /** Get the name of the node. Can be compared with NodeId(). */
71113
87700
  const char *NodeName () const { return NodeId (); }
 
87701
  /** Get the number of sons. */
71114
87702
  int Sons () const { return CTree::Sons (sons, 4); }
 
87703
  /** Get the n-th son.
 
87704
   *  \param n The index of the son.
 
87705
   *  \return The n-th son or NULL. */
71115
87706
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
71116
87707
  CTree *Declarator () const { return sons[0]; }
71117
87708
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
71118
87709
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
71119
87710
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
87711
  /** Replace a son.
 
87712
   *  \param old_son The son to replace.
 
87713
   *  \param new_son The new son. */
71120
87714
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71121
87715
    CTree::ReplaceSon (sons, 4, old_son, new_son);
71122
87716
  }
71123
87717
};
71124
87718
 
71125
87719
 
71126
 
#line 71127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87720
#line 87721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71127
87721
} // closed Puma
 
87722
class CCExprResolve;
 
87723
class CExprResolve;
71128
87724
class WinIfExists;
71129
87725
class WinImportHandler;
71130
87726
class WinMacros;
71131
 
class CMatchSyntax;
71132
 
class ExtGnu;
 
87727
class WinAsm;
 
87728
class WinDeclSpecs;
 
87729
class WinMemberExplSpec;
 
87730
class WinTypeKeywords;
 
87731
class WinFriend;
71133
87732
class ExtAC;
71134
87733
class ExtACBuilderCoupling;
71135
87734
class ExtACSyntaxCoupling;
71136
87735
class ExtACTree;
71137
87736
class ExtACKeywords;
71138
 
class WinAsm;
71139
 
class WinDeclSpecs;
71140
 
class WinMemberExplSpec;
71141
 
class WinTypeKeywords;
 
87737
class ExtGnu;
71142
87738
class PragmaOnceUnitState;
71143
87739
class PragmaOnce;
71144
 
class CCExprResolve;
71145
 
class CExprResolve;
 
87740
class CMatchSyntax;
71146
87741
namespace Puma {
71147
87742
 
71148
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87743
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71149
87744
class CT_RefDeclarator : public CT_Declarator {
71150
 
#line 71151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87745
#line 87746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87746
  friend class ::CCExprResolve;
 
87747
  friend class ::CExprResolve;
71151
87748
  friend class ::WinIfExists;
71152
87749
  friend class ::WinImportHandler;
71153
87750
  friend class ::WinMacros;
71154
 
  friend class ::CMatchSyntax;
71155
 
  friend class ::ExtGnu;
 
87751
  friend class ::WinAsm;
 
87752
  friend class ::WinDeclSpecs;
 
87753
  friend class ::WinMemberExplSpec;
 
87754
  friend class ::WinTypeKeywords;
 
87755
  friend class ::WinFriend;
71156
87756
  friend class ::ExtAC;
71157
87757
  friend class ::ExtACBuilderCoupling;
71158
87758
  friend class ::ExtACSyntaxCoupling;
71159
87759
  friend class ::ExtACTree;
71160
87760
  friend class ::ExtACKeywords;
71161
 
  friend class ::WinAsm;
71162
 
  friend class ::WinDeclSpecs;
71163
 
  friend class ::WinMemberExplSpec;
71164
 
  friend class ::WinTypeKeywords;
 
87761
  friend class ::ExtGnu;
71165
87762
  friend class ::PragmaOnceUnitState;
71166
87763
  friend class ::PragmaOnce;
71167
 
  friend class ::CCExprResolve;
71168
 
  friend class ::CExprResolve;
 
87764
  friend class ::CMatchSyntax;
71169
87765
 
71170
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87766
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71171
87767
 
71172
87768
  CTree *sons[2]; // ref, declarator
71173
87769
 
71174
87770
public:
71175
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
87771
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
87772
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71176
87773
  static const char *NodeId ();
 
87774
  /** Get the name of the node. Can be compared with NodeId(). */
71177
87775
  const char *NodeName () const { return NodeId (); }
 
87776
  /** Get the number of sons. */
71178
87777
  int Sons () const { return 2; }
 
87778
  /** Get the n-th son.
 
87779
   *  \param n The index of the son.
 
87780
   *  \return The n-th son or NULL. */
71179
87781
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71180
87782
  CTree *Declarator () const { return sons[1]; }
 
87783
  /** Replace a son.
 
87784
   *  \param old_son The son to replace.
 
87785
   *  \param new_son The new son. */
71181
87786
  void ReplaceSon (CTree *old_son, CTree *new_son) {
71182
87787
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71183
87788
  }
71184
87789
};
71185
87790
 
71186
87791
 
71187
 
#line 71188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87792
#line 87793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71188
87793
} // closed Puma
 
87794
class CCExprResolve;
 
87795
class CExprResolve;
71189
87796
class WinIfExists;
71190
87797
class WinImportHandler;
71191
87798
class WinMacros;
71192
 
class CMatchSyntax;
71193
 
class ExtGnu;
 
87799
class WinAsm;
 
87800
class WinDeclSpecs;
 
87801
class WinMemberExplSpec;
 
87802
class WinTypeKeywords;
 
87803
class WinFriend;
71194
87804
class ExtAC;
71195
87805
class ExtACBuilderCoupling;
71196
87806
class ExtACSyntaxCoupling;
71197
87807
class ExtACTree;
71198
87808
class ExtACKeywords;
71199
 
class WinAsm;
71200
 
class WinDeclSpecs;
71201
 
class WinMemberExplSpec;
71202
 
class WinTypeKeywords;
 
87809
class ExtGnu;
71203
87810
class PragmaOnceUnitState;
71204
87811
class PragmaOnce;
71205
 
class CCExprResolve;
71206
 
class CExprResolve;
 
87812
class CMatchSyntax;
71207
87813
namespace Puma {
71208
87814
 
71209
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87815
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71210
87816
class CT_PtrDeclarator : public CT_Declarator {
71211
 
#line 71212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87817
#line 87818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87818
  friend class ::CCExprResolve;
 
87819
  friend class ::CExprResolve;
71212
87820
  friend class ::WinIfExists;
71213
87821
  friend class ::WinImportHandler;
71214
87822
  friend class ::WinMacros;
71215
 
  friend class ::CMatchSyntax;
71216
 
  friend class ::ExtGnu;
 
87823
  friend class ::WinAsm;
 
87824
  friend class ::WinDeclSpecs;
 
87825
  friend class ::WinMemberExplSpec;
 
87826
  friend class ::WinTypeKeywords;
 
87827
  friend class ::WinFriend;
71217
87828
  friend class ::ExtAC;
71218
87829
  friend class ::ExtACBuilderCoupling;
71219
87830
  friend class ::ExtACSyntaxCoupling;
71220
87831
  friend class ::ExtACTree;
71221
87832
  friend class ::ExtACKeywords;
71222
 
  friend class ::WinAsm;
71223
 
  friend class ::WinDeclSpecs;
71224
 
  friend class ::WinMemberExplSpec;
71225
 
  friend class ::WinTypeKeywords;
 
87833
  friend class ::ExtGnu;
71226
87834
  friend class ::PragmaOnceUnitState;
71227
87835
  friend class ::PragmaOnce;
71228
 
  friend class ::CCExprResolve;
71229
 
  friend class ::CExprResolve;
 
87836
  friend class ::CMatchSyntax;
71230
87837
 
71231
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87838
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71232
87839
 
71233
87840
  CTree *sons[3]; // ptr, cv_quals, declarator
71234
87841
 
71235
87842
public:
71236
87843
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
71237
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
87844
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
71238
87845
  }
 
87846
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71239
87847
  static const char *NodeId ();
 
87848
  /** Get the name of the node. Can be compared with NodeId(). */
71240
87849
  const char *NodeName () const { return NodeId (); }
 
87850
  /** Get the number of sons. */
71241
87851
  int Sons () const { return CTree::Sons (sons, 3); }
 
87852
  /** Get the n-th son.
 
87853
   *  \param n The index of the son.
 
87854
   *  \return The n-th son or NULL. */
71242
87855
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71243
87856
  CTree *Declarator () const { return sons[2]; }
71244
87857
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
87858
  /** Replace a son.
 
87859
   *  \param old_son The son to replace.
 
87860
   *  \param new_son The new son. */
71245
87861
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71246
87862
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71247
87863
  }
71248
87864
};
71249
87865
 
71250
87866
 
71251
 
#line 71252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87867
#line 87868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71252
87868
} // closed Puma
 
87869
class CCExprResolve;
 
87870
class CExprResolve;
71253
87871
class WinIfExists;
71254
87872
class WinImportHandler;
71255
87873
class WinMacros;
71256
 
class CMatchSyntax;
71257
 
class ExtGnu;
 
87874
class WinAsm;
 
87875
class WinDeclSpecs;
 
87876
class WinMemberExplSpec;
 
87877
class WinTypeKeywords;
 
87878
class WinFriend;
71258
87879
class ExtAC;
71259
87880
class ExtACBuilderCoupling;
71260
87881
class ExtACSyntaxCoupling;
71261
87882
class ExtACTree;
71262
87883
class ExtACKeywords;
71263
 
class WinAsm;
71264
 
class WinDeclSpecs;
71265
 
class WinMemberExplSpec;
71266
 
class WinTypeKeywords;
 
87884
class ExtGnu;
71267
87885
class PragmaOnceUnitState;
71268
87886
class PragmaOnce;
71269
 
class CCExprResolve;
71270
 
class CExprResolve;
 
87887
class CMatchSyntax;
71271
87888
namespace Puma {
71272
87889
 
71273
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87890
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71274
87891
class CT_MembPtrDeclarator : public CT_Declarator {
71275
 
#line 71276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87892
#line 87893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87893
  friend class ::CCExprResolve;
 
87894
  friend class ::CExprResolve;
71276
87895
  friend class ::WinIfExists;
71277
87896
  friend class ::WinImportHandler;
71278
87897
  friend class ::WinMacros;
71279
 
  friend class ::CMatchSyntax;
71280
 
  friend class ::ExtGnu;
 
87898
  friend class ::WinAsm;
 
87899
  friend class ::WinDeclSpecs;
 
87900
  friend class ::WinMemberExplSpec;
 
87901
  friend class ::WinTypeKeywords;
 
87902
  friend class ::WinFriend;
71281
87903
  friend class ::ExtAC;
71282
87904
  friend class ::ExtACBuilderCoupling;
71283
87905
  friend class ::ExtACSyntaxCoupling;
71284
87906
  friend class ::ExtACTree;
71285
87907
  friend class ::ExtACKeywords;
71286
 
  friend class ::WinAsm;
71287
 
  friend class ::WinDeclSpecs;
71288
 
  friend class ::WinMemberExplSpec;
71289
 
  friend class ::WinTypeKeywords;
 
87908
  friend class ::ExtGnu;
71290
87909
  friend class ::PragmaOnceUnitState;
71291
87910
  friend class ::PragmaOnce;
71292
 
  friend class ::CCExprResolve;
71293
 
  friend class ::CExprResolve;
 
87911
  friend class ::CMatchSyntax;
71294
87912
 
71295
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87913
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71296
87914
 
71297
87915
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
71298
87916
 
71299
87917
public:
71300
87918
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
71301
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
87919
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
87920
    AddSon (sons[3], q); AddSon (sons[4], d); 
71302
87921
  }
 
87922
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71303
87923
  static const char *NodeId ();
 
87924
  /** Get the name of the node. Can be compared with NodeId(). */
71304
87925
  const char *NodeName () const { return NodeId (); }
 
87926
  /** Get the number of sons. */
71305
87927
  int Sons () const { return CTree::Sons (sons, 5); }
 
87928
  /** Get the n-th son.
 
87929
   *  \param n The index of the son.
 
87930
   *  \return The n-th son or NULL. */
71306
87931
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
71307
87932
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
71308
87933
  CTree *Declarator () const { return sons[4]; }
71309
87934
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
87935
  /** Replace a son.
 
87936
   *  \param old_son The son to replace.
 
87937
   *  \param new_son The new son. */
71310
87938
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71311
87939
    CTree::ReplaceSon (sons, 5, old_son, new_son);
71312
87940
  }
71313
87941
};
71314
87942
 
71315
87943
 
71316
 
#line 71317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87944
#line 87945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71317
87945
} // closed Puma
 
87946
class CCExprResolve;
 
87947
class CExprResolve;
71318
87948
class WinIfExists;
71319
87949
class WinImportHandler;
71320
87950
class WinMacros;
71321
 
class CMatchSyntax;
71322
 
class ExtGnu;
 
87951
class WinAsm;
 
87952
class WinDeclSpecs;
 
87953
class WinMemberExplSpec;
 
87954
class WinTypeKeywords;
 
87955
class WinFriend;
71323
87956
class ExtAC;
71324
87957
class ExtACBuilderCoupling;
71325
87958
class ExtACSyntaxCoupling;
71326
87959
class ExtACTree;
71327
87960
class ExtACKeywords;
71328
 
class WinAsm;
71329
 
class WinDeclSpecs;
71330
 
class WinMemberExplSpec;
71331
 
class WinTypeKeywords;
 
87961
class ExtGnu;
71332
87962
class PragmaOnceUnitState;
71333
87963
class PragmaOnce;
71334
 
class CCExprResolve;
71335
 
class CExprResolve;
 
87964
class CMatchSyntax;
71336
87965
namespace Puma {
71337
87966
 
71338
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87967
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71339
87968
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
71340
 
#line 71341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
87969
#line 87970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
87970
  friend class ::CCExprResolve;
 
87971
  friend class ::CExprResolve;
71341
87972
  friend class ::WinIfExists;
71342
87973
  friend class ::WinImportHandler;
71343
87974
  friend class ::WinMacros;
71344
 
  friend class ::CMatchSyntax;
71345
 
  friend class ::ExtGnu;
 
87975
  friend class ::WinAsm;
 
87976
  friend class ::WinDeclSpecs;
 
87977
  friend class ::WinMemberExplSpec;
 
87978
  friend class ::WinTypeKeywords;
 
87979
  friend class ::WinFriend;
71346
87980
  friend class ::ExtAC;
71347
87981
  friend class ::ExtACBuilderCoupling;
71348
87982
  friend class ::ExtACSyntaxCoupling;
71349
87983
  friend class ::ExtACTree;
71350
87984
  friend class ::ExtACKeywords;
71351
 
  friend class ::WinAsm;
71352
 
  friend class ::WinDeclSpecs;
71353
 
  friend class ::WinMemberExplSpec;
71354
 
  friend class ::WinTypeKeywords;
 
87985
  friend class ::ExtGnu;
71355
87986
  friend class ::PragmaOnceUnitState;
71356
87987
  friend class ::PragmaOnce;
71357
 
  friend class ::CCExprResolve;
71358
 
  friend class ::CExprResolve;
 
87988
  friend class ::CMatchSyntax;
71359
87989
 
71360
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
87990
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71361
87991
 
71362
87992
  CTree *sons[3]; // declarator, colon, expr
71363
87993
 
71364
87994
public:
71365
87995
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
71366
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
87996
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
71367
87997
  }
 
87998
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71368
87999
  static const char *NodeId ();
 
88000
  /** Get the name of the node. Can be compared with NodeId(). */
71369
88001
  const char *NodeName () const { return NodeId (); }
 
88002
  /** Get the number of sons. */
71370
88003
  int Sons () const { return CTree::Sons (sons, 3); }
 
88004
  /** Get the n-th son.
 
88005
   *  \param n The index of the son.
 
88006
   *  \return The n-th son or NULL. */
71371
88007
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71372
88008
  CTree *Declarator () const { return sons[0]; }
71373
88009
  CTree *Expr () const { return sons[2]; }
71374
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
88010
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
71375
88011
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
88012
  /** Replace a son.
 
88013
   *  \param old_son The son to replace.
 
88014
   *  \param new_son The new son. */
71376
88015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71377
88016
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71378
88017
  }
71385
88024
/*****************************************************************************/
71386
88025
 
71387
88026
 
71388
 
#line 71389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88027
#line 88028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71389
88028
} // closed Puma
 
88029
class CCExprResolve;
 
88030
class CExprResolve;
71390
88031
class WinIfExists;
71391
88032
class WinImportHandler;
71392
88033
class WinMacros;
71393
 
class CMatchSyntax;
71394
 
class ExtGnu;
 
88034
class WinAsm;
 
88035
class WinDeclSpecs;
 
88036
class WinMemberExplSpec;
 
88037
class WinTypeKeywords;
 
88038
class WinFriend;
71395
88039
class ExtAC;
71396
88040
class ExtACBuilderCoupling;
71397
88041
class ExtACSyntaxCoupling;
71398
88042
class ExtACTree;
71399
88043
class ExtACKeywords;
71400
 
class WinAsm;
71401
 
class WinDeclSpecs;
71402
 
class WinMemberExplSpec;
71403
 
class WinTypeKeywords;
 
88044
class ExtGnu;
71404
88045
class PragmaOnceUnitState;
71405
88046
class PragmaOnce;
71406
 
class CCExprResolve;
71407
 
class CExprResolve;
 
88047
class CMatchSyntax;
71408
88048
namespace Puma {
71409
88049
 
71410
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88050
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71411
88051
class CT_Statement : public CTree {
71412
 
#line 71413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88052
#line 88053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88053
  friend class ::CCExprResolve;
 
88054
  friend class ::CExprResolve;
71413
88055
  friend class ::WinIfExists;
71414
88056
  friend class ::WinImportHandler;
71415
88057
  friend class ::WinMacros;
71416
 
  friend class ::CMatchSyntax;
71417
 
  friend class ::ExtGnu;
 
88058
  friend class ::WinAsm;
 
88059
  friend class ::WinDeclSpecs;
 
88060
  friend class ::WinMemberExplSpec;
 
88061
  friend class ::WinTypeKeywords;
 
88062
  friend class ::WinFriend;
71418
88063
  friend class ::ExtAC;
71419
88064
  friend class ::ExtACBuilderCoupling;
71420
88065
  friend class ::ExtACSyntaxCoupling;
71421
88066
  friend class ::ExtACTree;
71422
88067
  friend class ::ExtACKeywords;
71423
 
  friend class ::WinAsm;
71424
 
  friend class ::WinDeclSpecs;
71425
 
  friend class ::WinMemberExplSpec;
71426
 
  friend class ::WinTypeKeywords;
 
88068
  friend class ::ExtGnu;
71427
88069
  friend class ::PragmaOnceUnitState;
71428
88070
  friend class ::PragmaOnce;
71429
 
  friend class ::CCExprResolve;
71430
 
  friend class ::CExprResolve;
 
88071
  friend class ::CMatchSyntax;
71431
88072
 
71432
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88073
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71433
88074
 
71434
88075
protected:
71435
88076
  CT_Statement () {}
 
88077
  virtual CT_Statement *IsStatement () { return this; }
71436
88078
};
71437
88079
 
71438
88080
 
71439
 
#line 71440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88081
#line 88082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71440
88082
} // closed Puma
 
88083
class CCExprResolve;
 
88084
class CExprResolve;
71441
88085
class WinIfExists;
71442
88086
class WinImportHandler;
71443
88087
class WinMacros;
71444
 
class CMatchSyntax;
71445
 
class ExtGnu;
 
88088
class WinAsm;
 
88089
class WinDeclSpecs;
 
88090
class WinMemberExplSpec;
 
88091
class WinTypeKeywords;
 
88092
class WinFriend;
71446
88093
class ExtAC;
71447
88094
class ExtACBuilderCoupling;
71448
88095
class ExtACSyntaxCoupling;
71449
88096
class ExtACTree;
71450
88097
class ExtACKeywords;
71451
 
class WinAsm;
71452
 
class WinDeclSpecs;
71453
 
class WinMemberExplSpec;
71454
 
class WinTypeKeywords;
 
88098
class ExtGnu;
71455
88099
class PragmaOnceUnitState;
71456
88100
class PragmaOnce;
71457
 
class CCExprResolve;
71458
 
class CExprResolve;
 
88101
class CMatchSyntax;
71459
88102
namespace Puma {
71460
88103
 
71461
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88104
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71462
88105
class CT_LabelStmt : public CT_Statement {
71463
 
#line 71464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88106
#line 88107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88107
  friend class ::CCExprResolve;
 
88108
  friend class ::CExprResolve;
71464
88109
  friend class ::WinIfExists;
71465
88110
  friend class ::WinImportHandler;
71466
88111
  friend class ::WinMacros;
71467
 
  friend class ::CMatchSyntax;
71468
 
  friend class ::ExtGnu;
 
88112
  friend class ::WinAsm;
 
88113
  friend class ::WinDeclSpecs;
 
88114
  friend class ::WinMemberExplSpec;
 
88115
  friend class ::WinTypeKeywords;
 
88116
  friend class ::WinFriend;
71469
88117
  friend class ::ExtAC;
71470
88118
  friend class ::ExtACBuilderCoupling;
71471
88119
  friend class ::ExtACSyntaxCoupling;
71472
88120
  friend class ::ExtACTree;
71473
88121
  friend class ::ExtACKeywords;
71474
 
  friend class ::WinAsm;
71475
 
  friend class ::WinDeclSpecs;
71476
 
  friend class ::WinMemberExplSpec;
71477
 
  friend class ::WinTypeKeywords;
 
88122
  friend class ::ExtGnu;
71478
88123
  friend class ::PragmaOnceUnitState;
71479
88124
  friend class ::PragmaOnce;
71480
 
  friend class ::CCExprResolve;
71481
 
  friend class ::CExprResolve;
 
88125
  friend class ::CMatchSyntax;
71482
88126
 
71483
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88127
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71484
88128
 
71485
88129
  CTree *sons[3]; // id, colon, stmt
71486
88130
 
71487
88131
public:
71488
88132
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
71489
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
88133
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
71490
88134
  }
 
88135
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71491
88136
  static const char *NodeId ();
 
88137
  /** Get the name of the node. Can be compared with NodeId(). */
71492
88138
  const char *NodeName () const { return NodeId (); }
 
88139
  /** Get the number of sons. */
71493
88140
  int Sons () const { return 3; }
 
88141
  /** Get the n-th son.
 
88142
   *  \param n The index of the son.
 
88143
   *  \return The n-th son or NULL. */
71494
88144
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71495
88145
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
71496
88146
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
88147
  /** Replace a son.
 
88148
   *  \param old_son The son to replace.
 
88149
   *  \param new_son The new son. */
71497
88150
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71498
88151
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71499
88152
  }
71500
88153
};
71501
88154
 
71502
88155
 
71503
 
#line 71504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88156
#line 88157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71504
88157
} // closed Puma
 
88158
class CCExprResolve;
 
88159
class CExprResolve;
71505
88160
class WinIfExists;
71506
88161
class WinImportHandler;
71507
88162
class WinMacros;
71508
 
class CMatchSyntax;
71509
 
class ExtGnu;
 
88163
class WinAsm;
 
88164
class WinDeclSpecs;
 
88165
class WinMemberExplSpec;
 
88166
class WinTypeKeywords;
 
88167
class WinFriend;
71510
88168
class ExtAC;
71511
88169
class ExtACBuilderCoupling;
71512
88170
class ExtACSyntaxCoupling;
71513
88171
class ExtACTree;
71514
88172
class ExtACKeywords;
71515
 
class WinAsm;
71516
 
class WinDeclSpecs;
71517
 
class WinMemberExplSpec;
71518
 
class WinTypeKeywords;
 
88173
class ExtGnu;
71519
88174
class PragmaOnceUnitState;
71520
88175
class PragmaOnce;
71521
 
class CCExprResolve;
71522
 
class CExprResolve;
 
88176
class CMatchSyntax;
71523
88177
namespace Puma {
71524
88178
 
71525
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88179
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71526
88180
class CT_DefaultStmt : public CT_Statement {
71527
 
#line 71528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88181
#line 88182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88182
  friend class ::CCExprResolve;
 
88183
  friend class ::CExprResolve;
71528
88184
  friend class ::WinIfExists;
71529
88185
  friend class ::WinImportHandler;
71530
88186
  friend class ::WinMacros;
71531
 
  friend class ::CMatchSyntax;
71532
 
  friend class ::ExtGnu;
 
88187
  friend class ::WinAsm;
 
88188
  friend class ::WinDeclSpecs;
 
88189
  friend class ::WinMemberExplSpec;
 
88190
  friend class ::WinTypeKeywords;
 
88191
  friend class ::WinFriend;
71533
88192
  friend class ::ExtAC;
71534
88193
  friend class ::ExtACBuilderCoupling;
71535
88194
  friend class ::ExtACSyntaxCoupling;
71536
88195
  friend class ::ExtACTree;
71537
88196
  friend class ::ExtACKeywords;
71538
 
  friend class ::WinAsm;
71539
 
  friend class ::WinDeclSpecs;
71540
 
  friend class ::WinMemberExplSpec;
71541
 
  friend class ::WinTypeKeywords;
 
88197
  friend class ::ExtGnu;
71542
88198
  friend class ::PragmaOnceUnitState;
71543
88199
  friend class ::PragmaOnce;
71544
 
  friend class ::CCExprResolve;
71545
 
  friend class ::CExprResolve;
 
88200
  friend class ::CMatchSyntax;
71546
88201
 
71547
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88202
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71548
88203
 
71549
88204
  CTree *sons[3]; // keyword, colon, stmt
71550
88205
 
71551
88206
public:
71552
88207
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
71553
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
88208
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
71554
88209
  }
 
88210
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71555
88211
  static const char *NodeId ();
 
88212
  /** Get the name of the node. Can be compared with NodeId(). */
71556
88213
  const char *NodeName () const { return NodeId (); }
 
88214
  /** Get the number of sons. */
71557
88215
  int Sons () const { return 3; }
 
88216
  /** Get the n-th son.
 
88217
   *  \param n The index of the son.
 
88218
   *  \return The n-th son or NULL. */
71558
88219
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71559
88220
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
88221
  /** Replace a son.
 
88222
   *  \param old_son The son to replace.
 
88223
   *  \param new_son The new son. */
71560
88224
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71561
88225
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71562
88226
  }
71563
88227
};
71564
88228
 
71565
88229
 
71566
 
#line 71567 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88230
#line 88231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71567
88231
} // closed Puma
 
88232
class CCExprResolve;
 
88233
class CExprResolve;
71568
88234
class WinIfExists;
71569
88235
class WinImportHandler;
71570
88236
class WinMacros;
71571
 
class CMatchSyntax;
71572
 
class ExtGnu;
 
88237
class WinAsm;
 
88238
class WinDeclSpecs;
 
88239
class WinMemberExplSpec;
 
88240
class WinTypeKeywords;
 
88241
class WinFriend;
71573
88242
class ExtAC;
71574
88243
class ExtACBuilderCoupling;
71575
88244
class ExtACSyntaxCoupling;
71576
88245
class ExtACTree;
71577
88246
class ExtACKeywords;
71578
 
class WinAsm;
71579
 
class WinDeclSpecs;
71580
 
class WinMemberExplSpec;
71581
 
class WinTypeKeywords;
 
88247
class ExtGnu;
71582
88248
class PragmaOnceUnitState;
71583
88249
class PragmaOnce;
71584
 
class CCExprResolve;
71585
 
class CExprResolve;
 
88250
class CMatchSyntax;
71586
88251
namespace Puma {
71587
88252
 
71588
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88253
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71589
88254
class CT_TryStmt : public CT_Statement {
71590
 
#line 71591 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88255
#line 88256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88256
  friend class ::CCExprResolve;
 
88257
  friend class ::CExprResolve;
71591
88258
  friend class ::WinIfExists;
71592
88259
  friend class ::WinImportHandler;
71593
88260
  friend class ::WinMacros;
71594
 
  friend class ::CMatchSyntax;
71595
 
  friend class ::ExtGnu;
 
88261
  friend class ::WinAsm;
 
88262
  friend class ::WinDeclSpecs;
 
88263
  friend class ::WinMemberExplSpec;
 
88264
  friend class ::WinTypeKeywords;
 
88265
  friend class ::WinFriend;
71596
88266
  friend class ::ExtAC;
71597
88267
  friend class ::ExtACBuilderCoupling;
71598
88268
  friend class ::ExtACSyntaxCoupling;
71599
88269
  friend class ::ExtACTree;
71600
88270
  friend class ::ExtACKeywords;
71601
 
  friend class ::WinAsm;
71602
 
  friend class ::WinDeclSpecs;
71603
 
  friend class ::WinMemberExplSpec;
71604
 
  friend class ::WinTypeKeywords;
 
88271
  friend class ::ExtGnu;
71605
88272
  friend class ::PragmaOnceUnitState;
71606
88273
  friend class ::PragmaOnce;
71607
 
  friend class ::CCExprResolve;
71608
 
  friend class ::CExprResolve;
 
88274
  friend class ::CMatchSyntax;
71609
88275
 
71610
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88276
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71611
88277
 
71612
88278
  CTree *sons[3]; // try, stmt, handlers
71613
88279
 
71614
88280
public:
71615
88281
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
71616
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
88282
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
71617
88283
  }
 
88284
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71618
88285
  static const char *NodeId ();
 
88286
  /** Get the name of the node. Can be compared with NodeId(). */
71619
88287
  const char *NodeName () const { return NodeId (); }
 
88288
  /** Get the number of sons. */
71620
88289
  int Sons () const { return 3; }
 
88290
  /** Get the n-th son.
 
88291
   *  \param n The index of the son.
 
88292
   *  \return The n-th son or NULL. */
71621
88293
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
71622
88294
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
71623
88295
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
88296
  /** Replace a son.
 
88297
   *  \param old_son The son to replace.
 
88298
   *  \param new_son The new son. */
71624
88299
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71625
88300
    CTree::ReplaceSon (sons, 3, old_son, new_son);
71626
88301
  }
71627
88302
};
71628
88303
 
71629
88304
 
71630
 
#line 71631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88305
#line 88306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71631
88306
} // closed Puma
 
88307
class CCExprResolve;
 
88308
class CExprResolve;
71632
88309
class WinIfExists;
71633
88310
class WinImportHandler;
71634
88311
class WinMacros;
71635
 
class CMatchSyntax;
71636
 
class ExtGnu;
 
88312
class WinAsm;
 
88313
class WinDeclSpecs;
 
88314
class WinMemberExplSpec;
 
88315
class WinTypeKeywords;
 
88316
class WinFriend;
71637
88317
class ExtAC;
71638
88318
class ExtACBuilderCoupling;
71639
88319
class ExtACSyntaxCoupling;
71640
88320
class ExtACTree;
71641
88321
class ExtACKeywords;
71642
 
class WinAsm;
71643
 
class WinDeclSpecs;
71644
 
class WinMemberExplSpec;
71645
 
class WinTypeKeywords;
 
88322
class ExtGnu;
71646
88323
class PragmaOnceUnitState;
71647
88324
class PragmaOnce;
71648
 
class CCExprResolve;
71649
 
class CExprResolve;
 
88325
class CMatchSyntax;
71650
88326
namespace Puma {
71651
88327
 
71652
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88328
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71653
88329
class CT_CaseStmt : public CT_Statement {
71654
 
#line 71655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88330
#line 88331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88331
  friend class ::CCExprResolve;
 
88332
  friend class ::CExprResolve;
71655
88333
  friend class ::WinIfExists;
71656
88334
  friend class ::WinImportHandler;
71657
88335
  friend class ::WinMacros;
71658
 
  friend class ::CMatchSyntax;
71659
 
  friend class ::ExtGnu;
 
88336
  friend class ::WinAsm;
 
88337
  friend class ::WinDeclSpecs;
 
88338
  friend class ::WinMemberExplSpec;
 
88339
  friend class ::WinTypeKeywords;
 
88340
  friend class ::WinFriend;
71660
88341
  friend class ::ExtAC;
71661
88342
  friend class ::ExtACBuilderCoupling;
71662
88343
  friend class ::ExtACSyntaxCoupling;
71663
88344
  friend class ::ExtACTree;
71664
88345
  friend class ::ExtACKeywords;
71665
 
  friend class ::WinAsm;
71666
 
  friend class ::WinDeclSpecs;
71667
 
  friend class ::WinMemberExplSpec;
71668
 
  friend class ::WinTypeKeywords;
 
88346
  friend class ::ExtGnu;
71669
88347
  friend class ::PragmaOnceUnitState;
71670
88348
  friend class ::PragmaOnce;
71671
 
  friend class ::CCExprResolve;
71672
 
  friend class ::CExprResolve;
 
88349
  friend class ::CMatchSyntax;
71673
88350
 
71674
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88351
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71675
88352
 
71676
88353
  CTree *sons[4]; // keyword, expr, colon, stmt
71677
88354
 
71678
88355
public:
71679
88356
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
71680
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
88357
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
88358
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
71681
88359
  }
 
88360
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71682
88361
  static const char *NodeId ();
 
88362
  /** Get the name of the node. Can be compared with NodeId(). */
71683
88363
  const char *NodeName () const { return NodeId (); }
 
88364
  /** Get the number of sons. */
71684
88365
  int Sons () const { return 4; }
 
88366
  /** Get the n-th son.
 
88367
   *  \param n The index of the son.
 
88368
   *  \return The n-th son or NULL. */
71685
88369
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
71686
88370
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
71687
88371
  CTree *Expr () const { return sons[1]; }
 
88372
  /** Replace a son.
 
88373
   *  \param old_son The son to replace.
 
88374
   *  \param new_son The new son. */
71688
88375
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71689
88376
    CTree::ReplaceSon (sons, 4, old_son, new_son);
71690
88377
  }
71691
88378
};
71692
88379
 
71693
88380
 
71694
 
#line 71695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88381
#line 88382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71695
88382
} // closed Puma
 
88383
class CCExprResolve;
 
88384
class CExprResolve;
71696
88385
class WinIfExists;
71697
88386
class WinImportHandler;
71698
88387
class WinMacros;
71699
 
class CMatchSyntax;
71700
 
class ExtGnu;
 
88388
class WinAsm;
 
88389
class WinDeclSpecs;
 
88390
class WinMemberExplSpec;
 
88391
class WinTypeKeywords;
 
88392
class WinFriend;
71701
88393
class ExtAC;
71702
88394
class ExtACBuilderCoupling;
71703
88395
class ExtACSyntaxCoupling;
71704
88396
class ExtACTree;
71705
88397
class ExtACKeywords;
71706
 
class WinAsm;
71707
 
class WinDeclSpecs;
71708
 
class WinMemberExplSpec;
71709
 
class WinTypeKeywords;
 
88398
class ExtGnu;
71710
88399
class PragmaOnceUnitState;
71711
88400
class PragmaOnce;
71712
 
class CCExprResolve;
71713
 
class CExprResolve;
 
88401
class CMatchSyntax;
71714
88402
namespace Puma {
71715
88403
 
71716
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88404
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71717
88405
class CT_ExprStmt : public CT_Statement {
71718
 
#line 71719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88406
#line 88407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88407
  friend class ::CCExprResolve;
 
88408
  friend class ::CExprResolve;
71719
88409
  friend class ::WinIfExists;
71720
88410
  friend class ::WinImportHandler;
71721
88411
  friend class ::WinMacros;
71722
 
  friend class ::CMatchSyntax;
71723
 
  friend class ::ExtGnu;
 
88412
  friend class ::WinAsm;
 
88413
  friend class ::WinDeclSpecs;
 
88414
  friend class ::WinMemberExplSpec;
 
88415
  friend class ::WinTypeKeywords;
 
88416
  friend class ::WinFriend;
71724
88417
  friend class ::ExtAC;
71725
88418
  friend class ::ExtACBuilderCoupling;
71726
88419
  friend class ::ExtACSyntaxCoupling;
71727
88420
  friend class ::ExtACTree;
71728
88421
  friend class ::ExtACKeywords;
71729
 
  friend class ::WinAsm;
71730
 
  friend class ::WinDeclSpecs;
71731
 
  friend class ::WinMemberExplSpec;
71732
 
  friend class ::WinTypeKeywords;
 
88422
  friend class ::ExtGnu;
71733
88423
  friend class ::PragmaOnceUnitState;
71734
88424
  friend class ::PragmaOnce;
71735
 
  friend class ::CCExprResolve;
71736
 
  friend class ::CExprResolve;
 
88425
  friend class ::CMatchSyntax;
71737
88426
 
71738
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88427
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71739
88428
 
71740
88429
  CTree *sons[2]; // expr, semi_colon
71741
88430
 
71742
88431
public:
71743
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
88432
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
88433
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71744
88434
  static const char *NodeId ();
 
88435
  /** Get the name of the node. Can be compared with NodeId(). */
71745
88436
  const char *NodeName () const { return NodeId (); }
 
88437
  /** Get the number of sons. */
71746
88438
  int Sons () const { return CTree::Sons (sons, 2); }
 
88439
  /** Get the n-th son.
 
88440
   *  \param n The index of the son.
 
88441
   *  \return The n-th son or NULL. */
71747
88442
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
71748
88443
  CTree *Expr () const { return sons[0]; }
 
88444
  /** Replace a son.
 
88445
   *  \param old_son The son to replace.
 
88446
   *  \param new_son The new son. */
71749
88447
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71750
88448
    CTree::ReplaceSon (sons, 2, old_son, new_son);
71751
88449
  }
71752
88450
};
71753
88451
 
71754
88452
 
71755
 
#line 71756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88453
#line 88454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71756
88454
} // closed Puma
 
88455
class CCExprResolve;
 
88456
class CExprResolve;
71757
88457
class WinIfExists;
71758
88458
class WinImportHandler;
71759
88459
class WinMacros;
71760
 
class CMatchSyntax;
71761
 
class ExtGnu;
 
88460
class WinAsm;
 
88461
class WinDeclSpecs;
 
88462
class WinMemberExplSpec;
 
88463
class WinTypeKeywords;
 
88464
class WinFriend;
71762
88465
class ExtAC;
71763
88466
class ExtACBuilderCoupling;
71764
88467
class ExtACSyntaxCoupling;
71765
88468
class ExtACTree;
71766
88469
class ExtACKeywords;
71767
 
class WinAsm;
71768
 
class WinDeclSpecs;
71769
 
class WinMemberExplSpec;
71770
 
class WinTypeKeywords;
 
88470
class ExtGnu;
71771
88471
class PragmaOnceUnitState;
71772
88472
class PragmaOnce;
71773
 
class CCExprResolve;
71774
 
class CExprResolve;
 
88473
class CMatchSyntax;
71775
88474
namespace Puma {
71776
88475
 
71777
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88476
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71778
88477
class CT_DeclStmt : public CT_Statement {
71779
 
#line 71780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88478
#line 88479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88479
  friend class ::CCExprResolve;
 
88480
  friend class ::CExprResolve;
71780
88481
  friend class ::WinIfExists;
71781
88482
  friend class ::WinImportHandler;
71782
88483
  friend class ::WinMacros;
71783
 
  friend class ::CMatchSyntax;
71784
 
  friend class ::ExtGnu;
 
88484
  friend class ::WinAsm;
 
88485
  friend class ::WinDeclSpecs;
 
88486
  friend class ::WinMemberExplSpec;
 
88487
  friend class ::WinTypeKeywords;
 
88488
  friend class ::WinFriend;
71785
88489
  friend class ::ExtAC;
71786
88490
  friend class ::ExtACBuilderCoupling;
71787
88491
  friend class ::ExtACSyntaxCoupling;
71788
88492
  friend class ::ExtACTree;
71789
88493
  friend class ::ExtACKeywords;
71790
 
  friend class ::WinAsm;
71791
 
  friend class ::WinDeclSpecs;
71792
 
  friend class ::WinMemberExplSpec;
71793
 
  friend class ::WinTypeKeywords;
 
88494
  friend class ::ExtGnu;
71794
88495
  friend class ::PragmaOnceUnitState;
71795
88496
  friend class ::PragmaOnce;
71796
 
  friend class ::CCExprResolve;
71797
 
  friend class ::CExprResolve;
 
88497
  friend class ::CMatchSyntax;
71798
88498
 
71799
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88499
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71800
88500
 
71801
88501
  CTree *_decl;
71802
88502
 
71803
88503
public:
71804
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
88504
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
88505
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71805
88506
  static const char *NodeId ();
 
88507
  /** Get the name of the node. Can be compared with NodeId(). */
71806
88508
  const char *NodeName () const { return NodeId (); }
 
88509
  /** Get the number of sons. */
71807
88510
  int Sons () const { return 1; }
 
88511
  /** Get the n-th son.
 
88512
   *  \param n The index of the son.
 
88513
   *  \return The n-th son or NULL. */
71808
88514
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
88515
  /** Replace a son.
 
88516
   *  \param old_son The son to replace.
 
88517
   *  \param new_son The new son. */
71809
88518
  void ReplaceSon (CTree *old_son, CTree *new_son) 
71810
 
   { if (old_son == _decl) _decl = new_son; }
 
88519
   { CTree::ReplaceSon (_decl, old_son, new_son); }
71811
88520
};
71812
88521
 
71813
88522
 
71814
 
#line 71815 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88523
#line 88524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71815
88524
} // closed Puma
 
88525
class CCExprResolve;
 
88526
class CExprResolve;
71816
88527
class WinIfExists;
71817
88528
class WinImportHandler;
71818
88529
class WinMacros;
71819
 
class CMatchSyntax;
71820
 
class ExtGnu;
 
88530
class WinAsm;
 
88531
class WinDeclSpecs;
 
88532
class WinMemberExplSpec;
 
88533
class WinTypeKeywords;
 
88534
class WinFriend;
71821
88535
class ExtAC;
71822
88536
class ExtACBuilderCoupling;
71823
88537
class ExtACSyntaxCoupling;
71824
88538
class ExtACTree;
71825
88539
class ExtACKeywords;
71826
 
class WinAsm;
71827
 
class WinDeclSpecs;
71828
 
class WinMemberExplSpec;
71829
 
class WinTypeKeywords;
 
88540
class ExtGnu;
71830
88541
class PragmaOnceUnitState;
71831
88542
class PragmaOnce;
71832
 
class CCExprResolve;
71833
 
class CExprResolve;
 
88543
class CMatchSyntax;
71834
88544
namespace Puma {
71835
88545
 
71836
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88546
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71837
88547
class CT_SwitchStmt : public CT_Statement, public CSemScope {
71838
 
#line 71839 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88548
#line 88549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88549
  friend class ::CCExprResolve;
 
88550
  friend class ::CExprResolve;
71839
88551
  friend class ::WinIfExists;
71840
88552
  friend class ::WinImportHandler;
71841
88553
  friend class ::WinMacros;
71842
 
  friend class ::CMatchSyntax;
71843
 
  friend class ::ExtGnu;
 
88554
  friend class ::WinAsm;
 
88555
  friend class ::WinDeclSpecs;
 
88556
  friend class ::WinMemberExplSpec;
 
88557
  friend class ::WinTypeKeywords;
 
88558
  friend class ::WinFriend;
71844
88559
  friend class ::ExtAC;
71845
88560
  friend class ::ExtACBuilderCoupling;
71846
88561
  friend class ::ExtACSyntaxCoupling;
71847
88562
  friend class ::ExtACTree;
71848
88563
  friend class ::ExtACKeywords;
71849
 
  friend class ::WinAsm;
71850
 
  friend class ::WinDeclSpecs;
71851
 
  friend class ::WinMemberExplSpec;
71852
 
  friend class ::WinTypeKeywords;
 
88564
  friend class ::ExtGnu;
71853
88565
  friend class ::PragmaOnceUnitState;
71854
88566
  friend class ::PragmaOnce;
71855
 
  friend class ::CCExprResolve;
71856
 
  friend class ::CExprResolve;
 
88567
  friend class ::CMatchSyntax;
71857
88568
 
71858
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88569
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71859
88570
 
71860
88571
  CTree *sons[5]; // keyword, open, cond, close, stmt
71861
88572
 
71862
88573
public:
71863
88574
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
71864
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
88575
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
88576
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
71865
88577
  }
 
88578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71866
88579
  static const char *NodeId ();
 
88580
  /** Get the name of the node. Can be compared with NodeId(). */
71867
88581
  const char *NodeName () const { return NodeId (); }
 
88582
  /** Get the number of sons. */
71868
88583
  int Sons () const { return 5; }
 
88584
  /** Get the n-th son.
 
88585
   *  \param n The index of the son.
 
88586
   *  \return The n-th son or NULL. */
71869
88587
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
71870
88588
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
71871
88589
  CTree *Condition () const { return sons[2]; }
 
88590
  /** Replace a son.
 
88591
   *  \param old_son The son to replace.
 
88592
   *  \param new_son The new son. */
71872
88593
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71873
88594
    CTree::ReplaceSon (sons, 5, old_son, new_son);
71874
88595
  }
 
88596
  CSemScope *SemScope () const { return (CSemScope*)this; }
71875
88597
};
71876
88598
 
71877
88599
 
71878
 
#line 71879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88600
#line 88601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71879
88601
} // closed Puma
 
88602
class CCExprResolve;
 
88603
class CExprResolve;
71880
88604
class WinIfExists;
71881
88605
class WinImportHandler;
71882
88606
class WinMacros;
71883
 
class CMatchSyntax;
71884
 
class ExtGnu;
 
88607
class WinAsm;
 
88608
class WinDeclSpecs;
 
88609
class WinMemberExplSpec;
 
88610
class WinTypeKeywords;
 
88611
class WinFriend;
71885
88612
class ExtAC;
71886
88613
class ExtACBuilderCoupling;
71887
88614
class ExtACSyntaxCoupling;
71888
88615
class ExtACTree;
71889
88616
class ExtACKeywords;
71890
 
class WinAsm;
71891
 
class WinDeclSpecs;
71892
 
class WinMemberExplSpec;
71893
 
class WinTypeKeywords;
 
88617
class ExtGnu;
71894
88618
class PragmaOnceUnitState;
71895
88619
class PragmaOnce;
71896
 
class CCExprResolve;
71897
 
class CExprResolve;
 
88620
class CMatchSyntax;
71898
88621
namespace Puma {
71899
88622
 
71900
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88623
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71901
88624
class CT_IfStmt : public CT_Statement, public CSemScope {
71902
 
#line 71903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88625
#line 88626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88626
  friend class ::CCExprResolve;
 
88627
  friend class ::CExprResolve;
71903
88628
  friend class ::WinIfExists;
71904
88629
  friend class ::WinImportHandler;
71905
88630
  friend class ::WinMacros;
71906
 
  friend class ::CMatchSyntax;
71907
 
  friend class ::ExtGnu;
 
88631
  friend class ::WinAsm;
 
88632
  friend class ::WinDeclSpecs;
 
88633
  friend class ::WinMemberExplSpec;
 
88634
  friend class ::WinTypeKeywords;
 
88635
  friend class ::WinFriend;
71908
88636
  friend class ::ExtAC;
71909
88637
  friend class ::ExtACBuilderCoupling;
71910
88638
  friend class ::ExtACSyntaxCoupling;
71911
88639
  friend class ::ExtACTree;
71912
88640
  friend class ::ExtACKeywords;
71913
 
  friend class ::WinAsm;
71914
 
  friend class ::WinDeclSpecs;
71915
 
  friend class ::WinMemberExplSpec;
71916
 
  friend class ::WinTypeKeywords;
 
88641
  friend class ::ExtGnu;
71917
88642
  friend class ::PragmaOnceUnitState;
71918
88643
  friend class ::PragmaOnce;
71919
 
  friend class ::CCExprResolve;
71920
 
  friend class ::CExprResolve;
 
88644
  friend class ::CMatchSyntax;
71921
88645
 
71922
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88646
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71923
88647
 
71924
88648
  CTree *sons[5]; // keyword, open, cond, close, stmt
71925
88649
 
71926
88650
public:
71927
88651
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
71928
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
88652
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
88653
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
71929
88654
  }
 
88655
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71930
88656
  static const char *NodeId ();
 
88657
  /** Get the name of the node. Can be compared with NodeId(). */
71931
88658
  const char *NodeName () const { return NodeId (); }
 
88659
  /** Get the number of sons. */
71932
88660
  int Sons () const { return 5; }
 
88661
  /** Get the n-th son.
 
88662
   *  \param n The index of the son.
 
88663
   *  \return The n-th son or NULL. */
71933
88664
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
71934
88665
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
71935
88666
  CTree *Condition () const { return sons[2]; }
 
88667
  /** Replace a son.
 
88668
   *  \param old_son The son to replace.
 
88669
   *  \param new_son The new son. */
71936
88670
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
71937
88671
    CTree::ReplaceSon (sons, 5, old_son, new_son);
71938
88672
  }
 
88673
  CSemScope *SemScope () const { return (CSemScope*)this; }
71939
88674
};
71940
88675
 
71941
88676
 
71942
 
#line 71943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88677
#line 88678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
71943
88678
} // closed Puma
 
88679
class CCExprResolve;
 
88680
class CExprResolve;
71944
88681
class WinIfExists;
71945
88682
class WinImportHandler;
71946
88683
class WinMacros;
71947
 
class CMatchSyntax;
71948
 
class ExtGnu;
 
88684
class WinAsm;
 
88685
class WinDeclSpecs;
 
88686
class WinMemberExplSpec;
 
88687
class WinTypeKeywords;
 
88688
class WinFriend;
71949
88689
class ExtAC;
71950
88690
class ExtACBuilderCoupling;
71951
88691
class ExtACSyntaxCoupling;
71952
88692
class ExtACTree;
71953
88693
class ExtACKeywords;
71954
 
class WinAsm;
71955
 
class WinDeclSpecs;
71956
 
class WinMemberExplSpec;
71957
 
class WinTypeKeywords;
 
88694
class ExtGnu;
71958
88695
class PragmaOnceUnitState;
71959
88696
class PragmaOnce;
71960
 
class CCExprResolve;
71961
 
class CExprResolve;
 
88697
class CMatchSyntax;
71962
88698
namespace Puma {
71963
88699
 
71964
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88700
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71965
88701
class CT_IfElseStmt : public CT_Statement, public CSemScope {
71966
 
#line 71967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88702
#line 88703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88703
  friend class ::CCExprResolve;
 
88704
  friend class ::CExprResolve;
71967
88705
  friend class ::WinIfExists;
71968
88706
  friend class ::WinImportHandler;
71969
88707
  friend class ::WinMacros;
71970
 
  friend class ::CMatchSyntax;
71971
 
  friend class ::ExtGnu;
 
88708
  friend class ::WinAsm;
 
88709
  friend class ::WinDeclSpecs;
 
88710
  friend class ::WinMemberExplSpec;
 
88711
  friend class ::WinTypeKeywords;
 
88712
  friend class ::WinFriend;
71972
88713
  friend class ::ExtAC;
71973
88714
  friend class ::ExtACBuilderCoupling;
71974
88715
  friend class ::ExtACSyntaxCoupling;
71975
88716
  friend class ::ExtACTree;
71976
88717
  friend class ::ExtACKeywords;
71977
 
  friend class ::WinAsm;
71978
 
  friend class ::WinDeclSpecs;
71979
 
  friend class ::WinMemberExplSpec;
71980
 
  friend class ::WinTypeKeywords;
 
88718
  friend class ::ExtGnu;
71981
88719
  friend class ::PragmaOnceUnitState;
71982
88720
  friend class ::PragmaOnce;
71983
 
  friend class ::CCExprResolve;
71984
 
  friend class ::CExprResolve;
 
88721
  friend class ::CMatchSyntax;
71985
88722
 
71986
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88723
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
71987
88724
 
71988
88725
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
71989
88726
 
71990
88727
public:
71991
88728
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
71992
88729
                 CTree *is, CTree *e, CTree *es) {
71993
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
71994
 
    sons[5] = e; sons[6] = es; 
 
88730
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
88731
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
88732
    AddSon (sons[6], es); 
71995
88733
  }
 
88734
  /** Get the identifier for this node type. Can be compared with NodeName(). */
71996
88735
  static const char *NodeId ();
 
88736
  /** Get the name of the node. Can be compared with NodeId(). */
71997
88737
  const char *NodeName () const { return NodeId (); }
 
88738
  /** Get the number of sons. */
71998
88739
  int Sons () const { return 7; }
 
88740
  /** Get the n-th son.
 
88741
   *  \param n The index of the son.
 
88742
   *  \return The n-th son or NULL. */
71999
88743
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
72000
88744
  CTree *Condition () const { return sons[2]; }
72001
88745
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
72002
88746
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
88747
  /** Replace a son.
 
88748
   *  \param old_son The son to replace.
 
88749
   *  \param new_son The new son. */
72003
88750
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72004
88751
    CTree::ReplaceSon (sons, 7, old_son, new_son);
72005
88752
  }
 
88753
  CSemScope *SemScope () const { return (CSemScope*)this; }
72006
88754
};
72007
88755
 
72008
88756
 
72009
 
#line 72010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88757
#line 88758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72010
88758
} // closed Puma
 
88759
class CCExprResolve;
 
88760
class CExprResolve;
72011
88761
class WinIfExists;
72012
88762
class WinImportHandler;
72013
88763
class WinMacros;
72014
 
class CMatchSyntax;
72015
 
class ExtGnu;
 
88764
class WinAsm;
 
88765
class WinDeclSpecs;
 
88766
class WinMemberExplSpec;
 
88767
class WinTypeKeywords;
 
88768
class WinFriend;
72016
88769
class ExtAC;
72017
88770
class ExtACBuilderCoupling;
72018
88771
class ExtACSyntaxCoupling;
72019
88772
class ExtACTree;
72020
88773
class ExtACKeywords;
72021
 
class WinAsm;
72022
 
class WinDeclSpecs;
72023
 
class WinMemberExplSpec;
72024
 
class WinTypeKeywords;
 
88774
class ExtGnu;
72025
88775
class PragmaOnceUnitState;
72026
88776
class PragmaOnce;
72027
 
class CCExprResolve;
72028
 
class CExprResolve;
 
88777
class CMatchSyntax;
72029
88778
namespace Puma {
72030
88779
 
72031
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88780
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72032
88781
class CT_BreakStmt : public CT_Statement {
72033
 
#line 72034 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88782
#line 88783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88783
  friend class ::CCExprResolve;
 
88784
  friend class ::CExprResolve;
72034
88785
  friend class ::WinIfExists;
72035
88786
  friend class ::WinImportHandler;
72036
88787
  friend class ::WinMacros;
72037
 
  friend class ::CMatchSyntax;
72038
 
  friend class ::ExtGnu;
 
88788
  friend class ::WinAsm;
 
88789
  friend class ::WinDeclSpecs;
 
88790
  friend class ::WinMemberExplSpec;
 
88791
  friend class ::WinTypeKeywords;
 
88792
  friend class ::WinFriend;
72039
88793
  friend class ::ExtAC;
72040
88794
  friend class ::ExtACBuilderCoupling;
72041
88795
  friend class ::ExtACSyntaxCoupling;
72042
88796
  friend class ::ExtACTree;
72043
88797
  friend class ::ExtACKeywords;
72044
 
  friend class ::WinAsm;
72045
 
  friend class ::WinDeclSpecs;
72046
 
  friend class ::WinMemberExplSpec;
72047
 
  friend class ::WinTypeKeywords;
 
88798
  friend class ::ExtGnu;
72048
88799
  friend class ::PragmaOnceUnitState;
72049
88800
  friend class ::PragmaOnce;
72050
 
  friend class ::CCExprResolve;
72051
 
  friend class ::CExprResolve;
 
88801
  friend class ::CMatchSyntax;
72052
88802
 
72053
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88803
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72054
88804
 
72055
88805
  CTree *sons[2]; // key, semi_colon
72056
88806
 
72057
88807
public:
72058
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
88808
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
88809
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72059
88810
  static const char *NodeId ();
 
88811
  /** Get the name of the node. Can be compared with NodeId(). */
72060
88812
  const char *NodeName () const { return NodeId (); }
 
88813
  /** Get the number of sons. */
72061
88814
  int Sons () const { return 2; }
 
88815
  /** Get the n-th son.
 
88816
   *  \param n The index of the son.
 
88817
   *  \return The n-th son or NULL. */
72062
88818
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
88819
  /** Replace a son.
 
88820
   *  \param old_son The son to replace.
 
88821
   *  \param new_son The new son. */
72063
88822
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72064
88823
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72065
88824
  }
72066
88825
};
72067
88826
 
72068
88827
 
72069
 
#line 72070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88828
#line 88829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72070
88829
} // closed Puma
 
88830
class CCExprResolve;
 
88831
class CExprResolve;
72071
88832
class WinIfExists;
72072
88833
class WinImportHandler;
72073
88834
class WinMacros;
72074
 
class CMatchSyntax;
72075
 
class ExtGnu;
 
88835
class WinAsm;
 
88836
class WinDeclSpecs;
 
88837
class WinMemberExplSpec;
 
88838
class WinTypeKeywords;
 
88839
class WinFriend;
72076
88840
class ExtAC;
72077
88841
class ExtACBuilderCoupling;
72078
88842
class ExtACSyntaxCoupling;
72079
88843
class ExtACTree;
72080
88844
class ExtACKeywords;
72081
 
class WinAsm;
72082
 
class WinDeclSpecs;
72083
 
class WinMemberExplSpec;
72084
 
class WinTypeKeywords;
 
88845
class ExtGnu;
72085
88846
class PragmaOnceUnitState;
72086
88847
class PragmaOnce;
72087
 
class CCExprResolve;
72088
 
class CExprResolve;
 
88848
class CMatchSyntax;
72089
88849
namespace Puma {
72090
88850
 
72091
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88851
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72092
88852
class CT_ContinueStmt : public CT_Statement {
72093
 
#line 72094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88853
#line 88854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88854
  friend class ::CCExprResolve;
 
88855
  friend class ::CExprResolve;
72094
88856
  friend class ::WinIfExists;
72095
88857
  friend class ::WinImportHandler;
72096
88858
  friend class ::WinMacros;
72097
 
  friend class ::CMatchSyntax;
72098
 
  friend class ::ExtGnu;
 
88859
  friend class ::WinAsm;
 
88860
  friend class ::WinDeclSpecs;
 
88861
  friend class ::WinMemberExplSpec;
 
88862
  friend class ::WinTypeKeywords;
 
88863
  friend class ::WinFriend;
72099
88864
  friend class ::ExtAC;
72100
88865
  friend class ::ExtACBuilderCoupling;
72101
88866
  friend class ::ExtACSyntaxCoupling;
72102
88867
  friend class ::ExtACTree;
72103
88868
  friend class ::ExtACKeywords;
72104
 
  friend class ::WinAsm;
72105
 
  friend class ::WinDeclSpecs;
72106
 
  friend class ::WinMemberExplSpec;
72107
 
  friend class ::WinTypeKeywords;
 
88869
  friend class ::ExtGnu;
72108
88870
  friend class ::PragmaOnceUnitState;
72109
88871
  friend class ::PragmaOnce;
72110
 
  friend class ::CCExprResolve;
72111
 
  friend class ::CExprResolve;
 
88872
  friend class ::CMatchSyntax;
72112
88873
 
72113
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88874
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72114
88875
 
72115
88876
  CTree *sons[2]; // key, semi_colon
72116
88877
 
72117
88878
public:
72118
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
88879
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
88880
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72119
88881
  static const char *NodeId ();
 
88882
  /** Get the name of the node. Can be compared with NodeId(). */
72120
88883
  const char *NodeName () const { return NodeId (); }
 
88884
  /** Get the number of sons. */
72121
88885
  int Sons () const { return 2; }
 
88886
  /** Get the n-th son.
 
88887
   *  \param n The index of the son.
 
88888
   *  \return The n-th son or NULL. */
72122
88889
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
88890
  /** Replace a son.
 
88891
   *  \param old_son The son to replace.
 
88892
   *  \param new_son The new son. */
72123
88893
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72124
88894
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72125
88895
  }
72126
88896
};
72127
88897
 
72128
88898
 
72129
 
#line 72130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88899
#line 88900 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72130
88900
} // closed Puma
 
88901
class CCExprResolve;
 
88902
class CExprResolve;
72131
88903
class WinIfExists;
72132
88904
class WinImportHandler;
72133
88905
class WinMacros;
72134
 
class CMatchSyntax;
72135
 
class ExtGnu;
 
88906
class WinAsm;
 
88907
class WinDeclSpecs;
 
88908
class WinMemberExplSpec;
 
88909
class WinTypeKeywords;
 
88910
class WinFriend;
72136
88911
class ExtAC;
72137
88912
class ExtACBuilderCoupling;
72138
88913
class ExtACSyntaxCoupling;
72139
88914
class ExtACTree;
72140
88915
class ExtACKeywords;
72141
 
class WinAsm;
72142
 
class WinDeclSpecs;
72143
 
class WinMemberExplSpec;
72144
 
class WinTypeKeywords;
 
88916
class ExtGnu;
72145
88917
class PragmaOnceUnitState;
72146
88918
class PragmaOnce;
72147
 
class CCExprResolve;
72148
 
class CExprResolve;
 
88919
class CMatchSyntax;
72149
88920
namespace Puma {
72150
88921
 
72151
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88922
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72152
88923
class CT_GotoStmt : public CT_Statement {
72153
 
#line 72154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88924
#line 88925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88925
  friend class ::CCExprResolve;
 
88926
  friend class ::CExprResolve;
72154
88927
  friend class ::WinIfExists;
72155
88928
  friend class ::WinImportHandler;
72156
88929
  friend class ::WinMacros;
72157
 
  friend class ::CMatchSyntax;
72158
 
  friend class ::ExtGnu;
 
88930
  friend class ::WinAsm;
 
88931
  friend class ::WinDeclSpecs;
 
88932
  friend class ::WinMemberExplSpec;
 
88933
  friend class ::WinTypeKeywords;
 
88934
  friend class ::WinFriend;
72159
88935
  friend class ::ExtAC;
72160
88936
  friend class ::ExtACBuilderCoupling;
72161
88937
  friend class ::ExtACSyntaxCoupling;
72162
88938
  friend class ::ExtACTree;
72163
88939
  friend class ::ExtACKeywords;
72164
 
  friend class ::WinAsm;
72165
 
  friend class ::WinDeclSpecs;
72166
 
  friend class ::WinMemberExplSpec;
72167
 
  friend class ::WinTypeKeywords;
 
88940
  friend class ::ExtGnu;
72168
88941
  friend class ::PragmaOnceUnitState;
72169
88942
  friend class ::PragmaOnce;
72170
 
  friend class ::CCExprResolve;
72171
 
  friend class ::CExprResolve;
 
88943
  friend class ::CMatchSyntax;
72172
88944
 
72173
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88945
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72174
88946
 
72175
88947
  CTree *sons[3]; // key, label, semi_colon
72176
88948
 
72177
88949
public:
72178
88950
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
72179
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
88951
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
72180
88952
  }
 
88953
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72181
88954
  static const char *NodeId ();
 
88955
  /** Get the name of the node. Can be compared with NodeId(). */
72182
88956
  const char *NodeName () const { return NodeId (); }
 
88957
  /** Get the number of sons. */
72183
88958
  int Sons () const { return 3; }
 
88959
  /** Get the n-th son.
 
88960
   *  \param n The index of the son.
 
88961
   *  \return The n-th son or NULL. */
72184
88962
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
72185
88963
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
88964
  /** Replace a son.
 
88965
   *  \param old_son The son to replace.
 
88966
   *  \param new_son The new son. */
72186
88967
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72187
88968
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72188
88969
  }
72189
88970
};
72190
88971
 
72191
88972
 
72192
 
#line 72193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88973
#line 88974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72193
88974
} // closed Puma
 
88975
class CCExprResolve;
 
88976
class CExprResolve;
72194
88977
class WinIfExists;
72195
88978
class WinImportHandler;
72196
88979
class WinMacros;
72197
 
class CMatchSyntax;
72198
 
class ExtGnu;
 
88980
class WinAsm;
 
88981
class WinDeclSpecs;
 
88982
class WinMemberExplSpec;
 
88983
class WinTypeKeywords;
 
88984
class WinFriend;
72199
88985
class ExtAC;
72200
88986
class ExtACBuilderCoupling;
72201
88987
class ExtACSyntaxCoupling;
72202
88988
class ExtACTree;
72203
88989
class ExtACKeywords;
72204
 
class WinAsm;
72205
 
class WinDeclSpecs;
72206
 
class WinMemberExplSpec;
72207
 
class WinTypeKeywords;
 
88990
class ExtGnu;
72208
88991
class PragmaOnceUnitState;
72209
88992
class PragmaOnce;
72210
 
class CCExprResolve;
72211
 
class CExprResolve;
 
88993
class CMatchSyntax;
72212
88994
namespace Puma {
72213
88995
 
72214
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
88996
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72215
88997
class CT_ReturnStmt : public CT_Statement {
72216
 
#line 72217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
88998
#line 88999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
88999
  friend class ::CCExprResolve;
 
89000
  friend class ::CExprResolve;
72217
89001
  friend class ::WinIfExists;
72218
89002
  friend class ::WinImportHandler;
72219
89003
  friend class ::WinMacros;
72220
 
  friend class ::CMatchSyntax;
72221
 
  friend class ::ExtGnu;
 
89004
  friend class ::WinAsm;
 
89005
  friend class ::WinDeclSpecs;
 
89006
  friend class ::WinMemberExplSpec;
 
89007
  friend class ::WinTypeKeywords;
 
89008
  friend class ::WinFriend;
72222
89009
  friend class ::ExtAC;
72223
89010
  friend class ::ExtACBuilderCoupling;
72224
89011
  friend class ::ExtACSyntaxCoupling;
72225
89012
  friend class ::ExtACTree;
72226
89013
  friend class ::ExtACKeywords;
72227
 
  friend class ::WinAsm;
72228
 
  friend class ::WinDeclSpecs;
72229
 
  friend class ::WinMemberExplSpec;
72230
 
  friend class ::WinTypeKeywords;
 
89014
  friend class ::ExtGnu;
72231
89015
  friend class ::PragmaOnceUnitState;
72232
89016
  friend class ::PragmaOnce;
72233
 
  friend class ::CCExprResolve;
72234
 
  friend class ::CExprResolve;
 
89017
  friend class ::CMatchSyntax;
72235
89018
 
72236
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89019
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72237
89020
 
72238
89021
  CTree *sons[3]; // key, expr, semi_colon
72239
89022
 
72240
89023
public:
72241
89024
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
72242
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
89025
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
72243
89026
  }
 
89027
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72244
89028
  static const char *NodeId ();
 
89029
  /** Get the name of the node. Can be compared with NodeId(). */
72245
89030
  const char *NodeName () const { return NodeId (); }
 
89031
  /** Get the number of sons. */
72246
89032
  int Sons () const { return CTree::Sons (sons, 3); }
 
89033
  /** Get the n-th son.
 
89034
   *  \param n The index of the son.
 
89035
   *  \return The n-th son or NULL. */
72247
89036
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
72248
89037
  CTree *Expr () const { return sons[1]; }
 
89038
  /** Replace a son.
 
89039
   *  \param old_son The son to replace.
 
89040
   *  \param new_son The new son. */
72249
89041
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72250
89042
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72251
89043
  }
72252
89044
};
72253
89045
 
72254
89046
 
72255
 
#line 72256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89047
#line 89048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72256
89048
} // closed Puma
 
89049
class CCExprResolve;
 
89050
class CExprResolve;
72257
89051
class WinIfExists;
72258
89052
class WinImportHandler;
72259
89053
class WinMacros;
72260
 
class CMatchSyntax;
72261
 
class ExtGnu;
 
89054
class WinAsm;
 
89055
class WinDeclSpecs;
 
89056
class WinMemberExplSpec;
 
89057
class WinTypeKeywords;
 
89058
class WinFriend;
72262
89059
class ExtAC;
72263
89060
class ExtACBuilderCoupling;
72264
89061
class ExtACSyntaxCoupling;
72265
89062
class ExtACTree;
72266
89063
class ExtACKeywords;
72267
 
class WinAsm;
72268
 
class WinDeclSpecs;
72269
 
class WinMemberExplSpec;
72270
 
class WinTypeKeywords;
 
89064
class ExtGnu;
72271
89065
class PragmaOnceUnitState;
72272
89066
class PragmaOnce;
72273
 
class CCExprResolve;
72274
 
class CExprResolve;
 
89067
class CMatchSyntax;
72275
89068
namespace Puma {
72276
89069
 
72277
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89070
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72278
89071
class CT_WhileStmt : public CT_Statement, public CSemScope {
72279
 
#line 72280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89072
#line 89073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89073
  friend class ::CCExprResolve;
 
89074
  friend class ::CExprResolve;
72280
89075
  friend class ::WinIfExists;
72281
89076
  friend class ::WinImportHandler;
72282
89077
  friend class ::WinMacros;
72283
 
  friend class ::CMatchSyntax;
72284
 
  friend class ::ExtGnu;
 
89078
  friend class ::WinAsm;
 
89079
  friend class ::WinDeclSpecs;
 
89080
  friend class ::WinMemberExplSpec;
 
89081
  friend class ::WinTypeKeywords;
 
89082
  friend class ::WinFriend;
72285
89083
  friend class ::ExtAC;
72286
89084
  friend class ::ExtACBuilderCoupling;
72287
89085
  friend class ::ExtACSyntaxCoupling;
72288
89086
  friend class ::ExtACTree;
72289
89087
  friend class ::ExtACKeywords;
72290
 
  friend class ::WinAsm;
72291
 
  friend class ::WinDeclSpecs;
72292
 
  friend class ::WinMemberExplSpec;
72293
 
  friend class ::WinTypeKeywords;
 
89088
  friend class ::ExtGnu;
72294
89089
  friend class ::PragmaOnceUnitState;
72295
89090
  friend class ::PragmaOnce;
72296
 
  friend class ::CCExprResolve;
72297
 
  friend class ::CExprResolve;
 
89091
  friend class ::CMatchSyntax;
72298
89092
 
72299
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89093
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72300
89094
 
72301
89095
  CTree *sons[5]; // key, open, cond, close, stmt
72302
89096
 
72303
89097
public:
72304
89098
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
72305
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
89099
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
89100
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
72306
89101
  }
 
89102
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72307
89103
  static const char *NodeId ();
 
89104
  /** Get the name of the node. Can be compared with NodeId(). */
72308
89105
  const char *NodeName () const { return NodeId (); }
 
89106
  /** Get the number of sons. */
72309
89107
  int Sons () const { return 5; }
 
89108
  /** Get the n-th son.
 
89109
   *  \param n The index of the son.
 
89110
   *  \return The n-th son or NULL. */
72310
89111
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
72311
89112
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
72312
89113
  CTree *Condition () const { return sons[2]; }
 
89114
  /** Replace a son.
 
89115
   *  \param old_son The son to replace.
 
89116
   *  \param new_son The new son. */
72313
89117
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72314
89118
    CTree::ReplaceSon (sons, 5, old_son, new_son);
72315
89119
  }
 
89120
  CSemScope *SemScope () const { return (CSemScope*)this; }
72316
89121
};
72317
89122
 
72318
89123
 
72319
 
#line 72320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89124
#line 89125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72320
89125
} // closed Puma
 
89126
class CCExprResolve;
 
89127
class CExprResolve;
72321
89128
class WinIfExists;
72322
89129
class WinImportHandler;
72323
89130
class WinMacros;
72324
 
class CMatchSyntax;
72325
 
class ExtGnu;
 
89131
class WinAsm;
 
89132
class WinDeclSpecs;
 
89133
class WinMemberExplSpec;
 
89134
class WinTypeKeywords;
 
89135
class WinFriend;
72326
89136
class ExtAC;
72327
89137
class ExtACBuilderCoupling;
72328
89138
class ExtACSyntaxCoupling;
72329
89139
class ExtACTree;
72330
89140
class ExtACKeywords;
72331
 
class WinAsm;
72332
 
class WinDeclSpecs;
72333
 
class WinMemberExplSpec;
72334
 
class WinTypeKeywords;
 
89141
class ExtGnu;
72335
89142
class PragmaOnceUnitState;
72336
89143
class PragmaOnce;
72337
 
class CCExprResolve;
72338
 
class CExprResolve;
 
89144
class CMatchSyntax;
72339
89145
namespace Puma {
72340
89146
 
72341
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89147
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72342
89148
class CT_DoStmt : public CT_Statement {
72343
 
#line 72344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89149
#line 89150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89150
  friend class ::CCExprResolve;
 
89151
  friend class ::CExprResolve;
72344
89152
  friend class ::WinIfExists;
72345
89153
  friend class ::WinImportHandler;
72346
89154
  friend class ::WinMacros;
72347
 
  friend class ::CMatchSyntax;
72348
 
  friend class ::ExtGnu;
 
89155
  friend class ::WinAsm;
 
89156
  friend class ::WinDeclSpecs;
 
89157
  friend class ::WinMemberExplSpec;
 
89158
  friend class ::WinTypeKeywords;
 
89159
  friend class ::WinFriend;
72349
89160
  friend class ::ExtAC;
72350
89161
  friend class ::ExtACBuilderCoupling;
72351
89162
  friend class ::ExtACSyntaxCoupling;
72352
89163
  friend class ::ExtACTree;
72353
89164
  friend class ::ExtACKeywords;
72354
 
  friend class ::WinAsm;
72355
 
  friend class ::WinDeclSpecs;
72356
 
  friend class ::WinMemberExplSpec;
72357
 
  friend class ::WinTypeKeywords;
 
89165
  friend class ::ExtGnu;
72358
89166
  friend class ::PragmaOnceUnitState;
72359
89167
  friend class ::PragmaOnce;
72360
 
  friend class ::CCExprResolve;
72361
 
  friend class ::CExprResolve;
 
89168
  friend class ::CMatchSyntax;
72362
89169
 
72363
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89170
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72364
89171
 
72365
89172
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
72366
89173
 
72367
89174
public:
72368
89175
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
72369
89176
             CTree *c, CTree *sc) {
72370
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
72371
 
    sons[5] = c; sons[6] = sc; 
 
89177
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
89178
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
89179
    AddSon (sons[6], sc); 
72372
89180
  }
 
89181
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72373
89182
  static const char *NodeId ();
 
89183
  /** Get the name of the node. Can be compared with NodeId(). */
72374
89184
  const char *NodeName () const { return NodeId (); }
 
89185
  /** Get the number of sons. */
72375
89186
  int Sons () const { return 7; }
 
89187
  /** Get the n-th son.
 
89188
   *  \param n The index of the son.
 
89189
   *  \return The n-th son or NULL. */
72376
89190
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
72377
89191
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
72378
89192
  CTree *Expr () const { return sons[4]; }
 
89193
  /** Replace a son.
 
89194
   *  \param old_son The son to replace.
 
89195
   *  \param new_son The new son. */
72379
89196
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72380
89197
    CTree::ReplaceSon (sons, 7, old_son, new_son);
72381
89198
  }
72382
89199
};
72383
89200
 
72384
89201
 
72385
 
#line 72386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89202
#line 89203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72386
89203
} // closed Puma
 
89204
class CCExprResolve;
 
89205
class CExprResolve;
72387
89206
class WinIfExists;
72388
89207
class WinImportHandler;
72389
89208
class WinMacros;
72390
 
class CMatchSyntax;
72391
 
class ExtGnu;
 
89209
class WinAsm;
 
89210
class WinDeclSpecs;
 
89211
class WinMemberExplSpec;
 
89212
class WinTypeKeywords;
 
89213
class WinFriend;
72392
89214
class ExtAC;
72393
89215
class ExtACBuilderCoupling;
72394
89216
class ExtACSyntaxCoupling;
72395
89217
class ExtACTree;
72396
89218
class ExtACKeywords;
72397
 
class WinAsm;
72398
 
class WinDeclSpecs;
72399
 
class WinMemberExplSpec;
72400
 
class WinTypeKeywords;
 
89219
class ExtGnu;
72401
89220
class PragmaOnceUnitState;
72402
89221
class PragmaOnce;
72403
 
class CCExprResolve;
72404
 
class CExprResolve;
 
89222
class CMatchSyntax;
72405
89223
namespace Puma {
72406
89224
 
72407
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89225
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72408
89226
class CT_ForStmt : public CT_Statement, public CSemScope {
72409
 
#line 72410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89227
#line 89228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89228
  friend class ::CCExprResolve;
 
89229
  friend class ::CExprResolve;
72410
89230
  friend class ::WinIfExists;
72411
89231
  friend class ::WinImportHandler;
72412
89232
  friend class ::WinMacros;
72413
 
  friend class ::CMatchSyntax;
72414
 
  friend class ::ExtGnu;
 
89233
  friend class ::WinAsm;
 
89234
  friend class ::WinDeclSpecs;
 
89235
  friend class ::WinMemberExplSpec;
 
89236
  friend class ::WinTypeKeywords;
 
89237
  friend class ::WinFriend;
72415
89238
  friend class ::ExtAC;
72416
89239
  friend class ::ExtACBuilderCoupling;
72417
89240
  friend class ::ExtACSyntaxCoupling;
72418
89241
  friend class ::ExtACTree;
72419
89242
  friend class ::ExtACKeywords;
72420
 
  friend class ::WinAsm;
72421
 
  friend class ::WinDeclSpecs;
72422
 
  friend class ::WinMemberExplSpec;
72423
 
  friend class ::WinTypeKeywords;
 
89243
  friend class ::ExtGnu;
72424
89244
  friend class ::PragmaOnceUnitState;
72425
89245
  friend class ::PragmaOnce;
72426
 
  friend class ::CCExprResolve;
72427
 
  friend class ::CExprResolve;
 
89246
  friend class ::CMatchSyntax;
72428
89247
 
72429
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89248
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72430
89249
 
72431
89250
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
72432
89251
 
72433
89252
public:
72434
89253
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
72435
89254
              CTree *e, CTree *c, CTree *stmt) {
72436
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
72437
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
89255
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
89256
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
89257
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
72438
89258
  }
 
89259
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72439
89260
  static const char *NodeId ();
 
89261
  /** Get the name of the node. Can be compared with NodeId(). */
72440
89262
  const char *NodeName () const { return NodeId (); }
 
89263
  /** Get the number of sons. */
72441
89264
  int Sons () const { return CTree::Sons (sons, 8); }
 
89265
  /** Get the n-th son.
 
89266
   *  \param n The index of the son.
 
89267
   *  \return The n-th son or NULL. */
72442
89268
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
72443
89269
  CTree *InitStmt () const { return sons[2]; }
72444
89270
  CTree *Condition () const { return sons[3]; }
72445
89271
  CTree *Expr () const { return sons[5]; }
72446
89272
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
89273
  /** Replace a son.
 
89274
   *  \param old_son The son to replace.
 
89275
   *  \param new_son The new son. */
72447
89276
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72448
89277
    CTree::ReplaceSon (sons, 8, old_son, new_son);
72449
89278
  }
 
89279
  CSemScope *SemScope () const { return (CSemScope*)this; }
72450
89280
};
72451
89281
 
72452
89282
 
72453
 
#line 72454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89283
#line 89284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72454
89284
} // closed Puma
 
89285
class CCExprResolve;
 
89286
class CExprResolve;
72455
89287
class WinIfExists;
72456
89288
class WinImportHandler;
72457
89289
class WinMacros;
72458
 
class CMatchSyntax;
72459
 
class ExtGnu;
 
89290
class WinAsm;
 
89291
class WinDeclSpecs;
 
89292
class WinMemberExplSpec;
 
89293
class WinTypeKeywords;
 
89294
class WinFriend;
72460
89295
class ExtAC;
72461
89296
class ExtACBuilderCoupling;
72462
89297
class ExtACSyntaxCoupling;
72463
89298
class ExtACTree;
72464
89299
class ExtACKeywords;
72465
 
class WinAsm;
72466
 
class WinDeclSpecs;
72467
 
class WinMemberExplSpec;
72468
 
class WinTypeKeywords;
 
89300
class ExtGnu;
72469
89301
class PragmaOnceUnitState;
72470
89302
class PragmaOnce;
72471
 
class CCExprResolve;
72472
 
class CExprResolve;
 
89303
class CMatchSyntax;
72473
89304
namespace Puma {
72474
89305
 
72475
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89306
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72476
89307
class CT_Condition : public CT_Decl, public CSemObject {
72477
 
#line 72478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89308
#line 89309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89309
  friend class ::CCExprResolve;
 
89310
  friend class ::CExprResolve;
72478
89311
  friend class ::WinIfExists;
72479
89312
  friend class ::WinImportHandler;
72480
89313
  friend class ::WinMacros;
72481
 
  friend class ::CMatchSyntax;
72482
 
  friend class ::ExtGnu;
 
89314
  friend class ::WinAsm;
 
89315
  friend class ::WinDeclSpecs;
 
89316
  friend class ::WinMemberExplSpec;
 
89317
  friend class ::WinTypeKeywords;
 
89318
  friend class ::WinFriend;
72483
89319
  friend class ::ExtAC;
72484
89320
  friend class ::ExtACBuilderCoupling;
72485
89321
  friend class ::ExtACSyntaxCoupling;
72486
89322
  friend class ::ExtACTree;
72487
89323
  friend class ::ExtACKeywords;
72488
 
  friend class ::WinAsm;
72489
 
  friend class ::WinDeclSpecs;
72490
 
  friend class ::WinMemberExplSpec;
72491
 
  friend class ::WinTypeKeywords;
 
89324
  friend class ::ExtGnu;
72492
89325
  friend class ::PragmaOnceUnitState;
72493
89326
  friend class ::PragmaOnce;
72494
 
  friend class ::CCExprResolve;
72495
 
  friend class ::CExprResolve;
 
89327
  friend class ::CMatchSyntax;
72496
89328
 
72497
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89329
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72498
89330
 
72499
89331
  CTree *sons[3]; // declspecs, declarator, init
72500
89332
 
72501
89333
public:
72502
89334
  CT_Condition (CTree *dsl, CTree *d) {
72503
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
89335
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
72504
89336
  }
 
89337
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72505
89338
  static const char *NodeId ();
 
89339
  /** Get the name of the node. Can be compared with NodeId(). */
72506
89340
  const char *NodeName () const { return NodeId (); }
 
89341
  /** Get the number of sons. */
72507
89342
  int Sons () const { return CTree::Sons (sons, 3); }
 
89343
  /** Get the n-th son.
 
89344
   *  \param n The index of the son.
 
89345
   *  \return The n-th son or NULL. */
72508
89346
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
72509
89347
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
72510
89348
  CTree *Declarator () const { return sons[1]; }
72511
89349
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
72512
89350
  CSemObject *SemObject () const { return (CSemObject*)this; }
72513
 
  void Initializer (CTree *i) { sons[2] = i; }
 
89351
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
89352
  /** Replace a son.
 
89353
   *  \param old_son The son to replace.
 
89354
   *  \param new_son The new son. */
72514
89355
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72515
89356
    CTree::ReplaceSon (sons, 3, old_son, new_son);
72516
89357
  }
72523
89364
/*****************************************************************************/
72524
89365
 
72525
89366
 
72526
 
#line 72527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89367
#line 89368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72527
89368
} // closed Puma
 
89369
class CCExprResolve;
 
89370
class CExprResolve;
72528
89371
class WinIfExists;
72529
89372
class WinImportHandler;
72530
89373
class WinMacros;
72531
 
class CMatchSyntax;
72532
 
class ExtGnu;
 
89374
class WinAsm;
 
89375
class WinDeclSpecs;
 
89376
class WinMemberExplSpec;
 
89377
class WinTypeKeywords;
 
89378
class WinFriend;
72533
89379
class ExtAC;
72534
89380
class ExtACBuilderCoupling;
72535
89381
class ExtACSyntaxCoupling;
72536
89382
class ExtACTree;
72537
89383
class ExtACKeywords;
72538
 
class WinAsm;
72539
 
class WinDeclSpecs;
72540
 
class WinMemberExplSpec;
72541
 
class WinTypeKeywords;
 
89384
class ExtGnu;
72542
89385
class PragmaOnceUnitState;
72543
89386
class PragmaOnce;
72544
 
class CCExprResolve;
72545
 
class CExprResolve;
72546
 
namespace Puma {
72547
 
 
72548
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89387
class CMatchSyntax;
 
89388
namespace Puma {
 
89389
 
 
89390
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89391
 
 
89392
#line 89393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89393
} // closed Puma
 
89394
 
 
89395
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
89396
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
89397
#include "ExtACTree.ah"
 
89398
#endif
 
89399
namespace Puma {
 
89400
 
 
89401
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72549
89402
class CT_ClassDef : public CT_Decl, public CSemObject {
72550
 
#line 72551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89403
#line 89404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89404
  friend class ::CCExprResolve;
 
89405
  friend class ::CExprResolve;
72551
89406
  friend class ::WinIfExists;
72552
89407
  friend class ::WinImportHandler;
72553
89408
  friend class ::WinMacros;
72554
 
  friend class ::CMatchSyntax;
72555
 
  friend class ::ExtGnu;
 
89409
  friend class ::WinAsm;
 
89410
  friend class ::WinDeclSpecs;
 
89411
  friend class ::WinMemberExplSpec;
 
89412
  friend class ::WinTypeKeywords;
 
89413
  friend class ::WinFriend;
72556
89414
  friend class ::ExtAC;
72557
89415
  friend class ::ExtACBuilderCoupling;
72558
89416
  friend class ::ExtACSyntaxCoupling;
72559
89417
  friend class ::ExtACTree;
72560
89418
  friend class ::ExtACKeywords;
72561
 
  friend class ::WinAsm;
72562
 
  friend class ::WinDeclSpecs;
72563
 
  friend class ::WinMemberExplSpec;
72564
 
  friend class ::WinTypeKeywords;
 
89419
  friend class ::ExtGnu;
72565
89420
  friend class ::PragmaOnceUnitState;
72566
89421
  friend class ::PragmaOnce;
72567
 
  friend class ::CCExprResolve;
72568
 
  friend class ::CExprResolve;
 
89422
  friend class ::CMatchSyntax;
72569
89423
 
72570
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89424
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72571
89425
 
72572
89426
   
72573
 
#line 72574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89427
#line 89428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72574
89428
 
72575
89429
  struct __ac_wrapper_sons {
72576
89430
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
72585
89439
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
72586
89440
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
72587
89441
  } sons
72588
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89442
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72589
89443
 
72590
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89444
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72591
89445
; // key, name, bases, members
72592
89446
  CTree *obj_decl;
72593
89447
 
72594
89448
public:
72595
89449
  
72596
 
#line 72597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
72597
 
 
72598
 
 
72599
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
72600
 
  typedef void Result;
72601
 
  typedef ::Puma::CT_ClassDef That;
72602
 
  typedef ::Puma::CT_ClassDef Target;
72603
 
  static const int JPID = 4;
 
89450
#line 89451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89451
 
 
89452
 
 
89453
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
89454
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
89455
  typedef TResult Result;
 
89456
  typedef TThat   That;
 
89457
  typedef TTarget Target;
 
89458
  enum { ARGS = TArgs::ARGS };
 
89459
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
89460
  static const int JPID = 55;
72604
89461
  static const AC::JPType JPTYPE = (AC::JPType)16;
72605
89462
  struct Res {
72606
89463
    typedef void Type;
72607
89464
    typedef void ReferredType;
72608
89465
  };
72609
 
  enum { ARGS = 3 };
72610
 
  template <int I, int DUMMY = 0> struct Arg {
72611
 
    typedef void Type;
72612
 
    typedef void ReferredType;
72613
 
  };
72614
 
  template <int DUMMY> struct Arg<0, DUMMY> {
72615
 
    typedef ::Puma::CTree * Type;
72616
 
    typedef ::Puma::CTree * ReferredType;
72617
 
  };
72618
 
  template <int DUMMY> struct Arg<1, DUMMY> {
72619
 
    typedef ::Puma::CTree * Type;
72620
 
    typedef ::Puma::CTree * ReferredType;
72621
 
  };
72622
 
  template <int DUMMY> struct Arg<2, DUMMY> {
72623
 
    typedef ::Puma::CTree * Type;
72624
 
    typedef ::Puma::CTree * ReferredType;
72625
 
  };
72626
89466
 
72627
89467
  That *_that;
72628
89468
 
72631
89471
};
72632
89472
 
72633
89473
 
72634
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89474
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72635
89475
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
72636
 
#line 72637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89476
#line 89477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72637
89477
{
72638
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
72639
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
72640
 
this->__exec_old_C1(arg0, arg1, arg2);
72641
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
72642
 
 
 
89478
  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;
 
89479
    __TJP tjp;
 
89480
  tjp._that =  (__TJP::That*)this;
 
89481
    this->__exec_old_C1(arg0, arg1, arg2);
 
89482
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
89483
  
72643
89484
}
72644
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
72645
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89485
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
89486
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72646
89487
{
72647
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
89488
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
89489
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
72648
89490
  }
 
89491
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72649
89492
  static const char *NodeId ();
 
89493
  /** Get the name of the node. Can be compared with NodeId(). */
72650
89494
  const char *NodeName () const { return NodeId (); }
 
89495
  /** Get the number of sons. */
72651
89496
  int Sons () const { return CTree::Sons (sons, 4); }
 
89497
  /** Get the n-th son.
 
89498
   *  \param n The index of the son.
 
89499
   *  \return The n-th son or NULL. */
72652
89500
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
72653
89501
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
72654
89502
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
72655
89503
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
72656
89504
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
72657
89505
  CSemObject *SemObject () const { return (CSemObject*)this; }
72658
 
  void Members (CTree *m) { sons[3] = m; }
72659
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
72660
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
89506
  void Members (CTree *m) { AddSon (sons[3], m); }
 
89507
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
89508
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
89509
  /** Replace a son.
 
89510
   *  \param old_son The son to replace.
 
89511
   *  \param new_son The new son. */
72661
89512
  void ReplaceSon (CTree *old_son, CTree *new_son) {
72662
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
72663
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
89513
    CTree::ReplaceSon (sons, 4, old_son, new_son);
72664
89514
  }
72665
89515
   private:
72666
89516
 
72667
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
72668
 
 CTree * _intro_members ;
 
89517
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
89518
 Puma :: CTree * _intro_members ;
 
89519
Puma :: CTree * _base_intros ;
72669
89520
public :
72670
 
CTree * IntroMembers ( ) const { return _intro_members ; }
72671
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
72672
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72673
 
 
72674
 
#line 72675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
72675
 
 
72676
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
72677
 
  typedef void Result;
72678
 
  typedef ::Puma::CT_ClassDef That;
72679
 
  typedef ::Puma::CT_ClassDef Target;
72680
 
  static const int JPID = 4;
 
89521
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
89522
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
89523
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
89524
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
89525
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89526
 
 
89527
#line 89528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89528
 
 
89529
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
89530
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
89531
  typedef TResult Result;
 
89532
  typedef TThat   That;
 
89533
  typedef TTarget Target;
 
89534
  enum { ARGS = TArgs::ARGS };
 
89535
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
89536
  static const int JPID = 7249;
72681
89537
  static const AC::JPType JPTYPE = (AC::JPType)16;
72682
89538
  struct Res {
72683
89539
    typedef void Type;
72684
89540
    typedef void ReferredType;
72685
89541
  };
72686
 
  enum { ARGS = 1 };
72687
 
  template <int I, int DUMMY = 0> struct Arg {
72688
 
    typedef void Type;
72689
 
    typedef void ReferredType;
72690
 
  };
72691
 
  template <int DUMMY> struct Arg<0, DUMMY> {
72692
 
    typedef const ::Puma::CT_ClassDef & Type;
72693
 
    typedef const ::Puma::CT_ClassDef ReferredType;
72694
 
  };
72695
89542
 
72696
89543
  That *_that;
72697
89544
 
72700
89547
};
72701
89548
 
72702
89549
 
72703
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89550
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72704
89551
 
72705
 
#line 72706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89552
#line 89553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72706
89553
 
72707
89554
public:
72708
 
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) {
72709
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
72710
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
72711
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
89555
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) {
 
89556
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
89557
  __TJP tjp;
 
89558
  tjp._that =  (__TJP::That*)this;
 
89559
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
72712
89560
 
72713
89561
}
72714
89562
 
72715
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
72716
 
 
72717
 
#line 72718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
72718
 
 
72719
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
72720
 
  typedef void Result;
72721
 
  typedef ::Puma::CT_ClassDef That;
72722
 
  typedef ::Puma::CT_ClassDef Target;
72723
 
  static const int JPID = 4;
 
89563
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89564
 
 
89565
#line 89566 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89566
 
 
89567
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
89568
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
89569
  typedef TResult Result;
 
89570
  typedef TThat   That;
 
89571
  typedef TTarget Target;
 
89572
  enum { ARGS = TArgs::ARGS };
 
89573
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
89574
  static const int JPID = 7247;
72724
89575
  static const AC::JPType JPTYPE = (AC::JPType)32;
72725
89576
  struct Res {
72726
89577
    typedef void Type;
72727
89578
    typedef void ReferredType;
72728
89579
  };
72729
 
  enum { ARGS = 0 };
72730
 
  template <int I, int DUMMY = 0> struct Arg {
72731
 
    typedef void Type;
72732
 
    typedef void ReferredType;
72733
 
  };
72734
89580
 
72735
89581
  That *_that;
72736
89582
 
72739
89585
};
72740
89586
 
72741
89587
 
72742
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89588
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72743
89589
 
72744
 
#line 72745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89590
#line 89591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72745
89591
 
72746
89592
public:
72747
89593
inline ~CT_ClassDef () {
72748
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
72749
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
72750
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
89594
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
89595
  __TJP tjp;
 
89596
  tjp._that =  (__TJP::That*)this;
 
89597
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
72751
89598
 
72752
89599
}
72753
89600
 
72754
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89601
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72755
89602
};
72756
89603
      
72757
89604
 
72758
 
#line 72759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89605
#line 89606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72759
89606
} // closed Puma
 
89607
class CCExprResolve;
 
89608
class CExprResolve;
72760
89609
class WinIfExists;
72761
89610
class WinImportHandler;
72762
89611
class WinMacros;
72763
 
class CMatchSyntax;
72764
 
class ExtGnu;
 
89612
class WinAsm;
 
89613
class WinDeclSpecs;
 
89614
class WinMemberExplSpec;
 
89615
class WinTypeKeywords;
 
89616
class WinFriend;
72765
89617
class ExtAC;
72766
89618
class ExtACBuilderCoupling;
72767
89619
class ExtACSyntaxCoupling;
72768
89620
class ExtACTree;
72769
89621
class ExtACKeywords;
72770
 
class WinAsm;
72771
 
class WinDeclSpecs;
72772
 
class WinMemberExplSpec;
72773
 
class WinTypeKeywords;
 
89622
class ExtGnu;
72774
89623
class PragmaOnceUnitState;
72775
89624
class PragmaOnce;
72776
 
class CCExprResolve;
72777
 
class CExprResolve;
 
89625
class CMatchSyntax;
72778
89626
namespace Puma {
72779
89627
 
72780
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89628
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72781
89629
class CT_UnionDef : public CT_ClassDef {
72782
 
#line 72783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89630
#line 89631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89631
  friend class ::CCExprResolve;
 
89632
  friend class ::CExprResolve;
72783
89633
  friend class ::WinIfExists;
72784
89634
  friend class ::WinImportHandler;
72785
89635
  friend class ::WinMacros;
72786
 
  friend class ::CMatchSyntax;
72787
 
  friend class ::ExtGnu;
 
89636
  friend class ::WinAsm;
 
89637
  friend class ::WinDeclSpecs;
 
89638
  friend class ::WinMemberExplSpec;
 
89639
  friend class ::WinTypeKeywords;
 
89640
  friend class ::WinFriend;
72788
89641
  friend class ::ExtAC;
72789
89642
  friend class ::ExtACBuilderCoupling;
72790
89643
  friend class ::ExtACSyntaxCoupling;
72791
89644
  friend class ::ExtACTree;
72792
89645
  friend class ::ExtACKeywords;
72793
 
  friend class ::WinAsm;
72794
 
  friend class ::WinDeclSpecs;
72795
 
  friend class ::WinMemberExplSpec;
72796
 
  friend class ::WinTypeKeywords;
 
89646
  friend class ::ExtGnu;
72797
89647
  friend class ::PragmaOnceUnitState;
72798
89648
  friend class ::PragmaOnce;
72799
 
  friend class ::CCExprResolve;
72800
 
  friend class ::CExprResolve;
 
89649
  friend class ::CMatchSyntax;
72801
89650
 
72802
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89651
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72803
89652
 
72804
89653
public:
72805
89654
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
72806
89655
  static const char *NodeId ();
 
89656
  /** Get the name of the node. Can be compared with NodeId(). */
72807
89657
  const char *NodeName () const { return NodeId (); }
72808
89658
};
72809
89659
      
72810
89660
 
72811
 
#line 72812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89661
#line 89662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72812
89662
} // closed Puma
 
89663
class CCExprResolve;
 
89664
class CExprResolve;
72813
89665
class WinIfExists;
72814
89666
class WinImportHandler;
72815
89667
class WinMacros;
72816
 
class CMatchSyntax;
72817
 
class ExtGnu;
 
89668
class WinAsm;
 
89669
class WinDeclSpecs;
 
89670
class WinMemberExplSpec;
 
89671
class WinTypeKeywords;
 
89672
class WinFriend;
72818
89673
class ExtAC;
72819
89674
class ExtACBuilderCoupling;
72820
89675
class ExtACSyntaxCoupling;
72821
89676
class ExtACTree;
72822
89677
class ExtACKeywords;
72823
 
class WinAsm;
72824
 
class WinDeclSpecs;
72825
 
class WinMemberExplSpec;
72826
 
class WinTypeKeywords;
 
89678
class ExtGnu;
72827
89679
class PragmaOnceUnitState;
72828
89680
class PragmaOnce;
72829
 
class CCExprResolve;
72830
 
class CExprResolve;
 
89681
class CMatchSyntax;
72831
89682
namespace Puma {
72832
89683
 
72833
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89684
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72834
89685
class CT_MembList : public CT_DeclList, public CSemScope {
72835
 
#line 72836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89686
#line 89687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89687
  friend class ::CCExprResolve;
 
89688
  friend class ::CExprResolve;
72836
89689
  friend class ::WinIfExists;
72837
89690
  friend class ::WinImportHandler;
72838
89691
  friend class ::WinMacros;
72839
 
  friend class ::CMatchSyntax;
72840
 
  friend class ::ExtGnu;
 
89692
  friend class ::WinAsm;
 
89693
  friend class ::WinDeclSpecs;
 
89694
  friend class ::WinMemberExplSpec;
 
89695
  friend class ::WinTypeKeywords;
 
89696
  friend class ::WinFriend;
72841
89697
  friend class ::ExtAC;
72842
89698
  friend class ::ExtACBuilderCoupling;
72843
89699
  friend class ::ExtACSyntaxCoupling;
72844
89700
  friend class ::ExtACTree;
72845
89701
  friend class ::ExtACKeywords;
72846
 
  friend class ::WinAsm;
72847
 
  friend class ::WinDeclSpecs;
72848
 
  friend class ::WinMemberExplSpec;
72849
 
  friend class ::WinTypeKeywords;
 
89702
  friend class ::ExtGnu;
72850
89703
  friend class ::PragmaOnceUnitState;
72851
89704
  friend class ::PragmaOnce;
72852
 
  friend class ::CCExprResolve;
72853
 
  friend class ::CExprResolve;
 
89705
  friend class ::CMatchSyntax;
72854
89706
 
72855
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89707
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72856
89708
 
72857
89709
public:
72858
89710
  CT_MembList (int size = 10, int incr = 10) : 
72859
89711
    CT_DeclList (size, incr) {}
 
89712
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72860
89713
  static const char *NodeId ();
 
89714
  /** Get the name of the node. Can be compared with NodeId(). */
72861
89715
  const char *NodeName () const { return NodeId (); }
 
89716
  CSemScope *SemScope () const { return (CSemScope*)this; }
72862
89717
};
72863
89718
 
72864
89719
 
72865
 
#line 72866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89720
#line 89721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72866
89721
} // closed Puma
 
89722
class CCExprResolve;
 
89723
class CExprResolve;
72867
89724
class WinIfExists;
72868
89725
class WinImportHandler;
72869
89726
class WinMacros;
72870
 
class CMatchSyntax;
72871
 
class ExtGnu;
 
89727
class WinAsm;
 
89728
class WinDeclSpecs;
 
89729
class WinMemberExplSpec;
 
89730
class WinTypeKeywords;
 
89731
class WinFriend;
72872
89732
class ExtAC;
72873
89733
class ExtACBuilderCoupling;
72874
89734
class ExtACSyntaxCoupling;
72875
89735
class ExtACTree;
72876
89736
class ExtACKeywords;
72877
 
class WinAsm;
72878
 
class WinDeclSpecs;
72879
 
class WinMemberExplSpec;
72880
 
class WinTypeKeywords;
 
89737
class ExtGnu;
72881
89738
class PragmaOnceUnitState;
72882
89739
class PragmaOnce;
72883
 
class CCExprResolve;
72884
 
class CExprResolve;
 
89740
class CMatchSyntax;
72885
89741
namespace Puma {
72886
89742
 
72887
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89743
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72888
89744
class CT_MembInitList : public CT_List, public CSemScope {
72889
 
#line 72890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89745
#line 89746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89746
  friend class ::CCExprResolve;
 
89747
  friend class ::CExprResolve;
72890
89748
  friend class ::WinIfExists;
72891
89749
  friend class ::WinImportHandler;
72892
89750
  friend class ::WinMacros;
72893
 
  friend class ::CMatchSyntax;
72894
 
  friend class ::ExtGnu;
 
89751
  friend class ::WinAsm;
 
89752
  friend class ::WinDeclSpecs;
 
89753
  friend class ::WinMemberExplSpec;
 
89754
  friend class ::WinTypeKeywords;
 
89755
  friend class ::WinFriend;
72895
89756
  friend class ::ExtAC;
72896
89757
  friend class ::ExtACBuilderCoupling;
72897
89758
  friend class ::ExtACSyntaxCoupling;
72898
89759
  friend class ::ExtACTree;
72899
89760
  friend class ::ExtACKeywords;
72900
 
  friend class ::WinAsm;
72901
 
  friend class ::WinDeclSpecs;
72902
 
  friend class ::WinMemberExplSpec;
72903
 
  friend class ::WinTypeKeywords;
 
89761
  friend class ::ExtGnu;
72904
89762
  friend class ::PragmaOnceUnitState;
72905
89763
  friend class ::PragmaOnce;
72906
 
  friend class ::CCExprResolve;
72907
 
  friend class ::CExprResolve;
 
89764
  friend class ::CMatchSyntax;
72908
89765
 
72909
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89766
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72910
89767
 
72911
89768
public:
72912
89769
  CT_MembInitList (int size = 2) : 
72913
89770
    CT_List (size, 2, CT_List::OPEN) {}
72914
89771
  static const char *NodeId ();
 
89772
  /** Get the name of the node. Can be compared with NodeId(). */
72915
89773
  const char *NodeName () const { return NodeId (); }
 
89774
  CSemScope *SemScope () const { return (CSemScope*)this; }
72916
89775
};
72917
89776
 
72918
89777
 
72919
 
#line 72920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89778
#line 89779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72920
89779
} // closed Puma
 
89780
class CCExprResolve;
 
89781
class CExprResolve;
72921
89782
class WinIfExists;
72922
89783
class WinImportHandler;
72923
89784
class WinMacros;
72924
 
class CMatchSyntax;
72925
 
class ExtGnu;
 
89785
class WinAsm;
 
89786
class WinDeclSpecs;
 
89787
class WinMemberExplSpec;
 
89788
class WinTypeKeywords;
 
89789
class WinFriend;
72926
89790
class ExtAC;
72927
89791
class ExtACBuilderCoupling;
72928
89792
class ExtACSyntaxCoupling;
72929
89793
class ExtACTree;
72930
89794
class ExtACKeywords;
72931
 
class WinAsm;
72932
 
class WinDeclSpecs;
72933
 
class WinMemberExplSpec;
72934
 
class WinTypeKeywords;
 
89795
class ExtGnu;
72935
89796
class PragmaOnceUnitState;
72936
89797
class PragmaOnce;
72937
 
class CCExprResolve;
72938
 
class CExprResolve;
72939
 
namespace Puma {
72940
 
 
72941
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89798
class CMatchSyntax;
 
89799
namespace Puma {
 
89800
 
 
89801
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89802
 
 
89803
#line 89804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89804
} // closed Puma
 
89805
 
 
89806
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
89807
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
89808
#include "CCExprResolveH.ah"
 
89809
#endif
 
89810
namespace Puma {
 
89811
 
 
89812
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89813
 
 
89814
#line 89815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89815
} // closed Puma
 
89816
 
 
89817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
89818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
89819
#include "CExprResolveH.ah"
 
89820
#endif
 
89821
namespace Puma {
 
89822
 
 
89823
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72942
89824
class CT_MembInit : public CT_Expression, public CSemObject {
72943
 
#line 72944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89825
#line 89826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89826
  friend class ::CCExprResolve;
 
89827
  friend class ::CExprResolve;
72944
89828
  friend class ::WinIfExists;
72945
89829
  friend class ::WinImportHandler;
72946
89830
  friend class ::WinMacros;
72947
 
  friend class ::CMatchSyntax;
72948
 
  friend class ::ExtGnu;
 
89831
  friend class ::WinAsm;
 
89832
  friend class ::WinDeclSpecs;
 
89833
  friend class ::WinMemberExplSpec;
 
89834
  friend class ::WinTypeKeywords;
 
89835
  friend class ::WinFriend;
72949
89836
  friend class ::ExtAC;
72950
89837
  friend class ::ExtACBuilderCoupling;
72951
89838
  friend class ::ExtACSyntaxCoupling;
72952
89839
  friend class ::ExtACTree;
72953
89840
  friend class ::ExtACKeywords;
72954
 
  friend class ::WinAsm;
72955
 
  friend class ::WinDeclSpecs;
72956
 
  friend class ::WinMemberExplSpec;
72957
 
  friend class ::WinTypeKeywords;
 
89841
  friend class ::ExtGnu;
72958
89842
  friend class ::PragmaOnceUnitState;
72959
89843
  friend class ::PragmaOnce;
72960
 
  friend class ::CCExprResolve;
72961
 
  friend class ::CExprResolve;
 
89844
  friend class ::CMatchSyntax;
72962
89845
 
72963
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89846
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72964
89847
 
72965
89848
  CTree *sons[2]; // name, init
72966
89849
 
72967
89850
public:
72968
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
89851
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
89852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
72969
89853
  static const char *NodeId ();
 
89854
  /** Get the name of the node. Can be compared with NodeId(). */
72970
89855
  const char *NodeName () const { return NodeId (); }
 
89856
  /** Get the number of sons. */
72971
89857
  int Sons () const { return 2; }
 
89858
  /** Get the n-th son.
 
89859
   *  \param n The index of the son.
 
89860
   *  \return The n-th son or NULL. */
72972
89861
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
89862
  /** Replace a son.
 
89863
   *  \param old_son The son to replace.
 
89864
   *  \param new_son The new son. */
72973
89865
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
72974
89866
    CTree::ReplaceSon (sons, 2, old_son, new_son);
72975
89867
  }
72979
89871
   private:
72980
89872
  typedef CT_MembInit CCExprResolveExpr;
72981
89873
 
72982
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
89874
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
72983
89875
 public :
72984
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
89876
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
72985
89877
  typedef CT_MembInit CExprResolveExpr;
72986
89878
 
72987
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
89879
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
72988
89880
 public :
72989
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
72990
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89881
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
89882
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
72991
89883
};
72992
89884
 
72993
89885
 
72994
 
#line 72995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89886
#line 89887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
72995
89887
} // closed Puma
 
89888
class CCExprResolve;
 
89889
class CExprResolve;
72996
89890
class WinIfExists;
72997
89891
class WinImportHandler;
72998
89892
class WinMacros;
72999
 
class CMatchSyntax;
73000
 
class ExtGnu;
 
89893
class WinAsm;
 
89894
class WinDeclSpecs;
 
89895
class WinMemberExplSpec;
 
89896
class WinTypeKeywords;
 
89897
class WinFriend;
73001
89898
class ExtAC;
73002
89899
class ExtACBuilderCoupling;
73003
89900
class ExtACSyntaxCoupling;
73004
89901
class ExtACTree;
73005
89902
class ExtACKeywords;
73006
 
class WinAsm;
73007
 
class WinDeclSpecs;
73008
 
class WinMemberExplSpec;
73009
 
class WinTypeKeywords;
 
89903
class ExtGnu;
73010
89904
class PragmaOnceUnitState;
73011
89905
class PragmaOnce;
73012
 
class CCExprResolve;
73013
 
class CExprResolve;
 
89906
class CMatchSyntax;
73014
89907
namespace Puma {
73015
89908
 
73016
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89909
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73017
89910
class CT_BaseSpecList : public CT_List {
73018
 
#line 73019 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89911
#line 89912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89912
  friend class ::CCExprResolve;
 
89913
  friend class ::CExprResolve;
73019
89914
  friend class ::WinIfExists;
73020
89915
  friend class ::WinImportHandler;
73021
89916
  friend class ::WinMacros;
73022
 
  friend class ::CMatchSyntax;
73023
 
  friend class ::ExtGnu;
 
89917
  friend class ::WinAsm;
 
89918
  friend class ::WinDeclSpecs;
 
89919
  friend class ::WinMemberExplSpec;
 
89920
  friend class ::WinTypeKeywords;
 
89921
  friend class ::WinFriend;
73024
89922
  friend class ::ExtAC;
73025
89923
  friend class ::ExtACBuilderCoupling;
73026
89924
  friend class ::ExtACSyntaxCoupling;
73027
89925
  friend class ::ExtACTree;
73028
89926
  friend class ::ExtACKeywords;
73029
 
  friend class ::WinAsm;
73030
 
  friend class ::WinDeclSpecs;
73031
 
  friend class ::WinMemberExplSpec;
73032
 
  friend class ::WinTypeKeywords;
 
89927
  friend class ::ExtGnu;
73033
89928
  friend class ::PragmaOnceUnitState;
73034
89929
  friend class ::PragmaOnce;
73035
 
  friend class ::CCExprResolve;
73036
 
  friend class ::CExprResolve;
 
89930
  friend class ::CMatchSyntax;
73037
89931
 
73038
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89932
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73039
89933
 
73040
89934
public:
73041
89935
  CT_BaseSpecList (int size = 2) : 
73042
89936
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
89937
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73043
89938
  static const char *NodeId ();
 
89939
  /** Get the name of the node. Can be compared with NodeId(). */
73044
89940
  const char *NodeName () const { return NodeId (); }
73045
89941
};
73046
89942
 
73047
89943
 
73048
 
#line 73049 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89944
#line 89945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73049
89945
} // closed Puma
 
89946
class CCExprResolve;
 
89947
class CExprResolve;
73050
89948
class WinIfExists;
73051
89949
class WinImportHandler;
73052
89950
class WinMacros;
73053
 
class CMatchSyntax;
73054
 
class ExtGnu;
 
89951
class WinAsm;
 
89952
class WinDeclSpecs;
 
89953
class WinMemberExplSpec;
 
89954
class WinTypeKeywords;
 
89955
class WinFriend;
73055
89956
class ExtAC;
73056
89957
class ExtACBuilderCoupling;
73057
89958
class ExtACSyntaxCoupling;
73058
89959
class ExtACTree;
73059
89960
class ExtACKeywords;
73060
 
class WinAsm;
73061
 
class WinDeclSpecs;
73062
 
class WinMemberExplSpec;
73063
 
class WinTypeKeywords;
 
89961
class ExtGnu;
73064
89962
class PragmaOnceUnitState;
73065
89963
class PragmaOnce;
73066
 
class CCExprResolve;
73067
 
class CExprResolve;
 
89964
class CMatchSyntax;
73068
89965
namespace Puma {
73069
89966
 
73070
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89967
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73071
89968
class CT_AccessSpec : public CTree {
73072
 
#line 73073 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
89969
#line 89970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
89970
  friend class ::CCExprResolve;
 
89971
  friend class ::CExprResolve;
73073
89972
  friend class ::WinIfExists;
73074
89973
  friend class ::WinImportHandler;
73075
89974
  friend class ::WinMacros;
73076
 
  friend class ::CMatchSyntax;
73077
 
  friend class ::ExtGnu;
 
89975
  friend class ::WinAsm;
 
89976
  friend class ::WinDeclSpecs;
 
89977
  friend class ::WinMemberExplSpec;
 
89978
  friend class ::WinTypeKeywords;
 
89979
  friend class ::WinFriend;
73078
89980
  friend class ::ExtAC;
73079
89981
  friend class ::ExtACBuilderCoupling;
73080
89982
  friend class ::ExtACSyntaxCoupling;
73081
89983
  friend class ::ExtACTree;
73082
89984
  friend class ::ExtACKeywords;
73083
 
  friend class ::WinAsm;
73084
 
  friend class ::WinDeclSpecs;
73085
 
  friend class ::WinMemberExplSpec;
73086
 
  friend class ::WinTypeKeywords;
 
89985
  friend class ::ExtGnu;
73087
89986
  friend class ::PragmaOnceUnitState;
73088
89987
  friend class ::PragmaOnce;
73089
 
  friend class ::CCExprResolve;
73090
 
  friend class ::CExprResolve;
 
89988
  friend class ::CMatchSyntax;
73091
89989
 
73092
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
89990
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73093
89991
 
73094
89992
  CTree *sons[2]; // access, colon
73095
89993
 
73096
89994
public:
73097
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
89995
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
89996
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73098
89997
  static const char *NodeId ();
 
89998
  /** Get the name of the node. Can be compared with NodeId(). */
73099
89999
  const char *NodeName () const { return NodeId (); }
 
90000
  /** Get the number of sons. */
73100
90001
  int Sons () const { return 2; }
 
90002
  /** Get the n-th son.
 
90003
   *  \param n The index of the son.
 
90004
   *  \return The n-th son or NULL. */
73101
90005
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
73102
90006
  int Access () const { return sons[0]->token ()->type (); }
 
90007
  /** Replace a son.
 
90008
   *  \param old_son The son to replace.
 
90009
   *  \param new_son The new son. */
73103
90010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73104
90011
    CTree::ReplaceSon (sons, 2, old_son, new_son);
73105
90012
  }
73106
90013
};
73107
90014
 
73108
90015
 
73109
 
#line 73110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90016
#line 90017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73110
90017
} // closed Puma
 
90018
class CCExprResolve;
 
90019
class CExprResolve;
73111
90020
class WinIfExists;
73112
90021
class WinImportHandler;
73113
90022
class WinMacros;
73114
 
class CMatchSyntax;
73115
 
class ExtGnu;
 
90023
class WinAsm;
 
90024
class WinDeclSpecs;
 
90025
class WinMemberExplSpec;
 
90026
class WinTypeKeywords;
 
90027
class WinFriend;
73116
90028
class ExtAC;
73117
90029
class ExtACBuilderCoupling;
73118
90030
class ExtACSyntaxCoupling;
73119
90031
class ExtACTree;
73120
90032
class ExtACKeywords;
73121
 
class WinAsm;
73122
 
class WinDeclSpecs;
73123
 
class WinMemberExplSpec;
73124
 
class WinTypeKeywords;
 
90033
class ExtGnu;
73125
90034
class PragmaOnceUnitState;
73126
90035
class PragmaOnce;
73127
 
class CCExprResolve;
73128
 
class CExprResolve;
 
90036
class CMatchSyntax;
73129
90037
namespace Puma {
73130
90038
 
73131
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90039
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73132
90040
class CT_BaseSpec : public CTree {
73133
 
#line 73134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90041
#line 90042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90042
  friend class ::CCExprResolve;
 
90043
  friend class ::CExprResolve;
73134
90044
  friend class ::WinIfExists;
73135
90045
  friend class ::WinImportHandler;
73136
90046
  friend class ::WinMacros;
73137
 
  friend class ::CMatchSyntax;
73138
 
  friend class ::ExtGnu;
 
90047
  friend class ::WinAsm;
 
90048
  friend class ::WinDeclSpecs;
 
90049
  friend class ::WinMemberExplSpec;
 
90050
  friend class ::WinTypeKeywords;
 
90051
  friend class ::WinFriend;
73139
90052
  friend class ::ExtAC;
73140
90053
  friend class ::ExtACBuilderCoupling;
73141
90054
  friend class ::ExtACSyntaxCoupling;
73142
90055
  friend class ::ExtACTree;
73143
90056
  friend class ::ExtACKeywords;
73144
 
  friend class ::WinAsm;
73145
 
  friend class ::WinDeclSpecs;
73146
 
  friend class ::WinMemberExplSpec;
73147
 
  friend class ::WinTypeKeywords;
 
90057
  friend class ::ExtGnu;
73148
90058
  friend class ::PragmaOnceUnitState;
73149
90059
  friend class ::PragmaOnce;
73150
 
  friend class ::CCExprResolve;
73151
 
  friend class ::CExprResolve;
 
90060
  friend class ::CMatchSyntax;
73152
90061
 
73153
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90062
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73154
90063
 
73155
90064
  CTree *sons[3]; // virtual, access, name
73156
90065
 
73157
90066
public:
73158
90067
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
73159
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
90068
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
73160
90069
  }
 
90070
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73161
90071
  static const char *NodeId ();
 
90072
  /** Get the name of the node. Can be compared with NodeId(). */
73162
90073
  const char *NodeName () const { return NodeId (); }
 
90074
  /** Get the number of sons. */
73163
90075
  int Sons () const { return CTree::Sons (sons, 3); }
 
90076
  /** Get the n-th son.
 
90077
   *  \param n The index of the son.
 
90078
   *  \return The n-th son or NULL. */
73164
90079
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
73165
90080
  int Access () const { return sons[1]->token ()->type (); }
73166
90081
  CTree *AccessSpec () const { return sons[1]; }
73167
90082
  CTree *Virtual () const { return sons[0]; }
73168
90083
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
90084
  /** Replace a son.
 
90085
   *  \param old_son The son to replace.
 
90086
   *  \param new_son The new son. */
73169
90087
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73170
90088
    CTree::ReplaceSon (sons, 3, old_son, new_son);
73171
90089
  }
73172
90090
};
73173
90091
 
73174
90092
 
73175
 
#line 73176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90093
#line 90094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73176
90094
} // closed Puma
 
90095
class CCExprResolve;
 
90096
class CExprResolve;
73177
90097
class WinIfExists;
73178
90098
class WinImportHandler;
73179
90099
class WinMacros;
73180
 
class CMatchSyntax;
73181
 
class ExtGnu;
 
90100
class WinAsm;
 
90101
class WinDeclSpecs;
 
90102
class WinMemberExplSpec;
 
90103
class WinTypeKeywords;
 
90104
class WinFriend;
73182
90105
class ExtAC;
73183
90106
class ExtACBuilderCoupling;
73184
90107
class ExtACSyntaxCoupling;
73185
90108
class ExtACTree;
73186
90109
class ExtACKeywords;
73187
 
class WinAsm;
73188
 
class WinDeclSpecs;
73189
 
class WinMemberExplSpec;
73190
 
class WinTypeKeywords;
 
90110
class ExtGnu;
73191
90111
class PragmaOnceUnitState;
73192
90112
class PragmaOnce;
73193
 
class CCExprResolve;
73194
 
class CExprResolve;
 
90113
class CMatchSyntax;
73195
90114
namespace Puma {
73196
90115
 
73197
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90116
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73198
90117
class CT_AccessDecl : public CT_Decl {
73199
 
#line 73200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90118
#line 90119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90119
  friend class ::CCExprResolve;
 
90120
  friend class ::CExprResolve;
73200
90121
  friend class ::WinIfExists;
73201
90122
  friend class ::WinImportHandler;
73202
90123
  friend class ::WinMacros;
73203
 
  friend class ::CMatchSyntax;
73204
 
  friend class ::ExtGnu;
 
90124
  friend class ::WinAsm;
 
90125
  friend class ::WinDeclSpecs;
 
90126
  friend class ::WinMemberExplSpec;
 
90127
  friend class ::WinTypeKeywords;
 
90128
  friend class ::WinFriend;
73205
90129
  friend class ::ExtAC;
73206
90130
  friend class ::ExtACBuilderCoupling;
73207
90131
  friend class ::ExtACSyntaxCoupling;
73208
90132
  friend class ::ExtACTree;
73209
90133
  friend class ::ExtACKeywords;
73210
 
  friend class ::WinAsm;
73211
 
  friend class ::WinDeclSpecs;
73212
 
  friend class ::WinMemberExplSpec;
73213
 
  friend class ::WinTypeKeywords;
 
90134
  friend class ::ExtGnu;
73214
90135
  friend class ::PragmaOnceUnitState;
73215
90136
  friend class ::PragmaOnce;
73216
 
  friend class ::CCExprResolve;
73217
 
  friend class ::CExprResolve;
 
90137
  friend class ::CMatchSyntax;
73218
90138
 
73219
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90139
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73220
90140
 
73221
90141
  CTree *sons[2]; // name, semi_colon
73222
90142
 
73223
90143
public:
73224
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
90144
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
90145
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73225
90146
  static const char *NodeId ();
 
90147
  /** Get the name of the node. Can be compared with NodeId(). */
73226
90148
  const char *NodeName () const { return NodeId (); }
 
90149
  /** Get the number of sons. */
73227
90150
  int Sons () const { return 2; }
 
90151
  /** Get the n-th son.
 
90152
   *  \param n The index of the son.
 
90153
   *  \return The n-th son or NULL. */
73228
90154
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
73229
90155
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
90156
  /** Replace a son.
 
90157
   *  \param old_son The son to replace.
 
90158
   *  \param new_son The new son. */
73230
90159
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73231
90160
    CTree::ReplaceSon (sons, 2, old_son, new_son);
73232
90161
  }
73233
90162
};
73234
90163
 
73235
90164
 
73236
 
#line 73237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90165
#line 90166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73237
90166
} // closed Puma
 
90167
class CCExprResolve;
 
90168
class CExprResolve;
73238
90169
class WinIfExists;
73239
90170
class WinImportHandler;
73240
90171
class WinMacros;
73241
 
class CMatchSyntax;
73242
 
class ExtGnu;
 
90172
class WinAsm;
 
90173
class WinDeclSpecs;
 
90174
class WinMemberExplSpec;
 
90175
class WinTypeKeywords;
 
90176
class WinFriend;
73243
90177
class ExtAC;
73244
90178
class ExtACBuilderCoupling;
73245
90179
class ExtACSyntaxCoupling;
73246
90180
class ExtACTree;
73247
90181
class ExtACKeywords;
73248
 
class WinAsm;
73249
 
class WinDeclSpecs;
73250
 
class WinMemberExplSpec;
73251
 
class WinTypeKeywords;
 
90182
class ExtGnu;
73252
90183
class PragmaOnceUnitState;
73253
90184
class PragmaOnce;
73254
 
class CCExprResolve;
73255
 
class CExprResolve;
 
90185
class CMatchSyntax;
73256
90186
namespace Puma {
73257
90187
 
73258
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90188
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73259
90189
class CT_UsingDecl : public CT_AccessDecl {
73260
 
#line 73261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90190
#line 90191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90191
  friend class ::CCExprResolve;
 
90192
  friend class ::CExprResolve;
73261
90193
  friend class ::WinIfExists;
73262
90194
  friend class ::WinImportHandler;
73263
90195
  friend class ::WinMacros;
73264
 
  friend class ::CMatchSyntax;
73265
 
  friend class ::ExtGnu;
 
90196
  friend class ::WinAsm;
 
90197
  friend class ::WinDeclSpecs;
 
90198
  friend class ::WinMemberExplSpec;
 
90199
  friend class ::WinTypeKeywords;
 
90200
  friend class ::WinFriend;
73266
90201
  friend class ::ExtAC;
73267
90202
  friend class ::ExtACBuilderCoupling;
73268
90203
  friend class ::ExtACSyntaxCoupling;
73269
90204
  friend class ::ExtACTree;
73270
90205
  friend class ::ExtACKeywords;
73271
 
  friend class ::WinAsm;
73272
 
  friend class ::WinDeclSpecs;
73273
 
  friend class ::WinMemberExplSpec;
73274
 
  friend class ::WinTypeKeywords;
 
90206
  friend class ::ExtGnu;
73275
90207
  friend class ::PragmaOnceUnitState;
73276
90208
  friend class ::PragmaOnce;
73277
 
  friend class ::CCExprResolve;
73278
 
  friend class ::CExprResolve;
 
90209
  friend class ::CMatchSyntax;
73279
90210
 
73280
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90211
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73281
90212
 
73282
90213
  CTree *sons[2]; // using, typename
73283
90214
 
73284
90215
public:
73285
90216
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
73286
 
    sons[0] = u; sons[1] = 0; 
 
90217
    AddSon (sons[0], u); AddSon (sons[1], 0); 
73287
90218
  }
73288
90219
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
73289
 
    sons[0] = u; sons[1] = t; 
 
90220
    AddSon (sons[0], u); AddSon (sons[1], t); 
73290
90221
  }
 
90222
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73291
90223
  static const char *NodeId ();
 
90224
  /** Get the name of the node. Can be compared with NodeId(). */
73292
90225
  const char *NodeName () const { return NodeId (); }
 
90226
  /** Get the number of sons. */
73293
90227
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
90228
  /** Get the n-th son.
 
90229
   *  \param n The index of the son.
 
90230
   *  \return The n-th son or NULL. */
73294
90231
  CTree *Son (int n) const {
73295
90232
    int num = CTree::Sons (sons, 2);
73296
90233
    CTree *result = CTree::Son (sons, 2, n);
73297
90234
    return result ? result : CT_AccessDecl::Son (n-num);
73298
90235
  }
73299
90236
  CTree *Typename () const { return sons[1]; }
 
90237
  /** Replace a son.
 
90238
   *  \param old_son The son to replace.
 
90239
   *  \param new_son The new son. */
73300
90240
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73301
90241
    CTree::ReplaceSon (sons, 2, old_son, new_son);
73302
90242
    CT_AccessDecl::ReplaceSon (old_son, new_son);
73310
90250
/*****************************************************************************/
73311
90251
 
73312
90252
 
73313
 
#line 73314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90253
#line 90254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73314
90254
} // closed Puma
 
90255
class CCExprResolve;
 
90256
class CExprResolve;
73315
90257
class WinIfExists;
73316
90258
class WinImportHandler;
73317
90259
class WinMacros;
73318
 
class CMatchSyntax;
73319
 
class ExtGnu;
 
90260
class WinAsm;
 
90261
class WinDeclSpecs;
 
90262
class WinMemberExplSpec;
 
90263
class WinTypeKeywords;
 
90264
class WinFriend;
73320
90265
class ExtAC;
73321
90266
class ExtACBuilderCoupling;
73322
90267
class ExtACSyntaxCoupling;
73323
90268
class ExtACTree;
73324
90269
class ExtACKeywords;
73325
 
class WinAsm;
73326
 
class WinDeclSpecs;
73327
 
class WinMemberExplSpec;
73328
 
class WinTypeKeywords;
 
90270
class ExtGnu;
73329
90271
class PragmaOnceUnitState;
73330
90272
class PragmaOnce;
73331
 
class CCExprResolve;
73332
 
class CExprResolve;
 
90273
class CMatchSyntax;
73333
90274
namespace Puma {
73334
90275
 
73335
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90276
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73336
90277
class CT_Any : public CTree {
73337
 
#line 73338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90278
#line 90279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90279
  friend class ::CCExprResolve;
 
90280
  friend class ::CExprResolve;
73338
90281
  friend class ::WinIfExists;
73339
90282
  friend class ::WinImportHandler;
73340
90283
  friend class ::WinMacros;
73341
 
  friend class ::CMatchSyntax;
73342
 
  friend class ::ExtGnu;
 
90284
  friend class ::WinAsm;
 
90285
  friend class ::WinDeclSpecs;
 
90286
  friend class ::WinMemberExplSpec;
 
90287
  friend class ::WinTypeKeywords;
 
90288
  friend class ::WinFriend;
73343
90289
  friend class ::ExtAC;
73344
90290
  friend class ::ExtACBuilderCoupling;
73345
90291
  friend class ::ExtACSyntaxCoupling;
73346
90292
  friend class ::ExtACTree;
73347
90293
  friend class ::ExtACKeywords;
73348
 
  friend class ::WinAsm;
73349
 
  friend class ::WinDeclSpecs;
73350
 
  friend class ::WinMemberExplSpec;
73351
 
  friend class ::WinTypeKeywords;
 
90294
  friend class ::ExtGnu;
73352
90295
  friend class ::PragmaOnceUnitState;
73353
90296
  friend class ::PragmaOnce;
73354
 
  friend class ::CCExprResolve;
73355
 
  friend class ::CExprResolve;
 
90297
  friend class ::CMatchSyntax;
73356
90298
 
73357
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90299
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73358
90300
 
73359
90301
  CTree *sons[2]; // keyword, extension
73360
90302
 
73361
90303
public:
73362
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
90304
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
90305
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73363
90306
  static const char *NodeId ();
 
90307
  /** Get the name of the node. Can be compared with NodeId(). */
73364
90308
  const char *NodeName () const { return NodeId (); }
 
90309
  /** Get the number of sons. */
73365
90310
  int Sons () const { return CTree::Sons (sons, 2); }
 
90311
  /** Get the n-th son.
 
90312
   *  \param n The index of the son.
 
90313
   *  \return The n-th son or NULL. */
73366
90314
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
90315
  /** Replace a son.
 
90316
   *  \param old_son The son to replace.
 
90317
   *  \param new_son The new son. */
73367
90318
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73368
90319
    CTree::ReplaceSon (sons, 2, old_son, new_son);
73369
90320
  }
73372
90323
};
73373
90324
 
73374
90325
 
73375
 
#line 73376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90326
#line 90327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73376
90327
} // closed Puma
 
90328
class CCExprResolve;
 
90329
class CExprResolve;
73377
90330
class WinIfExists;
73378
90331
class WinImportHandler;
73379
90332
class WinMacros;
73380
 
class CMatchSyntax;
73381
 
class ExtGnu;
 
90333
class WinAsm;
 
90334
class WinDeclSpecs;
 
90335
class WinMemberExplSpec;
 
90336
class WinTypeKeywords;
 
90337
class WinFriend;
73382
90338
class ExtAC;
73383
90339
class ExtACBuilderCoupling;
73384
90340
class ExtACSyntaxCoupling;
73385
90341
class ExtACTree;
73386
90342
class ExtACKeywords;
73387
 
class WinAsm;
73388
 
class WinDeclSpecs;
73389
 
class WinMemberExplSpec;
73390
 
class WinTypeKeywords;
 
90343
class ExtGnu;
73391
90344
class PragmaOnceUnitState;
73392
90345
class PragmaOnce;
73393
 
class CCExprResolve;
73394
 
class CExprResolve;
 
90346
class CMatchSyntax;
73395
90347
namespace Puma {
73396
90348
 
73397
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90349
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73398
90350
class CT_AnyList : public CT_Any {
73399
 
#line 73400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90351
#line 90352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90352
  friend class ::CCExprResolve;
 
90353
  friend class ::CExprResolve;
73400
90354
  friend class ::WinIfExists;
73401
90355
  friend class ::WinImportHandler;
73402
90356
  friend class ::WinMacros;
73403
 
  friend class ::CMatchSyntax;
73404
 
  friend class ::ExtGnu;
 
90357
  friend class ::WinAsm;
 
90358
  friend class ::WinDeclSpecs;
 
90359
  friend class ::WinMemberExplSpec;
 
90360
  friend class ::WinTypeKeywords;
 
90361
  friend class ::WinFriend;
73405
90362
  friend class ::ExtAC;
73406
90363
  friend class ::ExtACBuilderCoupling;
73407
90364
  friend class ::ExtACSyntaxCoupling;
73408
90365
  friend class ::ExtACTree;
73409
90366
  friend class ::ExtACKeywords;
73410
 
  friend class ::WinAsm;
73411
 
  friend class ::WinDeclSpecs;
73412
 
  friend class ::WinMemberExplSpec;
73413
 
  friend class ::WinTypeKeywords;
 
90367
  friend class ::ExtGnu;
73414
90368
  friend class ::PragmaOnceUnitState;
73415
90369
  friend class ::PragmaOnce;
73416
 
  friend class ::CCExprResolve;
73417
 
  friend class ::CExprResolve;
 
90370
  friend class ::CMatchSyntax;
73418
90371
 
73419
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90372
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73420
90373
 
73421
90374
public:
73422
90375
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
90376
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73423
90377
  static const char *NodeId ();
 
90378
  /** Get the name of the node. Can be compared with NodeId(). */
73424
90379
  const char *NodeName () const { return NodeId (); }
73425
90380
};
73426
90381
 
73427
90382
 
73428
 
#line 73429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90383
#line 90384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73429
90384
} // closed Puma
 
90385
class CCExprResolve;
 
90386
class CExprResolve;
73430
90387
class WinIfExists;
73431
90388
class WinImportHandler;
73432
90389
class WinMacros;
73433
 
class CMatchSyntax;
73434
 
class ExtGnu;
 
90390
class WinAsm;
 
90391
class WinDeclSpecs;
 
90392
class WinMemberExplSpec;
 
90393
class WinTypeKeywords;
 
90394
class WinFriend;
73435
90395
class ExtAC;
73436
90396
class ExtACBuilderCoupling;
73437
90397
class ExtACSyntaxCoupling;
73438
90398
class ExtACTree;
73439
90399
class ExtACKeywords;
73440
 
class WinAsm;
73441
 
class WinDeclSpecs;
73442
 
class WinMemberExplSpec;
73443
 
class WinTypeKeywords;
 
90400
class ExtGnu;
73444
90401
class PragmaOnceUnitState;
73445
90402
class PragmaOnce;
73446
 
class CCExprResolve;
73447
 
class CExprResolve;
 
90403
class CMatchSyntax;
73448
90404
namespace Puma {
73449
90405
 
73450
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90406
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73451
90407
class CT_AnyExtension : public CTree, public CSemValue {
73452
 
#line 73453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90408
#line 90409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90409
  friend class ::CCExprResolve;
 
90410
  friend class ::CExprResolve;
73453
90411
  friend class ::WinIfExists;
73454
90412
  friend class ::WinImportHandler;
73455
90413
  friend class ::WinMacros;
73456
 
  friend class ::CMatchSyntax;
73457
 
  friend class ::ExtGnu;
 
90414
  friend class ::WinAsm;
 
90415
  friend class ::WinDeclSpecs;
 
90416
  friend class ::WinMemberExplSpec;
 
90417
  friend class ::WinTypeKeywords;
 
90418
  friend class ::WinFriend;
73458
90419
  friend class ::ExtAC;
73459
90420
  friend class ::ExtACBuilderCoupling;
73460
90421
  friend class ::ExtACSyntaxCoupling;
73461
90422
  friend class ::ExtACTree;
73462
90423
  friend class ::ExtACKeywords;
73463
 
  friend class ::WinAsm;
73464
 
  friend class ::WinDeclSpecs;
73465
 
  friend class ::WinMemberExplSpec;
73466
 
  friend class ::WinTypeKeywords;
 
90424
  friend class ::ExtGnu;
73467
90425
  friend class ::PragmaOnceUnitState;
73468
90426
  friend class ::PragmaOnce;
73469
 
  friend class ::CCExprResolve;
73470
 
  friend class ::CExprResolve;
 
90427
  friend class ::CMatchSyntax;
73471
90428
 
73472
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90429
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73473
90430
 
73474
90431
  CTree *sons[5]; // open, string, comma, cond, close
73475
90432
 
73476
90433
public:
73477
90434
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
73478
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
90435
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
90436
    AddSon (sons[3], c); AddSon (sons[4], cr); 
73479
90437
  }
 
90438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73480
90439
  static const char *NodeId ();
 
90440
  /** Get the name of the node. Can be compared with NodeId(). */
73481
90441
  const char *NodeName () const { return NodeId (); }
 
90442
  /** Get the number of sons. */
73482
90443
  int Sons () const { return CTree::Sons (sons, 5); }
 
90444
  /** Get the n-th son.
 
90445
   *  \param n The index of the son.
 
90446
   *  \return The n-th son or NULL. */
73483
90447
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
90448
  /** Replace a son.
 
90449
   *  \param old_son The son to replace.
 
90450
   *  \param new_son The new son. */
73484
90451
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73485
90452
    CTree::ReplaceSon (sons, 5, old_son, new_son);
73486
90453
  }
73494
90461
};
73495
90462
 
73496
90463
 
73497
 
#line 73498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90464
#line 90465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73498
90465
} // closed Puma
 
90466
class CCExprResolve;
 
90467
class CExprResolve;
73499
90468
class WinIfExists;
73500
90469
class WinImportHandler;
73501
90470
class WinMacros;
73502
 
class CMatchSyntax;
73503
 
class ExtGnu;
 
90471
class WinAsm;
 
90472
class WinDeclSpecs;
 
90473
class WinMemberExplSpec;
 
90474
class WinTypeKeywords;
 
90475
class WinFriend;
73504
90476
class ExtAC;
73505
90477
class ExtACBuilderCoupling;
73506
90478
class ExtACSyntaxCoupling;
73507
90479
class ExtACTree;
73508
90480
class ExtACKeywords;
73509
 
class WinAsm;
73510
 
class WinDeclSpecs;
73511
 
class WinMemberExplSpec;
73512
 
class WinTypeKeywords;
 
90481
class ExtGnu;
73513
90482
class PragmaOnceUnitState;
73514
90483
class PragmaOnce;
73515
 
class CCExprResolve;
73516
 
class CExprResolve;
 
90484
class CMatchSyntax;
73517
90485
namespace Puma {
73518
90486
 
73519
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90487
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73520
90488
class CT_AnyCondition : public CTree {
73521
 
#line 73522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90489
#line 90490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90490
  friend class ::CCExprResolve;
 
90491
  friend class ::CExprResolve;
73522
90492
  friend class ::WinIfExists;
73523
90493
  friend class ::WinImportHandler;
73524
90494
  friend class ::WinMacros;
73525
 
  friend class ::CMatchSyntax;
73526
 
  friend class ::ExtGnu;
 
90495
  friend class ::WinAsm;
 
90496
  friend class ::WinDeclSpecs;
 
90497
  friend class ::WinMemberExplSpec;
 
90498
  friend class ::WinTypeKeywords;
 
90499
  friend class ::WinFriend;
73527
90500
  friend class ::ExtAC;
73528
90501
  friend class ::ExtACBuilderCoupling;
73529
90502
  friend class ::ExtACSyntaxCoupling;
73530
90503
  friend class ::ExtACTree;
73531
90504
  friend class ::ExtACKeywords;
73532
 
  friend class ::WinAsm;
73533
 
  friend class ::WinDeclSpecs;
73534
 
  friend class ::WinMemberExplSpec;
73535
 
  friend class ::WinTypeKeywords;
 
90505
  friend class ::ExtGnu;
73536
90506
  friend class ::PragmaOnceUnitState;
73537
90507
  friend class ::PragmaOnce;
73538
 
  friend class ::CCExprResolve;
73539
 
  friend class ::CExprResolve;
 
90508
  friend class ::CMatchSyntax;
73540
90509
 
73541
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90510
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73542
90511
 
73543
90512
  CTree *sons[3]; // arg1, arg2, arg3
73544
90513
 
73545
90514
public:
73546
90515
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
73547
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
90516
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
73548
90517
  }
 
90518
  /** Get the identifier for this node type. Can be compared with NodeName(). */
73549
90519
  static const char *NodeId ();
 
90520
  /** Get the name of the node. Can be compared with NodeId(). */
73550
90521
  const char *NodeName () const { return NodeId (); }
 
90522
  /** Get the number of sons. */
73551
90523
  int Sons () const { return CTree::Sons (sons, 3); }
 
90524
  /** Get the n-th son.
 
90525
   *  \param n The index of the son.
 
90526
   *  \return The n-th son or NULL. */
73552
90527
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
90528
  /** Replace a son.
 
90529
   *  \param old_son The son to replace.
 
90530
   *  \param new_son The new son. */
73553
90531
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
73554
90532
    CTree::ReplaceSon (sons, 3, old_son, new_son);
73555
90533
  }
73560
90538
 
73561
90539
#endif /* __CTree_h__ */
73562
90540
 
73563
 
#line 73564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
73564
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
73565
 
 
73566
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
73567
 
 
73568
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
90541
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
73569
90542
namespace Puma {
73570
90543
 
73571
90544
 
73574
90547
class CTypeInfo;
73575
90548
 
73576
90549
 
73577
 
#line 73578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90550
#line 90551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73578
90551
} // closed Puma
 
90552
class CCExprResolve;
 
90553
class CExprResolve;
73579
90554
class WinIfExists;
73580
90555
class WinImportHandler;
73581
90556
class WinMacros;
73582
 
class CMatchSyntax;
73583
 
class ExtGnu;
 
90557
class WinAsm;
 
90558
class WinDeclSpecs;
 
90559
class WinMemberExplSpec;
 
90560
class WinTypeKeywords;
 
90561
class WinFriend;
73584
90562
class ExtAC;
73585
90563
class ExtACBuilderCoupling;
73586
90564
class ExtACSyntaxCoupling;
73587
90565
class ExtACTree;
73588
90566
class ExtACKeywords;
73589
 
class WinAsm;
73590
 
class WinDeclSpecs;
73591
 
class WinMemberExplSpec;
73592
 
class WinTypeKeywords;
 
90567
class ExtGnu;
73593
90568
class PragmaOnceUnitState;
73594
90569
class PragmaOnce;
73595
 
class CCExprResolve;
73596
 
class CExprResolve;
 
90570
class CMatchSyntax;
73597
90571
namespace Puma {
73598
90572
 
73599
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
90573
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
73600
90574
class CSemVisitor : private CVisitor {
73601
 
#line 73602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90575
#line 90576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90576
  friend class ::CCExprResolve;
 
90577
  friend class ::CExprResolve;
73602
90578
  friend class ::WinIfExists;
73603
90579
  friend class ::WinImportHandler;
73604
90580
  friend class ::WinMacros;
73605
 
  friend class ::CMatchSyntax;
73606
 
  friend class ::ExtGnu;
 
90581
  friend class ::WinAsm;
 
90582
  friend class ::WinDeclSpecs;
 
90583
  friend class ::WinMemberExplSpec;
 
90584
  friend class ::WinTypeKeywords;
 
90585
  friend class ::WinFriend;
73607
90586
  friend class ::ExtAC;
73608
90587
  friend class ::ExtACBuilderCoupling;
73609
90588
  friend class ::ExtACSyntaxCoupling;
73610
90589
  friend class ::ExtACTree;
73611
90590
  friend class ::ExtACKeywords;
73612
 
  friend class ::WinAsm;
73613
 
  friend class ::WinDeclSpecs;
73614
 
  friend class ::WinMemberExplSpec;
73615
 
  friend class ::WinTypeKeywords;
 
90591
  friend class ::ExtGnu;
73616
90592
  friend class ::PragmaOnceUnitState;
73617
90593
  friend class ::PragmaOnce;
73618
 
  friend class ::CCExprResolve;
73619
 
  friend class ::CExprResolve;
 
90594
  friend class ::CMatchSyntax;
73620
90595
 
73621
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
90596
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
73622
90597
 
73623
90598
protected:
73624
90599
  CStructure *current_scope;
73625
90600
  ErrorSink &err;
73626
90601
 
73627
90602
public:
73628
 
  CSemVisitor (ErrorSink &);
 
90603
  CSemVisitor (ErrorSink &, CStructure * = (CStructure*)0);
73629
90604
 
73630
90605
  void run (CTree *, CStructure * = (CStructure*)0);
73631
90606
  void configure (Config &) {}
 
90607
 
 
90608
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
 
90609
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
73632
90610
  
73633
90611
protected:
73634
90612
  void pre_visit (CTree *);
73672
90650
  void post_action (CT_WhileStmt *);
73673
90651
 
73674
90652
  CT_SimpleName *findName (CTree *) const;
73675
 
 
73676
 
public:
73677
 
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
73678
 
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
73679
 
 
73680
90653
};
73681
90654
 
73682
90655
} // namespace Puma
73683
90656
 
73684
90657
#endif /* __CSemVisitor_h__ */
73685
90658
 
73686
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
90659
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
73687
90660
 
73688
 
#line 73689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90661
#line 90662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73689
90662
 
73690
90663
#ifndef __ac_fwd_ExtGnu__
73691
90664
#define __ac_fwd_ExtGnu__
73692
90665
class ExtGnu;
73693
90666
namespace AC {
73694
 
  template <class JoinPoint, class Binding>
73695
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
73696
 
  template <class JoinPoint, class Binding>
73697
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
73698
 
  template <class JoinPoint>
73699
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
73700
 
  template <class JoinPoint>
73701
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
73702
 
  template <class JoinPoint>
73703
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
73704
 
  template <class JoinPoint>
73705
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
73706
 
  template <class JoinPoint>
73707
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
73708
 
  template <class JoinPoint, class Binding>
73709
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
73710
 
  template <class JoinPoint, class Binding>
73711
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
73712
 
  template <class JoinPoint, class Binding>
73713
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
73714
 
  template <class JoinPoint, class Binding>
73715
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
73716
 
  template <class JoinPoint, class Binding>
73717
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
73718
 
  template <class JoinPoint, class Binding>
73719
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
73720
 
  template <class JoinPoint>
73721
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
73722
 
  template <class JoinPoint>
73723
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
73724
 
  template <class JoinPoint, class Binding>
73725
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
90667
  template <class JoinPoint>
 
90668
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
90669
  template <class JoinPoint>
 
90670
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
90671
  template <class JoinPoint>
 
90672
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
90673
  template <class JoinPoint>
 
90674
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
90675
  template <class JoinPoint>
 
90676
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
90677
  template <class JoinPoint>
 
90678
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
90679
  template <class JoinPoint>
 
90680
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
90681
  template <class JoinPoint>
 
90682
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
90683
  template <class JoinPoint>
 
90684
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
90685
  template <class JoinPoint>
 
90686
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
90687
  template <class JoinPoint>
 
90688
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
90689
  template <class JoinPoint>
 
90690
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
90691
  template <class JoinPoint>
 
90692
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
90693
  template <class JoinPoint>
 
90694
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
90695
  template <class JoinPoint>
 
90696
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
90697
  template <class JoinPoint>
 
90698
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
90699
  template <class JoinPoint>
 
90700
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
73726
90701
}
73727
90702
#endif
73728
90703
 
73729
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
73730
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
90704
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
90705
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
73731
90706
#endif
73732
90707
 
73733
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
73734
 
 
73735
 
#line 73736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
73736
 
 
73737
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
73738
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
73739
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
73740
 
 
73741
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
90708
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
73742
90709
// This file is part of PUMA.
73743
90710
// Copyright (C) 1999-2003  The PUMA developer team.
73744
90711
//                                                                
73761
90728
#define __c_sem_decl_specs_h__
73762
90729
 
73763
90730
 
73764
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90731
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73765
90732
 
73766
 
#line 73767 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90733
#line 90734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73767
90734
 
73768
90735
#ifndef __ac_fwd_ExtACTree__
73769
90736
#define __ac_fwd_ExtACTree__
73770
90737
class ExtACTree;
73771
90738
namespace AC {
73772
90739
  template <class JoinPoint>
73773
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
90740
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
73774
90741
  template <class JoinPoint>
73775
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
90742
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
73776
90743
}
73777
90744
#endif
73778
90745
 
73779
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
73780
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
90746
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
90747
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
73781
90748
#endif
73782
90749
 
73783
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
73784
 
 
73785
 
#line 73786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
73786
 
 
73787
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
73788
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
73789
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
73790
 
 
73791
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90750
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73792
90751
// This file is part of PUMA.
73793
90752
// Copyright (C) 1999-2003  The PUMA developer team.
73794
90753
//                                                                
73833
90792
class     CT_DefaultStmt;
73834
90793
class     CT_TryStmt;
73835
90794
class   CT_Expression;
 
90795
class     CT_Call;
 
90796
class       CT_CallExpr;
 
90797
class       CT_ImplicitCall;
73836
90798
class     CT_ThrowExpr;
73837
90799
class     CT_NewExpr;
73838
90800
class     CT_DeleteExpr;
73853
90815
class     CT_IfThenExpr;
73854
90816
class     CT_CmpdLiteral;
73855
90817
class     CT_IndexExpr;
73856
 
class     CT_CallExpr;
73857
90818
class     CT_CastExpr;
73858
90819
class     CT_StaticCast;
73859
90820
class       CT_ConstCast;
73900
90861
class     CT_NamespaceDef;
73901
90862
class     CT_NamespaceAliasDef;
73902
90863
class     CT_UsingDirective;
 
90864
class     CT_Condition;
73903
90865
class   CT_List;
73904
90866
class     CT_CmpdStmt;
73905
90867
class     CT_DeclSpecSeq;
73930
90892
class     CT_TemplateArgList;
73931
90893
class   CT_Token;
73932
90894
class   CT_Error;
73933
 
class   CT_Condition;
73934
90895
class   CT_BaseSpec;
73935
90896
class   CT_AccessSpec;
73936
90897
class   CT_ArrayDelimiter;
73970
90931
/*                                                                           */
73971
90932
/*****************************************************************************/
73972
90933
 
73973
 
 
73974
 
#line 73975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90934
/** \file
 
90935
 *  C/C++ syntax tree classes.
 
90936
 *  \see Puma::CTree */
 
90937
 
 
90938
/** \class CTree CTree.h Puma/CTree.h
 
90939
 *  Base class for all C/C++ syntax tree classes. */
 
90940
 
 
90941
#line 90942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
73975
90942
} // closed Puma
 
90943
class CCExprResolve;
 
90944
class CExprResolve;
73976
90945
class WinIfExists;
73977
90946
class WinImportHandler;
73978
90947
class WinMacros;
73979
 
class CMatchSyntax;
73980
 
class ExtGnu;
 
90948
class WinAsm;
 
90949
class WinDeclSpecs;
 
90950
class WinMemberExplSpec;
 
90951
class WinTypeKeywords;
 
90952
class WinFriend;
73981
90953
class ExtAC;
73982
90954
class ExtACBuilderCoupling;
73983
90955
class ExtACSyntaxCoupling;
73984
90956
class ExtACTree;
73985
90957
class ExtACKeywords;
73986
 
class WinAsm;
73987
 
class WinDeclSpecs;
73988
 
class WinMemberExplSpec;
73989
 
class WinTypeKeywords;
 
90958
class ExtGnu;
73990
90959
class PragmaOnceUnitState;
73991
90960
class PragmaOnce;
73992
 
class CCExprResolve;
73993
 
class CExprResolve;
73994
 
namespace Puma {
73995
 
 
73996
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90961
class CMatchSyntax;
 
90962
namespace Puma {
 
90963
 
 
90964
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90965
 
 
90966
#line 90967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90967
} // closed Puma
 
90968
 
 
90969
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
90970
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
90971
#include "CCExprResolveH.ah"
 
90972
#endif
 
90973
namespace Puma {
 
90974
 
 
90975
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
90976
 
 
90977
#line 90978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90978
} // closed Puma
 
90979
 
 
90980
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
90981
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
90982
#include "CExprResolveH.ah"
 
90983
#endif
 
90984
namespace Puma {
 
90985
 
 
90986
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
73997
90987
class CTree {
73998
 
#line 73999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
90988
#line 90989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
90989
  friend class ::CCExprResolve;
 
90990
  friend class ::CExprResolve;
73999
90991
  friend class ::WinIfExists;
74000
90992
  friend class ::WinImportHandler;
74001
90993
  friend class ::WinMacros;
74002
 
  friend class ::CMatchSyntax;
74003
 
  friend class ::ExtGnu;
 
90994
  friend class ::WinAsm;
 
90995
  friend class ::WinDeclSpecs;
 
90996
  friend class ::WinMemberExplSpec;
 
90997
  friend class ::WinTypeKeywords;
 
90998
  friend class ::WinFriend;
74004
90999
  friend class ::ExtAC;
74005
91000
  friend class ::ExtACBuilderCoupling;
74006
91001
  friend class ::ExtACSyntaxCoupling;
74007
91002
  friend class ::ExtACTree;
74008
91003
  friend class ::ExtACKeywords;
74009
 
  friend class ::WinAsm;
74010
 
  friend class ::WinDeclSpecs;
74011
 
  friend class ::WinMemberExplSpec;
74012
 
  friend class ::WinTypeKeywords;
 
91004
  friend class ::ExtGnu;
74013
91005
  friend class ::PragmaOnceUnitState;
74014
91006
  friend class ::PragmaOnce;
74015
 
  friend class ::CCExprResolve;
74016
 
  friend class ::CExprResolve;
74017
 
 
74018
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91007
  friend class ::CMatchSyntax;
 
91008
 
 
91009
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91010
 
 
91011
  CTree * _parent;
74019
91012
 
74020
91013
public:
74021
91014
  /*DEBUG*/static int alloc;
74022
91015
  /*DEBUG*/static int release;
74023
91016
 
74024
91017
protected:
74025
 
  CTree *Son (CTree * const *, int, int) const;
74026
 
  int Sons (CTree * const *, int) const;
74027
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
91018
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
91019
   *  \param sons The sons array.
 
91020
   *  \param len Length of the sons array.
 
91021
   *  \param n Index of the son.
 
91022
   *  \return The n-th son or NULL. */
 
91023
  CTree *Son (CTree * const *sons, int len, int n) const;
 
91024
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
91025
   *  \param sons The sons array.
 
91026
   *  \param len Length of the sons array. */
 
91027
  int Sons (CTree * const *sons, int len) const;
 
91028
  /** Replace a son.
 
91029
   *  \param sons The sons array.
 
91030
   *  \param len Length of the sons array.
 
91031
   *  \param old_son The son to replace.
 
91032
   *  \param new_son The new son. */
 
91033
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
91034
  /** Replace a son if it equals the given son.
 
91035
   *  \param son The actual son.
 
91036
   *  \param old_son The son to replace, must match the actual son.
 
91037
   *  \param new_son The new son, overwrites the actual son. */
 
91038
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
91039
  /** Add a new son.
 
91040
   *  \param son The actual son.
 
91041
   *  \param new_son The new son, overwrites the actual son. */
 
91042
  void AddSon (CTree *&son, CTree *new_son);
 
91043
  /** Set the parent tree node.
 
91044
   *  \param parent The new parent tree node. */
 
91045
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
91046
  /** Set the parent tree node of the given tree node.
 
91047
   *  \param node The tree node.
 
91048
   *  \param parent The new parent. */
 
91049
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
74028
91050
  
74029
91051
protected:
74030
 
  CTree () { /*DEBUG*/alloc++; }
 
91052
  /** Default constructor. */
 
91053
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
74031
91054
 
74032
91055
public:
 
91056
  /** Destructor. */
74033
91057
  virtual ~CTree () { /*DEBUG*/release++; }
 
91058
  /** Get the number of sons. */
74034
91059
  virtual int Sons () const = 0;
 
91060
  /** Get the n-th son.
 
91061
   *  \param n The index of the son.
 
91062
   *  \return The n-th son or NULL. */
74035
91063
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
91064
  /** Get the node name (node identifier). */
74036
91065
  virtual const char *NodeName () const = 0;
 
91066
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
91067
   *  \return The token or NULL. */
74037
91068
  virtual Token *token () const;
 
91069
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
91070
   *  \return The token or NULL. */
74038
91071
  virtual Token *end_token () const;
 
91072
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
91073
   *  \return The token node or NULL. */
74039
91074
  virtual CT_Token *token_node () const;
 
91075
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
91076
   *  \return The token node or NULL. */
74040
91077
  virtual CT_Token *end_token_node () const;
74041
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
91078
  /** Replace a son.
 
91079
   *  \param old_son The son to replace.
 
91080
   *  \param new_son The son with which to replace. */
 
91081
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
91082
  /** Get the parent node.
 
91083
   *  \return The parent node or NULL. */
 
91084
  virtual CTree *Parent () const { return (CTree*)_parent; }
74042
91085
 
74043
91086
public: // semantic information
 
91087
  /** Get the semantic type of the node.
 
91088
   *  \return The type object or NULL. */
74044
91089
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
91090
  /** Get the calculated value of the expression.
 
91091
   *  \return The value object or NULL. */
74045
91092
  virtual CExprValue *Value () const { return (CExprValue*)0; }
74046
91093
  
 
91094
  /** Get the semantic scope of the node.
 
91095
   *  \return The scope object or NULL. */
 
91096
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
91097
  /** Get the semantic value of the node.
 
91098
   *  \return The value object or NULL. */
74047
91099
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
91100
  /** Get the semantic object of the node.
 
91101
   *  \return The semantic object or NULL. */
74048
91102
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
74049
91103
  
74050
91104
public: // node classification function
 
91105
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
91106
   *  \return The CT_SimpleName node or NULL. */
74051
91107
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
91108
  /** Get a pointer to CT_String if the current node represents a string.
 
91109
   *  \return The CT_String node or NULL. */
 
91110
  virtual CT_String *IsString () { return 0; }
 
91111
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
91112
   *  \return The CT_Declarator pointer or NULL. */
74052
91113
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
91114
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
91115
   *  \return The CT_Statement pointer or NULL. */
 
91116
  virtual CT_Statement *IsStatement () { return 0; }
 
91117
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
91118
   *  \return The CT_Expression pointer or NULL. */
 
91119
  virtual CT_Expression *IsExpression () { return 0; }
 
91120
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
91121
   *  \return The CT_Decl pointer or NULL. */
 
91122
  virtual CT_Decl *IsDeclaration () { return 0; }
 
91123
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
91124
   *  \return The CT_Call pointer or NULL. */
 
91125
  virtual CT_Call *IsCall () { return 0; }
74053
91126
   private:
74054
91127
  typedef CTree CCExprResolveCTree;
74055
91128
 
74056
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
91129
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
74057
91130
 public :
74058
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
91131
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
74059
91132
  typedef CTree CExprResolveCTree;
74060
91133
 
74061
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
91134
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
74062
91135
 public :
74063
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
74064
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91136
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
91137
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74065
91138
};
74066
91139
 
 
91140
/** \class CT_Error CTree.h Puma/CTree.h
 
91141
 *  Error tree node that is inserted into the tree for syntactic constructs
 
91142
 *  that could not be parsed. */
74067
91143
 
74068
 
#line 74069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91144
#line 91145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74069
91145
} // closed Puma
 
91146
class CCExprResolve;
 
91147
class CExprResolve;
74070
91148
class WinIfExists;
74071
91149
class WinImportHandler;
74072
91150
class WinMacros;
74073
 
class CMatchSyntax;
74074
 
class ExtGnu;
 
91151
class WinAsm;
 
91152
class WinDeclSpecs;
 
91153
class WinMemberExplSpec;
 
91154
class WinTypeKeywords;
 
91155
class WinFriend;
74075
91156
class ExtAC;
74076
91157
class ExtACBuilderCoupling;
74077
91158
class ExtACSyntaxCoupling;
74078
91159
class ExtACTree;
74079
91160
class ExtACKeywords;
74080
 
class WinAsm;
74081
 
class WinDeclSpecs;
74082
 
class WinMemberExplSpec;
74083
 
class WinTypeKeywords;
 
91161
class ExtGnu;
74084
91162
class PragmaOnceUnitState;
74085
91163
class PragmaOnce;
74086
 
class CCExprResolve;
74087
 
class CExprResolve;
 
91164
class CMatchSyntax;
74088
91165
namespace Puma {
74089
91166
 
74090
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91167
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74091
91168
class CT_Error : public CTree {
74092
 
#line 74093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91169
#line 91170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91170
  friend class ::CCExprResolve;
 
91171
  friend class ::CExprResolve;
74093
91172
  friend class ::WinIfExists;
74094
91173
  friend class ::WinImportHandler;
74095
91174
  friend class ::WinMacros;
74096
 
  friend class ::CMatchSyntax;
74097
 
  friend class ::ExtGnu;
 
91175
  friend class ::WinAsm;
 
91176
  friend class ::WinDeclSpecs;
 
91177
  friend class ::WinMemberExplSpec;
 
91178
  friend class ::WinTypeKeywords;
 
91179
  friend class ::WinFriend;
74098
91180
  friend class ::ExtAC;
74099
91181
  friend class ::ExtACBuilderCoupling;
74100
91182
  friend class ::ExtACSyntaxCoupling;
74101
91183
  friend class ::ExtACTree;
74102
91184
  friend class ::ExtACKeywords;
74103
 
  friend class ::WinAsm;
74104
 
  friend class ::WinDeclSpecs;
74105
 
  friend class ::WinMemberExplSpec;
74106
 
  friend class ::WinTypeKeywords;
 
91185
  friend class ::ExtGnu;
74107
91186
  friend class ::PragmaOnceUnitState;
74108
91187
  friend class ::PragmaOnce;
74109
 
  friend class ::CCExprResolve;
74110
 
  friend class ::CExprResolve;
 
91188
  friend class ::CMatchSyntax;
74111
91189
 
74112
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91190
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74113
91191
 
74114
91192
public:
 
91193
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74115
91194
  static const char *NodeId ();
 
91195
  /** Get the name of the node. Can be compared with NodeId(). */
74116
91196
  const char *NodeName () const { return NodeId (); }
 
91197
  /** Get the number of sons. */
74117
91198
  int Sons () const { return 0; }
74118
91199
};
74119
91200
 
 
91201
/** \class CT_Token CTree.h Puma/CTree.h
 
91202
 *  Tree node representing a single token in the source code. */
74120
91203
 
74121
 
#line 74122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91204
#line 91205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74122
91205
} // closed Puma
 
91206
class CCExprResolve;
 
91207
class CExprResolve;
74123
91208
class WinIfExists;
74124
91209
class WinImportHandler;
74125
91210
class WinMacros;
74126
 
class CMatchSyntax;
74127
 
class ExtGnu;
 
91211
class WinAsm;
 
91212
class WinDeclSpecs;
 
91213
class WinMemberExplSpec;
 
91214
class WinTypeKeywords;
 
91215
class WinFriend;
74128
91216
class ExtAC;
74129
91217
class ExtACBuilderCoupling;
74130
91218
class ExtACSyntaxCoupling;
74131
91219
class ExtACTree;
74132
91220
class ExtACKeywords;
74133
 
class WinAsm;
74134
 
class WinDeclSpecs;
74135
 
class WinMemberExplSpec;
74136
 
class WinTypeKeywords;
 
91221
class ExtGnu;
74137
91222
class PragmaOnceUnitState;
74138
91223
class PragmaOnce;
74139
 
class CCExprResolve;
74140
 
class CExprResolve;
 
91224
class CMatchSyntax;
74141
91225
namespace Puma {
74142
91226
 
74143
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91227
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74144
91228
class CT_Token : public CTree {
74145
 
#line 74146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91229
#line 91230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91230
  friend class ::CCExprResolve;
 
91231
  friend class ::CExprResolve;
74146
91232
  friend class ::WinIfExists;
74147
91233
  friend class ::WinImportHandler;
74148
91234
  friend class ::WinMacros;
74149
 
  friend class ::CMatchSyntax;
74150
 
  friend class ::ExtGnu;
 
91235
  friend class ::WinAsm;
 
91236
  friend class ::WinDeclSpecs;
 
91237
  friend class ::WinMemberExplSpec;
 
91238
  friend class ::WinTypeKeywords;
 
91239
  friend class ::WinFriend;
74151
91240
  friend class ::ExtAC;
74152
91241
  friend class ::ExtACBuilderCoupling;
74153
91242
  friend class ::ExtACSyntaxCoupling;
74154
91243
  friend class ::ExtACTree;
74155
91244
  friend class ::ExtACKeywords;
74156
 
  friend class ::WinAsm;
74157
 
  friend class ::WinDeclSpecs;
74158
 
  friend class ::WinMemberExplSpec;
74159
 
  friend class ::WinTypeKeywords;
 
91245
  friend class ::ExtGnu;
74160
91246
  friend class ::PragmaOnceUnitState;
74161
91247
  friend class ::PragmaOnce;
74162
 
  friend class ::CCExprResolve;
74163
 
  friend class ::CExprResolve;
 
91248
  friend class ::CMatchSyntax;
74164
91249
 
74165
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91250
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74166
91251
 
74167
91252
  Token *_token;
74168
91253
  unsigned long int _number;
74169
91254
  
74170
91255
public:
74171
 
  CT_Token (Token *t, unsigned long int n = 0) : 
74172
 
    _token (t), _number (n) {}
 
91256
  /** Constructor. 
 
91257
   *  \param token The represented token.
 
91258
   *  \param number The token number (a consecutive number). */
 
91259
  CT_Token (Token *token, unsigned long int number = 0) : 
 
91260
    _token (token), _number (number) {}
 
91261
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74173
91262
  static const char *NodeId ();
 
91263
  /** Get the name of the node. Can be compared with NodeId(). */
74174
91264
  const char *NodeName () const { return NodeId (); }
 
91265
  /** Get the number of sons. */
74175
91266
  int Sons () const { return 0; }
 
91267
  /** Get the represented token. */
74176
91268
  Token *token () const { return _token; }
 
91269
  /** Get the represented token. */
74177
91270
  Token *end_token () const { return _token; }
 
91271
  /** Get this. */
74178
91272
  CT_Token *token_node () const { return (CT_Token*)this; }
 
91273
  /** Get this. */
74179
91274
  CT_Token *end_token_node () const { return (CT_Token*)this; }
74180
 
  void Number (unsigned long int n) { _number = n; }
 
91275
  /** Set the token number. 
 
91276
   *  \param number The token number. */ 
 
91277
  void Number (unsigned long int number) { _number = number; }
 
91278
  /** Get the token number. Can be used to indentify this token. */
74181
91279
  unsigned long int Number () const { return _number; }
74182
 
  // special new / delete with reusing memory
 
91280
  
 
91281
public:
 
91282
  /** Own new operator reusing memory. */
74183
91283
  void *operator new (size_t);
74184
 
  void  operator delete (void *);
 
91284
  /** Own delete operator. */
 
91285
  void operator delete (void *);
74185
91286
};
74186
91287
 
74187
91288
/*****************************************************************************/
74190
91291
/*                                                                           */
74191
91292
/*****************************************************************************/
74192
91293
 
 
91294
/** \class CT_List CTree.h Puma/CTree.h
 
91295
 *  Base class for tree nodes representing lists. */
74193
91296
 
74194
 
#line 74195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91297
#line 91298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74195
91298
} // closed Puma
 
91299
class CCExprResolve;
 
91300
class CExprResolve;
74196
91301
class WinIfExists;
74197
91302
class WinImportHandler;
74198
91303
class WinMacros;
74199
 
class CMatchSyntax;
74200
 
class ExtGnu;
 
91304
class WinAsm;
 
91305
class WinDeclSpecs;
 
91306
class WinMemberExplSpec;
 
91307
class WinTypeKeywords;
 
91308
class WinFriend;
74201
91309
class ExtAC;
74202
91310
class ExtACBuilderCoupling;
74203
91311
class ExtACSyntaxCoupling;
74204
91312
class ExtACTree;
74205
91313
class ExtACKeywords;
74206
 
class WinAsm;
74207
 
class WinDeclSpecs;
74208
 
class WinMemberExplSpec;
74209
 
class WinTypeKeywords;
 
91314
class ExtGnu;
74210
91315
class PragmaOnceUnitState;
74211
91316
class PragmaOnce;
74212
 
class CCExprResolve;
74213
 
class CExprResolve;
 
91317
class CMatchSyntax;
74214
91318
namespace Puma {
74215
91319
 
74216
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91320
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74217
91321
class CT_List : public CTree {
74218
 
#line 74219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91322
#line 91323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91323
  friend class ::CCExprResolve;
 
91324
  friend class ::CExprResolve;
74219
91325
  friend class ::WinIfExists;
74220
91326
  friend class ::WinImportHandler;
74221
91327
  friend class ::WinMacros;
74222
 
  friend class ::CMatchSyntax;
74223
 
  friend class ::ExtGnu;
 
91328
  friend class ::WinAsm;
 
91329
  friend class ::WinDeclSpecs;
 
91330
  friend class ::WinMemberExplSpec;
 
91331
  friend class ::WinTypeKeywords;
 
91332
  friend class ::WinFriend;
74224
91333
  friend class ::ExtAC;
74225
91334
  friend class ::ExtACBuilderCoupling;
74226
91335
  friend class ::ExtACSyntaxCoupling;
74227
91336
  friend class ::ExtACTree;
74228
91337
  friend class ::ExtACKeywords;
74229
 
  friend class ::WinAsm;
74230
 
  friend class ::WinDeclSpecs;
74231
 
  friend class ::WinMemberExplSpec;
74232
 
  friend class ::WinTypeKeywords;
 
91338
  friend class ::ExtGnu;
74233
91339
  friend class ::PragmaOnceUnitState;
74234
91340
  friend class ::PragmaOnce;
74235
 
  friend class ::CCExprResolve;
74236
 
  friend class ::CExprResolve;
 
91341
  friend class ::CMatchSyntax;
74237
91342
 
74238
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91343
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74239
91344
 
74240
91345
  Array<CTree*> _sons;
74241
91346
  int _properties;
74242
91347
 
74243
91348
protected:
 
91349
  /** Constructor.
 
91350
   *  \param size The initial list size.
 
91351
   *  \param incr The initial increment count. 
 
91352
   *  \param props The list properties (bit array). */
74244
91353
  CT_List(int size = 5, int incr = 5, int props = 0) : 
74245
91354
    _sons (size, incr), _properties (props) {}
74246
91355
 
74247
91356
public:
 
91357
  /** List properties. */
74248
91358
  enum {
74249
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
74250
 
    CLOSE = 2,
74251
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
74252
 
    SEPARATORS = 4,   // the list has separators like ','
74253
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
74254
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
74255
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
74256
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
91359
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
91360
    CLOSE = 2,        /** List has an end token */
 
91361
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
91362
    SEPARATORS = 4,   /** List has separators, like ',' */
 
91363
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
91364
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
91365
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
91366
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
74257
91367
  };
74258
91368
 
 
91369
  /** Get the number of list entries. */
74259
91370
  int Entries () const;
74260
 
  CTree *Entry (int no) const;
 
91371
  /** Get the n-th list entry.
 
91372
   *  \param n The index of the entry. 
 
91373
   *  \return The list entry or NULL. */
 
91374
  CTree *Entry (int n) const;
 
91375
  /** Get the number of sons. */
74261
91376
  int Sons () const { return _sons.length (); }
 
91377
  /** Get the n-th son.
 
91378
   *  \param n The index of the son. 
 
91379
   *  \return The n-th son or NULL. */
74262
91380
  CTree *Son (int n) const { return _sons.lookup (n); }
 
91381
  /** Get the list properties. */
74263
91382
  int GetProperties () const { return _properties; }
 
91383
  /** Add a list property.
 
91384
   *  \param p The property to add. */
74264
91385
  void AddProperties (int p) { _properties |= p; }
74265
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
74266
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
74267
 
  void InsertSon (CTree *, CTree *);  // before given son
74268
 
  void ReplaceSon (CTree *, CTree *);
74269
 
  void RemoveSon (CTree *);
 
91386
  /** Add a son.
 
91387
   *  \param s The son to add. */
 
91388
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
91389
  /** Prepend a son.
 
91390
   *  \param s The son to prepend. */
 
91391
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
91392
  /** Insert a son before another son.
 
91393
   *  \param before The son to insert the new son before.
 
91394
   *  \param son The son to insert. */
 
91395
  void InsertSon (CTree *before, CTree *son); 
 
91396
  /** Replace a son.
 
91397
   *  \param old_son The son to replace.
 
91398
   *  \param new_son The new son. */
 
91399
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
91400
  /** Remove a son.
 
91401
   *  \param son The son to remove. */
 
91402
  void RemoveSon (CTree *son);
 
91403
  /** Insert a son at the given index. 
 
91404
   *  \param idx The index at which to insert.
 
91405
   *  \param s The son to insert. */
74270
91406
  void InsertSon (int idx, CTree *s)
74271
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
91407
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
91408
  /** Replace the son at the given index.
 
91409
   *  \param idx The index of the son to replace.
 
91410
   *  \param s The new son. */
74272
91411
  void ReplaceSon (int idx, CTree *s) 
74273
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
91412
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
91413
  /** Remove the son at the given index. 
 
91414
   *  \param idx The index of the son to remove. */
74274
91415
  void RemoveSon (int idx) 
74275
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
91416
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
74276
91417
};
74277
91418
 
 
91419
/** \class CT_ExprList CTree.h Puma/CTree.h
 
91420
 *  Tree node representing an expression list. */
74278
91421
 
74279
 
#line 74280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91422
#line 91423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74280
91423
} // closed Puma
 
91424
class CCExprResolve;
 
91425
class CExprResolve;
74281
91426
class WinIfExists;
74282
91427
class WinImportHandler;
74283
91428
class WinMacros;
74284
 
class CMatchSyntax;
74285
 
class ExtGnu;
 
91429
class WinAsm;
 
91430
class WinDeclSpecs;
 
91431
class WinMemberExplSpec;
 
91432
class WinTypeKeywords;
 
91433
class WinFriend;
74286
91434
class ExtAC;
74287
91435
class ExtACBuilderCoupling;
74288
91436
class ExtACSyntaxCoupling;
74289
91437
class ExtACTree;
74290
91438
class ExtACKeywords;
74291
 
class WinAsm;
74292
 
class WinDeclSpecs;
74293
 
class WinMemberExplSpec;
74294
 
class WinTypeKeywords;
 
91439
class ExtGnu;
74295
91440
class PragmaOnceUnitState;
74296
91441
class PragmaOnce;
74297
 
class CCExprResolve;
74298
 
class CExprResolve;
 
91442
class CMatchSyntax;
74299
91443
namespace Puma {
74300
91444
 
74301
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91445
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74302
91446
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
74303
 
#line 74304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91447
#line 91448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91448
  friend class ::CCExprResolve;
 
91449
  friend class ::CExprResolve;
74304
91450
  friend class ::WinIfExists;
74305
91451
  friend class ::WinImportHandler;
74306
91452
  friend class ::WinMacros;
74307
 
  friend class ::CMatchSyntax;
74308
 
  friend class ::ExtGnu;
 
91453
  friend class ::WinAsm;
 
91454
  friend class ::WinDeclSpecs;
 
91455
  friend class ::WinMemberExplSpec;
 
91456
  friend class ::WinTypeKeywords;
 
91457
  friend class ::WinFriend;
74309
91458
  friend class ::ExtAC;
74310
91459
  friend class ::ExtACBuilderCoupling;
74311
91460
  friend class ::ExtACSyntaxCoupling;
74312
91461
  friend class ::ExtACTree;
74313
91462
  friend class ::ExtACKeywords;
74314
 
  friend class ::WinAsm;
74315
 
  friend class ::WinDeclSpecs;
74316
 
  friend class ::WinMemberExplSpec;
74317
 
  friend class ::WinTypeKeywords;
 
91463
  friend class ::ExtGnu;
74318
91464
  friend class ::PragmaOnceUnitState;
74319
91465
  friend class ::PragmaOnce;
74320
 
  friend class ::CCExprResolve;
74321
 
  friend class ::CExprResolve;
 
91466
  friend class ::CMatchSyntax;
74322
91467
 
74323
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91468
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74324
91469
 
74325
91470
public:
 
91471
  /** Constructor. */
74326
91472
  CT_ExprList () { AddProperties (SEPARATORS); }
 
91473
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74327
91474
  static const char *NodeId ();
 
91475
  /** Get the name of the node. Can be compared with NodeId(). */
74328
91476
  const char *NodeName () const { return NodeId (); }
74329
91477
 
 
91478
  /** Get the type of the last expression in the expression list.
 
91479
   *  \return The type or NULL. */
74330
91480
  CTypeInfo *Type () const { return type; }
 
91481
  /** Get the value of the last expression in the expression list.
 
91482
   *  \return The value of NULL. */
74331
91483
  CExprValue *Value () const { return value; }
 
91484
  /** Get the semantic value of the node. */
74332
91485
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
91486
  /** Get the semantic object of the node. */
74333
91487
  CSemObject *SemObject () const { return (CSemObject*)this; }
74334
91488
};
74335
91489
 
 
91490
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
91491
 *  Tree node representing a list of declarators. */
74336
91492
 
74337
 
#line 74338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91493
#line 91494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74338
91494
} // closed Puma
 
91495
class CCExprResolve;
 
91496
class CExprResolve;
74339
91497
class WinIfExists;
74340
91498
class WinImportHandler;
74341
91499
class WinMacros;
74342
 
class CMatchSyntax;
74343
 
class ExtGnu;
 
91500
class WinAsm;
 
91501
class WinDeclSpecs;
 
91502
class WinMemberExplSpec;
 
91503
class WinTypeKeywords;
 
91504
class WinFriend;
74344
91505
class ExtAC;
74345
91506
class ExtACBuilderCoupling;
74346
91507
class ExtACSyntaxCoupling;
74347
91508
class ExtACTree;
74348
91509
class ExtACKeywords;
74349
 
class WinAsm;
74350
 
class WinDeclSpecs;
74351
 
class WinMemberExplSpec;
74352
 
class WinTypeKeywords;
 
91510
class ExtGnu;
74353
91511
class PragmaOnceUnitState;
74354
91512
class PragmaOnce;
74355
 
class CCExprResolve;
74356
 
class CExprResolve;
 
91513
class CMatchSyntax;
74357
91514
namespace Puma {
74358
91515
 
74359
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91516
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74360
91517
class CT_DeclaratorList : public CT_List {
74361
 
#line 74362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91518
#line 91519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91519
  friend class ::CCExprResolve;
 
91520
  friend class ::CExprResolve;
74362
91521
  friend class ::WinIfExists;
74363
91522
  friend class ::WinImportHandler;
74364
91523
  friend class ::WinMacros;
74365
 
  friend class ::CMatchSyntax;
74366
 
  friend class ::ExtGnu;
 
91524
  friend class ::WinAsm;
 
91525
  friend class ::WinDeclSpecs;
 
91526
  friend class ::WinMemberExplSpec;
 
91527
  friend class ::WinTypeKeywords;
 
91528
  friend class ::WinFriend;
74367
91529
  friend class ::ExtAC;
74368
91530
  friend class ::ExtACBuilderCoupling;
74369
91531
  friend class ::ExtACSyntaxCoupling;
74370
91532
  friend class ::ExtACTree;
74371
91533
  friend class ::ExtACKeywords;
74372
 
  friend class ::WinAsm;
74373
 
  friend class ::WinDeclSpecs;
74374
 
  friend class ::WinMemberExplSpec;
74375
 
  friend class ::WinTypeKeywords;
 
91534
  friend class ::ExtGnu;
74376
91535
  friend class ::PragmaOnceUnitState;
74377
91536
  friend class ::PragmaOnce;
74378
 
  friend class ::CCExprResolve;
74379
 
  friend class ::CExprResolve;
 
91537
  friend class ::CMatchSyntax;
74380
91538
 
74381
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91539
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74382
91540
 
74383
91541
public:
 
91542
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74384
91543
  static const char *NodeId ();
 
91544
  /** Get the name of the node. Can be compared with NodeId(). */
74385
91545
  const char *NodeName () const { return NodeId (); }
74386
91546
};
74387
91547
 
 
91548
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
91549
 *  Tree node representing a list of enumerator constants. */
74388
91550
 
74389
 
#line 74390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91551
#line 91552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74390
91552
} // closed Puma
 
91553
class CCExprResolve;
 
91554
class CExprResolve;
74391
91555
class WinIfExists;
74392
91556
class WinImportHandler;
74393
91557
class WinMacros;
74394
 
class CMatchSyntax;
74395
 
class ExtGnu;
 
91558
class WinAsm;
 
91559
class WinDeclSpecs;
 
91560
class WinMemberExplSpec;
 
91561
class WinTypeKeywords;
 
91562
class WinFriend;
74396
91563
class ExtAC;
74397
91564
class ExtACBuilderCoupling;
74398
91565
class ExtACSyntaxCoupling;
74399
91566
class ExtACTree;
74400
91567
class ExtACKeywords;
74401
 
class WinAsm;
74402
 
class WinDeclSpecs;
74403
 
class WinMemberExplSpec;
74404
 
class WinTypeKeywords;
 
91568
class ExtGnu;
74405
91569
class PragmaOnceUnitState;
74406
91570
class PragmaOnce;
74407
 
class CCExprResolve;
74408
 
class CExprResolve;
 
91571
class CMatchSyntax;
74409
91572
namespace Puma {
74410
91573
 
74411
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91574
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74412
91575
class CT_EnumeratorList : public CT_List {
74413
 
#line 74414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91576
#line 91577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91577
  friend class ::CCExprResolve;
 
91578
  friend class ::CExprResolve;
74414
91579
  friend class ::WinIfExists;
74415
91580
  friend class ::WinImportHandler;
74416
91581
  friend class ::WinMacros;
74417
 
  friend class ::CMatchSyntax;
74418
 
  friend class ::ExtGnu;
 
91582
  friend class ::WinAsm;
 
91583
  friend class ::WinDeclSpecs;
 
91584
  friend class ::WinMemberExplSpec;
 
91585
  friend class ::WinTypeKeywords;
 
91586
  friend class ::WinFriend;
74419
91587
  friend class ::ExtAC;
74420
91588
  friend class ::ExtACBuilderCoupling;
74421
91589
  friend class ::ExtACSyntaxCoupling;
74422
91590
  friend class ::ExtACTree;
74423
91591
  friend class ::ExtACKeywords;
74424
 
  friend class ::WinAsm;
74425
 
  friend class ::WinDeclSpecs;
74426
 
  friend class ::WinMemberExplSpec;
74427
 
  friend class ::WinTypeKeywords;
 
91592
  friend class ::ExtGnu;
74428
91593
  friend class ::PragmaOnceUnitState;
74429
91594
  friend class ::PragmaOnce;
74430
 
  friend class ::CCExprResolve;
74431
 
  friend class ::CExprResolve;
 
91595
  friend class ::CMatchSyntax;
74432
91596
 
74433
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91597
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74434
91598
 
74435
91599
public:
 
91600
  /** Constructor. */
74436
91601
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
91602
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74437
91603
  static const char *NodeId ();
 
91604
  /** Get the name of the node. Can be compared with NodeId(). */
74438
91605
  const char *NodeName () const { return NodeId (); }
74439
91606
};
74440
91607
   
 
91608
/** \class CT_DeclList CTree.h Puma/CTree.h
 
91609
 *  Tree node representing a list of declarations. */
74441
91610
 
74442
 
#line 74443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91611
#line 91612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74443
91612
} // closed Puma
 
91613
class CCExprResolve;
 
91614
class CExprResolve;
74444
91615
class WinIfExists;
74445
91616
class WinImportHandler;
74446
91617
class WinMacros;
74447
 
class CMatchSyntax;
74448
 
class ExtGnu;
 
91618
class WinAsm;
 
91619
class WinDeclSpecs;
 
91620
class WinMemberExplSpec;
 
91621
class WinTypeKeywords;
 
91622
class WinFriend;
74449
91623
class ExtAC;
74450
91624
class ExtACBuilderCoupling;
74451
91625
class ExtACSyntaxCoupling;
74452
91626
class ExtACTree;
74453
91627
class ExtACKeywords;
74454
 
class WinAsm;
74455
 
class WinDeclSpecs;
74456
 
class WinMemberExplSpec;
74457
 
class WinTypeKeywords;
 
91628
class ExtGnu;
74458
91629
class PragmaOnceUnitState;
74459
91630
class PragmaOnce;
74460
 
class CCExprResolve;
74461
 
class CExprResolve;
 
91631
class CMatchSyntax;
74462
91632
namespace Puma {
74463
91633
 
74464
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91634
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74465
91635
class CT_DeclList : public CT_List {
74466
 
#line 74467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91636
#line 91637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91637
  friend class ::CCExprResolve;
 
91638
  friend class ::CExprResolve;
74467
91639
  friend class ::WinIfExists;
74468
91640
  friend class ::WinImportHandler;
74469
91641
  friend class ::WinMacros;
74470
 
  friend class ::CMatchSyntax;
74471
 
  friend class ::ExtGnu;
 
91642
  friend class ::WinAsm;
 
91643
  friend class ::WinDeclSpecs;
 
91644
  friend class ::WinMemberExplSpec;
 
91645
  friend class ::WinTypeKeywords;
 
91646
  friend class ::WinFriend;
74472
91647
  friend class ::ExtAC;
74473
91648
  friend class ::ExtACBuilderCoupling;
74474
91649
  friend class ::ExtACSyntaxCoupling;
74475
91650
  friend class ::ExtACTree;
74476
91651
  friend class ::ExtACKeywords;
74477
 
  friend class ::WinAsm;
74478
 
  friend class ::WinDeclSpecs;
74479
 
  friend class ::WinMemberExplSpec;
74480
 
  friend class ::WinTypeKeywords;
 
91652
  friend class ::ExtGnu;
74481
91653
  friend class ::PragmaOnceUnitState;
74482
91654
  friend class ::PragmaOnce;
74483
 
  friend class ::CCExprResolve;
74484
 
  friend class ::CExprResolve;
 
91655
  friend class ::CMatchSyntax;
74485
91656
 
74486
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91657
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74487
91658
 
74488
91659
public:
 
91660
  /** Constructor. 
 
91661
   *  \param size The initial size of the list.
 
91662
   *  \param incr The initial increment count of the list. */
74489
91663
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
91664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74490
91665
  static const char *NodeId ();
 
91666
  /** Get the name of the node. Can be compared with NodeId(). */
74491
91667
  const char *NodeName () const { return NodeId (); }
 
91668
  /** Set the linkage specifiers to each declaration in the list.
 
91669
   *  \param l The linkage specifiers node. */
74492
91670
  void Linkage (CT_LinkageSpec *l);
74493
91671
};
74494
91672
 
 
91673
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
91674
 *  Tree node representing a sequence of declaration specifiers. */
74495
91675
 
74496
 
#line 74497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91676
#line 91677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74497
91677
} // closed Puma
 
91678
class CCExprResolve;
 
91679
class CExprResolve;
74498
91680
class WinIfExists;
74499
91681
class WinImportHandler;
74500
91682
class WinMacros;
74501
 
class CMatchSyntax;
74502
 
class ExtGnu;
 
91683
class WinAsm;
 
91684
class WinDeclSpecs;
 
91685
class WinMemberExplSpec;
 
91686
class WinTypeKeywords;
 
91687
class WinFriend;
74503
91688
class ExtAC;
74504
91689
class ExtACBuilderCoupling;
74505
91690
class ExtACSyntaxCoupling;
74506
91691
class ExtACTree;
74507
91692
class ExtACKeywords;
74508
 
class WinAsm;
74509
 
class WinDeclSpecs;
74510
 
class WinMemberExplSpec;
74511
 
class WinTypeKeywords;
 
91693
class ExtGnu;
74512
91694
class PragmaOnceUnitState;
74513
91695
class PragmaOnce;
74514
 
class CCExprResolve;
74515
 
class CExprResolve;
 
91696
class CMatchSyntax;
74516
91697
namespace Puma {
74517
91698
 
74518
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91699
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74519
91700
class CT_DeclSpecSeq : public CT_List {
74520
 
#line 74521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91701
#line 91702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91702
  friend class ::CCExprResolve;
 
91703
  friend class ::CExprResolve;
74521
91704
  friend class ::WinIfExists;
74522
91705
  friend class ::WinImportHandler;
74523
91706
  friend class ::WinMacros;
74524
 
  friend class ::CMatchSyntax;
74525
 
  friend class ::ExtGnu;
 
91707
  friend class ::WinAsm;
 
91708
  friend class ::WinDeclSpecs;
 
91709
  friend class ::WinMemberExplSpec;
 
91710
  friend class ::WinTypeKeywords;
 
91711
  friend class ::WinFriend;
74526
91712
  friend class ::ExtAC;
74527
91713
  friend class ::ExtACBuilderCoupling;
74528
91714
  friend class ::ExtACSyntaxCoupling;
74529
91715
  friend class ::ExtACTree;
74530
91716
  friend class ::ExtACKeywords;
74531
 
  friend class ::WinAsm;
74532
 
  friend class ::WinDeclSpecs;
74533
 
  friend class ::WinMemberExplSpec;
74534
 
  friend class ::WinTypeKeywords;
 
91717
  friend class ::ExtGnu;
74535
91718
  friend class ::PragmaOnceUnitState;
74536
91719
  friend class ::PragmaOnce;
74537
 
  friend class ::CCExprResolve;
74538
 
  friend class ::CExprResolve;
 
91720
  friend class ::CMatchSyntax;
74539
91721
 
74540
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91722
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74541
91723
 
74542
91724
public:
 
91725
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74543
91726
  static const char *NodeId ();
 
91727
  /** Get the name of the node. Can be compared with NodeId(). */
74544
91728
  const char *NodeName () const { return NodeId (); }
74545
91729
};
74546
91730
 
 
91731
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
91732
 *  Tree node representing a compound statement. */
74547
91733
 
74548
 
#line 74549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91734
#line 91735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74549
91735
} // closed Puma
 
91736
class CCExprResolve;
 
91737
class CExprResolve;
74550
91738
class WinIfExists;
74551
91739
class WinImportHandler;
74552
91740
class WinMacros;
74553
 
class CMatchSyntax;
74554
 
class ExtGnu;
 
91741
class WinAsm;
 
91742
class WinDeclSpecs;
 
91743
class WinMemberExplSpec;
 
91744
class WinTypeKeywords;
 
91745
class WinFriend;
74555
91746
class ExtAC;
74556
91747
class ExtACBuilderCoupling;
74557
91748
class ExtACSyntaxCoupling;
74558
91749
class ExtACTree;
74559
91750
class ExtACKeywords;
74560
 
class WinAsm;
74561
 
class WinDeclSpecs;
74562
 
class WinMemberExplSpec;
74563
 
class WinTypeKeywords;
 
91751
class ExtGnu;
74564
91752
class PragmaOnceUnitState;
74565
91753
class PragmaOnce;
74566
 
class CCExprResolve;
74567
 
class CExprResolve;
 
91754
class CMatchSyntax;
74568
91755
namespace Puma {
74569
91756
 
74570
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91757
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74571
91758
class CT_CmpdStmt : public CT_List, public CSemScope {
74572
 
#line 74573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91759
#line 91760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91760
  friend class ::CCExprResolve;
 
91761
  friend class ::CExprResolve;
74573
91762
  friend class ::WinIfExists;
74574
91763
  friend class ::WinImportHandler;
74575
91764
  friend class ::WinMacros;
74576
 
  friend class ::CMatchSyntax;
74577
 
  friend class ::ExtGnu;
 
91765
  friend class ::WinAsm;
 
91766
  friend class ::WinDeclSpecs;
 
91767
  friend class ::WinMemberExplSpec;
 
91768
  friend class ::WinTypeKeywords;
 
91769
  friend class ::WinFriend;
74578
91770
  friend class ::ExtAC;
74579
91771
  friend class ::ExtACBuilderCoupling;
74580
91772
  friend class ::ExtACSyntaxCoupling;
74581
91773
  friend class ::ExtACTree;
74582
91774
  friend class ::ExtACKeywords;
74583
 
  friend class ::WinAsm;
74584
 
  friend class ::WinDeclSpecs;
74585
 
  friend class ::WinMemberExplSpec;
74586
 
  friend class ::WinTypeKeywords;
 
91775
  friend class ::ExtGnu;
74587
91776
  friend class ::PragmaOnceUnitState;
74588
91777
  friend class ::PragmaOnce;
74589
 
  friend class ::CCExprResolve;
74590
 
  friend class ::CExprResolve;
 
91778
  friend class ::CMatchSyntax;
74591
91779
 
74592
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91780
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74593
91781
 
74594
91782
public:
 
91783
  /* Constructor. */
74595
91784
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
91785
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74596
91786
  static const char *NodeId ();
 
91787
  /** Get the name of the node. Can be compared with NodeId(). */
74597
91788
  const char *NodeName () const { return NodeId (); }
 
91789
  /** Get the local scope of the compound statement. */
 
91790
  CSemScope *SemScope () const { return (CSemScope*)this; }
74598
91791
};
74599
91792
 
 
91793
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
91794
 *  Tree node representing an exception handler sequence. */
74600
91795
 
74601
 
#line 74602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91796
#line 91797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74602
91797
} // closed Puma
 
91798
class CCExprResolve;
 
91799
class CExprResolve;
74603
91800
class WinIfExists;
74604
91801
class WinImportHandler;
74605
91802
class WinMacros;
74606
 
class CMatchSyntax;
74607
 
class ExtGnu;
 
91803
class WinAsm;
 
91804
class WinDeclSpecs;
 
91805
class WinMemberExplSpec;
 
91806
class WinTypeKeywords;
 
91807
class WinFriend;
74608
91808
class ExtAC;
74609
91809
class ExtACBuilderCoupling;
74610
91810
class ExtACSyntaxCoupling;
74611
91811
class ExtACTree;
74612
91812
class ExtACKeywords;
74613
 
class WinAsm;
74614
 
class WinDeclSpecs;
74615
 
class WinMemberExplSpec;
74616
 
class WinTypeKeywords;
 
91813
class ExtGnu;
74617
91814
class PragmaOnceUnitState;
74618
91815
class PragmaOnce;
74619
 
class CCExprResolve;
74620
 
class CExprResolve;
 
91816
class CMatchSyntax;
74621
91817
namespace Puma {
74622
91818
 
74623
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91819
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74624
91820
class CT_HandlerSeq : public CT_List {
74625
 
#line 74626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91821
#line 91822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91822
  friend class ::CCExprResolve;
 
91823
  friend class ::CExprResolve;
74626
91824
  friend class ::WinIfExists;
74627
91825
  friend class ::WinImportHandler;
74628
91826
  friend class ::WinMacros;
74629
 
  friend class ::CMatchSyntax;
74630
 
  friend class ::ExtGnu;
 
91827
  friend class ::WinAsm;
 
91828
  friend class ::WinDeclSpecs;
 
91829
  friend class ::WinMemberExplSpec;
 
91830
  friend class ::WinTypeKeywords;
 
91831
  friend class ::WinFriend;
74631
91832
  friend class ::ExtAC;
74632
91833
  friend class ::ExtACBuilderCoupling;
74633
91834
  friend class ::ExtACSyntaxCoupling;
74634
91835
  friend class ::ExtACTree;
74635
91836
  friend class ::ExtACKeywords;
74636
 
  friend class ::WinAsm;
74637
 
  friend class ::WinDeclSpecs;
74638
 
  friend class ::WinMemberExplSpec;
74639
 
  friend class ::WinTypeKeywords;
 
91837
  friend class ::ExtGnu;
74640
91838
  friend class ::PragmaOnceUnitState;
74641
91839
  friend class ::PragmaOnce;
74642
 
  friend class ::CCExprResolve;
74643
 
  friend class ::CExprResolve;
 
91840
  friend class ::CMatchSyntax;
74644
91841
 
74645
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91842
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74646
91843
 
74647
91844
public:
 
91845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74648
91846
  static const char *NodeId ();
 
91847
  /** Get the name of the node. Can be compared with NodeId(). */
74649
91848
  const char *NodeName () const { return NodeId (); }
74650
91849
};
74651
91850
 
 
91851
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
91852
 *  Tree node representing a template parameter list. */
74652
91853
 
74653
 
#line 74654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91854
#line 91855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74654
91855
} // closed Puma
 
91856
class CCExprResolve;
 
91857
class CExprResolve;
74655
91858
class WinIfExists;
74656
91859
class WinImportHandler;
74657
91860
class WinMacros;
74658
 
class CMatchSyntax;
74659
 
class ExtGnu;
 
91861
class WinAsm;
 
91862
class WinDeclSpecs;
 
91863
class WinMemberExplSpec;
 
91864
class WinTypeKeywords;
 
91865
class WinFriend;
74660
91866
class ExtAC;
74661
91867
class ExtACBuilderCoupling;
74662
91868
class ExtACSyntaxCoupling;
74663
91869
class ExtACTree;
74664
91870
class ExtACKeywords;
74665
 
class WinAsm;
74666
 
class WinDeclSpecs;
74667
 
class WinMemberExplSpec;
74668
 
class WinTypeKeywords;
 
91871
class ExtGnu;
74669
91872
class PragmaOnceUnitState;
74670
91873
class PragmaOnce;
74671
 
class CCExprResolve;
74672
 
class CExprResolve;
 
91874
class CMatchSyntax;
74673
91875
namespace Puma {
74674
91876
 
74675
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91877
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74676
91878
class CT_TemplateParamList : public CT_List, public CSemScope {
74677
 
#line 74678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91879
#line 91880 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91880
  friend class ::CCExprResolve;
 
91881
  friend class ::CExprResolve;
74678
91882
  friend class ::WinIfExists;
74679
91883
  friend class ::WinImportHandler;
74680
91884
  friend class ::WinMacros;
74681
 
  friend class ::CMatchSyntax;
74682
 
  friend class ::ExtGnu;
 
91885
  friend class ::WinAsm;
 
91886
  friend class ::WinDeclSpecs;
 
91887
  friend class ::WinMemberExplSpec;
 
91888
  friend class ::WinTypeKeywords;
 
91889
  friend class ::WinFriend;
74683
91890
  friend class ::ExtAC;
74684
91891
  friend class ::ExtACBuilderCoupling;
74685
91892
  friend class ::ExtACSyntaxCoupling;
74686
91893
  friend class ::ExtACTree;
74687
91894
  friend class ::ExtACKeywords;
74688
 
  friend class ::WinAsm;
74689
 
  friend class ::WinDeclSpecs;
74690
 
  friend class ::WinMemberExplSpec;
74691
 
  friend class ::WinTypeKeywords;
 
91895
  friend class ::ExtGnu;
74692
91896
  friend class ::PragmaOnceUnitState;
74693
91897
  friend class ::PragmaOnce;
74694
 
  friend class ::CCExprResolve;
74695
 
  friend class ::CExprResolve;
 
91898
  friend class ::CMatchSyntax;
74696
91899
 
74697
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91900
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74698
91901
 
74699
91902
public:
74700
91903
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
91904
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74701
91905
  static const char *NodeId ();
 
91906
  /** Get the name of the node. Can be compared with NodeId(). */
74702
91907
  const char *NodeName () const { return NodeId (); }
 
91908
  /** Get the scope of the template parameter list. */
 
91909
  CSemScope *SemScope () const { return (CSemScope*)this; }
74703
91910
};
74704
91911
 
 
91912
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
91913
 *  Tree node representing a template argument list. */
74705
91914
 
74706
 
#line 74707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91915
#line 91916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74707
91916
} // closed Puma
 
91917
class CCExprResolve;
 
91918
class CExprResolve;
74708
91919
class WinIfExists;
74709
91920
class WinImportHandler;
74710
91921
class WinMacros;
74711
 
class CMatchSyntax;
74712
 
class ExtGnu;
 
91922
class WinAsm;
 
91923
class WinDeclSpecs;
 
91924
class WinMemberExplSpec;
 
91925
class WinTypeKeywords;
 
91926
class WinFriend;
74713
91927
class ExtAC;
74714
91928
class ExtACBuilderCoupling;
74715
91929
class ExtACSyntaxCoupling;
74716
91930
class ExtACTree;
74717
91931
class ExtACKeywords;
74718
 
class WinAsm;
74719
 
class WinDeclSpecs;
74720
 
class WinMemberExplSpec;
74721
 
class WinTypeKeywords;
 
91932
class ExtGnu;
74722
91933
class PragmaOnceUnitState;
74723
91934
class PragmaOnce;
74724
 
class CCExprResolve;
74725
 
class CExprResolve;
 
91935
class CMatchSyntax;
74726
91936
namespace Puma {
74727
91937
 
74728
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91938
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74729
91939
class CT_TemplateArgList : public CT_List {
74730
 
#line 74731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91940
#line 91941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
91941
  friend class ::CCExprResolve;
 
91942
  friend class ::CExprResolve;
74731
91943
  friend class ::WinIfExists;
74732
91944
  friend class ::WinImportHandler;
74733
91945
  friend class ::WinMacros;
74734
 
  friend class ::CMatchSyntax;
74735
 
  friend class ::ExtGnu;
 
91946
  friend class ::WinAsm;
 
91947
  friend class ::WinDeclSpecs;
 
91948
  friend class ::WinMemberExplSpec;
 
91949
  friend class ::WinTypeKeywords;
 
91950
  friend class ::WinFriend;
74736
91951
  friend class ::ExtAC;
74737
91952
  friend class ::ExtACBuilderCoupling;
74738
91953
  friend class ::ExtACSyntaxCoupling;
74739
91954
  friend class ::ExtACTree;
74740
91955
  friend class ::ExtACKeywords;
74741
 
  friend class ::WinAsm;
74742
 
  friend class ::WinDeclSpecs;
74743
 
  friend class ::WinMemberExplSpec;
74744
 
  friend class ::WinTypeKeywords;
 
91956
  friend class ::ExtGnu;
74745
91957
  friend class ::PragmaOnceUnitState;
74746
91958
  friend class ::PragmaOnce;
74747
 
  friend class ::CCExprResolve;
74748
 
  friend class ::CExprResolve;
 
91959
  friend class ::CMatchSyntax;
74749
91960
 
74750
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
91961
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74751
91962
 
74752
91963
public:
 
91964
  /** Constructor. */
74753
91965
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
91966
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74754
91967
  static const char *NodeId ();
 
91968
  /** Get the name of the node. Can be compared with NodeId(). */
74755
91969
  const char *NodeName () const { return NodeId (); }
74756
91970
};
74757
91971
 
74761
91975
/*                                                                           */
74762
91976
/*****************************************************************************/
74763
91977
 
 
91978
/** \class CT_Expression CTree.h Puma/CTree.h
 
91979
 *  Base class for all expression tree nodes. */
74764
91980
 
74765
 
#line 74766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
91981
#line 91982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74766
91982
} // closed Puma
 
91983
class CCExprResolve;
 
91984
class CExprResolve;
74767
91985
class WinIfExists;
74768
91986
class WinImportHandler;
74769
91987
class WinMacros;
74770
 
class CMatchSyntax;
74771
 
class ExtGnu;
 
91988
class WinAsm;
 
91989
class WinDeclSpecs;
 
91990
class WinMemberExplSpec;
 
91991
class WinTypeKeywords;
 
91992
class WinFriend;
74772
91993
class ExtAC;
74773
91994
class ExtACBuilderCoupling;
74774
91995
class ExtACSyntaxCoupling;
74775
91996
class ExtACTree;
74776
91997
class ExtACKeywords;
74777
 
class WinAsm;
74778
 
class WinDeclSpecs;
74779
 
class WinMemberExplSpec;
74780
 
class WinTypeKeywords;
 
91998
class ExtGnu;
74781
91999
class PragmaOnceUnitState;
74782
92000
class PragmaOnce;
74783
 
class CCExprResolve;
74784
 
class CExprResolve;
74785
 
namespace Puma {
74786
 
 
74787
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92001
class CMatchSyntax;
 
92002
namespace Puma {
 
92003
 
 
92004
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92005
 
 
92006
#line 92007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92007
} // closed Puma
 
92008
 
 
92009
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92010
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92011
#include "CCExprResolveH.ah"
 
92012
#endif
 
92013
namespace Puma {
 
92014
 
 
92015
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92016
 
 
92017
#line 92018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92018
} // closed Puma
 
92019
 
 
92020
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92021
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92022
#include "CExprResolveH.ah"
 
92023
#endif
 
92024
namespace Puma {
 
92025
 
 
92026
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74788
92027
class CT_Expression : public CTree, public CSemValue {
74789
 
#line 74790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92028
#line 92029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92029
  friend class ::CCExprResolve;
 
92030
  friend class ::CExprResolve;
74790
92031
  friend class ::WinIfExists;
74791
92032
  friend class ::WinImportHandler;
74792
92033
  friend class ::WinMacros;
74793
 
  friend class ::CMatchSyntax;
74794
 
  friend class ::ExtGnu;
 
92034
  friend class ::WinAsm;
 
92035
  friend class ::WinDeclSpecs;
 
92036
  friend class ::WinMemberExplSpec;
 
92037
  friend class ::WinTypeKeywords;
 
92038
  friend class ::WinFriend;
74795
92039
  friend class ::ExtAC;
74796
92040
  friend class ::ExtACBuilderCoupling;
74797
92041
  friend class ::ExtACSyntaxCoupling;
74798
92042
  friend class ::ExtACTree;
74799
92043
  friend class ::ExtACKeywords;
74800
 
  friend class ::WinAsm;
74801
 
  friend class ::WinDeclSpecs;
74802
 
  friend class ::WinMemberExplSpec;
74803
 
  friend class ::WinTypeKeywords;
 
92044
  friend class ::ExtGnu;
74804
92045
  friend class ::PragmaOnceUnitState;
74805
92046
  friend class ::PragmaOnce;
74806
 
  friend class ::CCExprResolve;
74807
 
  friend class ::CExprResolve;
 
92047
  friend class ::CMatchSyntax;
74808
92048
 
74809
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92049
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74810
92050
 
74811
92051
protected:
 
92052
  /** Constructor. */
74812
92053
  CT_Expression () {}
74813
92054
 
74814
92055
public:
 
92056
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74815
92057
  static const char *NodeId ();
 
92058
  /** Get the name of the node. Can be compared with NodeId(). */
74816
92059
  const char *NodeName () const { return NodeId (); }
 
92060
  /** Get the type of the expression.
 
92061
   *  \return The type information object or NULL. */
74817
92062
  CTypeInfo *Type () const { return type; }
 
92063
  /** Get the value of the expression.
 
92064
   *  \return The value object or NULL. */
74818
92065
  CExprValue *Value () const { return value; }
 
92066
  /** Get the semantic value information of the expression.
 
92067
   *  \return The value object or NULL. */
74819
92068
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
92069
  /** Get this. */
 
92070
  virtual CT_Expression *IsExpression () { return this; }
74820
92071
   private:
74821
92072
  typedef CT_Expression CCExprResolveExpr;
74822
92073
 
74823
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92074
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
74824
92075
 public :
74825
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92076
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
74826
92077
  typedef CT_Expression CExprResolveExpr;
74827
92078
 
74828
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
74829
 
 public :
74830
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
74831
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
74832
 
};
74833
 
 
74834
 
 
74835
 
#line 74836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
74836
 
} // closed Puma
74837
 
class WinIfExists;
74838
 
class WinImportHandler;
74839
 
class WinMacros;
74840
 
class CMatchSyntax;
74841
 
class ExtGnu;
74842
 
class ExtAC;
74843
 
class ExtACBuilderCoupling;
74844
 
class ExtACSyntaxCoupling;
74845
 
class ExtACTree;
74846
 
class ExtACKeywords;
74847
 
class WinAsm;
74848
 
class WinDeclSpecs;
74849
 
class WinMemberExplSpec;
74850
 
class WinTypeKeywords;
74851
 
class PragmaOnceUnitState;
74852
 
class PragmaOnce;
74853
 
class CCExprResolve;
74854
 
class CExprResolve;
74855
 
namespace Puma {
74856
 
 
74857
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92079
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92080
 public :
 
92081
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92082
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92083
};
 
92084
 
 
92085
/** \class CT_Call CTree.h Puma/CTree.h
 
92086
 *  Tree node representing explicit or implicit function calls 
 
92087
 *  including built-in or user-defined functions and overloaded
 
92088
 *  operators. */
 
92089
 
 
92090
#line 92091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92091
} // closed Puma
 
92092
class CCExprResolve;
 
92093
class CExprResolve;
 
92094
class WinIfExists;
 
92095
class WinImportHandler;
 
92096
class WinMacros;
 
92097
class WinAsm;
 
92098
class WinDeclSpecs;
 
92099
class WinMemberExplSpec;
 
92100
class WinTypeKeywords;
 
92101
class WinFriend;
 
92102
class ExtAC;
 
92103
class ExtACBuilderCoupling;
 
92104
class ExtACSyntaxCoupling;
 
92105
class ExtACTree;
 
92106
class ExtACKeywords;
 
92107
class ExtGnu;
 
92108
class PragmaOnceUnitState;
 
92109
class PragmaOnce;
 
92110
class CMatchSyntax;
 
92111
namespace Puma {
 
92112
 
 
92113
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92114
 
 
92115
#line 92116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92116
} // closed Puma
 
92117
 
 
92118
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92119
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92120
#include "CCExprResolveH.ah"
 
92121
#endif
 
92122
namespace Puma {
 
92123
 
 
92124
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92125
 
 
92126
#line 92127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92127
} // closed Puma
 
92128
 
 
92129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92131
#include "CExprResolveH.ah"
 
92132
#endif
 
92133
namespace Puma {
 
92134
 
 
92135
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92136
class CT_Call : public CT_Expression, public CSemObject {
 
92137
#line 92138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92138
  friend class ::CCExprResolve;
 
92139
  friend class ::CExprResolve;
 
92140
  friend class ::WinIfExists;
 
92141
  friend class ::WinImportHandler;
 
92142
  friend class ::WinMacros;
 
92143
  friend class ::WinAsm;
 
92144
  friend class ::WinDeclSpecs;
 
92145
  friend class ::WinMemberExplSpec;
 
92146
  friend class ::WinTypeKeywords;
 
92147
  friend class ::WinFriend;
 
92148
  friend class ::ExtAC;
 
92149
  friend class ::ExtACBuilderCoupling;
 
92150
  friend class ::ExtACSyntaxCoupling;
 
92151
  friend class ::ExtACTree;
 
92152
  friend class ::ExtACKeywords;
 
92153
  friend class ::ExtGnu;
 
92154
  friend class ::PragmaOnceUnitState;
 
92155
  friend class ::PragmaOnce;
 
92156
  friend class ::CMatchSyntax;
 
92157
 
 
92158
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92159
 
 
92160
protected:
 
92161
  /** Constructor. */
 
92162
  CT_Call () {}
 
92163
  
 
92164
public:
 
92165
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
92166
  static const char *NodeId ();
 
92167
  /** Get the name of the node. Can be compared with NodeId(). */
 
92168
  const char *NodeName () const { return NodeId (); }
 
92169
  /** Get the semantic information of the call.
 
92170
   *  \return The semantic information or NULL. */
 
92171
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
92172
  /** Get this. */
 
92173
  CT_Call *IsCall () { return this; }
 
92174
   private:
 
92175
  typedef CT_Call CCExprResolveExpr;
 
92176
 
 
92177
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92178
 public :
 
92179
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
92180
  typedef CT_Call CExprResolveExpr;
 
92181
 
 
92182
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92183
 public :
 
92184
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92185
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92186
};
 
92187
 
 
92188
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
92189
 *  Tree node representing implicit function calls detected by
 
92190
 *  the semantic analysis. */
 
92191
 
 
92192
#line 92193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92193
} // closed Puma
 
92194
class CCExprResolve;
 
92195
class CExprResolve;
 
92196
class WinIfExists;
 
92197
class WinImportHandler;
 
92198
class WinMacros;
 
92199
class WinAsm;
 
92200
class WinDeclSpecs;
 
92201
class WinMemberExplSpec;
 
92202
class WinTypeKeywords;
 
92203
class WinFriend;
 
92204
class ExtAC;
 
92205
class ExtACBuilderCoupling;
 
92206
class ExtACSyntaxCoupling;
 
92207
class ExtACTree;
 
92208
class ExtACKeywords;
 
92209
class ExtGnu;
 
92210
class PragmaOnceUnitState;
 
92211
class PragmaOnce;
 
92212
class CMatchSyntax;
 
92213
namespace Puma {
 
92214
 
 
92215
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92216
 
 
92217
#line 92218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92218
} // closed Puma
 
92219
 
 
92220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92222
#include "CCExprResolveH.ah"
 
92223
#endif
 
92224
namespace Puma {
 
92225
 
 
92226
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92227
 
 
92228
#line 92229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92229
} // closed Puma
 
92230
 
 
92231
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92232
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92233
#include "CExprResolveH.ah"
 
92234
#endif
 
92235
namespace Puma {
 
92236
 
 
92237
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92238
class CT_ImplicitCall : public CT_Call {
 
92239
#line 92240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92240
  friend class ::CCExprResolve;
 
92241
  friend class ::CExprResolve;
 
92242
  friend class ::WinIfExists;
 
92243
  friend class ::WinImportHandler;
 
92244
  friend class ::WinMacros;
 
92245
  friend class ::WinAsm;
 
92246
  friend class ::WinDeclSpecs;
 
92247
  friend class ::WinMemberExplSpec;
 
92248
  friend class ::WinTypeKeywords;
 
92249
  friend class ::WinFriend;
 
92250
  friend class ::ExtAC;
 
92251
  friend class ::ExtACBuilderCoupling;
 
92252
  friend class ::ExtACSyntaxCoupling;
 
92253
  friend class ::ExtACTree;
 
92254
  friend class ::ExtACKeywords;
 
92255
  friend class ::ExtGnu;
 
92256
  friend class ::PragmaOnceUnitState;
 
92257
  friend class ::PragmaOnce;
 
92258
  friend class ::CMatchSyntax;
 
92259
 
 
92260
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92261
 
 
92262
  CTree *_arg;
 
92263
 
 
92264
public:
 
92265
  /** Constructor.
 
92266
   *  \param arg The call argument. */
 
92267
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
92268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
92269
  static const char *NodeId ();
 
92270
  /** Get the name of the node. Can be compared with NodeId(). */
 
92271
  const char *NodeName () const { return NodeId (); }
 
92272
  /** Get the number of sons. */
 
92273
  int Sons () const { return 1; }
 
92274
  /** Get the n-th son.
 
92275
   *  \param n The index of the son.
 
92276
   *  \return The n-th son or NULL. */
 
92277
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
92278
  /** Replace a son.
 
92279
   *  \param old_son The son to replace.
 
92280
   *  \param new_son The new son. */
 
92281
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
92282
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
92283
   private:
 
92284
  typedef CT_ImplicitCall CCExprResolveExpr;
 
92285
 
 
92286
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92287
 public :
 
92288
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
92289
  typedef CT_ImplicitCall CExprResolveExpr;
 
92290
 
 
92291
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92292
 public :
 
92293
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92294
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92295
};
 
92296
 
 
92297
/** \class CT_String CTree.h Puma/CTree.h
 
92298
 *  Tree node representing a string literal. */
 
92299
 
 
92300
#line 92301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92301
} // closed Puma
 
92302
class CCExprResolve;
 
92303
class CExprResolve;
 
92304
class WinIfExists;
 
92305
class WinImportHandler;
 
92306
class WinMacros;
 
92307
class WinAsm;
 
92308
class WinDeclSpecs;
 
92309
class WinMemberExplSpec;
 
92310
class WinTypeKeywords;
 
92311
class WinFriend;
 
92312
class ExtAC;
 
92313
class ExtACBuilderCoupling;
 
92314
class ExtACSyntaxCoupling;
 
92315
class ExtACTree;
 
92316
class ExtACKeywords;
 
92317
class ExtGnu;
 
92318
class PragmaOnceUnitState;
 
92319
class PragmaOnce;
 
92320
class CMatchSyntax;
 
92321
namespace Puma {
 
92322
 
 
92323
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92324
 
 
92325
#line 92326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92326
} // closed Puma
 
92327
 
 
92328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92330
#include "CCExprResolveH.ah"
 
92331
#endif
 
92332
namespace Puma {
 
92333
 
 
92334
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92335
 
 
92336
#line 92337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92337
} // closed Puma
 
92338
 
 
92339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92341
#include "CExprResolveH.ah"
 
92342
#endif
 
92343
namespace Puma {
 
92344
 
 
92345
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74858
92346
class CT_String : public CT_List, public CSemValue {
74859
 
#line 74860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92347
#line 92348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92348
  friend class ::CCExprResolve;
 
92349
  friend class ::CExprResolve;
74860
92350
  friend class ::WinIfExists;
74861
92351
  friend class ::WinImportHandler;
74862
92352
  friend class ::WinMacros;
74863
 
  friend class ::CMatchSyntax;
74864
 
  friend class ::ExtGnu;
 
92353
  friend class ::WinAsm;
 
92354
  friend class ::WinDeclSpecs;
 
92355
  friend class ::WinMemberExplSpec;
 
92356
  friend class ::WinTypeKeywords;
 
92357
  friend class ::WinFriend;
74865
92358
  friend class ::ExtAC;
74866
92359
  friend class ::ExtACBuilderCoupling;
74867
92360
  friend class ::ExtACSyntaxCoupling;
74868
92361
  friend class ::ExtACTree;
74869
92362
  friend class ::ExtACKeywords;
74870
 
  friend class ::WinAsm;
74871
 
  friend class ::WinDeclSpecs;
74872
 
  friend class ::WinMemberExplSpec;
74873
 
  friend class ::WinTypeKeywords;
 
92363
  friend class ::ExtGnu;
74874
92364
  friend class ::PragmaOnceUnitState;
74875
92365
  friend class ::PragmaOnce;
74876
 
  friend class ::CCExprResolve;
74877
 
  friend class ::CExprResolve;
 
92366
  friend class ::CMatchSyntax;
74878
92367
 
74879
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92368
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74880
92369
 
74881
92370
public:
 
92371
  /** Constructor. 
 
92372
   *  \param size The number of sub-strings. */
74882
92373
  CT_String (int size) : CT_List (size, 1) {}
 
92374
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74883
92375
  static const char *NodeId ();
 
92376
  /** Get the name of the node. Can be compared with NodeId(). */
74884
92377
  const char *NodeName () const { return NodeId (); }
74885
92378
 
 
92379
  /** Get the type of the string. 
 
92380
   *  \return The type or NULL. */
74886
92381
  CTypeInfo *Type () const { return type; }
 
92382
  /** Get the string value.
 
92383
   *  \return The value or NULL. */
74887
92384
  CExprValue *Value () const { return value; }
 
92385
  /** Get the semantic value info object.
 
92386
   *  \return The semantic value object or NULL. */
74888
92387
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
92388
  /** Get this. */
 
92389
  virtual CT_String *IsString () { return this; }
74889
92390
   private:
74890
92391
  typedef CT_String CCExprResolveExpr;
74891
92392
 
74892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92393
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
74893
92394
 public :
74894
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92395
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
74895
92396
  typedef CT_String CExprResolveExpr;
74896
92397
 
74897
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92398
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
74898
92399
 public :
74899
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
74900
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92400
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92401
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74901
92402
};
74902
92403
 
 
92404
/** \class CT_WideString CTree.h Puma/CTree.h
 
92405
 *  Tree node representing a wide string literal. */
74903
92406
 
74904
 
#line 74905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92407
#line 92408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74905
92408
} // closed Puma
 
92409
class CCExprResolve;
 
92410
class CExprResolve;
74906
92411
class WinIfExists;
74907
92412
class WinImportHandler;
74908
92413
class WinMacros;
74909
 
class CMatchSyntax;
74910
 
class ExtGnu;
 
92414
class WinAsm;
 
92415
class WinDeclSpecs;
 
92416
class WinMemberExplSpec;
 
92417
class WinTypeKeywords;
 
92418
class WinFriend;
74911
92419
class ExtAC;
74912
92420
class ExtACBuilderCoupling;
74913
92421
class ExtACSyntaxCoupling;
74914
92422
class ExtACTree;
74915
92423
class ExtACKeywords;
74916
 
class WinAsm;
74917
 
class WinDeclSpecs;
74918
 
class WinMemberExplSpec;
74919
 
class WinTypeKeywords;
 
92424
class ExtGnu;
74920
92425
class PragmaOnceUnitState;
74921
92426
class PragmaOnce;
74922
 
class CCExprResolve;
74923
 
class CExprResolve;
74924
 
namespace Puma {
74925
 
 
74926
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92427
class CMatchSyntax;
 
92428
namespace Puma {
 
92429
 
 
92430
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92431
 
 
92432
#line 92433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92433
} // closed Puma
 
92434
 
 
92435
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92436
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92437
#include "CCExprResolveH.ah"
 
92438
#endif
 
92439
namespace Puma {
 
92440
 
 
92441
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92442
 
 
92443
#line 92444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92444
} // closed Puma
 
92445
 
 
92446
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92447
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92448
#include "CExprResolveH.ah"
 
92449
#endif
 
92450
namespace Puma {
 
92451
 
 
92452
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74927
92453
class CT_WideString : public CT_String {
74928
 
#line 74929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92454
#line 92455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92455
  friend class ::CCExprResolve;
 
92456
  friend class ::CExprResolve;
74929
92457
  friend class ::WinIfExists;
74930
92458
  friend class ::WinImportHandler;
74931
92459
  friend class ::WinMacros;
74932
 
  friend class ::CMatchSyntax;
74933
 
  friend class ::ExtGnu;
 
92460
  friend class ::WinAsm;
 
92461
  friend class ::WinDeclSpecs;
 
92462
  friend class ::WinMemberExplSpec;
 
92463
  friend class ::WinTypeKeywords;
 
92464
  friend class ::WinFriend;
74934
92465
  friend class ::ExtAC;
74935
92466
  friend class ::ExtACBuilderCoupling;
74936
92467
  friend class ::ExtACSyntaxCoupling;
74937
92468
  friend class ::ExtACTree;
74938
92469
  friend class ::ExtACKeywords;
74939
 
  friend class ::WinAsm;
74940
 
  friend class ::WinDeclSpecs;
74941
 
  friend class ::WinMemberExplSpec;
74942
 
  friend class ::WinTypeKeywords;
 
92470
  friend class ::ExtGnu;
74943
92471
  friend class ::PragmaOnceUnitState;
74944
92472
  friend class ::PragmaOnce;
74945
 
  friend class ::CCExprResolve;
74946
 
  friend class ::CExprResolve;
 
92473
  friend class ::CMatchSyntax;
74947
92474
 
74948
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92475
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74949
92476
 
74950
92477
public:
 
92478
  /** Constructor.
 
92479
   *  \param size The number of sub-strings. */
74951
92480
  CT_WideString (int size) : CT_String (size) {}
 
92481
  /** Get the identifier for this node type. Can be compared with NodeName(). */
74952
92482
  static const char *NodeId ();
 
92483
  /** Get the name of the node. Can be compared with NodeId(). */
74953
92484
  const char *NodeName () const { return NodeId (); }
74954
92485
   private:
74955
92486
  typedef CT_WideString CCExprResolveExpr;
74956
92487
 
74957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92488
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
74958
92489
 public :
74959
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92490
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
74960
92491
  typedef CT_WideString CExprResolveExpr;
74961
92492
 
74962
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92493
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
74963
92494
 public :
74964
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
74965
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92495
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92496
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74966
92497
};
74967
92498
 
 
92499
/** \class CT_Integer CTree.h Puma/CTree.h
 
92500
 *  Tree node representing an integer constant. */
74968
92501
 
74969
 
#line 74970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92502
#line 92503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
74970
92503
} // closed Puma
 
92504
class CCExprResolve;
 
92505
class CExprResolve;
74971
92506
class WinIfExists;
74972
92507
class WinImportHandler;
74973
92508
class WinMacros;
74974
 
class CMatchSyntax;
74975
 
class ExtGnu;
 
92509
class WinAsm;
 
92510
class WinDeclSpecs;
 
92511
class WinMemberExplSpec;
 
92512
class WinTypeKeywords;
 
92513
class WinFriend;
74976
92514
class ExtAC;
74977
92515
class ExtACBuilderCoupling;
74978
92516
class ExtACSyntaxCoupling;
74979
92517
class ExtACTree;
74980
92518
class ExtACKeywords;
74981
 
class WinAsm;
74982
 
class WinDeclSpecs;
74983
 
class WinMemberExplSpec;
74984
 
class WinTypeKeywords;
 
92519
class ExtGnu;
74985
92520
class PragmaOnceUnitState;
74986
92521
class PragmaOnce;
74987
 
class CCExprResolve;
74988
 
class CExprResolve;
74989
 
namespace Puma {
74990
 
 
74991
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92522
class CMatchSyntax;
 
92523
namespace Puma {
 
92524
 
 
92525
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92526
 
 
92527
#line 92528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92528
} // closed Puma
 
92529
 
 
92530
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92531
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92532
#include "CCExprResolveH.ah"
 
92533
#endif
 
92534
namespace Puma {
 
92535
 
 
92536
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92537
 
 
92538
#line 92539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92539
} // closed Puma
 
92540
 
 
92541
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92542
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92543
#include "CExprResolveH.ah"
 
92544
#endif
 
92545
namespace Puma {
 
92546
 
 
92547
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
74992
92548
class CT_Integer : public CT_Expression {
74993
 
#line 74994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92549
#line 92550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92550
  friend class ::CCExprResolve;
 
92551
  friend class ::CExprResolve;
74994
92552
  friend class ::WinIfExists;
74995
92553
  friend class ::WinImportHandler;
74996
92554
  friend class ::WinMacros;
74997
 
  friend class ::CMatchSyntax;
74998
 
  friend class ::ExtGnu;
 
92555
  friend class ::WinAsm;
 
92556
  friend class ::WinDeclSpecs;
 
92557
  friend class ::WinMemberExplSpec;
 
92558
  friend class ::WinTypeKeywords;
 
92559
  friend class ::WinFriend;
74999
92560
  friend class ::ExtAC;
75000
92561
  friend class ::ExtACBuilderCoupling;
75001
92562
  friend class ::ExtACSyntaxCoupling;
75002
92563
  friend class ::ExtACTree;
75003
92564
  friend class ::ExtACKeywords;
75004
 
  friend class ::WinAsm;
75005
 
  friend class ::WinDeclSpecs;
75006
 
  friend class ::WinMemberExplSpec;
75007
 
  friend class ::WinTypeKeywords;
 
92565
  friend class ::ExtGnu;
75008
92566
  friend class ::PragmaOnceUnitState;
75009
92567
  friend class ::PragmaOnce;
75010
 
  friend class ::CCExprResolve;
75011
 
  friend class ::CExprResolve;
 
92568
  friend class ::CMatchSyntax;
75012
92569
 
75013
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92570
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75014
92571
 
75015
92572
  CTree *_value;  // CT_Token
75016
92573
 
75017
92574
public:
75018
 
  CT_Integer (CTree *t) : _value (t) {}
 
92575
  /** Constructor.
 
92576
   *  \param token The token containing the integer value. */
 
92577
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
92578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75019
92579
  static const char *NodeId ();
 
92580
  /** Get the name of the node. Can be compared with NodeId(). */
75020
92581
  const char *NodeName () const { return NodeId (); }
 
92582
  /** Get the number of sons. */
75021
92583
  int Sons () const { return _value ? 1 : 0; }
 
92584
  /** Get the n-th son.
 
92585
   *  \param n The index of the son.
 
92586
   *  \return The n-th son or NULL. */
75022
92587
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
92588
  /** Replace a son.
 
92589
   *  \param old_son The son to replace.
 
92590
   *  \param new_son The new son. */
75023
92591
  void ReplaceSon (CTree *old_son, CTree *new_son) 
75024
 
   { if (old_son == _value) _value = new_son; }
 
92592
   { CTree::ReplaceSon (_value, old_son, new_son); }
75025
92593
   private:
75026
92594
  typedef CT_Integer CCExprResolveExpr;
75027
92595
 
75028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75029
92597
 public :
75030
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92598
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75031
92599
  typedef CT_Integer CExprResolveExpr;
75032
92600
 
75033
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92601
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75034
92602
 public :
75035
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75036
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92603
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92604
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75037
92605
};
75038
92606
 
 
92607
/** \class CT_Character CTree.h Puma/CTree.h
 
92608
 *  Tree node representing a single character constant. */
75039
92609
 
75040
 
#line 75041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92610
#line 92611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75041
92611
} // closed Puma
 
92612
class CCExprResolve;
 
92613
class CExprResolve;
75042
92614
class WinIfExists;
75043
92615
class WinImportHandler;
75044
92616
class WinMacros;
75045
 
class CMatchSyntax;
75046
 
class ExtGnu;
 
92617
class WinAsm;
 
92618
class WinDeclSpecs;
 
92619
class WinMemberExplSpec;
 
92620
class WinTypeKeywords;
 
92621
class WinFriend;
75047
92622
class ExtAC;
75048
92623
class ExtACBuilderCoupling;
75049
92624
class ExtACSyntaxCoupling;
75050
92625
class ExtACTree;
75051
92626
class ExtACKeywords;
75052
 
class WinAsm;
75053
 
class WinDeclSpecs;
75054
 
class WinMemberExplSpec;
75055
 
class WinTypeKeywords;
 
92627
class ExtGnu;
75056
92628
class PragmaOnceUnitState;
75057
92629
class PragmaOnce;
75058
 
class CCExprResolve;
75059
 
class CExprResolve;
75060
 
namespace Puma {
75061
 
 
75062
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92630
class CMatchSyntax;
 
92631
namespace Puma {
 
92632
 
 
92633
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92634
 
 
92635
#line 92636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92636
} // closed Puma
 
92637
 
 
92638
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92639
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92640
#include "CCExprResolveH.ah"
 
92641
#endif
 
92642
namespace Puma {
 
92643
 
 
92644
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92645
 
 
92646
#line 92647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92647
} // closed Puma
 
92648
 
 
92649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92651
#include "CExprResolveH.ah"
 
92652
#endif
 
92653
namespace Puma {
 
92654
 
 
92655
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75063
92656
class CT_Character : public CT_Expression {
75064
 
#line 75065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92657
#line 92658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92658
  friend class ::CCExprResolve;
 
92659
  friend class ::CExprResolve;
75065
92660
  friend class ::WinIfExists;
75066
92661
  friend class ::WinImportHandler;
75067
92662
  friend class ::WinMacros;
75068
 
  friend class ::CMatchSyntax;
75069
 
  friend class ::ExtGnu;
 
92663
  friend class ::WinAsm;
 
92664
  friend class ::WinDeclSpecs;
 
92665
  friend class ::WinMemberExplSpec;
 
92666
  friend class ::WinTypeKeywords;
 
92667
  friend class ::WinFriend;
75070
92668
  friend class ::ExtAC;
75071
92669
  friend class ::ExtACBuilderCoupling;
75072
92670
  friend class ::ExtACSyntaxCoupling;
75073
92671
  friend class ::ExtACTree;
75074
92672
  friend class ::ExtACKeywords;
75075
 
  friend class ::WinAsm;
75076
 
  friend class ::WinDeclSpecs;
75077
 
  friend class ::WinMemberExplSpec;
75078
 
  friend class ::WinTypeKeywords;
 
92673
  friend class ::ExtGnu;
75079
92674
  friend class ::PragmaOnceUnitState;
75080
92675
  friend class ::PragmaOnce;
75081
 
  friend class ::CCExprResolve;
75082
 
  friend class ::CExprResolve;
 
92676
  friend class ::CMatchSyntax;
75083
92677
 
75084
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92678
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75085
92679
 
75086
92680
  CTree *_value;  // CT_Token
75087
92681
 
75088
92682
public:
75089
 
  CT_Character (CTree *t) : _value (t) {}
 
92683
  /** Constructor.
 
92684
   *  \param token The token containing the character value. */
 
92685
  CT_Character (CTree *token) { AddSon (_value, token); }
 
92686
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75090
92687
  static const char *NodeId ();
 
92688
  /** Get the name of the node. Can be compared with NodeId(). */
75091
92689
  const char *NodeName () const { return NodeId (); }
 
92690
  /** Get the number of sons. */
75092
92691
  int Sons () const { return 1; }
 
92692
  /** Get the n-th son.
 
92693
   *  \param n The index of the son.
 
92694
   *  \return The n-th son or NULL. */
75093
92695
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
92696
  /** Replace a son.
 
92697
   *  \param old_son The son to replace.
 
92698
   *  \param new_son The new son. */
75094
92699
  void ReplaceSon (CTree *old_son, CTree *new_son) 
75095
 
   { if (old_son == _value) _value = new_son; }
 
92700
   { CTree::ReplaceSon (_value, old_son, new_son); }
75096
92701
   private:
75097
92702
  typedef CT_Character CCExprResolveExpr;
75098
92703
 
75099
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92704
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75100
92705
 public :
75101
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92706
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75102
92707
  typedef CT_Character CExprResolveExpr;
75103
92708
 
75104
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92709
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75105
92710
 public :
75106
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75107
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92711
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92712
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75108
92713
};
75109
92714
 
 
92715
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
92716
 *  Tree node representing a wide character constant. */
75110
92717
 
75111
 
#line 75112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92718
#line 92719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75112
92719
} // closed Puma
 
92720
class CCExprResolve;
 
92721
class CExprResolve;
75113
92722
class WinIfExists;
75114
92723
class WinImportHandler;
75115
92724
class WinMacros;
75116
 
class CMatchSyntax;
75117
 
class ExtGnu;
 
92725
class WinAsm;
 
92726
class WinDeclSpecs;
 
92727
class WinMemberExplSpec;
 
92728
class WinTypeKeywords;
 
92729
class WinFriend;
75118
92730
class ExtAC;
75119
92731
class ExtACBuilderCoupling;
75120
92732
class ExtACSyntaxCoupling;
75121
92733
class ExtACTree;
75122
92734
class ExtACKeywords;
75123
 
class WinAsm;
75124
 
class WinDeclSpecs;
75125
 
class WinMemberExplSpec;
75126
 
class WinTypeKeywords;
 
92735
class ExtGnu;
75127
92736
class PragmaOnceUnitState;
75128
92737
class PragmaOnce;
75129
 
class CCExprResolve;
75130
 
class CExprResolve;
75131
 
namespace Puma {
75132
 
 
75133
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92738
class CMatchSyntax;
 
92739
namespace Puma {
 
92740
 
 
92741
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92742
 
 
92743
#line 92744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92744
} // closed Puma
 
92745
 
 
92746
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92747
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92748
#include "CCExprResolveH.ah"
 
92749
#endif
 
92750
namespace Puma {
 
92751
 
 
92752
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92753
 
 
92754
#line 92755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92755
} // closed Puma
 
92756
 
 
92757
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92758
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92759
#include "CExprResolveH.ah"
 
92760
#endif
 
92761
namespace Puma {
 
92762
 
 
92763
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75134
92764
class CT_WideCharacter : public CT_Character {
75135
 
#line 75136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92765
#line 92766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92766
  friend class ::CCExprResolve;
 
92767
  friend class ::CExprResolve;
75136
92768
  friend class ::WinIfExists;
75137
92769
  friend class ::WinImportHandler;
75138
92770
  friend class ::WinMacros;
75139
 
  friend class ::CMatchSyntax;
75140
 
  friend class ::ExtGnu;
 
92771
  friend class ::WinAsm;
 
92772
  friend class ::WinDeclSpecs;
 
92773
  friend class ::WinMemberExplSpec;
 
92774
  friend class ::WinTypeKeywords;
 
92775
  friend class ::WinFriend;
75141
92776
  friend class ::ExtAC;
75142
92777
  friend class ::ExtACBuilderCoupling;
75143
92778
  friend class ::ExtACSyntaxCoupling;
75144
92779
  friend class ::ExtACTree;
75145
92780
  friend class ::ExtACKeywords;
75146
 
  friend class ::WinAsm;
75147
 
  friend class ::WinDeclSpecs;
75148
 
  friend class ::WinMemberExplSpec;
75149
 
  friend class ::WinTypeKeywords;
 
92781
  friend class ::ExtGnu;
75150
92782
  friend class ::PragmaOnceUnitState;
75151
92783
  friend class ::PragmaOnce;
75152
 
  friend class ::CCExprResolve;
75153
 
  friend class ::CExprResolve;
75154
 
 
75155
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
75156
 
 
75157
 
  CTree *_value;  // CT_Token
 
92784
  friend class ::CMatchSyntax;
 
92785
 
 
92786
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75158
92787
 
75159
92788
public:
75160
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
92789
  /** Constructor.
 
92790
   *  \param token The token containing the wide character value. */
 
92791
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
92792
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75161
92793
  static const char *NodeId ();
 
92794
  /** Get the name of the node. Can be compared with NodeId(). */
75162
92795
  const char *NodeName () const { return NodeId (); }
75163
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
75164
 
   { if (old_son == _value) _value = new_son; }
75165
92796
   private:
75166
92797
  typedef CT_WideCharacter CCExprResolveExpr;
75167
92798
 
75168
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92799
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75169
92800
 public :
75170
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92801
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75171
92802
  typedef CT_WideCharacter CExprResolveExpr;
75172
92803
 
75173
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92804
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75174
92805
 public :
75175
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75176
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92806
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92807
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75177
92808
};
75178
92809
 
 
92810
/** \class CT_Float CTree.h Puma/CTree.h
 
92811
 *  Tree node representing a floating point constant. */
75179
92812
 
75180
 
#line 75181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92813
#line 92814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75181
92814
} // closed Puma
 
92815
class CCExprResolve;
 
92816
class CExprResolve;
75182
92817
class WinIfExists;
75183
92818
class WinImportHandler;
75184
92819
class WinMacros;
75185
 
class CMatchSyntax;
75186
 
class ExtGnu;
 
92820
class WinAsm;
 
92821
class WinDeclSpecs;
 
92822
class WinMemberExplSpec;
 
92823
class WinTypeKeywords;
 
92824
class WinFriend;
75187
92825
class ExtAC;
75188
92826
class ExtACBuilderCoupling;
75189
92827
class ExtACSyntaxCoupling;
75190
92828
class ExtACTree;
75191
92829
class ExtACKeywords;
75192
 
class WinAsm;
75193
 
class WinDeclSpecs;
75194
 
class WinMemberExplSpec;
75195
 
class WinTypeKeywords;
 
92830
class ExtGnu;
75196
92831
class PragmaOnceUnitState;
75197
92832
class PragmaOnce;
75198
 
class CCExprResolve;
75199
 
class CExprResolve;
75200
 
namespace Puma {
75201
 
 
75202
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92833
class CMatchSyntax;
 
92834
namespace Puma {
 
92835
 
 
92836
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92837
 
 
92838
#line 92839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92839
} // closed Puma
 
92840
 
 
92841
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92842
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92843
#include "CCExprResolveH.ah"
 
92844
#endif
 
92845
namespace Puma {
 
92846
 
 
92847
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92848
 
 
92849
#line 92850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92850
} // closed Puma
 
92851
 
 
92852
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92853
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92854
#include "CExprResolveH.ah"
 
92855
#endif
 
92856
namespace Puma {
 
92857
 
 
92858
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75203
92859
class CT_Float : public CT_Expression {
75204
 
#line 75205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92860
#line 92861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92861
  friend class ::CCExprResolve;
 
92862
  friend class ::CExprResolve;
75205
92863
  friend class ::WinIfExists;
75206
92864
  friend class ::WinImportHandler;
75207
92865
  friend class ::WinMacros;
75208
 
  friend class ::CMatchSyntax;
75209
 
  friend class ::ExtGnu;
 
92866
  friend class ::WinAsm;
 
92867
  friend class ::WinDeclSpecs;
 
92868
  friend class ::WinMemberExplSpec;
 
92869
  friend class ::WinTypeKeywords;
 
92870
  friend class ::WinFriend;
75210
92871
  friend class ::ExtAC;
75211
92872
  friend class ::ExtACBuilderCoupling;
75212
92873
  friend class ::ExtACSyntaxCoupling;
75213
92874
  friend class ::ExtACTree;
75214
92875
  friend class ::ExtACKeywords;
75215
 
  friend class ::WinAsm;
75216
 
  friend class ::WinDeclSpecs;
75217
 
  friend class ::WinMemberExplSpec;
75218
 
  friend class ::WinTypeKeywords;
 
92876
  friend class ::ExtGnu;
75219
92877
  friend class ::PragmaOnceUnitState;
75220
92878
  friend class ::PragmaOnce;
75221
 
  friend class ::CCExprResolve;
75222
 
  friend class ::CExprResolve;
 
92879
  friend class ::CMatchSyntax;
75223
92880
 
75224
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92881
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75225
92882
 
75226
92883
  CTree *_value;  // CT_Token
75227
92884
 
75228
92885
public:
75229
 
  CT_Float (CTree *t) : _value (t) {}
 
92886
  /** Constructor.
 
92887
   *  \param token The token containing the floating point value. */
 
92888
  CT_Float (CTree *token) { AddSon (_value, token); }
 
92889
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75230
92890
  static const char *NodeId ();
 
92891
  /** Get the name of the node. Can be compared with NodeId(). */
75231
92892
  const char *NodeName () const { return NodeId (); }
 
92893
  /** Get the number of sons. */
75232
92894
  int Sons () const { return 1; }
 
92895
  /** Get the n-th son.
 
92896
   *  \param n The index of the son.
 
92897
   *  \return The n-th son or NULL. */
75233
92898
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
92899
  /** Replace a son.
 
92900
   *  \param old_son The son to replace.
 
92901
   *  \param new_son The new son. */
75234
92902
  void ReplaceSon (CTree *old_son, CTree *new_son) 
75235
 
   { if (old_son == _value) _value = new_son; }
 
92903
   { CTree::ReplaceSon (_value, old_son, new_son); }
75236
92904
   private:
75237
92905
  typedef CT_Float CCExprResolveExpr;
75238
92906
 
75239
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
92907
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75240
92908
 public :
75241
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
92909
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75242
92910
  typedef CT_Float CExprResolveExpr;
75243
92911
 
75244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
92912
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75245
92913
 public :
75246
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75247
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92914
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
92915
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75248
92916
};
75249
92917
 
 
92918
/** \class CT_Bool CTree.h Puma/CTree.h
 
92919
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
75250
92920
 
75251
 
#line 75252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92921
#line 92922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75252
92922
} // closed Puma
 
92923
class CCExprResolve;
 
92924
class CExprResolve;
75253
92925
class WinIfExists;
75254
92926
class WinImportHandler;
75255
92927
class WinMacros;
75256
 
class CMatchSyntax;
75257
 
class ExtGnu;
 
92928
class WinAsm;
 
92929
class WinDeclSpecs;
 
92930
class WinMemberExplSpec;
 
92931
class WinTypeKeywords;
 
92932
class WinFriend;
75258
92933
class ExtAC;
75259
92934
class ExtACBuilderCoupling;
75260
92935
class ExtACSyntaxCoupling;
75261
92936
class ExtACTree;
75262
92937
class ExtACKeywords;
75263
 
class WinAsm;
75264
 
class WinDeclSpecs;
75265
 
class WinMemberExplSpec;
75266
 
class WinTypeKeywords;
 
92938
class ExtGnu;
75267
92939
class PragmaOnceUnitState;
75268
92940
class PragmaOnce;
75269
 
class CCExprResolve;
75270
 
class CExprResolve;
75271
 
namespace Puma {
75272
 
 
75273
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92941
class CMatchSyntax;
 
92942
namespace Puma {
 
92943
 
 
92944
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92945
 
 
92946
#line 92947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92947
} // closed Puma
 
92948
 
 
92949
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92950
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
92951
#include "CCExprResolveH.ah"
 
92952
#endif
 
92953
namespace Puma {
 
92954
 
 
92955
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92956
 
 
92957
#line 92958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92958
} // closed Puma
 
92959
 
 
92960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
92962
#include "CExprResolveH.ah"
 
92963
#endif
 
92964
namespace Puma {
 
92965
 
 
92966
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75274
92967
class CT_Bool : public CT_Expression {
75275
 
#line 75276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
92968
#line 92969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
92969
  friend class ::CCExprResolve;
 
92970
  friend class ::CExprResolve;
75276
92971
  friend class ::WinIfExists;
75277
92972
  friend class ::WinImportHandler;
75278
92973
  friend class ::WinMacros;
75279
 
  friend class ::CMatchSyntax;
75280
 
  friend class ::ExtGnu;
 
92974
  friend class ::WinAsm;
 
92975
  friend class ::WinDeclSpecs;
 
92976
  friend class ::WinMemberExplSpec;
 
92977
  friend class ::WinTypeKeywords;
 
92978
  friend class ::WinFriend;
75281
92979
  friend class ::ExtAC;
75282
92980
  friend class ::ExtACBuilderCoupling;
75283
92981
  friend class ::ExtACSyntaxCoupling;
75284
92982
  friend class ::ExtACTree;
75285
92983
  friend class ::ExtACKeywords;
75286
 
  friend class ::WinAsm;
75287
 
  friend class ::WinDeclSpecs;
75288
 
  friend class ::WinMemberExplSpec;
75289
 
  friend class ::WinTypeKeywords;
 
92984
  friend class ::ExtGnu;
75290
92985
  friend class ::PragmaOnceUnitState;
75291
92986
  friend class ::PragmaOnce;
75292
 
  friend class ::CCExprResolve;
75293
 
  friend class ::CExprResolve;
 
92987
  friend class ::CMatchSyntax;
75294
92988
 
75295
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
92989
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75296
92990
 
75297
92991
  CTree *_value;  // CT_Token
75298
92992
 
75299
92993
public:
75300
 
  CT_Bool (CTree *t) : _value (t) {}
 
92994
  /** Constructor.
 
92995
   *  \param token The token containing the boolean value. */
 
92996
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
92997
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75301
92998
  static const char *NodeId ();
 
92999
  /** Get the name of the node. Can be compared with NodeId(). */
75302
93000
  const char *NodeName () const { return NodeId (); }
 
93001
  /** Get the number of sons. */
75303
93002
  int Sons () const { return 1; }
 
93003
  /** Get the n-th son.
 
93004
   *  \param n The index of the son.
 
93005
   *  \return The n-th son or NULL. */
75304
93006
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
93007
  /** Replace a son.
 
93008
   *  \param old_son The son to replace.
 
93009
   *  \param new_son The new son. */
75305
93010
  void ReplaceSon (CTree *old_son, CTree *new_son) 
75306
 
   { if (old_son == _value) _value = new_son; }
 
93011
   { CTree::ReplaceSon (_value, old_son, new_son); }
75307
93012
   private:
75308
93013
  typedef CT_Bool CCExprResolveExpr;
75309
93014
 
75310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93015
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75311
93016
 public :
75312
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93017
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75313
93018
  typedef CT_Bool CExprResolveExpr;
75314
93019
 
75315
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75316
93021
 public :
75317
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75318
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93022
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93023
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75319
93024
};
75320
93025
 
 
93026
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
93027
 *  Tree node representing a braced expression, e.g. (a+b). */
75321
93028
 
75322
 
#line 75323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93029
#line 93030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75323
93030
} // closed Puma
 
93031
class CCExprResolve;
 
93032
class CExprResolve;
75324
93033
class WinIfExists;
75325
93034
class WinImportHandler;
75326
93035
class WinMacros;
75327
 
class CMatchSyntax;
75328
 
class ExtGnu;
 
93036
class WinAsm;
 
93037
class WinDeclSpecs;
 
93038
class WinMemberExplSpec;
 
93039
class WinTypeKeywords;
 
93040
class WinFriend;
75329
93041
class ExtAC;
75330
93042
class ExtACBuilderCoupling;
75331
93043
class ExtACSyntaxCoupling;
75332
93044
class ExtACTree;
75333
93045
class ExtACKeywords;
75334
 
class WinAsm;
75335
 
class WinDeclSpecs;
75336
 
class WinMemberExplSpec;
75337
 
class WinTypeKeywords;
 
93046
class ExtGnu;
75338
93047
class PragmaOnceUnitState;
75339
93048
class PragmaOnce;
75340
 
class CCExprResolve;
75341
 
class CExprResolve;
75342
 
namespace Puma {
75343
 
 
75344
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93049
class CMatchSyntax;
 
93050
namespace Puma {
 
93051
 
 
93052
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93053
 
 
93054
#line 93055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93055
} // closed Puma
 
93056
 
 
93057
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93058
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93059
#include "CCExprResolveH.ah"
 
93060
#endif
 
93061
namespace Puma {
 
93062
 
 
93063
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93064
 
 
93065
#line 93066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93066
} // closed Puma
 
93067
 
 
93068
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93069
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93070
#include "CExprResolveH.ah"
 
93071
#endif
 
93072
namespace Puma {
 
93073
 
 
93074
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75345
93075
class CT_BracedExpr : public CT_Expression {
75346
 
#line 75347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93076
#line 93077 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93077
  friend class ::CCExprResolve;
 
93078
  friend class ::CExprResolve;
75347
93079
  friend class ::WinIfExists;
75348
93080
  friend class ::WinImportHandler;
75349
93081
  friend class ::WinMacros;
75350
 
  friend class ::CMatchSyntax;
75351
 
  friend class ::ExtGnu;
 
93082
  friend class ::WinAsm;
 
93083
  friend class ::WinDeclSpecs;
 
93084
  friend class ::WinMemberExplSpec;
 
93085
  friend class ::WinTypeKeywords;
 
93086
  friend class ::WinFriend;
75352
93087
  friend class ::ExtAC;
75353
93088
  friend class ::ExtACBuilderCoupling;
75354
93089
  friend class ::ExtACSyntaxCoupling;
75355
93090
  friend class ::ExtACTree;
75356
93091
  friend class ::ExtACKeywords;
75357
 
  friend class ::WinAsm;
75358
 
  friend class ::WinDeclSpecs;
75359
 
  friend class ::WinMemberExplSpec;
75360
 
  friend class ::WinTypeKeywords;
 
93092
  friend class ::ExtGnu;
75361
93093
  friend class ::PragmaOnceUnitState;
75362
93094
  friend class ::PragmaOnce;
75363
 
  friend class ::CCExprResolve;
75364
 
  friend class ::CExprResolve;
 
93095
  friend class ::CMatchSyntax;
75365
93096
 
75366
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93097
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75367
93098
 
75368
93099
  CTree *sons[3]; // open, expr, close
75369
93100
 
75370
93101
public:
 
93102
  /** Constructor.
 
93103
   *  \param o The opening brace.
 
93104
   *  \param e The enclosed expression.
 
93105
   *  \param c The closing brace. */
75371
93106
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
75372
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
93107
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
75373
93108
  }
 
93109
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75374
93110
  static const char *NodeId ();
 
93111
  /** Get the name of the node. Can be compared with NodeId(). */
75375
93112
  const char *NodeName () const { return NodeId (); }
 
93113
  /** Get the number of sons. */
75376
93114
  int Sons () const { return 3; }
 
93115
  /** Get the n-th son.
 
93116
   *  \param n The index of the son.
 
93117
   *  \return The n-th son or NULL. */
75377
93118
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
93119
  /** Get the enclosed expression. */
75378
93120
  CTree *Expr () const { return sons[1]; }
 
93121
  /** Get the type of the enclosed expression. */
75379
93122
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
93123
  /** Get the value of the enclosed expression. */
75380
93124
  CExprValue *Value () const { return Expr ()->Value (); }
 
93125
  /** Get the semantic value object. */
75381
93126
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
93127
  /** Replace a son.
 
93128
   *  \param old_son The son to replace.
 
93129
   *  \param new_son The new son. */
75382
93130
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
75383
93131
    CTree::ReplaceSon (sons, 3, old_son, new_son);
75384
93132
  }
75385
93133
   private:
75386
93134
  typedef CT_BracedExpr CCExprResolveExpr;
75387
93135
 
75388
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93136
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75389
93137
 public :
75390
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93138
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75391
93139
  typedef CT_BracedExpr CExprResolveExpr;
75392
93140
 
75393
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93141
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75394
93142
 public :
75395
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75396
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93143
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93144
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75397
93145
};
75398
93146
 
 
93147
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
93148
 *  Base class for all tree nodes representing a name. */
75399
93149
 
75400
 
#line 75401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93150
#line 93151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75401
93151
} // closed Puma
 
93152
class CCExprResolve;
 
93153
class CExprResolve;
75402
93154
class WinIfExists;
75403
93155
class WinImportHandler;
75404
93156
class WinMacros;
75405
 
class CMatchSyntax;
75406
 
class ExtGnu;
 
93157
class WinAsm;
 
93158
class WinDeclSpecs;
 
93159
class WinMemberExplSpec;
 
93160
class WinTypeKeywords;
 
93161
class WinFriend;
75407
93162
class ExtAC;
75408
93163
class ExtACBuilderCoupling;
75409
93164
class ExtACSyntaxCoupling;
75410
93165
class ExtACTree;
75411
93166
class ExtACKeywords;
75412
 
class WinAsm;
75413
 
class WinDeclSpecs;
75414
 
class WinMemberExplSpec;
75415
 
class WinTypeKeywords;
 
93167
class ExtGnu;
75416
93168
class PragmaOnceUnitState;
75417
93169
class PragmaOnce;
75418
 
class CCExprResolve;
75419
 
class CExprResolve;
75420
 
namespace Puma {
75421
 
 
75422
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93170
class CMatchSyntax;
 
93171
namespace Puma {
 
93172
 
 
93173
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93174
 
 
93175
#line 93176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93176
} // closed Puma
 
93177
 
 
93178
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93179
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93180
#include "CCExprResolveH.ah"
 
93181
#endif
 
93182
namespace Puma {
 
93183
 
 
93184
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93185
 
 
93186
#line 93187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93187
} // closed Puma
 
93188
 
 
93189
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93190
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93191
#include "CExprResolveH.ah"
 
93192
#endif
 
93193
namespace Puma {
 
93194
 
 
93195
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75423
93196
class CT_SimpleName : public CT_List, public Printable, 
75424
93197
                      public CSemValue, public CSemObject {
75425
 
#line 75426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93198
#line 93199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93199
  friend class ::CCExprResolve;
 
93200
  friend class ::CExprResolve;
75426
93201
  friend class ::WinIfExists;
75427
93202
  friend class ::WinImportHandler;
75428
93203
  friend class ::WinMacros;
75429
 
  friend class ::CMatchSyntax;
75430
 
  friend class ::ExtGnu;
 
93204
  friend class ::WinAsm;
 
93205
  friend class ::WinDeclSpecs;
 
93206
  friend class ::WinMemberExplSpec;
 
93207
  friend class ::WinTypeKeywords;
 
93208
  friend class ::WinFriend;
75431
93209
  friend class ::ExtAC;
75432
93210
  friend class ::ExtACBuilderCoupling;
75433
93211
  friend class ::ExtACSyntaxCoupling;
75434
93212
  friend class ::ExtACTree;
75435
93213
  friend class ::ExtACKeywords;
75436
 
  friend class ::WinAsm;
75437
 
  friend class ::WinDeclSpecs;
75438
 
  friend class ::WinMemberExplSpec;
75439
 
  friend class ::WinTypeKeywords;
 
93214
  friend class ::ExtGnu;
75440
93215
  friend class ::PragmaOnceUnitState;
75441
93216
  friend class ::PragmaOnce;
75442
 
  friend class ::CCExprResolve;
75443
 
  friend class ::CExprResolve;
 
93217
  friend class ::CMatchSyntax;
75444
93218
 
75445
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93219
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75446
93220
 
75447
93221
protected:
 
93222
  /** Constructor.
 
93223
   *  \param size The number of sub-names (for qualified names). */
75448
93224
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
93225
  /** Constructor.
 
93226
   *  \param size The number of sub-names (for qualified names). 
 
93227
   *  \param properties Additional name list properties (for root qualified names). */
75449
93228
  CT_SimpleName (int size, int properties) : 
75450
93229
    CT_List (size, 2, properties) {}
75451
93230
  
75452
93231
public:
 
93232
  /** Constructor.
 
93233
   *  \param n The sub-tree containing the name. */
75453
93234
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
93235
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75454
93236
  static const char *NodeId ();
 
93237
  /** Get the name of the node. Can be compared with NodeId(). */
75455
93238
  const char *NodeName () const { return NodeId (); }
 
93239
  /** Get the string containing the name. */
75456
93240
  virtual const char *Text () const 
75457
93241
   { return Son (Sons ()-1)->token ()->text (); }
 
93242
  /** Print the name on the given stream. 
 
93243
   *  \param os The output stream. */
75458
93244
  virtual void print (ostream &os) const { os << Text (); }
 
93245
  /** Get this. */
75459
93246
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
93247
  /** Get the type of the entity represented by the name. */
75460
93248
  CTypeInfo *Type () const { return type; }
 
93249
  /** Get the value of the entity represented by the name. */ 
75461
93250
  CExprValue *Value () const { return value; }
 
93251
  /** Get the sematic value information object. */
75462
93252
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
93253
  /** Get the sematic information object. */
75463
93254
  CSemObject *SemObject () const { return (CSemObject*)this; }
75464
 
  // special new / delete with reusing memory
75465
 
  void *operator new (size_t);
75466
 
  void  operator delete (void *);
75467
 
  // classification function
 
93255
  /** Get this. */
75468
93256
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
93257
 
 
93258
public:
 
93259
  /** Own new operator reusing memory. */
 
93260
  void *operator new (size_t);
 
93261
  /** Own delete operator. */
 
93262
  void operator delete (void *);
75469
93263
   private:
75470
93264
  typedef CT_SimpleName CCExprResolveExpr;
75471
93265
 
75472
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93266
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75473
93267
 public :
75474
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93268
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75475
93269
  typedef CT_SimpleName CExprResolveExpr;
75476
93270
 
75477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93271
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75478
93272
 public :
75479
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75480
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93273
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93274
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75481
93275
};
75482
93276
 
 
93277
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
93278
 *  Base class for tree nodes representing a special name, like destructor names. */
75483
93279
 
75484
 
#line 75485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93280
#line 93281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75485
93281
} // closed Puma
 
93282
class CCExprResolve;
 
93283
class CExprResolve;
75486
93284
class WinIfExists;
75487
93285
class WinImportHandler;
75488
93286
class WinMacros;
75489
 
class CMatchSyntax;
75490
 
class ExtGnu;
 
93287
class WinAsm;
 
93288
class WinDeclSpecs;
 
93289
class WinMemberExplSpec;
 
93290
class WinTypeKeywords;
 
93291
class WinFriend;
75491
93292
class ExtAC;
75492
93293
class ExtACBuilderCoupling;
75493
93294
class ExtACSyntaxCoupling;
75494
93295
class ExtACTree;
75495
93296
class ExtACKeywords;
75496
 
class WinAsm;
75497
 
class WinDeclSpecs;
75498
 
class WinMemberExplSpec;
75499
 
class WinTypeKeywords;
 
93297
class ExtGnu;
75500
93298
class PragmaOnceUnitState;
75501
93299
class PragmaOnce;
75502
 
class CCExprResolve;
75503
 
class CExprResolve;
75504
 
namespace Puma {
75505
 
 
75506
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93300
class CMatchSyntax;
 
93301
namespace Puma {
 
93302
 
 
93303
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93304
 
 
93305
#line 93306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93306
} // closed Puma
 
93307
 
 
93308
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93309
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93310
#include "CCExprResolveH.ah"
 
93311
#endif
 
93312
namespace Puma {
 
93313
 
 
93314
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93315
 
 
93316
#line 93317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93317
} // closed Puma
 
93318
 
 
93319
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93320
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93321
#include "CExprResolveH.ah"
 
93322
#endif
 
93323
namespace Puma {
 
93324
 
 
93325
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75507
93326
class CT_SpecialName : public CT_SimpleName {
75508
 
#line 75509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93327
#line 93328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93328
  friend class ::CCExprResolve;
 
93329
  friend class ::CExprResolve;
75509
93330
  friend class ::WinIfExists;
75510
93331
  friend class ::WinImportHandler;
75511
93332
  friend class ::WinMacros;
75512
 
  friend class ::CMatchSyntax;
75513
 
  friend class ::ExtGnu;
 
93333
  friend class ::WinAsm;
 
93334
  friend class ::WinDeclSpecs;
 
93335
  friend class ::WinMemberExplSpec;
 
93336
  friend class ::WinTypeKeywords;
 
93337
  friend class ::WinFriend;
75514
93338
  friend class ::ExtAC;
75515
93339
  friend class ::ExtACBuilderCoupling;
75516
93340
  friend class ::ExtACSyntaxCoupling;
75517
93341
  friend class ::ExtACTree;
75518
93342
  friend class ::ExtACKeywords;
75519
 
  friend class ::WinAsm;
75520
 
  friend class ::WinDeclSpecs;
75521
 
  friend class ::WinMemberExplSpec;
75522
 
  friend class ::WinTypeKeywords;
 
93343
  friend class ::ExtGnu;
75523
93344
  friend class ::PragmaOnceUnitState;
75524
93345
  friend class ::PragmaOnce;
75525
 
  friend class ::CCExprResolve;
75526
 
  friend class ::CExprResolve;
 
93346
  friend class ::CMatchSyntax;
75527
93347
 
75528
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93348
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75529
93349
 
75530
93350
  char *_name;
75531
93351
  
75532
93352
protected:
 
93353
  /** Constructor.
 
93354
   *  \param size The number of sub-names (for qualified names). */
75533
93355
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
75534
93356
  
75535
93357
public:
 
93358
  /** Destructor. Deletes the name string. */
75536
93359
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
93360
  /** Get the string containing the name. */
75537
93361
  const char *Text () const { return _name; }
 
93362
  /** Set the name. The name is copied.
 
93363
   *  \param n The name. */
75538
93364
  void Name (const char *n) { 
75539
93365
    if (n) { 
75540
93366
      _name = new char[strlen(n) + 1];
75541
93367
      strcpy (_name,n);
75542
93368
    }
75543
93369
  }
75544
 
  // special new / delete with reusing memory
 
93370
 
 
93371
public:
 
93372
  /** Own new operator reusing memory. */
75545
93373
  void *operator new (size_t);
75546
 
  void  operator delete (void *);
 
93374
  /** Own delete operator. */
 
93375
  void operator delete (void *);
75547
93376
   private:
75548
93377
  typedef CT_SpecialName CCExprResolveExpr;
75549
93378
 
75550
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93379
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75551
93380
 public :
75552
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93381
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75553
93382
  typedef CT_SpecialName CExprResolveExpr;
75554
93383
 
75555
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93384
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75556
93385
 public :
75557
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75558
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93386
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93387
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75559
93388
};
75560
93389
 
 
93390
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
93391
 *  Tree node representing a private name. Private names 
 
93392
 *  are generated names for abstract declarators etc. */
75561
93393
 
75562
 
#line 75563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93394
#line 93395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75563
93395
} // closed Puma
 
93396
class CCExprResolve;
 
93397
class CExprResolve;
75564
93398
class WinIfExists;
75565
93399
class WinImportHandler;
75566
93400
class WinMacros;
75567
 
class CMatchSyntax;
75568
 
class ExtGnu;
 
93401
class WinAsm;
 
93402
class WinDeclSpecs;
 
93403
class WinMemberExplSpec;
 
93404
class WinTypeKeywords;
 
93405
class WinFriend;
75569
93406
class ExtAC;
75570
93407
class ExtACBuilderCoupling;
75571
93408
class ExtACSyntaxCoupling;
75572
93409
class ExtACTree;
75573
93410
class ExtACKeywords;
75574
 
class WinAsm;
75575
 
class WinDeclSpecs;
75576
 
class WinMemberExplSpec;
75577
 
class WinTypeKeywords;
 
93411
class ExtGnu;
75578
93412
class PragmaOnceUnitState;
75579
93413
class PragmaOnce;
75580
 
class CCExprResolve;
75581
 
class CExprResolve;
75582
 
namespace Puma {
75583
 
 
75584
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93414
class CMatchSyntax;
 
93415
namespace Puma {
 
93416
 
 
93417
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93418
 
 
93419
#line 93420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93420
} // closed Puma
 
93421
 
 
93422
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93423
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93424
#include "CCExprResolveH.ah"
 
93425
#endif
 
93426
namespace Puma {
 
93427
 
 
93428
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93429
 
 
93430
#line 93431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93431
} // closed Puma
 
93432
 
 
93433
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93434
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93435
#include "CExprResolveH.ah"
 
93436
#endif
 
93437
namespace Puma {
 
93438
 
 
93439
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75585
93440
class CT_PrivateName : public CT_SpecialName {
75586
 
#line 75587 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93441
#line 93442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93442
  friend class ::CCExprResolve;
 
93443
  friend class ::CExprResolve;
75587
93444
  friend class ::WinIfExists;
75588
93445
  friend class ::WinImportHandler;
75589
93446
  friend class ::WinMacros;
75590
 
  friend class ::CMatchSyntax;
75591
 
  friend class ::ExtGnu;
 
93447
  friend class ::WinAsm;
 
93448
  friend class ::WinDeclSpecs;
 
93449
  friend class ::WinMemberExplSpec;
 
93450
  friend class ::WinTypeKeywords;
 
93451
  friend class ::WinFriend;
75592
93452
  friend class ::ExtAC;
75593
93453
  friend class ::ExtACBuilderCoupling;
75594
93454
  friend class ::ExtACSyntaxCoupling;
75595
93455
  friend class ::ExtACTree;
75596
93456
  friend class ::ExtACKeywords;
75597
 
  friend class ::WinAsm;
75598
 
  friend class ::WinDeclSpecs;
75599
 
  friend class ::WinMemberExplSpec;
75600
 
  friend class ::WinTypeKeywords;
 
93457
  friend class ::ExtGnu;
75601
93458
  friend class ::PragmaOnceUnitState;
75602
93459
  friend class ::PragmaOnce;
75603
 
  friend class ::CCExprResolve;
75604
 
  friend class ::CExprResolve;
 
93460
  friend class ::CMatchSyntax;
75605
93461
 
75606
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93462
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75607
93463
 
75608
93464
public:
 
93465
  /** Constructor.
 
93466
   *  \param n The private (generated) name. */
75609
93467
  CT_PrivateName (const char *n) { Name (n); }
 
93468
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75610
93469
  static const char *NodeId ();
 
93470
  /** Get the name of the node. Can be compared with NodeId(). */
75611
93471
  const char *NodeName () const { return NodeId (); }
 
93472
  /** Get the number of sons. */
75612
93473
  int Sons () const { return 0; }
 
93474
  /** Get the n-th son.
 
93475
   *  \param n The index of the son.
 
93476
   *  \return The n-th son or NULL. */
75613
93477
  CTree *Son (int n) const { return (CTree*)0; }
75614
 
  // special new / delete with reusing memory
 
93478
 
 
93479
public:
 
93480
  /** Own new operator reusing memory. */
75615
93481
  void *operator new (size_t);
75616
 
  void  operator delete (void *);
 
93482
  /** Own delete operator. */
 
93483
  void operator delete (void *);
75617
93484
   private:
75618
93485
  typedef CT_PrivateName CCExprResolveExpr;
75619
93486
 
75620
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75621
93488
 public :
75622
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93489
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75623
93490
  typedef CT_PrivateName CExprResolveExpr;
75624
93491
 
75625
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75626
93493
 public :
75627
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75628
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93494
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93495
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75629
93496
};
75630
93497
 
 
93498
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
93499
 *  Tree node representing a destructor name. */
75631
93500
 
75632
 
#line 75633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93501
#line 93502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75633
93502
} // closed Puma
 
93503
class CCExprResolve;
 
93504
class CExprResolve;
75634
93505
class WinIfExists;
75635
93506
class WinImportHandler;
75636
93507
class WinMacros;
75637
 
class CMatchSyntax;
75638
 
class ExtGnu;
 
93508
class WinAsm;
 
93509
class WinDeclSpecs;
 
93510
class WinMemberExplSpec;
 
93511
class WinTypeKeywords;
 
93512
class WinFriend;
75639
93513
class ExtAC;
75640
93514
class ExtACBuilderCoupling;
75641
93515
class ExtACSyntaxCoupling;
75642
93516
class ExtACTree;
75643
93517
class ExtACKeywords;
75644
 
class WinAsm;
75645
 
class WinDeclSpecs;
75646
 
class WinMemberExplSpec;
75647
 
class WinTypeKeywords;
 
93518
class ExtGnu;
75648
93519
class PragmaOnceUnitState;
75649
93520
class PragmaOnce;
75650
 
class CCExprResolve;
75651
 
class CExprResolve;
75652
 
namespace Puma {
75653
 
 
75654
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93521
class CMatchSyntax;
 
93522
namespace Puma {
 
93523
 
 
93524
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93525
 
 
93526
#line 93527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93527
} // closed Puma
 
93528
 
 
93529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93531
#include "CCExprResolveH.ah"
 
93532
#endif
 
93533
namespace Puma {
 
93534
 
 
93535
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93536
 
 
93537
#line 93538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93538
} // closed Puma
 
93539
 
 
93540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93542
#include "CExprResolveH.ah"
 
93543
#endif
 
93544
namespace Puma {
 
93545
 
 
93546
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75655
93547
class CT_DestructorName : public CT_SpecialName {
75656
 
#line 75657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93548
#line 93549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93549
  friend class ::CCExprResolve;
 
93550
  friend class ::CExprResolve;
75657
93551
  friend class ::WinIfExists;
75658
93552
  friend class ::WinImportHandler;
75659
93553
  friend class ::WinMacros;
75660
 
  friend class ::CMatchSyntax;
75661
 
  friend class ::ExtGnu;
 
93554
  friend class ::WinAsm;
 
93555
  friend class ::WinDeclSpecs;
 
93556
  friend class ::WinMemberExplSpec;
 
93557
  friend class ::WinTypeKeywords;
 
93558
  friend class ::WinFriend;
75662
93559
  friend class ::ExtAC;
75663
93560
  friend class ::ExtACBuilderCoupling;
75664
93561
  friend class ::ExtACSyntaxCoupling;
75665
93562
  friend class ::ExtACTree;
75666
93563
  friend class ::ExtACKeywords;
75667
 
  friend class ::WinAsm;
75668
 
  friend class ::WinDeclSpecs;
75669
 
  friend class ::WinMemberExplSpec;
75670
 
  friend class ::WinTypeKeywords;
 
93564
  friend class ::ExtGnu;
75671
93565
  friend class ::PragmaOnceUnitState;
75672
93566
  friend class ::PragmaOnce;
75673
 
  friend class ::CCExprResolve;
75674
 
  friend class ::CExprResolve;
 
93567
  friend class ::CMatchSyntax;
75675
93568
 
75676
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93569
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75677
93570
 
75678
93571
public:
75679
 
  CT_DestructorName (CTree *, CTree *);
 
93572
  /** Constructor.
 
93573
   *  \param t The tilde operator.
 
93574
   *  \param n The class name. */
 
93575
  CT_DestructorName (CTree *t, CTree *n);
 
93576
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75680
93577
  static const char *NodeId ();
 
93578
  /** Get the name of the node. Can be compared with NodeId(). */
75681
93579
  const char *NodeName () const { return NodeId (); }
75682
 
  // special new / delete with reusing memory
 
93580
 
 
93581
public:
 
93582
  /** Own new operator reusing memory. */
75683
93583
  void *operator new (size_t);
75684
 
  void  operator delete (void *);
 
93584
  /** Own delete operator. */
 
93585
  void operator delete (void *);
75685
93586
   private:
75686
93587
  typedef CT_DestructorName CCExprResolveExpr;
75687
93588
 
75688
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93589
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75689
93590
 public :
75690
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93591
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75691
93592
  typedef CT_DestructorName CExprResolveExpr;
75692
93593
 
75693
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93594
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75694
93595
 public :
75695
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75696
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93596
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93597
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75697
93598
};
75698
93599
 
 
93600
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
93601
 *  Tree node representing a template name. */
75699
93602
 
75700
 
#line 75701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93603
#line 93604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75701
93604
} // closed Puma
 
93605
class CCExprResolve;
 
93606
class CExprResolve;
75702
93607
class WinIfExists;
75703
93608
class WinImportHandler;
75704
93609
class WinMacros;
75705
 
class CMatchSyntax;
75706
 
class ExtGnu;
 
93610
class WinAsm;
 
93611
class WinDeclSpecs;
 
93612
class WinMemberExplSpec;
 
93613
class WinTypeKeywords;
 
93614
class WinFriend;
75707
93615
class ExtAC;
75708
93616
class ExtACBuilderCoupling;
75709
93617
class ExtACSyntaxCoupling;
75710
93618
class ExtACTree;
75711
93619
class ExtACKeywords;
75712
 
class WinAsm;
75713
 
class WinDeclSpecs;
75714
 
class WinMemberExplSpec;
75715
 
class WinTypeKeywords;
 
93620
class ExtGnu;
75716
93621
class PragmaOnceUnitState;
75717
93622
class PragmaOnce;
75718
 
class CCExprResolve;
75719
 
class CExprResolve;
75720
 
namespace Puma {
75721
 
 
75722
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93623
class CMatchSyntax;
 
93624
namespace Puma {
 
93625
 
 
93626
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93627
 
 
93628
#line 93629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93629
} // closed Puma
 
93630
 
 
93631
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93632
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93633
#include "CCExprResolveH.ah"
 
93634
#endif
 
93635
namespace Puma {
 
93636
 
 
93637
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93638
 
 
93639
#line 93640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93640
} // closed Puma
 
93641
 
 
93642
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93643
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93644
#include "CExprResolveH.ah"
 
93645
#endif
 
93646
namespace Puma {
 
93647
 
 
93648
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75723
93649
class CT_TemplateName : public CT_SpecialName {
75724
 
#line 75725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93650
#line 93651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93651
  friend class ::CCExprResolve;
 
93652
  friend class ::CExprResolve;
75725
93653
  friend class ::WinIfExists;
75726
93654
  friend class ::WinImportHandler;
75727
93655
  friend class ::WinMacros;
75728
 
  friend class ::CMatchSyntax;
75729
 
  friend class ::ExtGnu;
 
93656
  friend class ::WinAsm;
 
93657
  friend class ::WinDeclSpecs;
 
93658
  friend class ::WinMemberExplSpec;
 
93659
  friend class ::WinTypeKeywords;
 
93660
  friend class ::WinFriend;
75730
93661
  friend class ::ExtAC;
75731
93662
  friend class ::ExtACBuilderCoupling;
75732
93663
  friend class ::ExtACSyntaxCoupling;
75733
93664
  friend class ::ExtACTree;
75734
93665
  friend class ::ExtACKeywords;
75735
 
  friend class ::WinAsm;
75736
 
  friend class ::WinDeclSpecs;
75737
 
  friend class ::WinMemberExplSpec;
75738
 
  friend class ::WinTypeKeywords;
 
93666
  friend class ::ExtGnu;
75739
93667
  friend class ::PragmaOnceUnitState;
75740
93668
  friend class ::PragmaOnce;
75741
 
  friend class ::CCExprResolve;
75742
 
  friend class ::CExprResolve;
 
93669
  friend class ::CMatchSyntax;
75743
93670
 
75744
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93671
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75745
93672
 
75746
93673
public:
 
93674
  /** Constructor.
 
93675
   *  \param n The template class or function name.
 
93676
   *  \param a The template argument list. */
75747
93677
  CT_TemplateName (CTree *n, CTree *a) 
75748
93678
   { AddSon (n); AddSon (a); }
 
93679
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75749
93680
  static const char *NodeId ();
 
93681
  /** Get the name of the node. Can be compared with NodeId(). */
75750
93682
  const char *NodeName () const { return NodeId (); }
 
93683
  /** Get the template argument list. */
75751
93684
  CT_TemplateArgList *Arguments () const 
75752
93685
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
93686
  /** Get the template class or function name. */
75753
93687
  CT_SimpleName *TemplateName () const 
75754
93688
   { return (CT_SimpleName*)Son (Sons ()-2); }
75755
93689
  // may change in the future
75756
93690
  const char *Text () const { return TemplateName ()->Text (); }
75757
 
  // special new / delete with reusing memory
 
93691
 
 
93692
public:
 
93693
  /** Own new operator reusing memory. */
75758
93694
  void *operator new (size_t);
75759
 
  void  operator delete (void *);
 
93695
  /** Own delete operator. */
 
93696
  void operator delete (void *);
75760
93697
   private:
75761
93698
  typedef CT_TemplateName CCExprResolveExpr;
75762
93699
 
75763
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93700
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75764
93701
 public :
75765
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93702
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75766
93703
  typedef CT_TemplateName CExprResolveExpr;
75767
93704
 
75768
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93705
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75769
93706
 public :
75770
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75771
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93707
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93708
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75772
93709
};
75773
93710
 
 
93711
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
93712
 *  Tree node representing the name of an overloaded operator. */
75774
93713
 
75775
 
#line 75776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93714
#line 93715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75776
93715
} // closed Puma
 
93716
class CCExprResolve;
 
93717
class CExprResolve;
75777
93718
class WinIfExists;
75778
93719
class WinImportHandler;
75779
93720
class WinMacros;
75780
 
class CMatchSyntax;
75781
 
class ExtGnu;
 
93721
class WinAsm;
 
93722
class WinDeclSpecs;
 
93723
class WinMemberExplSpec;
 
93724
class WinTypeKeywords;
 
93725
class WinFriend;
75782
93726
class ExtAC;
75783
93727
class ExtACBuilderCoupling;
75784
93728
class ExtACSyntaxCoupling;
75785
93729
class ExtACTree;
75786
93730
class ExtACKeywords;
75787
 
class WinAsm;
75788
 
class WinDeclSpecs;
75789
 
class WinMemberExplSpec;
75790
 
class WinTypeKeywords;
 
93731
class ExtGnu;
75791
93732
class PragmaOnceUnitState;
75792
93733
class PragmaOnce;
75793
 
class CCExprResolve;
75794
 
class CExprResolve;
75795
 
namespace Puma {
75796
 
 
75797
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93734
class CMatchSyntax;
 
93735
namespace Puma {
 
93736
 
 
93737
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93738
 
 
93739
#line 93740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93740
} // closed Puma
 
93741
 
 
93742
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93743
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93744
#include "CCExprResolveH.ah"
 
93745
#endif
 
93746
namespace Puma {
 
93747
 
 
93748
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93749
 
 
93750
#line 93751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93751
} // closed Puma
 
93752
 
 
93753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93755
#include "CExprResolveH.ah"
 
93756
#endif
 
93757
namespace Puma {
 
93758
 
 
93759
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75798
93760
class CT_OperatorName : public CT_SpecialName {
75799
 
#line 75800 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93761
#line 93762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93762
  friend class ::CCExprResolve;
 
93763
  friend class ::CExprResolve;
75800
93764
  friend class ::WinIfExists;
75801
93765
  friend class ::WinImportHandler;
75802
93766
  friend class ::WinMacros;
75803
 
  friend class ::CMatchSyntax;
75804
 
  friend class ::ExtGnu;
 
93767
  friend class ::WinAsm;
 
93768
  friend class ::WinDeclSpecs;
 
93769
  friend class ::WinMemberExplSpec;
 
93770
  friend class ::WinTypeKeywords;
 
93771
  friend class ::WinFriend;
75805
93772
  friend class ::ExtAC;
75806
93773
  friend class ::ExtACBuilderCoupling;
75807
93774
  friend class ::ExtACSyntaxCoupling;
75808
93775
  friend class ::ExtACTree;
75809
93776
  friend class ::ExtACKeywords;
75810
 
  friend class ::WinAsm;
75811
 
  friend class ::WinDeclSpecs;
75812
 
  friend class ::WinMemberExplSpec;
75813
 
  friend class ::WinTypeKeywords;
 
93777
  friend class ::ExtGnu;
75814
93778
  friend class ::PragmaOnceUnitState;
75815
93779
  friend class ::PragmaOnce;
75816
 
  friend class ::CCExprResolve;
75817
 
  friend class ::CExprResolve;
 
93780
  friend class ::CMatchSyntax;
75818
93781
 
75819
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93782
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75820
93783
 
75821
93784
  int _oper;
75822
93785
 
75823
93786
public:
75824
 
  enum { // complex operators
75825
 
    FCT_CALL = -100,
75826
 
    SUBSCRIPT,
75827
 
    NEW_ARRAY,
75828
 
    DEL_ARRAY
 
93787
  /** Complex operator types. */
 
93788
  enum { 
 
93789
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
93790
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
93791
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
93792
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
75829
93793
  };
75830
93794
 
75831
93795
public:
75832
 
  CT_OperatorName (CTree *);
75833
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
93796
  /** Constructor.
 
93797
   *  \param op The token containing the operator. */
 
93798
  CT_OperatorName (CTree *op);
 
93799
  /** Constructor.
 
93800
   *  \param f The operator function keyword 'operator'.
 
93801
   *  \param op The token containing the operator. 
 
93802
   *  \param o The token of '[' or '('.
 
93803
   *  \param c The token of ']' or ')'. */
 
93804
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
93805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75834
93806
  static const char *NodeId ();
 
93807
  /** Get the name of the node. Can be compared with NodeId(). */
75835
93808
  const char *NodeName () const { return NodeId (); }
 
93809
  /** Get the operator type (either the token type or one of 
 
93810
   *  the complex operator types). */
75836
93811
  int Operator () const { return _oper; }
75837
 
  // special new / delete with reusing memory
 
93812
 
 
93813
public:
 
93814
  /** Own new operator reusing memory. */
75838
93815
  void *operator new (size_t);
75839
 
  void  operator delete (void *);
 
93816
  /** Own delete operator. */
 
93817
  void operator delete (void *);
75840
93818
   private:
75841
93819
  typedef CT_OperatorName CCExprResolveExpr;
75842
93820
 
75843
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93821
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75844
93822
 public :
75845
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93823
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75846
93824
  typedef CT_OperatorName CExprResolveExpr;
75847
93825
 
75848
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93826
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75849
93827
 public :
75850
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75851
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93828
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93829
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75852
93830
};
75853
93831
 
 
93832
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
93833
 *  Tree node representing the name of a conversion function. */
75854
93834
 
75855
 
#line 75856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93835
#line 93836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75856
93836
} // closed Puma
 
93837
class CCExprResolve;
 
93838
class CExprResolve;
75857
93839
class WinIfExists;
75858
93840
class WinImportHandler;
75859
93841
class WinMacros;
75860
 
class CMatchSyntax;
75861
 
class ExtGnu;
 
93842
class WinAsm;
 
93843
class WinDeclSpecs;
 
93844
class WinMemberExplSpec;
 
93845
class WinTypeKeywords;
 
93846
class WinFriend;
75862
93847
class ExtAC;
75863
93848
class ExtACBuilderCoupling;
75864
93849
class ExtACSyntaxCoupling;
75865
93850
class ExtACTree;
75866
93851
class ExtACKeywords;
75867
 
class WinAsm;
75868
 
class WinDeclSpecs;
75869
 
class WinMemberExplSpec;
75870
 
class WinTypeKeywords;
 
93852
class ExtGnu;
75871
93853
class PragmaOnceUnitState;
75872
93854
class PragmaOnce;
75873
 
class CCExprResolve;
75874
 
class CExprResolve;
75875
 
namespace Puma {
75876
 
 
75877
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93855
class CMatchSyntax;
 
93856
namespace Puma {
 
93857
 
 
93858
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93859
 
 
93860
#line 93861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93861
} // closed Puma
 
93862
 
 
93863
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93864
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93865
#include "CCExprResolveH.ah"
 
93866
#endif
 
93867
namespace Puma {
 
93868
 
 
93869
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93870
 
 
93871
#line 93872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93872
} // closed Puma
 
93873
 
 
93874
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93875
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93876
#include "CExprResolveH.ah"
 
93877
#endif
 
93878
namespace Puma {
 
93879
 
 
93880
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75878
93881
class CT_ConversionName : public CT_SpecialName {
75879
 
#line 75880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93882
#line 93883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93883
  friend class ::CCExprResolve;
 
93884
  friend class ::CExprResolve;
75880
93885
  friend class ::WinIfExists;
75881
93886
  friend class ::WinImportHandler;
75882
93887
  friend class ::WinMacros;
75883
 
  friend class ::CMatchSyntax;
75884
 
  friend class ::ExtGnu;
 
93888
  friend class ::WinAsm;
 
93889
  friend class ::WinDeclSpecs;
 
93890
  friend class ::WinMemberExplSpec;
 
93891
  friend class ::WinTypeKeywords;
 
93892
  friend class ::WinFriend;
75885
93893
  friend class ::ExtAC;
75886
93894
  friend class ::ExtACBuilderCoupling;
75887
93895
  friend class ::ExtACSyntaxCoupling;
75888
93896
  friend class ::ExtACTree;
75889
93897
  friend class ::ExtACKeywords;
75890
 
  friend class ::WinAsm;
75891
 
  friend class ::WinDeclSpecs;
75892
 
  friend class ::WinMemberExplSpec;
75893
 
  friend class ::WinTypeKeywords;
 
93898
  friend class ::ExtGnu;
75894
93899
  friend class ::PragmaOnceUnitState;
75895
93900
  friend class ::PragmaOnce;
75896
 
  friend class ::CCExprResolve;
75897
 
  friend class ::CExprResolve;
 
93901
  friend class ::CMatchSyntax;
75898
93902
 
75899
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93903
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75900
93904
 
75901
93905
public:
75902
 
  CT_ConversionName (CTree *, CTree *);
 
93906
  /** Constructor.
 
93907
   *  \param f The operator function keyword 'operator'.
 
93908
   *  \param t The sub-tree containing the conversion type. */
 
93909
  CT_ConversionName (CTree *f, CTree *t);
 
93910
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75903
93911
  static const char *NodeId ();
 
93912
  /** Get the name of the node. Can be compared with NodeId(). */
75904
93913
  const char *NodeName () const { return NodeId (); }
 
93914
  /** Get the conversion type. */
75905
93915
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
75906
 
  // special new / delete with reusing memory
 
93916
 
 
93917
public:
 
93918
  /** Own new operator reusing memory. */
75907
93919
  void *operator new (size_t);
75908
 
  void  operator delete (void *);
 
93920
  /** Own delete operator. */
 
93921
  void operator delete (void *);
75909
93922
   private:
75910
93923
  typedef CT_ConversionName CCExprResolveExpr;
75911
93924
 
75912
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
93925
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75913
93926
 public :
75914
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
93927
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75915
93928
  typedef CT_ConversionName CExprResolveExpr;
75916
93929
 
75917
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
93930
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75918
93931
 public :
75919
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75920
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93932
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
93933
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75921
93934
};
75922
93935
 
 
93936
/** \class CT_QualName CTree.h Puma/CTree.h
 
93937
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
75923
93938
 
75924
 
#line 75925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93939
#line 93940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
75925
93940
} // closed Puma
 
93941
class CCExprResolve;
 
93942
class CExprResolve;
75926
93943
class WinIfExists;
75927
93944
class WinImportHandler;
75928
93945
class WinMacros;
75929
 
class CMatchSyntax;
75930
 
class ExtGnu;
 
93946
class WinAsm;
 
93947
class WinDeclSpecs;
 
93948
class WinMemberExplSpec;
 
93949
class WinTypeKeywords;
 
93950
class WinFriend;
75931
93951
class ExtAC;
75932
93952
class ExtACBuilderCoupling;
75933
93953
class ExtACSyntaxCoupling;
75934
93954
class ExtACTree;
75935
93955
class ExtACKeywords;
75936
 
class WinAsm;
75937
 
class WinDeclSpecs;
75938
 
class WinMemberExplSpec;
75939
 
class WinTypeKeywords;
 
93956
class ExtGnu;
75940
93957
class PragmaOnceUnitState;
75941
93958
class PragmaOnce;
75942
 
class CCExprResolve;
75943
 
class CExprResolve;
75944
 
namespace Puma {
75945
 
 
75946
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93959
class CMatchSyntax;
 
93960
namespace Puma {
 
93961
 
 
93962
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93963
 
 
93964
#line 93965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93965
} // closed Puma
 
93966
 
 
93967
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93968
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
93969
#include "CCExprResolveH.ah"
 
93970
#endif
 
93971
namespace Puma {
 
93972
 
 
93973
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
93974
 
 
93975
#line 93976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93976
} // closed Puma
 
93977
 
 
93978
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93979
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
93980
#include "CExprResolveH.ah"
 
93981
#endif
 
93982
namespace Puma {
 
93983
 
 
93984
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75947
93985
class CT_QualName : public CT_SimpleName {
75948
 
#line 75949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
93986
#line 93987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
93987
  friend class ::CCExprResolve;
 
93988
  friend class ::CExprResolve;
75949
93989
  friend class ::WinIfExists;
75950
93990
  friend class ::WinImportHandler;
75951
93991
  friend class ::WinMacros;
75952
 
  friend class ::CMatchSyntax;
75953
 
  friend class ::ExtGnu;
 
93992
  friend class ::WinAsm;
 
93993
  friend class ::WinDeclSpecs;
 
93994
  friend class ::WinMemberExplSpec;
 
93995
  friend class ::WinTypeKeywords;
 
93996
  friend class ::WinFriend;
75954
93997
  friend class ::ExtAC;
75955
93998
  friend class ::ExtACBuilderCoupling;
75956
93999
  friend class ::ExtACSyntaxCoupling;
75957
94000
  friend class ::ExtACTree;
75958
94001
  friend class ::ExtACKeywords;
75959
 
  friend class ::WinAsm;
75960
 
  friend class ::WinDeclSpecs;
75961
 
  friend class ::WinMemberExplSpec;
75962
 
  friend class ::WinTypeKeywords;
 
94002
  friend class ::ExtGnu;
75963
94003
  friend class ::PragmaOnceUnitState;
75964
94004
  friend class ::PragmaOnce;
75965
 
  friend class ::CCExprResolve;
75966
 
  friend class ::CExprResolve;
 
94005
  friend class ::CMatchSyntax;
75967
94006
 
75968
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94007
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75969
94008
 
75970
94009
public:
 
94010
  /** Constructor.
 
94011
   *  \param size The initial number sub-names plus separators. */
75971
94012
  CT_QualName (int size = 3) : 
75972
94013
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
94014
  /** Get the identifier for this node type. Can be compared with NodeName(). */
75973
94015
  static const char *NodeId ();
 
94016
  /** Get the name of the node. Can be compared with NodeId(). */
75974
94017
  const char *NodeName () const { return NodeId (); }
75975
 
  void print (ostream &) const;
 
94018
  /** Print the qualified name on the given stream. 
 
94019
   *  \param os The output stream. */
 
94020
  void print (ostream &os) const;
 
94021
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
75976
94022
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
94023
  /** Get the string containing the last name of the qualified name. */
75977
94024
  const char *Text () const { return Name ()->Text (); }
 
94025
  /** Get the type of the last name. */
75978
94026
  CTypeInfo *Type () const { return Name ()->Type (); }
 
94027
  /** Get the value of the last name. */
75979
94028
  CExprValue *Value () const { return Name ()->Value (); }
 
94029
  /** Get the semantic value object of the last name. */
75980
94030
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
94031
  /** Get the semantic information object of the last name. */
75981
94032
  CSemObject *SemObject () const { return Name ()->SemObject (); }
75982
 
  // special new / delete with reusing memory
 
94033
 
 
94034
public:
 
94035
  /** Own new operator reusing memory. */
75983
94036
  void *operator new (size_t);
75984
 
  void  operator delete (void *);
 
94037
  /** Own delete operator. */
 
94038
  void operator delete (void *);
75985
94039
   private:
75986
94040
  typedef CT_QualName CCExprResolveExpr;
75987
94041
 
75988
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94042
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
75989
94043
 public :
75990
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94044
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
75991
94045
  typedef CT_QualName CExprResolveExpr;
75992
94046
 
75993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94047
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
75994
94048
 public :
75995
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
75996
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94049
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94050
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
75997
94051
};
75998
94052
 
 
94053
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
94054
 *  Tree node representing a qualified name with introducing name separator,
 
94055
 *  e.g. ::X::Y::Z. */
75999
94056
 
76000
 
#line 76001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94057
#line 94058 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76001
94058
} // closed Puma
 
94059
class CCExprResolve;
 
94060
class CExprResolve;
76002
94061
class WinIfExists;
76003
94062
class WinImportHandler;
76004
94063
class WinMacros;
76005
 
class CMatchSyntax;
76006
 
class ExtGnu;
 
94064
class WinAsm;
 
94065
class WinDeclSpecs;
 
94066
class WinMemberExplSpec;
 
94067
class WinTypeKeywords;
 
94068
class WinFriend;
76007
94069
class ExtAC;
76008
94070
class ExtACBuilderCoupling;
76009
94071
class ExtACSyntaxCoupling;
76010
94072
class ExtACTree;
76011
94073
class ExtACKeywords;
76012
 
class WinAsm;
76013
 
class WinDeclSpecs;
76014
 
class WinMemberExplSpec;
76015
 
class WinTypeKeywords;
 
94074
class ExtGnu;
76016
94075
class PragmaOnceUnitState;
76017
94076
class PragmaOnce;
76018
 
class CCExprResolve;
76019
 
class CExprResolve;
76020
 
namespace Puma {
76021
 
 
76022
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94077
class CMatchSyntax;
 
94078
namespace Puma {
 
94079
 
 
94080
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94081
 
 
94082
#line 94083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94083
} // closed Puma
 
94084
 
 
94085
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94086
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94087
#include "CCExprResolveH.ah"
 
94088
#endif
 
94089
namespace Puma {
 
94090
 
 
94091
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94092
 
 
94093
#line 94094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94094
} // closed Puma
 
94095
 
 
94096
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94097
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94098
#include "CExprResolveH.ah"
 
94099
#endif
 
94100
namespace Puma {
 
94101
 
 
94102
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76023
94103
class CT_RootQualName : public CT_QualName {
76024
 
#line 76025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94104
#line 94105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94105
  friend class ::CCExprResolve;
 
94106
  friend class ::CExprResolve;
76025
94107
  friend class ::WinIfExists;
76026
94108
  friend class ::WinImportHandler;
76027
94109
  friend class ::WinMacros;
76028
 
  friend class ::CMatchSyntax;
76029
 
  friend class ::ExtGnu;
 
94110
  friend class ::WinAsm;
 
94111
  friend class ::WinDeclSpecs;
 
94112
  friend class ::WinMemberExplSpec;
 
94113
  friend class ::WinTypeKeywords;
 
94114
  friend class ::WinFriend;
76030
94115
  friend class ::ExtAC;
76031
94116
  friend class ::ExtACBuilderCoupling;
76032
94117
  friend class ::ExtACSyntaxCoupling;
76033
94118
  friend class ::ExtACTree;
76034
94119
  friend class ::ExtACKeywords;
76035
 
  friend class ::WinAsm;
76036
 
  friend class ::WinDeclSpecs;
76037
 
  friend class ::WinMemberExplSpec;
76038
 
  friend class ::WinTypeKeywords;
 
94120
  friend class ::ExtGnu;
76039
94121
  friend class ::PragmaOnceUnitState;
76040
94122
  friend class ::PragmaOnce;
76041
 
  friend class ::CCExprResolve;
76042
 
  friend class ::CExprResolve;
 
94123
  friend class ::CMatchSyntax;
76043
94124
 
76044
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94125
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76045
94126
 
76046
94127
public:
 
94128
  /** Constructor.
 
94129
   *  \param size Initial number of sub-name plus separator. */
76047
94130
  CT_RootQualName (int size = 2) : 
76048
94131
    CT_QualName (size) { AddProperties (INTRO); }
 
94132
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76049
94133
  static const char *NodeId ();
 
94134
  /** Get the name of the node. Can be compared with NodeId(). */
76050
94135
  const char *NodeName () const { return NodeId (); }
76051
 
  // special new / delete with reusing memory
 
94136
 
 
94137
public:
 
94138
  /** Own new operator reusing memory. */
76052
94139
  void *operator new (size_t);
76053
 
  void  operator delete (void *);
 
94140
  /** Own delete operator. */
 
94141
  void operator delete (void *);
76054
94142
   private:
76055
94143
  typedef CT_RootQualName CCExprResolveExpr;
76056
94144
 
76057
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94145
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76058
94146
 public :
76059
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94147
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76060
94148
  typedef CT_RootQualName CExprResolveExpr;
76061
94149
 
76062
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94150
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76063
94151
 public :
76064
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76065
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94152
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94153
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76066
94154
};
76067
94155
 
 
94156
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
94157
 *  Tree node representing a binary expression, e.g. a+b. */
76068
94158
 
76069
 
#line 76070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94159
#line 94160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76070
94160
} // closed Puma
 
94161
class CCExprResolve;
 
94162
class CExprResolve;
76071
94163
class WinIfExists;
76072
94164
class WinImportHandler;
76073
94165
class WinMacros;
76074
 
class CMatchSyntax;
76075
 
class ExtGnu;
 
94166
class WinAsm;
 
94167
class WinDeclSpecs;
 
94168
class WinMemberExplSpec;
 
94169
class WinTypeKeywords;
 
94170
class WinFriend;
76076
94171
class ExtAC;
76077
94172
class ExtACBuilderCoupling;
76078
94173
class ExtACSyntaxCoupling;
76079
94174
class ExtACTree;
76080
94175
class ExtACKeywords;
76081
 
class WinAsm;
76082
 
class WinDeclSpecs;
76083
 
class WinMemberExplSpec;
76084
 
class WinTypeKeywords;
 
94176
class ExtGnu;
76085
94177
class PragmaOnceUnitState;
76086
94178
class PragmaOnce;
76087
 
class CCExprResolve;
76088
 
class CExprResolve;
76089
 
namespace Puma {
76090
 
 
76091
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
76092
 
class CT_BinaryExpr : public CT_Expression {
76093
 
#line 76094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94179
class CMatchSyntax;
 
94180
namespace Puma {
 
94181
 
 
94182
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94183
 
 
94184
#line 94185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94185
} // closed Puma
 
94186
 
 
94187
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94188
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94189
#include "CCExprResolveH.ah"
 
94190
#endif
 
94191
namespace Puma {
 
94192
 
 
94193
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94194
 
 
94195
#line 94196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94196
} // closed Puma
 
94197
 
 
94198
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94199
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94200
#include "CExprResolveH.ah"
 
94201
#endif
 
94202
namespace Puma {
 
94203
 
 
94204
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94205
class CT_BinaryExpr : public CT_Call {
 
94206
#line 94207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94207
  friend class ::CCExprResolve;
 
94208
  friend class ::CExprResolve;
76094
94209
  friend class ::WinIfExists;
76095
94210
  friend class ::WinImportHandler;
76096
94211
  friend class ::WinMacros;
76097
 
  friend class ::CMatchSyntax;
76098
 
  friend class ::ExtGnu;
 
94212
  friend class ::WinAsm;
 
94213
  friend class ::WinDeclSpecs;
 
94214
  friend class ::WinMemberExplSpec;
 
94215
  friend class ::WinTypeKeywords;
 
94216
  friend class ::WinFriend;
76099
94217
  friend class ::ExtAC;
76100
94218
  friend class ::ExtACBuilderCoupling;
76101
94219
  friend class ::ExtACSyntaxCoupling;
76102
94220
  friend class ::ExtACTree;
76103
94221
  friend class ::ExtACKeywords;
76104
 
  friend class ::WinAsm;
76105
 
  friend class ::WinDeclSpecs;
76106
 
  friend class ::WinMemberExplSpec;
76107
 
  friend class ::WinTypeKeywords;
 
94222
  friend class ::ExtGnu;
76108
94223
  friend class ::PragmaOnceUnitState;
76109
94224
  friend class ::PragmaOnce;
76110
 
  friend class ::CCExprResolve;
76111
 
  friend class ::CExprResolve;
 
94225
  friend class ::CMatchSyntax;
76112
94226
 
76113
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94227
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76114
94228
 
76115
94229
  CTree *sons[3]; // expr, oper, expr
76116
94230
 
76117
94231
public:
 
94232
  /** Constructor. 
 
94233
   *  \param l Left hand side of the expression. 
 
94234
   *  \param o The operator token. 
 
94235
   *  \param r Right hand side of the expression. */
76118
94236
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
76119
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
94237
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
76120
94238
  }
 
94239
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76121
94240
  static const char *NodeId ();
 
94241
  /** Get the name of the node. Can be compared with NodeId(). */
76122
94242
  const char *NodeName () const { return NodeId (); }
 
94243
  /** Get the number of sons. */
76123
94244
  int Sons () const { return 3; }
 
94245
  /** Get the n-th son.
 
94246
   *  \param n The index of the son.
 
94247
   *  \return The n-th son or NULL. */
76124
94248
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
94249
  /** Replace a son.
 
94250
   *  \param old_son The son to replace.
 
94251
   *  \param new_son The new son. */
76125
94252
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76126
94253
    CTree::ReplaceSon (sons, 3, old_son, new_son);
76127
94254
  }
76128
94255
   private:
76129
94256
  typedef CT_BinaryExpr CCExprResolveExpr;
76130
94257
 
76131
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94258
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76132
94259
 public :
76133
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94260
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76134
94261
  typedef CT_BinaryExpr CExprResolveExpr;
76135
94262
 
76136
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94263
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76137
94264
 public :
76138
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76139
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94265
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94266
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76140
94267
};
76141
94268
 
 
94269
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
94270
 *  Tree node representing a member pointer expression, e.g. a->b. */
76142
94271
 
76143
 
#line 76144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94272
#line 94273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76144
94273
} // closed Puma
 
94274
class CCExprResolve;
 
94275
class CExprResolve;
76145
94276
class WinIfExists;
76146
94277
class WinImportHandler;
76147
94278
class WinMacros;
76148
 
class CMatchSyntax;
76149
 
class ExtGnu;
 
94279
class WinAsm;
 
94280
class WinDeclSpecs;
 
94281
class WinMemberExplSpec;
 
94282
class WinTypeKeywords;
 
94283
class WinFriend;
76150
94284
class ExtAC;
76151
94285
class ExtACBuilderCoupling;
76152
94286
class ExtACSyntaxCoupling;
76153
94287
class ExtACTree;
76154
94288
class ExtACKeywords;
76155
 
class WinAsm;
76156
 
class WinDeclSpecs;
76157
 
class WinMemberExplSpec;
76158
 
class WinTypeKeywords;
 
94289
class ExtGnu;
76159
94290
class PragmaOnceUnitState;
76160
94291
class PragmaOnce;
76161
 
class CCExprResolve;
76162
 
class CExprResolve;
76163
 
namespace Puma {
76164
 
 
76165
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
76166
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
76167
 
#line 76168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94292
class CMatchSyntax;
 
94293
namespace Puma {
 
94294
 
 
94295
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94296
 
 
94297
#line 94298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94298
} // closed Puma
 
94299
 
 
94300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94302
#include "CCExprResolveH.ah"
 
94303
#endif
 
94304
namespace Puma {
 
94305
 
 
94306
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94307
 
 
94308
#line 94309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94309
} // closed Puma
 
94310
 
 
94311
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94312
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94313
#include "CExprResolveH.ah"
 
94314
#endif
 
94315
namespace Puma {
 
94316
 
 
94317
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94318
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
94319
#line 94320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94320
  friend class ::CCExprResolve;
 
94321
  friend class ::CExprResolve;
76168
94322
  friend class ::WinIfExists;
76169
94323
  friend class ::WinImportHandler;
76170
94324
  friend class ::WinMacros;
76171
 
  friend class ::CMatchSyntax;
76172
 
  friend class ::ExtGnu;
 
94325
  friend class ::WinAsm;
 
94326
  friend class ::WinDeclSpecs;
 
94327
  friend class ::WinMemberExplSpec;
 
94328
  friend class ::WinTypeKeywords;
 
94329
  friend class ::WinFriend;
76173
94330
  friend class ::ExtAC;
76174
94331
  friend class ::ExtACBuilderCoupling;
76175
94332
  friend class ::ExtACSyntaxCoupling;
76176
94333
  friend class ::ExtACTree;
76177
94334
  friend class ::ExtACKeywords;
76178
 
  friend class ::WinAsm;
76179
 
  friend class ::WinDeclSpecs;
76180
 
  friend class ::WinMemberExplSpec;
76181
 
  friend class ::WinTypeKeywords;
 
94335
  friend class ::ExtGnu;
76182
94336
  friend class ::PragmaOnceUnitState;
76183
94337
  friend class ::PragmaOnce;
76184
 
  friend class ::CCExprResolve;
76185
 
  friend class ::CExprResolve;
76186
 
 
76187
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
76188
 
 
 
94338
  friend class ::CMatchSyntax;
 
94339
 
 
94340
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94341
 
 
94342
  CTree *sons[3]; // expr, oper, expr
 
94343
  
76189
94344
public:
76190
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
76191
 
    CT_BinaryExpr (e, o, i) {}
 
94345
  /** Constructor.
 
94346
   *  \param e Expression on which to call the member.
 
94347
   *  \param o The arrow operator token.
 
94348
   *  \param i The member name. */
 
94349
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
94350
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
94351
  }
 
94352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76192
94353
  static const char *NodeId ();
 
94354
  /** Get the name of the node. Can be compared with NodeId(). */
76193
94355
  const char *NodeName () const { return NodeId (); }
76194
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
94356
  /** Get the number of sons. */
 
94357
  int Sons () const { return 3; }
 
94358
  /** Get the n-th son.
 
94359
   *  \param n The index of the son.
 
94360
   *  \return The n-th son or NULL. */
 
94361
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
94362
  /** Replace a son.
 
94363
   *  \param old_son The son to replace.
 
94364
   *  \param new_son The new son. */
 
94365
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
94366
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
94367
  }
76195
94368
   private:
76196
94369
  typedef CT_MembPtrExpr CCExprResolveExpr;
76197
94370
 
76198
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76199
94372
 public :
76200
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94373
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76201
94374
  typedef CT_MembPtrExpr CExprResolveExpr;
76202
94375
 
76203
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94376
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76204
94377
 public :
76205
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76206
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94378
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94379
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76207
94380
};
76208
94381
 
 
94382
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
94383
 *  Tree node representing a member reference expression, e.g. a.b. */
76209
94384
 
76210
 
#line 76211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94385
#line 94386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76211
94386
} // closed Puma
 
94387
class CCExprResolve;
 
94388
class CExprResolve;
76212
94389
class WinIfExists;
76213
94390
class WinImportHandler;
76214
94391
class WinMacros;
76215
 
class CMatchSyntax;
76216
 
class ExtGnu;
 
94392
class WinAsm;
 
94393
class WinDeclSpecs;
 
94394
class WinMemberExplSpec;
 
94395
class WinTypeKeywords;
 
94396
class WinFriend;
76217
94397
class ExtAC;
76218
94398
class ExtACBuilderCoupling;
76219
94399
class ExtACSyntaxCoupling;
76220
94400
class ExtACTree;
76221
94401
class ExtACKeywords;
76222
 
class WinAsm;
76223
 
class WinDeclSpecs;
76224
 
class WinMemberExplSpec;
76225
 
class WinTypeKeywords;
 
94402
class ExtGnu;
76226
94403
class PragmaOnceUnitState;
76227
94404
class PragmaOnce;
76228
 
class CCExprResolve;
76229
 
class CExprResolve;
76230
 
namespace Puma {
76231
 
 
76232
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94405
class CMatchSyntax;
 
94406
namespace Puma {
 
94407
 
 
94408
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94409
 
 
94410
#line 94411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94411
} // closed Puma
 
94412
 
 
94413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94415
#include "CCExprResolveH.ah"
 
94416
#endif
 
94417
namespace Puma {
 
94418
 
 
94419
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94420
 
 
94421
#line 94422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94422
} // closed Puma
 
94423
 
 
94424
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94425
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94426
#include "CExprResolveH.ah"
 
94427
#endif
 
94428
namespace Puma {
 
94429
 
 
94430
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76233
94431
class CT_MembRefExpr : public CT_MembPtrExpr {
76234
 
#line 76235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94432
#line 94433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94433
  friend class ::CCExprResolve;
 
94434
  friend class ::CExprResolve;
76235
94435
  friend class ::WinIfExists;
76236
94436
  friend class ::WinImportHandler;
76237
94437
  friend class ::WinMacros;
76238
 
  friend class ::CMatchSyntax;
76239
 
  friend class ::ExtGnu;
 
94438
  friend class ::WinAsm;
 
94439
  friend class ::WinDeclSpecs;
 
94440
  friend class ::WinMemberExplSpec;
 
94441
  friend class ::WinTypeKeywords;
 
94442
  friend class ::WinFriend;
76240
94443
  friend class ::ExtAC;
76241
94444
  friend class ::ExtACBuilderCoupling;
76242
94445
  friend class ::ExtACSyntaxCoupling;
76243
94446
  friend class ::ExtACTree;
76244
94447
  friend class ::ExtACKeywords;
76245
 
  friend class ::WinAsm;
76246
 
  friend class ::WinDeclSpecs;
76247
 
  friend class ::WinMemberExplSpec;
76248
 
  friend class ::WinTypeKeywords;
 
94448
  friend class ::ExtGnu;
76249
94449
  friend class ::PragmaOnceUnitState;
76250
94450
  friend class ::PragmaOnce;
76251
 
  friend class ::CCExprResolve;
76252
 
  friend class ::CExprResolve;
 
94451
  friend class ::CMatchSyntax;
76253
94452
 
76254
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94453
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76255
94454
 
76256
94455
public:
 
94456
  /** Constructor.
 
94457
   *  \param e Expression on which to call the member.
 
94458
   *  \param o The dot operator.
 
94459
   *  \param i The member name. */
76257
94460
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
76258
94461
    CT_MembPtrExpr (e, o, i) {}
 
94462
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76259
94463
  static const char *NodeId ();
 
94464
  /** Get the name of the node. Can be compared with NodeId(). */
76260
94465
  const char *NodeName () const { return NodeId (); }
76261
94466
   private:
76262
94467
  typedef CT_MembRefExpr CCExprResolveExpr;
76263
94468
 
76264
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94469
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76265
94470
 public :
76266
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94471
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76267
94472
  typedef CT_MembRefExpr CExprResolveExpr;
76268
94473
 
76269
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94474
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76270
94475
 public :
76271
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76272
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94476
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94477
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76273
94478
};
76274
94479
 
 
94480
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
94481
 *  Base class for tree nodes representing unary expressions. */
76275
94482
 
76276
 
#line 76277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94483
#line 94484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76277
94484
} // closed Puma
 
94485
class CCExprResolve;
 
94486
class CExprResolve;
76278
94487
class WinIfExists;
76279
94488
class WinImportHandler;
76280
94489
class WinMacros;
76281
 
class CMatchSyntax;
76282
 
class ExtGnu;
 
94490
class WinAsm;
 
94491
class WinDeclSpecs;
 
94492
class WinMemberExplSpec;
 
94493
class WinTypeKeywords;
 
94494
class WinFriend;
76283
94495
class ExtAC;
76284
94496
class ExtACBuilderCoupling;
76285
94497
class ExtACSyntaxCoupling;
76286
94498
class ExtACTree;
76287
94499
class ExtACKeywords;
76288
 
class WinAsm;
76289
 
class WinDeclSpecs;
76290
 
class WinMemberExplSpec;
76291
 
class WinTypeKeywords;
 
94500
class ExtGnu;
76292
94501
class PragmaOnceUnitState;
76293
94502
class PragmaOnce;
76294
 
class CCExprResolve;
76295
 
class CExprResolve;
76296
 
namespace Puma {
76297
 
 
76298
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
76299
 
class CT_UnaryExpr : public CT_Expression {
76300
 
#line 76301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94503
class CMatchSyntax;
 
94504
namespace Puma {
 
94505
 
 
94506
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94507
 
 
94508
#line 94509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94509
} // closed Puma
 
94510
 
 
94511
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94512
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94513
#include "CCExprResolveH.ah"
 
94514
#endif
 
94515
namespace Puma {
 
94516
 
 
94517
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94518
 
 
94519
#line 94520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94520
} // closed Puma
 
94521
 
 
94522
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94523
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94524
#include "CExprResolveH.ah"
 
94525
#endif
 
94526
namespace Puma {
 
94527
 
 
94528
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94529
class CT_UnaryExpr : public CT_Call {
 
94530
#line 94531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94531
  friend class ::CCExprResolve;
 
94532
  friend class ::CExprResolve;
76301
94533
  friend class ::WinIfExists;
76302
94534
  friend class ::WinImportHandler;
76303
94535
  friend class ::WinMacros;
76304
 
  friend class ::CMatchSyntax;
76305
 
  friend class ::ExtGnu;
 
94536
  friend class ::WinAsm;
 
94537
  friend class ::WinDeclSpecs;
 
94538
  friend class ::WinMemberExplSpec;
 
94539
  friend class ::WinTypeKeywords;
 
94540
  friend class ::WinFriend;
76306
94541
  friend class ::ExtAC;
76307
94542
  friend class ::ExtACBuilderCoupling;
76308
94543
  friend class ::ExtACSyntaxCoupling;
76309
94544
  friend class ::ExtACTree;
76310
94545
  friend class ::ExtACKeywords;
76311
 
  friend class ::WinAsm;
76312
 
  friend class ::WinDeclSpecs;
76313
 
  friend class ::WinMemberExplSpec;
76314
 
  friend class ::WinTypeKeywords;
 
94546
  friend class ::ExtGnu;
76315
94547
  friend class ::PragmaOnceUnitState;
76316
94548
  friend class ::PragmaOnce;
76317
 
  friend class ::CCExprResolve;
76318
 
  friend class ::CExprResolve;
 
94549
  friend class ::CMatchSyntax;
76319
94550
 
76320
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94551
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76321
94552
 
76322
94553
  CTree *sons[2]; // oper, expr
76323
94554
 
76324
94555
public:
76325
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
94556
  /** Constructor.
 
94557
   *  \param o The unary operator.
 
94558
   *  \param e The expression on which the operator is invoked. */
 
94559
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
94560
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76326
94561
  static const char *NodeId ();
 
94562
  /** Get the name of the node. Can be compared with NodeId(). */
76327
94563
  const char *NodeName () const { return NodeId (); }
 
94564
  /** Get the number of sons. */
76328
94565
  int Sons () const { return 2; }
 
94566
  /** Get the n-th son.
 
94567
   *  \param n The index of the son.
 
94568
   *  \return The n-th son or NULL. */
76329
94569
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
94570
  /** Replace a son.
 
94571
   *  \param old_son The son to replace.
 
94572
   *  \param new_son The new son. */
76330
94573
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76331
94574
    CTree::ReplaceSon (sons, 2, old_son, new_son);
76332
94575
  }
 
94576
  /** Get the expression node. */
76333
94577
  CTree *Expr () const { return sons[1]; }
76334
94578
   private:
76335
94579
  typedef CT_UnaryExpr CCExprResolveExpr;
76336
94580
 
76337
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94581
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76338
94582
 public :
76339
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94583
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76340
94584
  typedef CT_UnaryExpr CExprResolveExpr;
76341
94585
 
76342
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94586
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76343
94587
 public :
76344
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76345
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94588
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94589
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76346
94590
};
76347
94591
 
 
94592
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
94593
 *  Tree node representing a postfix expression, e.g. a++. */
76348
94594
 
76349
 
#line 76350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94595
#line 94596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76350
94596
} // closed Puma
 
94597
class CCExprResolve;
 
94598
class CExprResolve;
76351
94599
class WinIfExists;
76352
94600
class WinImportHandler;
76353
94601
class WinMacros;
76354
 
class CMatchSyntax;
76355
 
class ExtGnu;
 
94602
class WinAsm;
 
94603
class WinDeclSpecs;
 
94604
class WinMemberExplSpec;
 
94605
class WinTypeKeywords;
 
94606
class WinFriend;
76356
94607
class ExtAC;
76357
94608
class ExtACBuilderCoupling;
76358
94609
class ExtACSyntaxCoupling;
76359
94610
class ExtACTree;
76360
94611
class ExtACKeywords;
76361
 
class WinAsm;
76362
 
class WinDeclSpecs;
76363
 
class WinMemberExplSpec;
76364
 
class WinTypeKeywords;
 
94612
class ExtGnu;
76365
94613
class PragmaOnceUnitState;
76366
94614
class PragmaOnce;
76367
 
class CCExprResolve;
76368
 
class CExprResolve;
76369
 
namespace Puma {
76370
 
 
76371
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94615
class CMatchSyntax;
 
94616
namespace Puma {
 
94617
 
 
94618
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94619
 
 
94620
#line 94621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94621
} // closed Puma
 
94622
 
 
94623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94625
#include "CCExprResolveH.ah"
 
94626
#endif
 
94627
namespace Puma {
 
94628
 
 
94629
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94630
 
 
94631
#line 94632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94632
} // closed Puma
 
94633
 
 
94634
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94635
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94636
#include "CExprResolveH.ah"
 
94637
#endif
 
94638
namespace Puma {
 
94639
 
 
94640
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76372
94641
class CT_PostfixExpr : public CT_UnaryExpr {
76373
 
#line 76374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94642
#line 94643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94643
  friend class ::CCExprResolve;
 
94644
  friend class ::CExprResolve;
76374
94645
  friend class ::WinIfExists;
76375
94646
  friend class ::WinImportHandler;
76376
94647
  friend class ::WinMacros;
76377
 
  friend class ::CMatchSyntax;
76378
 
  friend class ::ExtGnu;
 
94648
  friend class ::WinAsm;
 
94649
  friend class ::WinDeclSpecs;
 
94650
  friend class ::WinMemberExplSpec;
 
94651
  friend class ::WinTypeKeywords;
 
94652
  friend class ::WinFriend;
76379
94653
  friend class ::ExtAC;
76380
94654
  friend class ::ExtACBuilderCoupling;
76381
94655
  friend class ::ExtACSyntaxCoupling;
76382
94656
  friend class ::ExtACTree;
76383
94657
  friend class ::ExtACKeywords;
76384
 
  friend class ::WinAsm;
76385
 
  friend class ::WinDeclSpecs;
76386
 
  friend class ::WinMemberExplSpec;
76387
 
  friend class ::WinTypeKeywords;
 
94658
  friend class ::ExtGnu;
76388
94659
  friend class ::PragmaOnceUnitState;
76389
94660
  friend class ::PragmaOnce;
76390
 
  friend class ::CCExprResolve;
76391
 
  friend class ::CExprResolve;
 
94661
  friend class ::CMatchSyntax;
76392
94662
 
76393
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94663
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76394
94664
 
76395
94665
public:
 
94666
  /** Constructor.
 
94667
   *  \param e The expression on which to invoke the operator. 
 
94668
   *  \param o The postfix operator. */
76396
94669
  CT_PostfixExpr (CTree *e, CTree *o) :
76397
94670
    CT_UnaryExpr (e, o) {}
 
94671
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76398
94672
  static const char *NodeId ();
 
94673
  /** Get the name of the node. Can be compared with NodeId(). */
76399
94674
  const char *NodeName () const { return NodeId (); }
76400
94675
   private:
76401
94676
  typedef CT_PostfixExpr CCExprResolveExpr;
76402
94677
 
76403
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94678
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76404
94679
 public :
76405
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94680
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76406
94681
  typedef CT_PostfixExpr CExprResolveExpr;
76407
94682
 
76408
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94683
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76409
94684
 public :
76410
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76411
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94685
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94686
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76412
94687
};
76413
94688
 
 
94689
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
94690
 *  Tree node representing an address expression, e.g. &a. */
76414
94691
 
76415
 
#line 76416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94692
#line 94693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76416
94693
} // closed Puma
 
94694
class CCExprResolve;
 
94695
class CExprResolve;
76417
94696
class WinIfExists;
76418
94697
class WinImportHandler;
76419
94698
class WinMacros;
76420
 
class CMatchSyntax;
76421
 
class ExtGnu;
 
94699
class WinAsm;
 
94700
class WinDeclSpecs;
 
94701
class WinMemberExplSpec;
 
94702
class WinTypeKeywords;
 
94703
class WinFriend;
76422
94704
class ExtAC;
76423
94705
class ExtACBuilderCoupling;
76424
94706
class ExtACSyntaxCoupling;
76425
94707
class ExtACTree;
76426
94708
class ExtACKeywords;
76427
 
class WinAsm;
76428
 
class WinDeclSpecs;
76429
 
class WinMemberExplSpec;
76430
 
class WinTypeKeywords;
 
94709
class ExtGnu;
76431
94710
class PragmaOnceUnitState;
76432
94711
class PragmaOnce;
76433
 
class CCExprResolve;
76434
 
class CExprResolve;
76435
 
namespace Puma {
76436
 
 
76437
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94712
class CMatchSyntax;
 
94713
namespace Puma {
 
94714
 
 
94715
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94716
 
 
94717
#line 94718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94718
} // closed Puma
 
94719
 
 
94720
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94721
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94722
#include "CCExprResolveH.ah"
 
94723
#endif
 
94724
namespace Puma {
 
94725
 
 
94726
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94727
 
 
94728
#line 94729 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94729
} // closed Puma
 
94730
 
 
94731
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94732
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94733
#include "CExprResolveH.ah"
 
94734
#endif
 
94735
namespace Puma {
 
94736
 
 
94737
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76438
94738
class CT_AddrExpr : public CT_UnaryExpr {
76439
 
#line 76440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94739
#line 94740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94740
  friend class ::CCExprResolve;
 
94741
  friend class ::CExprResolve;
76440
94742
  friend class ::WinIfExists;
76441
94743
  friend class ::WinImportHandler;
76442
94744
  friend class ::WinMacros;
76443
 
  friend class ::CMatchSyntax;
76444
 
  friend class ::ExtGnu;
 
94745
  friend class ::WinAsm;
 
94746
  friend class ::WinDeclSpecs;
 
94747
  friend class ::WinMemberExplSpec;
 
94748
  friend class ::WinTypeKeywords;
 
94749
  friend class ::WinFriend;
76445
94750
  friend class ::ExtAC;
76446
94751
  friend class ::ExtACBuilderCoupling;
76447
94752
  friend class ::ExtACSyntaxCoupling;
76448
94753
  friend class ::ExtACTree;
76449
94754
  friend class ::ExtACKeywords;
76450
 
  friend class ::WinAsm;
76451
 
  friend class ::WinDeclSpecs;
76452
 
  friend class ::WinMemberExplSpec;
76453
 
  friend class ::WinTypeKeywords;
 
94755
  friend class ::ExtGnu;
76454
94756
  friend class ::PragmaOnceUnitState;
76455
94757
  friend class ::PragmaOnce;
76456
 
  friend class ::CCExprResolve;
76457
 
  friend class ::CExprResolve;
 
94758
  friend class ::CMatchSyntax;
76458
94759
 
76459
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94760
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76460
94761
 
76461
94762
public:
 
94763
  /** Constructor.
 
94764
   *  \param o The address operator, i.e. '&'.
 
94765
   *  \param e The expression from which to take the address. */
76462
94766
  CT_AddrExpr (CTree *o, CTree *e) :
76463
94767
    CT_UnaryExpr (o, e) {}
 
94768
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76464
94769
  static const char *NodeId ();
 
94770
  /** Get the name of the node. Can be compared with NodeId(). */
76465
94771
  const char *NodeName () const { return NodeId (); }
76466
94772
   private:
76467
94773
  typedef CT_AddrExpr CCExprResolveExpr;
76468
94774
 
76469
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94775
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76470
94776
 public :
76471
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94777
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76472
94778
  typedef CT_AddrExpr CExprResolveExpr;
76473
94779
 
76474
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94780
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76475
94781
 public :
76476
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76477
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94782
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94783
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76478
94784
};
76479
94785
 
 
94786
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
94787
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
76480
94788
 
76481
 
#line 76482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94789
#line 94790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76482
94790
} // closed Puma
 
94791
class CCExprResolve;
 
94792
class CExprResolve;
76483
94793
class WinIfExists;
76484
94794
class WinImportHandler;
76485
94795
class WinMacros;
76486
 
class CMatchSyntax;
76487
 
class ExtGnu;
 
94796
class WinAsm;
 
94797
class WinDeclSpecs;
 
94798
class WinMemberExplSpec;
 
94799
class WinTypeKeywords;
 
94800
class WinFriend;
76488
94801
class ExtAC;
76489
94802
class ExtACBuilderCoupling;
76490
94803
class ExtACSyntaxCoupling;
76491
94804
class ExtACTree;
76492
94805
class ExtACKeywords;
76493
 
class WinAsm;
76494
 
class WinDeclSpecs;
76495
 
class WinMemberExplSpec;
76496
 
class WinTypeKeywords;
 
94806
class ExtGnu;
76497
94807
class PragmaOnceUnitState;
76498
94808
class PragmaOnce;
76499
 
class CCExprResolve;
76500
 
class CExprResolve;
76501
 
namespace Puma {
76502
 
 
76503
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94809
class CMatchSyntax;
 
94810
namespace Puma {
 
94811
 
 
94812
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94813
 
 
94814
#line 94815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94815
} // closed Puma
 
94816
 
 
94817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94819
#include "CCExprResolveH.ah"
 
94820
#endif
 
94821
namespace Puma {
 
94822
 
 
94823
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94824
 
 
94825
#line 94826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94826
} // closed Puma
 
94827
 
 
94828
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94829
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94830
#include "CExprResolveH.ah"
 
94831
#endif
 
94832
namespace Puma {
 
94833
 
 
94834
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76504
94835
class CT_DerefExpr : public CT_UnaryExpr {
76505
 
#line 76506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94836
#line 94837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94837
  friend class ::CCExprResolve;
 
94838
  friend class ::CExprResolve;
76506
94839
  friend class ::WinIfExists;
76507
94840
  friend class ::WinImportHandler;
76508
94841
  friend class ::WinMacros;
76509
 
  friend class ::CMatchSyntax;
76510
 
  friend class ::ExtGnu;
 
94842
  friend class ::WinAsm;
 
94843
  friend class ::WinDeclSpecs;
 
94844
  friend class ::WinMemberExplSpec;
 
94845
  friend class ::WinTypeKeywords;
 
94846
  friend class ::WinFriend;
76511
94847
  friend class ::ExtAC;
76512
94848
  friend class ::ExtACBuilderCoupling;
76513
94849
  friend class ::ExtACSyntaxCoupling;
76514
94850
  friend class ::ExtACTree;
76515
94851
  friend class ::ExtACKeywords;
76516
 
  friend class ::WinAsm;
76517
 
  friend class ::WinDeclSpecs;
76518
 
  friend class ::WinMemberExplSpec;
76519
 
  friend class ::WinTypeKeywords;
 
94852
  friend class ::ExtGnu;
76520
94853
  friend class ::PragmaOnceUnitState;
76521
94854
  friend class ::PragmaOnce;
76522
 
  friend class ::CCExprResolve;
76523
 
  friend class ::CExprResolve;
 
94855
  friend class ::CMatchSyntax;
76524
94856
 
76525
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94857
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76526
94858
 
76527
94859
public:
 
94860
  /** Constructor.
 
94861
   *  \param o The dereferencing operator, i.e. '*'.
 
94862
   *  \param e The expression to dereference. */
76528
94863
  CT_DerefExpr (CTree *o, CTree *e) :
76529
94864
    CT_UnaryExpr (o, e) {}
 
94865
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76530
94866
  static const char *NodeId ();
 
94867
  /** Get the name of the node. Can be compared with NodeId(). */
76531
94868
  const char *NodeName () const { return NodeId (); }
76532
94869
   private:
76533
94870
  typedef CT_DerefExpr CCExprResolveExpr;
76534
94871
 
76535
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94872
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76536
94873
 public :
76537
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94874
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76538
94875
  typedef CT_DerefExpr CExprResolveExpr;
76539
94876
 
76540
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94877
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76541
94878
 public :
76542
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76543
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94879
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94880
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76544
94881
};
76545
94882
 
 
94883
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
94884
 *  Tree node representing a delete expression, e.g. delete a. */
76546
94885
 
76547
 
#line 76548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94886
#line 94887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76548
94887
} // closed Puma
 
94888
class CCExprResolve;
 
94889
class CExprResolve;
76549
94890
class WinIfExists;
76550
94891
class WinImportHandler;
76551
94892
class WinMacros;
76552
 
class CMatchSyntax;
76553
 
class ExtGnu;
 
94893
class WinAsm;
 
94894
class WinDeclSpecs;
 
94895
class WinMemberExplSpec;
 
94896
class WinTypeKeywords;
 
94897
class WinFriend;
76554
94898
class ExtAC;
76555
94899
class ExtACBuilderCoupling;
76556
94900
class ExtACSyntaxCoupling;
76557
94901
class ExtACTree;
76558
94902
class ExtACKeywords;
76559
 
class WinAsm;
76560
 
class WinDeclSpecs;
76561
 
class WinMemberExplSpec;
76562
 
class WinTypeKeywords;
 
94903
class ExtGnu;
76563
94904
class PragmaOnceUnitState;
76564
94905
class PragmaOnce;
76565
 
class CCExprResolve;
76566
 
class CExprResolve;
76567
 
namespace Puma {
76568
 
 
76569
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94906
class CMatchSyntax;
 
94907
namespace Puma {
 
94908
 
 
94909
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94910
 
 
94911
#line 94912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94912
} // closed Puma
 
94913
 
 
94914
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94915
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
94916
#include "CCExprResolveH.ah"
 
94917
#endif
 
94918
namespace Puma {
 
94919
 
 
94920
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94921
 
 
94922
#line 94923 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94923
} // closed Puma
 
94924
 
 
94925
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94926
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
94927
#include "CExprResolveH.ah"
 
94928
#endif
 
94929
namespace Puma {
 
94930
 
 
94931
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76570
94932
class CT_DeleteExpr : public CT_Expression, public CSemObject {
76571
 
#line 76572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
94933
#line 94934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
94934
  friend class ::CCExprResolve;
 
94935
  friend class ::CExprResolve;
76572
94936
  friend class ::WinIfExists;
76573
94937
  friend class ::WinImportHandler;
76574
94938
  friend class ::WinMacros;
76575
 
  friend class ::CMatchSyntax;
76576
 
  friend class ::ExtGnu;
 
94939
  friend class ::WinAsm;
 
94940
  friend class ::WinDeclSpecs;
 
94941
  friend class ::WinMemberExplSpec;
 
94942
  friend class ::WinTypeKeywords;
 
94943
  friend class ::WinFriend;
76577
94944
  friend class ::ExtAC;
76578
94945
  friend class ::ExtACBuilderCoupling;
76579
94946
  friend class ::ExtACSyntaxCoupling;
76580
94947
  friend class ::ExtACTree;
76581
94948
  friend class ::ExtACKeywords;
76582
 
  friend class ::WinAsm;
76583
 
  friend class ::WinDeclSpecs;
76584
 
  friend class ::WinMemberExplSpec;
76585
 
  friend class ::WinTypeKeywords;
 
94949
  friend class ::ExtGnu;
76586
94950
  friend class ::PragmaOnceUnitState;
76587
94951
  friend class ::PragmaOnce;
76588
 
  friend class ::CCExprResolve;
76589
 
  friend class ::CExprResolve;
 
94952
  friend class ::CMatchSyntax;
76590
94953
 
76591
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94954
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76592
94955
 
76593
94956
  CTree *sons[2]; // oper, expr
76594
94957
 
76595
94958
public:
76596
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
94959
  /** Constructor.
 
94960
   *  \param op The delete operator.
 
94961
   *  \param e The expression representing the object to delete. */
 
94962
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
94963
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76597
94964
  static const char *NodeId ();
 
94965
  /** Get the name of the node. Can be compared with NodeId(). */
76598
94966
  const char *NodeName () const { return NodeId (); }
 
94967
  /** Get the number of sons. */
76599
94968
  int Sons () const { return 2; }
 
94969
  /** Get the n-th son.
 
94970
   *  \param n The index of the son.
 
94971
   *  \return The n-th son or NULL. */
76600
94972
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
94973
  /** Replace a son.
 
94974
   *  \param old_son The son to replace.
 
94975
   *  \param new_son The new son. */
76601
94976
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76602
94977
    CTree::ReplaceSon (sons, 2, old_son, new_son);
76603
94978
  }
 
94979
  /** Get the expression. */
76604
94980
  CTree *Expr () const { return sons[1]; }
 
94981
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
76605
94982
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
94983
  /** Get the semantic information object. */
76606
94984
  CSemObject *SemObject () const { return (CSemObject*)this; }
76607
94985
   private:
76608
94986
  typedef CT_DeleteExpr CCExprResolveExpr;
76609
94987
 
76610
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
94988
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76611
94989
 public :
76612
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
94990
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76613
94991
  typedef CT_DeleteExpr CExprResolveExpr;
76614
94992
 
76615
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
94993
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76616
94994
 public :
76617
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76618
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
94995
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
94996
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76619
94997
};
76620
94998
 
 
94999
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
95000
 *  Tree node representing a new expression, e.g. new A(). */
76621
95001
 
76622
 
#line 76623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95002
#line 95003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76623
95003
} // closed Puma
 
95004
class CCExprResolve;
 
95005
class CExprResolve;
76624
95006
class WinIfExists;
76625
95007
class WinImportHandler;
76626
95008
class WinMacros;
76627
 
class CMatchSyntax;
76628
 
class ExtGnu;
 
95009
class WinAsm;
 
95010
class WinDeclSpecs;
 
95011
class WinMemberExplSpec;
 
95012
class WinTypeKeywords;
 
95013
class WinFriend;
76629
95014
class ExtAC;
76630
95015
class ExtACBuilderCoupling;
76631
95016
class ExtACSyntaxCoupling;
76632
95017
class ExtACTree;
76633
95018
class ExtACKeywords;
76634
 
class WinAsm;
76635
 
class WinDeclSpecs;
76636
 
class WinMemberExplSpec;
76637
 
class WinTypeKeywords;
 
95019
class ExtGnu;
76638
95020
class PragmaOnceUnitState;
76639
95021
class PragmaOnce;
76640
 
class CCExprResolve;
76641
 
class CExprResolve;
76642
 
namespace Puma {
76643
 
 
76644
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95022
class CMatchSyntax;
 
95023
namespace Puma {
 
95024
 
 
95025
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95026
 
 
95027
#line 95028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95028
} // closed Puma
 
95029
 
 
95030
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95031
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95032
#include "CCExprResolveH.ah"
 
95033
#endif
 
95034
namespace Puma {
 
95035
 
 
95036
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95037
 
 
95038
#line 95039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95039
} // closed Puma
 
95040
 
 
95041
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95042
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95043
#include "CExprResolveH.ah"
 
95044
#endif
 
95045
namespace Puma {
 
95046
 
 
95047
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76645
95048
class CT_NewExpr : public CT_Expression, public CSemObject {
76646
 
#line 76647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95049
#line 95050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95050
  friend class ::CCExprResolve;
 
95051
  friend class ::CExprResolve;
76647
95052
  friend class ::WinIfExists;
76648
95053
  friend class ::WinImportHandler;
76649
95054
  friend class ::WinMacros;
76650
 
  friend class ::CMatchSyntax;
76651
 
  friend class ::ExtGnu;
 
95055
  friend class ::WinAsm;
 
95056
  friend class ::WinDeclSpecs;
 
95057
  friend class ::WinMemberExplSpec;
 
95058
  friend class ::WinTypeKeywords;
 
95059
  friend class ::WinFriend;
76652
95060
  friend class ::ExtAC;
76653
95061
  friend class ::ExtACBuilderCoupling;
76654
95062
  friend class ::ExtACSyntaxCoupling;
76655
95063
  friend class ::ExtACTree;
76656
95064
  friend class ::ExtACKeywords;
76657
 
  friend class ::WinAsm;
76658
 
  friend class ::WinDeclSpecs;
76659
 
  friend class ::WinMemberExplSpec;
76660
 
  friend class ::WinTypeKeywords;
 
95065
  friend class ::ExtGnu;
76661
95066
  friend class ::PragmaOnceUnitState;
76662
95067
  friend class ::PragmaOnce;
76663
 
  friend class ::CCExprResolve;
76664
 
  friend class ::CExprResolve;
 
95068
  friend class ::CMatchSyntax;
76665
95069
 
76666
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95070
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76667
95071
 
76668
95072
  CTree *sons[6]; // oper, placement, open, type, close, init
76669
95073
 
76670
95074
public:
 
95075
  /** Constructor.
 
95076
   *  \param op The new operator.
 
95077
   *  \param p The optional placement expression.
 
95078
   *  \param o The optional left parenthesis around the type identifier.
 
95079
   *  \param t The type identifier specifying the type of the object to create.
 
95080
   *  \param c The optional right parenthesis around the type identifier.
 
95081
   *  \param i The optional initializer. */
76671
95082
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
76672
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
95083
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
95084
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
76673
95085
  }
 
95086
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76674
95087
  static const char *NodeId ();
 
95088
  /** Get the name of the node. Can be compared with NodeId(). */
76675
95089
  const char *NodeName () const { return NodeId (); }
 
95090
  /** Get the number of sons. */
76676
95091
  int Sons () const { return CTree::Sons (sons, 6); }
 
95092
  /** Get the n-th son.
 
95093
   *  \param n The index of the son.
 
95094
   *  \return The n-th son or NULL. */
76677
95095
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
95096
  /** Replace a son.
 
95097
   *  \param old_son The son to replace.
 
95098
   *  \param new_son The new son. */
76678
95099
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76679
95100
    CTree::ReplaceSon (sons, 6, old_son, new_son);
76680
95101
  }
 
95102
  /** Get the operator name. */
76681
95103
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
95104
  /** Get the placement expression. */
76682
95105
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
95106
  /** Get the initializer. */
76683
95107
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
95108
  /** Get the type of the object to create. */
76684
95109
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
95110
  /** Get the semantic information object. */
76685
95111
  CSemObject *SemObject () const { return (CSemObject*)this; }
76686
95112
   private:
76687
95113
  typedef CT_NewExpr CCExprResolveExpr;
76688
95114
 
76689
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95115
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76690
95116
 public :
76691
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95117
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76692
95118
  typedef CT_NewExpr CExprResolveExpr;
76693
95119
 
76694
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95120
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76695
95121
 public :
76696
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76697
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95122
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95123
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76698
95124
};
76699
95125
 
 
95126
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
95127
 *  Tree node representing an if-then expression, 
 
95128
 *  e.g. a>0?a:b or a?:b. */
76700
95129
 
76701
 
#line 76702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95130
#line 95131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76702
95131
} // closed Puma
 
95132
class CCExprResolve;
 
95133
class CExprResolve;
76703
95134
class WinIfExists;
76704
95135
class WinImportHandler;
76705
95136
class WinMacros;
76706
 
class CMatchSyntax;
76707
 
class ExtGnu;
 
95137
class WinAsm;
 
95138
class WinDeclSpecs;
 
95139
class WinMemberExplSpec;
 
95140
class WinTypeKeywords;
 
95141
class WinFriend;
76708
95142
class ExtAC;
76709
95143
class ExtACBuilderCoupling;
76710
95144
class ExtACSyntaxCoupling;
76711
95145
class ExtACTree;
76712
95146
class ExtACKeywords;
76713
 
class WinAsm;
76714
 
class WinDeclSpecs;
76715
 
class WinMemberExplSpec;
76716
 
class WinTypeKeywords;
 
95147
class ExtGnu;
76717
95148
class PragmaOnceUnitState;
76718
95149
class PragmaOnce;
76719
 
class CCExprResolve;
76720
 
class CExprResolve;
76721
 
namespace Puma {
76722
 
 
76723
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95150
class CMatchSyntax;
 
95151
namespace Puma {
 
95152
 
 
95153
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95154
 
 
95155
#line 95156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95156
} // closed Puma
 
95157
 
 
95158
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95159
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95160
#include "CCExprResolveH.ah"
 
95161
#endif
 
95162
namespace Puma {
 
95163
 
 
95164
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95165
 
 
95166
#line 95167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95167
} // closed Puma
 
95168
 
 
95169
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95170
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95171
#include "CExprResolveH.ah"
 
95172
#endif
 
95173
namespace Puma {
 
95174
 
 
95175
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76724
95176
class CT_IfThenExpr : public CT_Expression {
76725
 
#line 76726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95177
#line 95178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95178
  friend class ::CCExprResolve;
 
95179
  friend class ::CExprResolve;
76726
95180
  friend class ::WinIfExists;
76727
95181
  friend class ::WinImportHandler;
76728
95182
  friend class ::WinMacros;
76729
 
  friend class ::CMatchSyntax;
76730
 
  friend class ::ExtGnu;
 
95183
  friend class ::WinAsm;
 
95184
  friend class ::WinDeclSpecs;
 
95185
  friend class ::WinMemberExplSpec;
 
95186
  friend class ::WinTypeKeywords;
 
95187
  friend class ::WinFriend;
76731
95188
  friend class ::ExtAC;
76732
95189
  friend class ::ExtACBuilderCoupling;
76733
95190
  friend class ::ExtACSyntaxCoupling;
76734
95191
  friend class ::ExtACTree;
76735
95192
  friend class ::ExtACKeywords;
76736
 
  friend class ::WinAsm;
76737
 
  friend class ::WinDeclSpecs;
76738
 
  friend class ::WinMemberExplSpec;
76739
 
  friend class ::WinTypeKeywords;
 
95193
  friend class ::ExtGnu;
76740
95194
  friend class ::PragmaOnceUnitState;
76741
95195
  friend class ::PragmaOnce;
76742
 
  friend class ::CCExprResolve;
76743
 
  friend class ::CExprResolve;
 
95196
  friend class ::CMatchSyntax;
76744
95197
 
76745
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95198
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76746
95199
 
76747
95200
  CTree *sons[5]; // cond, oper, left, colon, right
76748
95201
 
76749
95202
public:
 
95203
  /** Constructor.
 
95204
   *  \param c1 The condition expression.
 
95205
   *  \param o The question mark operator. 
 
95206
   *  \param l The expression to the left of the colon.
 
95207
   *  \param c2 The colon operator.
 
95208
   *  \param r The expression to the right of the colon. */ 
76750
95209
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
76751
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
95210
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
95211
    AddSon (sons[3], c2); AddSon (sons[4], r);
76752
95212
  }
 
95213
  /** Constructor.
 
95214
   *  \param c1 The condition expression.
 
95215
   *  \param o The question mark operator. 
 
95216
   *  \param c2 The colon operator.
 
95217
   *  \param r The expression to the right of the colon. */ 
76753
95218
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
76754
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
95219
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
95220
    AddSon (sons[3], c2); AddSon (sons[4], r);
76755
95221
  }
 
95222
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76756
95223
  static const char *NodeId ();
 
95224
  /** Get the name of the node. Can be compared with NodeId(). */
76757
95225
  const char *NodeName () const { return NodeId (); }
 
95226
  /** Get the number of sons. */
76758
95227
  int Sons () const { return CTree::Sons (sons, 5); }
 
95228
  /** Get the n-th son.
 
95229
   *  \param n The index of the son.
 
95230
   *  \return The n-th son or NULL. */
76759
95231
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
95232
  /** Get the condition expression. */
76760
95233
  CTree *Condition () const { return sons[0]; }
 
95234
  /** Get the left expression (condition=true). */
76761
95235
  CTree *LeftOperand () const { return sons[2]; }
 
95236
  /** Get the right expression (condition=false). */
76762
95237
  CTree *RightOperand () const { return sons[4]; }
 
95238
  /** Replace a son.
 
95239
   *  \param old_son The son to replace.
 
95240
   *  \param new_son The new son. */
76763
95241
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76764
95242
    CTree::ReplaceSon (sons, 5, old_son, new_son);
76765
95243
  }
76766
95244
   private:
76767
95245
  typedef CT_IfThenExpr CCExprResolveExpr;
76768
95246
 
76769
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76770
95248
 public :
76771
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95249
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76772
95250
  typedef CT_IfThenExpr CExprResolveExpr;
76773
95251
 
76774
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95252
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76775
95253
 public :
76776
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76777
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95254
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95255
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76778
95256
};
76779
95257
 
 
95258
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
95259
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
76780
95260
 
76781
 
#line 76782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95261
#line 95262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76782
95262
} // closed Puma
 
95263
class CCExprResolve;
 
95264
class CExprResolve;
76783
95265
class WinIfExists;
76784
95266
class WinImportHandler;
76785
95267
class WinMacros;
76786
 
class CMatchSyntax;
76787
 
class ExtGnu;
 
95268
class WinAsm;
 
95269
class WinDeclSpecs;
 
95270
class WinMemberExplSpec;
 
95271
class WinTypeKeywords;
 
95272
class WinFriend;
76788
95273
class ExtAC;
76789
95274
class ExtACBuilderCoupling;
76790
95275
class ExtACSyntaxCoupling;
76791
95276
class ExtACTree;
76792
95277
class ExtACKeywords;
76793
 
class WinAsm;
76794
 
class WinDeclSpecs;
76795
 
class WinMemberExplSpec;
76796
 
class WinTypeKeywords;
 
95278
class ExtGnu;
76797
95279
class PragmaOnceUnitState;
76798
95280
class PragmaOnce;
76799
 
class CCExprResolve;
76800
 
class CExprResolve;
76801
 
namespace Puma {
76802
 
 
76803
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95281
class CMatchSyntax;
 
95282
namespace Puma {
 
95283
 
 
95284
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95285
 
 
95286
#line 95287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95287
} // closed Puma
 
95288
 
 
95289
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95290
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95291
#include "CCExprResolveH.ah"
 
95292
#endif
 
95293
namespace Puma {
 
95294
 
 
95295
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95296
 
 
95297
#line 95298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95298
} // closed Puma
 
95299
 
 
95300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95302
#include "CExprResolveH.ah"
 
95303
#endif
 
95304
namespace Puma {
 
95305
 
 
95306
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76804
95307
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
76805
 
#line 76806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95308
#line 95309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95309
  friend class ::CCExprResolve;
 
95310
  friend class ::CExprResolve;
76806
95311
  friend class ::WinIfExists;
76807
95312
  friend class ::WinImportHandler;
76808
95313
  friend class ::WinMacros;
76809
 
  friend class ::CMatchSyntax;
76810
 
  friend class ::ExtGnu;
 
95314
  friend class ::WinAsm;
 
95315
  friend class ::WinDeclSpecs;
 
95316
  friend class ::WinMemberExplSpec;
 
95317
  friend class ::WinTypeKeywords;
 
95318
  friend class ::WinFriend;
76811
95319
  friend class ::ExtAC;
76812
95320
  friend class ::ExtACBuilderCoupling;
76813
95321
  friend class ::ExtACSyntaxCoupling;
76814
95322
  friend class ::ExtACTree;
76815
95323
  friend class ::ExtACKeywords;
76816
 
  friend class ::WinAsm;
76817
 
  friend class ::WinDeclSpecs;
76818
 
  friend class ::WinMemberExplSpec;
76819
 
  friend class ::WinTypeKeywords;
 
95324
  friend class ::ExtGnu;
76820
95325
  friend class ::PragmaOnceUnitState;
76821
95326
  friend class ::PragmaOnce;
76822
 
  friend class ::CCExprResolve;
76823
 
  friend class ::CExprResolve;
 
95327
  friend class ::CMatchSyntax;
76824
95328
 
76825
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95329
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76826
95330
 
76827
95331
  CTree *sons[4]; // open, type, close, init
76828
95332
 
76829
95333
public:
 
95334
  /** Constructor.
 
95335
   *  \param r Left parenthesis of the type name.
 
95336
   *  \param t The type name.
 
95337
   *  \param cr Right parenthesis of the type name.
 
95338
   *  \param i The initializer list. */
76830
95339
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
76831
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
95340
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
95341
    AddSon (sons[2], cr); AddSon (sons[3], i);
76832
95342
  }
 
95343
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76833
95344
  static const char *NodeId ();
 
95345
  /** Get the name of the node. Can be compared with NodeId(). */
76834
95346
  const char *NodeName () const { return NodeId (); }
 
95347
  /** Get the number of sons. */
76835
95348
  int Sons () const { return 4; }
 
95349
  /** Get the n-th son.
 
95350
   *  \param n The index of the son.
 
95351
   *  \return The n-th son or NULL. */
76836
95352
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
95353
  /** Replace a son.
 
95354
   *  \param old_son The son to replace.
 
95355
   *  \param new_son The new son. */
76837
95356
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76838
95357
    CTree::ReplaceSon (sons, 4, old_son, new_son);
76839
95358
  }
 
95359
  /** Get the type name. */
76840
95360
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
95361
  /** Get the initializer list. */
76841
95362
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
95363
  /** Get the semantic information object. */
76842
95364
  CSemObject *SemObject () const { return (CSemObject*)this; }
76843
95365
   private:
76844
95366
  typedef CT_CmpdLiteral CCExprResolveExpr;
76845
95367
 
76846
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95368
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76847
95369
 public :
76848
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95370
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76849
95371
  typedef CT_CmpdLiteral CExprResolveExpr;
76850
95372
 
76851
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95373
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76852
95374
 public :
76853
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76854
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95375
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95376
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76855
95377
};
76856
95378
 
 
95379
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
95380
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
76857
95381
 
76858
 
#line 76859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95382
#line 95383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76859
95383
} // closed Puma
 
95384
class CCExprResolve;
 
95385
class CExprResolve;
76860
95386
class WinIfExists;
76861
95387
class WinImportHandler;
76862
95388
class WinMacros;
76863
 
class CMatchSyntax;
76864
 
class ExtGnu;
 
95389
class WinAsm;
 
95390
class WinDeclSpecs;
 
95391
class WinMemberExplSpec;
 
95392
class WinTypeKeywords;
 
95393
class WinFriend;
76865
95394
class ExtAC;
76866
95395
class ExtACBuilderCoupling;
76867
95396
class ExtACSyntaxCoupling;
76868
95397
class ExtACTree;
76869
95398
class ExtACKeywords;
76870
 
class WinAsm;
76871
 
class WinDeclSpecs;
76872
 
class WinMemberExplSpec;
76873
 
class WinTypeKeywords;
 
95399
class ExtGnu;
76874
95400
class PragmaOnceUnitState;
76875
95401
class PragmaOnce;
76876
 
class CCExprResolve;
76877
 
class CExprResolve;
76878
 
namespace Puma {
76879
 
 
76880
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95402
class CMatchSyntax;
 
95403
namespace Puma {
 
95404
 
 
95405
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95406
 
 
95407
#line 95408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95408
} // closed Puma
 
95409
 
 
95410
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95411
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95412
#include "CCExprResolveH.ah"
 
95413
#endif
 
95414
namespace Puma {
 
95415
 
 
95416
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95417
 
 
95418
#line 95419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95419
} // closed Puma
 
95420
 
 
95421
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95422
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95423
#include "CExprResolveH.ah"
 
95424
#endif
 
95425
namespace Puma {
 
95426
 
 
95427
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76881
95428
class CT_ConstructExpr : public CT_Expression, public CSemObject {
76882
 
#line 76883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95429
#line 95430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95430
  friend class ::CCExprResolve;
 
95431
  friend class ::CExprResolve;
76883
95432
  friend class ::WinIfExists;
76884
95433
  friend class ::WinImportHandler;
76885
95434
  friend class ::WinMacros;
76886
 
  friend class ::CMatchSyntax;
76887
 
  friend class ::ExtGnu;
 
95435
  friend class ::WinAsm;
 
95436
  friend class ::WinDeclSpecs;
 
95437
  friend class ::WinMemberExplSpec;
 
95438
  friend class ::WinTypeKeywords;
 
95439
  friend class ::WinFriend;
76888
95440
  friend class ::ExtAC;
76889
95441
  friend class ::ExtACBuilderCoupling;
76890
95442
  friend class ::ExtACSyntaxCoupling;
76891
95443
  friend class ::ExtACTree;
76892
95444
  friend class ::ExtACKeywords;
76893
 
  friend class ::WinAsm;
76894
 
  friend class ::WinDeclSpecs;
76895
 
  friend class ::WinMemberExplSpec;
76896
 
  friend class ::WinTypeKeywords;
 
95445
  friend class ::ExtGnu;
76897
95446
  friend class ::PragmaOnceUnitState;
76898
95447
  friend class ::PragmaOnce;
76899
 
  friend class ::CCExprResolve;
76900
 
  friend class ::CExprResolve;
 
95448
  friend class ::CMatchSyntax;
76901
95449
 
76902
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95450
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76903
95451
 
76904
95452
  CTree *sons[2]; // type, init
76905
95453
 
76906
95454
public:
76907
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
95455
  /** Constructor.
 
95456
   *  \param t The type name.
 
95457
   *  \param i The initializer list. */
 
95458
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
95459
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76908
95460
  static const char *NodeId ();
 
95461
  /** Get the name of the node. Can be compared with NodeId(). */
76909
95462
  const char *NodeName () const { return NodeId (); }
 
95463
  /** Get the number of sons. */
76910
95464
  int Sons () const { return 2; }
 
95465
  /** Get the n-th son.
 
95466
   *  \param n The index of the son.
 
95467
   *  \return The n-th son or NULL. */
76911
95468
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
95469
  /** Replace a son.
 
95470
   *  \param old_son The son to replace.
 
95471
   *  \param new_son The new son. */
76912
95472
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76913
95473
    CTree::ReplaceSon (sons, 2, old_son, new_son);
76914
95474
  }
 
95475
  /** Get the type name. */
76915
95476
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
95477
  /** Get the initializer. */
76916
95478
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
95479
  /** Get the semantic information object. */
76917
95480
  CSemObject *SemObject () const { return (CSemObject*)this; }
76918
95481
   private:
76919
95482
  typedef CT_ConstructExpr CCExprResolveExpr;
76920
95483
 
76921
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95484
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76922
95485
 public :
76923
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95486
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76924
95487
  typedef CT_ConstructExpr CExprResolveExpr;
76925
95488
 
76926
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95489
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
76927
95490
 public :
76928
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
76929
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95491
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95492
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76930
95493
};
76931
95494
 
 
95495
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
95496
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
76932
95497
 
76933
 
#line 76934 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95498
#line 95499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
76934
95499
} // closed Puma
 
95500
class CCExprResolve;
 
95501
class CExprResolve;
76935
95502
class WinIfExists;
76936
95503
class WinImportHandler;
76937
95504
class WinMacros;
76938
 
class CMatchSyntax;
76939
 
class ExtGnu;
 
95505
class WinAsm;
 
95506
class WinDeclSpecs;
 
95507
class WinMemberExplSpec;
 
95508
class WinTypeKeywords;
 
95509
class WinFriend;
76940
95510
class ExtAC;
76941
95511
class ExtACBuilderCoupling;
76942
95512
class ExtACSyntaxCoupling;
76943
95513
class ExtACTree;
76944
95514
class ExtACKeywords;
76945
 
class WinAsm;
76946
 
class WinDeclSpecs;
76947
 
class WinMemberExplSpec;
76948
 
class WinTypeKeywords;
 
95515
class ExtGnu;
76949
95516
class PragmaOnceUnitState;
76950
95517
class PragmaOnce;
76951
 
class CCExprResolve;
76952
 
class CExprResolve;
76953
 
namespace Puma {
76954
 
 
76955
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95518
class CMatchSyntax;
 
95519
namespace Puma {
 
95520
 
 
95521
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95522
 
 
95523
#line 95524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95524
} // closed Puma
 
95525
 
 
95526
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95527
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95528
#include "CCExprResolveH.ah"
 
95529
#endif
 
95530
namespace Puma {
 
95531
 
 
95532
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95533
 
 
95534
#line 95535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95535
} // closed Puma
 
95536
 
 
95537
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95538
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95539
#include "CExprResolveH.ah"
 
95540
#endif
 
95541
namespace Puma {
 
95542
 
 
95543
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76956
95544
class CT_ThrowExpr : public CT_Expression {
76957
 
#line 76958 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95545
#line 95546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95546
  friend class ::CCExprResolve;
 
95547
  friend class ::CExprResolve;
76958
95548
  friend class ::WinIfExists;
76959
95549
  friend class ::WinImportHandler;
76960
95550
  friend class ::WinMacros;
76961
 
  friend class ::CMatchSyntax;
76962
 
  friend class ::ExtGnu;
 
95551
  friend class ::WinAsm;
 
95552
  friend class ::WinDeclSpecs;
 
95553
  friend class ::WinMemberExplSpec;
 
95554
  friend class ::WinTypeKeywords;
 
95555
  friend class ::WinFriend;
76963
95556
  friend class ::ExtAC;
76964
95557
  friend class ::ExtACBuilderCoupling;
76965
95558
  friend class ::ExtACSyntaxCoupling;
76966
95559
  friend class ::ExtACTree;
76967
95560
  friend class ::ExtACKeywords;
76968
 
  friend class ::WinAsm;
76969
 
  friend class ::WinDeclSpecs;
76970
 
  friend class ::WinMemberExplSpec;
76971
 
  friend class ::WinTypeKeywords;
 
95561
  friend class ::ExtGnu;
76972
95562
  friend class ::PragmaOnceUnitState;
76973
95563
  friend class ::PragmaOnce;
76974
 
  friend class ::CCExprResolve;
76975
 
  friend class ::CExprResolve;
 
95564
  friend class ::CMatchSyntax;
76976
95565
 
76977
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95566
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
76978
95567
 
76979
95568
  CTree *sons[2]; // throw, expr
76980
95569
 
76981
95570
public:
76982
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
95571
  /** Constructor.
 
95572
   *  \param t The 'throw' keyword.
 
95573
   *  \param e The expression. */
 
95574
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
95575
  /** Get the identifier for this node type. Can be compared with NodeName(). */
76983
95576
  static const char *NodeId ();
 
95577
  /** Get the name of the node. Can be compared with NodeId(). */
76984
95578
  const char *NodeName () const { return NodeId (); }
 
95579
  /** Get the number of sons. */
76985
95580
  int Sons () const { return CTree::Sons (sons, 2); }
 
95581
  /** Get the n-th son.
 
95582
   *  \param n The index of the son.
 
95583
   *  \return The n-th son or NULL. */
76986
95584
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
95585
  /** Replace a son.
 
95586
   *  \param old_son The son to replace.
 
95587
   *  \param new_son The new son. */
76987
95588
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
76988
95589
    CTree::ReplaceSon (sons, 2, old_son, new_son);
76989
95590
  }
 
95591
  /** Get the expression. */
76990
95592
  CTree *Expr () const { return sons[1]; }
76991
95593
   private:
76992
95594
  typedef CT_ThrowExpr CCExprResolveExpr;
76993
95595
 
76994
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95596
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
76995
95597
 public :
76996
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95598
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
76997
95599
  typedef CT_ThrowExpr CExprResolveExpr;
76998
95600
 
76999
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95601
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77000
95602
 public :
77001
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77002
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95603
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95604
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77003
95605
};
77004
95606
 
 
95607
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
95608
 *  Tree node representing an index expression. */
77005
95609
 
77006
 
#line 77007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95610
#line 95611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77007
95611
} // closed Puma
 
95612
class CCExprResolve;
 
95613
class CExprResolve;
77008
95614
class WinIfExists;
77009
95615
class WinImportHandler;
77010
95616
class WinMacros;
77011
 
class CMatchSyntax;
77012
 
class ExtGnu;
 
95617
class WinAsm;
 
95618
class WinDeclSpecs;
 
95619
class WinMemberExplSpec;
 
95620
class WinTypeKeywords;
 
95621
class WinFriend;
77013
95622
class ExtAC;
77014
95623
class ExtACBuilderCoupling;
77015
95624
class ExtACSyntaxCoupling;
77016
95625
class ExtACTree;
77017
95626
class ExtACKeywords;
77018
 
class WinAsm;
77019
 
class WinDeclSpecs;
77020
 
class WinMemberExplSpec;
77021
 
class WinTypeKeywords;
 
95627
class ExtGnu;
77022
95628
class PragmaOnceUnitState;
77023
95629
class PragmaOnce;
77024
 
class CCExprResolve;
77025
 
class CExprResolve;
77026
 
namespace Puma {
77027
 
 
77028
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
77029
 
class CT_IndexExpr : public CT_Expression {
77030
 
#line 77031 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95630
class CMatchSyntax;
 
95631
namespace Puma {
 
95632
 
 
95633
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95634
 
 
95635
#line 95636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95636
} // closed Puma
 
95637
 
 
95638
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95639
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95640
#include "CCExprResolveH.ah"
 
95641
#endif
 
95642
namespace Puma {
 
95643
 
 
95644
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95645
 
 
95646
#line 95647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95647
} // closed Puma
 
95648
 
 
95649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95651
#include "CExprResolveH.ah"
 
95652
#endif
 
95653
namespace Puma {
 
95654
 
 
95655
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95656
class CT_IndexExpr : public CT_Call {
 
95657
#line 95658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95658
  friend class ::CCExprResolve;
 
95659
  friend class ::CExprResolve;
77031
95660
  friend class ::WinIfExists;
77032
95661
  friend class ::WinImportHandler;
77033
95662
  friend class ::WinMacros;
77034
 
  friend class ::CMatchSyntax;
77035
 
  friend class ::ExtGnu;
 
95663
  friend class ::WinAsm;
 
95664
  friend class ::WinDeclSpecs;
 
95665
  friend class ::WinMemberExplSpec;
 
95666
  friend class ::WinTypeKeywords;
 
95667
  friend class ::WinFriend;
77036
95668
  friend class ::ExtAC;
77037
95669
  friend class ::ExtACBuilderCoupling;
77038
95670
  friend class ::ExtACSyntaxCoupling;
77039
95671
  friend class ::ExtACTree;
77040
95672
  friend class ::ExtACKeywords;
77041
 
  friend class ::WinAsm;
77042
 
  friend class ::WinDeclSpecs;
77043
 
  friend class ::WinMemberExplSpec;
77044
 
  friend class ::WinTypeKeywords;
 
95673
  friend class ::ExtGnu;
77045
95674
  friend class ::PragmaOnceUnitState;
77046
95675
  friend class ::PragmaOnce;
77047
 
  friend class ::CCExprResolve;
77048
 
  friend class ::CExprResolve;
 
95676
  friend class ::CMatchSyntax;
77049
95677
 
77050
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95678
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77051
95679
 
77052
95680
  CTree *sons[4]; // expr, open, index, close
77053
95681
 
77054
95682
public:
 
95683
  /** Constructor.
 
95684
   *  \param e The expression on which to invoke the index operator.
 
95685
   *  \param o Left parenthesis of the index expression.
 
95686
   *  \param i The index expression. 
 
95687
   *  \param c Right parenthesis of the index expression. */
77055
95688
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
77056
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
95689
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
95690
    AddSon (sons[2], i); AddSon (sons[3], c);
77057
95691
  }
 
95692
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77058
95693
  static const char *NodeId ();
 
95694
  /** Get the name of the node. Can be compared with NodeId(). */
77059
95695
  const char *NodeName () const { return NodeId (); }
 
95696
  /** Get the number of sons. */
77060
95697
  int Sons () const { return 4; }
 
95698
  /** Get the n-th son.
 
95699
   *  \param n The index of the son.
 
95700
   *  \return The n-th son or NULL. */
77061
95701
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
95702
  /** Replace a son.
 
95703
   *  \param old_son The son to replace.
 
95704
   *  \param new_son The new son. */
77062
95705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77063
95706
    CTree::ReplaceSon (sons, 4, old_son, new_son);
77064
95707
  }
77065
95708
   private:
77066
95709
  typedef CT_IndexExpr CCExprResolveExpr;
77067
95710
 
77068
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77069
95712
 public :
77070
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95713
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77071
95714
  typedef CT_IndexExpr CExprResolveExpr;
77072
95715
 
77073
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77074
95717
 public :
77075
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77076
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95718
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95719
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77077
95720
};
77078
95721
 
 
95722
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
95723
 *  Tree node representing a function call expression, e.g. f(i). */
77079
95724
 
77080
 
#line 77081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95725
#line 95726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77081
95726
} // closed Puma
 
95727
class CCExprResolve;
 
95728
class CExprResolve;
77082
95729
class WinIfExists;
77083
95730
class WinImportHandler;
77084
95731
class WinMacros;
77085
 
class CMatchSyntax;
77086
 
class ExtGnu;
 
95732
class WinAsm;
 
95733
class WinDeclSpecs;
 
95734
class WinMemberExplSpec;
 
95735
class WinTypeKeywords;
 
95736
class WinFriend;
77087
95737
class ExtAC;
77088
95738
class ExtACBuilderCoupling;
77089
95739
class ExtACSyntaxCoupling;
77090
95740
class ExtACTree;
77091
95741
class ExtACKeywords;
77092
 
class WinAsm;
77093
 
class WinDeclSpecs;
77094
 
class WinMemberExplSpec;
77095
 
class WinTypeKeywords;
 
95742
class ExtGnu;
77096
95743
class PragmaOnceUnitState;
77097
95744
class PragmaOnce;
77098
 
class CCExprResolve;
77099
 
class CExprResolve;
77100
 
namespace Puma {
77101
 
 
77102
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
77103
 
class CT_CallExpr : public CT_Expression, public CSemObject {
77104
 
#line 77105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95745
class CMatchSyntax;
 
95746
namespace Puma {
 
95747
 
 
95748
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95749
 
 
95750
#line 95751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95751
} // closed Puma
 
95752
 
 
95753
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95754
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95755
#include "CCExprResolveH.ah"
 
95756
#endif
 
95757
namespace Puma {
 
95758
 
 
95759
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95760
 
 
95761
#line 95762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95762
} // closed Puma
 
95763
 
 
95764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95766
#include "CExprResolveH.ah"
 
95767
#endif
 
95768
namespace Puma {
 
95769
 
 
95770
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95771
class CT_CallExpr : public CT_Call {
 
95772
#line 95773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95773
  friend class ::CCExprResolve;
 
95774
  friend class ::CExprResolve;
77105
95775
  friend class ::WinIfExists;
77106
95776
  friend class ::WinImportHandler;
77107
95777
  friend class ::WinMacros;
77108
 
  friend class ::CMatchSyntax;
77109
 
  friend class ::ExtGnu;
 
95778
  friend class ::WinAsm;
 
95779
  friend class ::WinDeclSpecs;
 
95780
  friend class ::WinMemberExplSpec;
 
95781
  friend class ::WinTypeKeywords;
 
95782
  friend class ::WinFriend;
77110
95783
  friend class ::ExtAC;
77111
95784
  friend class ::ExtACBuilderCoupling;
77112
95785
  friend class ::ExtACSyntaxCoupling;
77113
95786
  friend class ::ExtACTree;
77114
95787
  friend class ::ExtACKeywords;
77115
 
  friend class ::WinAsm;
77116
 
  friend class ::WinDeclSpecs;
77117
 
  friend class ::WinMemberExplSpec;
77118
 
  friend class ::WinTypeKeywords;
 
95788
  friend class ::ExtGnu;
77119
95789
  friend class ::PragmaOnceUnitState;
77120
95790
  friend class ::PragmaOnce;
77121
 
  friend class ::CCExprResolve;
77122
 
  friend class ::CExprResolve;
 
95791
  friend class ::CMatchSyntax;
77123
95792
 
77124
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95793
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77125
95794
 
77126
95795
  CTree *sons[2]; // expr, args
77127
95796
 
77128
95797
public:
77129
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
77130
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
95798
  /** Constructor.
 
95799
   *  \param e The expression on which the call is invoked. */
 
95800
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
95801
  /** Constructor.
 
95802
   *  \param e The expression on which the call is invoked.
 
95803
   *  \param l The argument list of the call. */
 
95804
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
95805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77131
95806
  static const char *NodeId ();
 
95807
  /** Get the name of the node. Can be compared with NodeId(). */
77132
95808
  const char *NodeName () const { return NodeId (); }
 
95809
  /** Get the number of sons. */
77133
95810
  int Sons () const { return CTree::Sons (sons, 2); }
 
95811
  /** Get the n-th son.
 
95812
   *  \param n The index of the son.
 
95813
   *  \return The n-th son or NULL. */
77134
95814
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
95815
  /** Replace a son.
 
95816
   *  \param old_son The son to replace.
 
95817
   *  \param new_son The new son. */
77135
95818
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77136
95819
    CTree::ReplaceSon (sons, 2, old_son, new_son);
77137
95820
  }
77138
95821
  CTree *Expr () const { return sons[0]; }
77139
95822
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
77140
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
77141
95823
   private:
77142
95824
  typedef CT_CallExpr CCExprResolveExpr;
77143
95825
 
77144
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95826
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77145
95827
 public :
77146
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95828
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77147
95829
  typedef CT_CallExpr CExprResolveExpr;
77148
95830
 
77149
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95831
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77150
95832
 public :
77151
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77152
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95833
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95834
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77153
95835
};
77154
95836
 
 
95837
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
95838
 *  Tree node representing a cast expression, e.g. (int)a. */
77155
95839
 
77156
 
#line 77157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95840
#line 95841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77157
95841
} // closed Puma
 
95842
class CCExprResolve;
 
95843
class CExprResolve;
77158
95844
class WinIfExists;
77159
95845
class WinImportHandler;
77160
95846
class WinMacros;
77161
 
class CMatchSyntax;
77162
 
class ExtGnu;
 
95847
class WinAsm;
 
95848
class WinDeclSpecs;
 
95849
class WinMemberExplSpec;
 
95850
class WinTypeKeywords;
 
95851
class WinFriend;
77163
95852
class ExtAC;
77164
95853
class ExtACBuilderCoupling;
77165
95854
class ExtACSyntaxCoupling;
77166
95855
class ExtACTree;
77167
95856
class ExtACKeywords;
77168
 
class WinAsm;
77169
 
class WinDeclSpecs;
77170
 
class WinMemberExplSpec;
77171
 
class WinTypeKeywords;
 
95857
class ExtGnu;
77172
95858
class PragmaOnceUnitState;
77173
95859
class PragmaOnce;
77174
 
class CCExprResolve;
77175
 
class CExprResolve;
77176
 
namespace Puma {
77177
 
 
77178
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95860
class CMatchSyntax;
 
95861
namespace Puma {
 
95862
 
 
95863
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95864
 
 
95865
#line 95866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95866
} // closed Puma
 
95867
 
 
95868
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95869
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95870
#include "CCExprResolveH.ah"
 
95871
#endif
 
95872
namespace Puma {
 
95873
 
 
95874
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95875
 
 
95876
#line 95877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95877
} // closed Puma
 
95878
 
 
95879
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95880
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95881
#include "CExprResolveH.ah"
 
95882
#endif
 
95883
namespace Puma {
 
95884
 
 
95885
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77179
95886
class CT_CastExpr : public CT_Expression {
77180
 
#line 77181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95887
#line 95888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95888
  friend class ::CCExprResolve;
 
95889
  friend class ::CExprResolve;
77181
95890
  friend class ::WinIfExists;
77182
95891
  friend class ::WinImportHandler;
77183
95892
  friend class ::WinMacros;
77184
 
  friend class ::CMatchSyntax;
77185
 
  friend class ::ExtGnu;
 
95893
  friend class ::WinAsm;
 
95894
  friend class ::WinDeclSpecs;
 
95895
  friend class ::WinMemberExplSpec;
 
95896
  friend class ::WinTypeKeywords;
 
95897
  friend class ::WinFriend;
77186
95898
  friend class ::ExtAC;
77187
95899
  friend class ::ExtACBuilderCoupling;
77188
95900
  friend class ::ExtACSyntaxCoupling;
77189
95901
  friend class ::ExtACTree;
77190
95902
  friend class ::ExtACKeywords;
77191
 
  friend class ::WinAsm;
77192
 
  friend class ::WinDeclSpecs;
77193
 
  friend class ::WinMemberExplSpec;
77194
 
  friend class ::WinTypeKeywords;
 
95903
  friend class ::ExtGnu;
77195
95904
  friend class ::PragmaOnceUnitState;
77196
95905
  friend class ::PragmaOnce;
77197
 
  friend class ::CCExprResolve;
77198
 
  friend class ::CExprResolve;
 
95906
  friend class ::CMatchSyntax;
77199
95907
 
77200
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95908
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77201
95909
 
77202
95910
  CTree *sons[4]; // open, type, close, expr
77203
95911
 
77204
95912
public:
 
95913
  /** Constructor.
 
95914
   *  \param o Left parenthesis of the type name.
 
95915
   *  \param t The type to cast to.
 
95916
   *  \param c Right parenthesis of the type name. 
 
95917
   *  \param e The expression to cast. */
77205
95918
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
77206
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
95919
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
95920
    AddSon (sons[2], c); AddSon (sons[3], e);
77207
95921
  }
 
95922
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77208
95923
  static const char *NodeId ();
 
95924
  /** Get the name of the node. Can be compared with NodeId(). */
77209
95925
  const char *NodeName () const { return NodeId (); }
 
95926
  /** Get the number of sons. */
77210
95927
  int Sons () const { return 4; }
 
95928
  /** Get the n-th son.
 
95929
   *  \param n The index of the son.
 
95930
   *  \return The n-th son or NULL. */
77211
95931
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
95932
  /** Replace a son.
 
95933
   *  \param old_son The son to replace.
 
95934
   *  \param new_son The new son. */
77212
95935
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77213
95936
    CTree::ReplaceSon (sons, 4, old_son, new_son);
77214
95937
  }
 
95938
  /** Get the casted expression. */
77215
95939
  CTree *Expr () const { return sons[3]; }
 
95940
  /** Get the type to cast to. */
77216
95941
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
77217
95942
   private:
77218
95943
  typedef CT_CastExpr CCExprResolveExpr;
77219
95944
 
77220
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
95945
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77221
95946
 public :
77222
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
95947
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77223
95948
  typedef CT_CastExpr CExprResolveExpr;
77224
95949
 
77225
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
95950
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77226
95951
 public :
77227
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77228
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95952
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
95953
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77229
95954
};
77230
95955
 
 
95956
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
95957
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
77231
95958
 
77232
 
#line 77233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
95959
#line 95960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77233
95960
} // closed Puma
 
95961
class CCExprResolve;
 
95962
class CExprResolve;
77234
95963
class WinIfExists;
77235
95964
class WinImportHandler;
77236
95965
class WinMacros;
77237
 
class CMatchSyntax;
77238
 
class ExtGnu;
 
95966
class WinAsm;
 
95967
class WinDeclSpecs;
 
95968
class WinMemberExplSpec;
 
95969
class WinTypeKeywords;
 
95970
class WinFriend;
77239
95971
class ExtAC;
77240
95972
class ExtACBuilderCoupling;
77241
95973
class ExtACSyntaxCoupling;
77242
95974
class ExtACTree;
77243
95975
class ExtACKeywords;
77244
 
class WinAsm;
77245
 
class WinDeclSpecs;
77246
 
class WinMemberExplSpec;
77247
 
class WinTypeKeywords;
 
95976
class ExtGnu;
77248
95977
class PragmaOnceUnitState;
77249
95978
class PragmaOnce;
77250
 
class CCExprResolve;
77251
 
class CExprResolve;
77252
 
namespace Puma {
77253
 
 
77254
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95979
class CMatchSyntax;
 
95980
namespace Puma {
 
95981
 
 
95982
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95983
 
 
95984
#line 95985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95985
} // closed Puma
 
95986
 
 
95987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
95989
#include "CCExprResolveH.ah"
 
95990
#endif
 
95991
namespace Puma {
 
95992
 
 
95993
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
95994
 
 
95995
#line 95996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
95996
} // closed Puma
 
95997
 
 
95998
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
95999
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96000
#include "CExprResolveH.ah"
 
96001
#endif
 
96002
namespace Puma {
 
96003
 
 
96004
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77255
96005
class CT_StaticCast : public CT_Expression {
77256
 
#line 77257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96006
#line 96007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96007
  friend class ::CCExprResolve;
 
96008
  friend class ::CExprResolve;
77257
96009
  friend class ::WinIfExists;
77258
96010
  friend class ::WinImportHandler;
77259
96011
  friend class ::WinMacros;
77260
 
  friend class ::CMatchSyntax;
77261
 
  friend class ::ExtGnu;
 
96012
  friend class ::WinAsm;
 
96013
  friend class ::WinDeclSpecs;
 
96014
  friend class ::WinMemberExplSpec;
 
96015
  friend class ::WinTypeKeywords;
 
96016
  friend class ::WinFriend;
77262
96017
  friend class ::ExtAC;
77263
96018
  friend class ::ExtACBuilderCoupling;
77264
96019
  friend class ::ExtACSyntaxCoupling;
77265
96020
  friend class ::ExtACTree;
77266
96021
  friend class ::ExtACKeywords;
77267
 
  friend class ::WinAsm;
77268
 
  friend class ::WinDeclSpecs;
77269
 
  friend class ::WinMemberExplSpec;
77270
 
  friend class ::WinTypeKeywords;
 
96022
  friend class ::ExtGnu;
77271
96023
  friend class ::PragmaOnceUnitState;
77272
96024
  friend class ::PragmaOnce;
77273
 
  friend class ::CCExprResolve;
77274
 
  friend class ::CExprResolve;
 
96025
  friend class ::CMatchSyntax;
77275
96026
 
77276
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96027
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77277
96028
 
77278
96029
  CTree *sons[5]; // cast, open, type, close, expr
77279
96030
 
77280
96031
public:
 
96032
  /** Constructor.
 
96033
   *  \param cst The cast operator, i.e. 'static_cast'.
 
96034
   *  \param o Left arrow bracket of the type name.
 
96035
   *  \param t The type to cast to.
 
96036
   *  \param c Right array bracket of the type name.
 
96037
   *  \param e The expression to cast. */
77281
96038
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
77282
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
96039
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
96040
    AddSon (sons[3], c); AddSon (sons[4], e);
77283
96041
  }
 
96042
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77284
96043
  static const char *NodeId ();
 
96044
  /** Get the name of the node. Can be compared with NodeId(). */
77285
96045
  const char *NodeName () const { return NodeId (); }
 
96046
  /** Get the number of sons. */
77286
96047
  int Sons () const { return 5; }
 
96048
  /** Get the n-th son.
 
96049
   *  \param n The index of the son.
 
96050
   *  \return The n-th son or NULL. */
77287
96051
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
96052
  /** Replace a son.
 
96053
   *  \param old_son The son to replace.
 
96054
   *  \param new_son The new son. */
77288
96055
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77289
96056
    CTree::ReplaceSon (sons, 5, old_son, new_son);
77290
96057
  }
 
96058
  /** Get the casted expression. */
77291
96059
  CTree *Expr () const { return sons[4]; }
 
96060
  /** Get the type to cast to. */
77292
96061
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
77293
96062
   private:
77294
96063
  typedef CT_StaticCast CCExprResolveExpr;
77295
96064
 
77296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96065
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77297
96066
 public :
77298
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96067
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77299
96068
  typedef CT_StaticCast CExprResolveExpr;
77300
96069
 
77301
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96070
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77302
96071
 public :
77303
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77304
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96072
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96073
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77305
96074
};
77306
96075
 
 
96076
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
96077
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
77307
96078
 
77308
 
#line 77309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96079
#line 96080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77309
96080
} // closed Puma
 
96081
class CCExprResolve;
 
96082
class CExprResolve;
77310
96083
class WinIfExists;
77311
96084
class WinImportHandler;
77312
96085
class WinMacros;
77313
 
class CMatchSyntax;
77314
 
class ExtGnu;
 
96086
class WinAsm;
 
96087
class WinDeclSpecs;
 
96088
class WinMemberExplSpec;
 
96089
class WinTypeKeywords;
 
96090
class WinFriend;
77315
96091
class ExtAC;
77316
96092
class ExtACBuilderCoupling;
77317
96093
class ExtACSyntaxCoupling;
77318
96094
class ExtACTree;
77319
96095
class ExtACKeywords;
77320
 
class WinAsm;
77321
 
class WinDeclSpecs;
77322
 
class WinMemberExplSpec;
77323
 
class WinTypeKeywords;
 
96096
class ExtGnu;
77324
96097
class PragmaOnceUnitState;
77325
96098
class PragmaOnce;
77326
 
class CCExprResolve;
77327
 
class CExprResolve;
77328
 
namespace Puma {
77329
 
 
77330
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96099
class CMatchSyntax;
 
96100
namespace Puma {
 
96101
 
 
96102
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96103
 
 
96104
#line 96105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96105
} // closed Puma
 
96106
 
 
96107
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96108
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96109
#include "CCExprResolveH.ah"
 
96110
#endif
 
96111
namespace Puma {
 
96112
 
 
96113
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96114
 
 
96115
#line 96116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96116
} // closed Puma
 
96117
 
 
96118
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96119
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96120
#include "CExprResolveH.ah"
 
96121
#endif
 
96122
namespace Puma {
 
96123
 
 
96124
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77331
96125
class CT_ConstCast : public CT_StaticCast {
77332
 
#line 77333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96126
#line 96127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96127
  friend class ::CCExprResolve;
 
96128
  friend class ::CExprResolve;
77333
96129
  friend class ::WinIfExists;
77334
96130
  friend class ::WinImportHandler;
77335
96131
  friend class ::WinMacros;
77336
 
  friend class ::CMatchSyntax;
77337
 
  friend class ::ExtGnu;
 
96132
  friend class ::WinAsm;
 
96133
  friend class ::WinDeclSpecs;
 
96134
  friend class ::WinMemberExplSpec;
 
96135
  friend class ::WinTypeKeywords;
 
96136
  friend class ::WinFriend;
77338
96137
  friend class ::ExtAC;
77339
96138
  friend class ::ExtACBuilderCoupling;
77340
96139
  friend class ::ExtACSyntaxCoupling;
77341
96140
  friend class ::ExtACTree;
77342
96141
  friend class ::ExtACKeywords;
77343
 
  friend class ::WinAsm;
77344
 
  friend class ::WinDeclSpecs;
77345
 
  friend class ::WinMemberExplSpec;
77346
 
  friend class ::WinTypeKeywords;
 
96142
  friend class ::ExtGnu;
77347
96143
  friend class ::PragmaOnceUnitState;
77348
96144
  friend class ::PragmaOnce;
77349
 
  friend class ::CCExprResolve;
77350
 
  friend class ::CExprResolve;
 
96145
  friend class ::CMatchSyntax;
77351
96146
 
77352
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96147
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77353
96148
 
77354
96149
public:
 
96150
  /** Constructor.
 
96151
   *  \param cst The cast operator, i.e. 'const_cast'.
 
96152
   *  \param o Left arrow bracket of the type name.
 
96153
   *  \param t The type to cast to.
 
96154
   *  \param c Right array bracket of the type name.
 
96155
   *  \param e The expression to cast. */
77355
96156
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
77356
96157
    CT_StaticCast (cst, o, t, c, e) {}
 
96158
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77357
96159
  static const char *NodeId ();
 
96160
  /** Get the name of the node. Can be compared with NodeId(). */
77358
96161
  const char *NodeName () const { return NodeId (); }
77359
96162
   private:
77360
96163
  typedef CT_ConstCast CCExprResolveExpr;
77361
96164
 
77362
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96165
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77363
96166
 public :
77364
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96167
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77365
96168
  typedef CT_ConstCast CExprResolveExpr;
77366
96169
 
77367
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96170
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77368
96171
 public :
77369
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77370
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96172
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96173
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77371
96174
};
77372
96175
 
 
96176
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
96177
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
77373
96178
 
77374
 
#line 77375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96179
#line 96180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77375
96180
} // closed Puma
 
96181
class CCExprResolve;
 
96182
class CExprResolve;
77376
96183
class WinIfExists;
77377
96184
class WinImportHandler;
77378
96185
class WinMacros;
77379
 
class CMatchSyntax;
77380
 
class ExtGnu;
 
96186
class WinAsm;
 
96187
class WinDeclSpecs;
 
96188
class WinMemberExplSpec;
 
96189
class WinTypeKeywords;
 
96190
class WinFriend;
77381
96191
class ExtAC;
77382
96192
class ExtACBuilderCoupling;
77383
96193
class ExtACSyntaxCoupling;
77384
96194
class ExtACTree;
77385
96195
class ExtACKeywords;
77386
 
class WinAsm;
77387
 
class WinDeclSpecs;
77388
 
class WinMemberExplSpec;
77389
 
class WinTypeKeywords;
 
96196
class ExtGnu;
77390
96197
class PragmaOnceUnitState;
77391
96198
class PragmaOnce;
77392
 
class CCExprResolve;
77393
 
class CExprResolve;
77394
 
namespace Puma {
77395
 
 
77396
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96199
class CMatchSyntax;
 
96200
namespace Puma {
 
96201
 
 
96202
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96203
 
 
96204
#line 96205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96205
} // closed Puma
 
96206
 
 
96207
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96208
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96209
#include "CCExprResolveH.ah"
 
96210
#endif
 
96211
namespace Puma {
 
96212
 
 
96213
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96214
 
 
96215
#line 96216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96216
} // closed Puma
 
96217
 
 
96218
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96219
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96220
#include "CExprResolveH.ah"
 
96221
#endif
 
96222
namespace Puma {
 
96223
 
 
96224
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77397
96225
class CT_ReintCast : public CT_StaticCast {
77398
 
#line 77399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96226
#line 96227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96227
  friend class ::CCExprResolve;
 
96228
  friend class ::CExprResolve;
77399
96229
  friend class ::WinIfExists;
77400
96230
  friend class ::WinImportHandler;
77401
96231
  friend class ::WinMacros;
77402
 
  friend class ::CMatchSyntax;
77403
 
  friend class ::ExtGnu;
 
96232
  friend class ::WinAsm;
 
96233
  friend class ::WinDeclSpecs;
 
96234
  friend class ::WinMemberExplSpec;
 
96235
  friend class ::WinTypeKeywords;
 
96236
  friend class ::WinFriend;
77404
96237
  friend class ::ExtAC;
77405
96238
  friend class ::ExtACBuilderCoupling;
77406
96239
  friend class ::ExtACSyntaxCoupling;
77407
96240
  friend class ::ExtACTree;
77408
96241
  friend class ::ExtACKeywords;
77409
 
  friend class ::WinAsm;
77410
 
  friend class ::WinDeclSpecs;
77411
 
  friend class ::WinMemberExplSpec;
77412
 
  friend class ::WinTypeKeywords;
 
96242
  friend class ::ExtGnu;
77413
96243
  friend class ::PragmaOnceUnitState;
77414
96244
  friend class ::PragmaOnce;
77415
 
  friend class ::CCExprResolve;
77416
 
  friend class ::CExprResolve;
 
96245
  friend class ::CMatchSyntax;
77417
96246
 
77418
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96247
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77419
96248
 
77420
96249
public:
 
96250
  /** Constructor.
 
96251
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
96252
   *  \param o Left arrow bracket of the type name.
 
96253
   *  \param t The type to cast to.
 
96254
   *  \param c Right array bracket of the type name.
 
96255
   *  \param e The expression to cast. */
77421
96256
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
77422
96257
    CT_StaticCast (cst, o, t, c, e) {}
 
96258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77423
96259
  static const char *NodeId ();
 
96260
  /** Get the name of the node. Can be compared with NodeId(). */
77424
96261
  const char *NodeName () const { return NodeId (); }
77425
96262
   private:
77426
96263
  typedef CT_ReintCast CCExprResolveExpr;
77427
96264
 
77428
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77429
96266
 public :
77430
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96267
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77431
96268
  typedef CT_ReintCast CExprResolveExpr;
77432
96269
 
77433
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96270
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77434
96271
 public :
77435
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77436
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96272
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96273
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77437
96274
};
77438
96275
 
 
96276
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
96277
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
77439
96278
 
77440
 
#line 77441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96279
#line 96280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77441
96280
} // closed Puma
 
96281
class CCExprResolve;
 
96282
class CExprResolve;
77442
96283
class WinIfExists;
77443
96284
class WinImportHandler;
77444
96285
class WinMacros;
77445
 
class CMatchSyntax;
77446
 
class ExtGnu;
 
96286
class WinAsm;
 
96287
class WinDeclSpecs;
 
96288
class WinMemberExplSpec;
 
96289
class WinTypeKeywords;
 
96290
class WinFriend;
77447
96291
class ExtAC;
77448
96292
class ExtACBuilderCoupling;
77449
96293
class ExtACSyntaxCoupling;
77450
96294
class ExtACTree;
77451
96295
class ExtACKeywords;
77452
 
class WinAsm;
77453
 
class WinDeclSpecs;
77454
 
class WinMemberExplSpec;
77455
 
class WinTypeKeywords;
 
96296
class ExtGnu;
77456
96297
class PragmaOnceUnitState;
77457
96298
class PragmaOnce;
77458
 
class CCExprResolve;
77459
 
class CExprResolve;
77460
 
namespace Puma {
77461
 
 
77462
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96299
class CMatchSyntax;
 
96300
namespace Puma {
 
96301
 
 
96302
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96303
 
 
96304
#line 96305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96305
} // closed Puma
 
96306
 
 
96307
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96308
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96309
#include "CCExprResolveH.ah"
 
96310
#endif
 
96311
namespace Puma {
 
96312
 
 
96313
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96314
 
 
96315
#line 96316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96316
} // closed Puma
 
96317
 
 
96318
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96319
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96320
#include "CExprResolveH.ah"
 
96321
#endif
 
96322
namespace Puma {
 
96323
 
 
96324
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77463
96325
class CT_DynamicCast : public CT_StaticCast {
77464
 
#line 77465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96326
#line 96327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96327
  friend class ::CCExprResolve;
 
96328
  friend class ::CExprResolve;
77465
96329
  friend class ::WinIfExists;
77466
96330
  friend class ::WinImportHandler;
77467
96331
  friend class ::WinMacros;
77468
 
  friend class ::CMatchSyntax;
77469
 
  friend class ::ExtGnu;
 
96332
  friend class ::WinAsm;
 
96333
  friend class ::WinDeclSpecs;
 
96334
  friend class ::WinMemberExplSpec;
 
96335
  friend class ::WinTypeKeywords;
 
96336
  friend class ::WinFriend;
77470
96337
  friend class ::ExtAC;
77471
96338
  friend class ::ExtACBuilderCoupling;
77472
96339
  friend class ::ExtACSyntaxCoupling;
77473
96340
  friend class ::ExtACTree;
77474
96341
  friend class ::ExtACKeywords;
77475
 
  friend class ::WinAsm;
77476
 
  friend class ::WinDeclSpecs;
77477
 
  friend class ::WinMemberExplSpec;
77478
 
  friend class ::WinTypeKeywords;
 
96342
  friend class ::ExtGnu;
77479
96343
  friend class ::PragmaOnceUnitState;
77480
96344
  friend class ::PragmaOnce;
77481
 
  friend class ::CCExprResolve;
77482
 
  friend class ::CExprResolve;
 
96345
  friend class ::CMatchSyntax;
77483
96346
 
77484
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96347
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77485
96348
 
77486
96349
public:
 
96350
  /** Constructor.
 
96351
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
96352
   *  \param o Left arrow bracket of the type name.
 
96353
   *  \param t The type to cast to.
 
96354
   *  \param c Right array bracket of the type name.
 
96355
   *  \param e The expression to cast. */
77487
96356
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
77488
96357
    CT_StaticCast (cst, o, t, c, e) {}
 
96358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77489
96359
  static const char *NodeId ();
 
96360
  /** Get the name of the node. Can be compared with NodeId(). */
77490
96361
  const char *NodeName () const { return NodeId (); }
77491
96362
   private:
77492
96363
  typedef CT_DynamicCast CCExprResolveExpr;
77493
96364
 
77494
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96365
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77495
96366
 public :
77496
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96367
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77497
96368
  typedef CT_DynamicCast CExprResolveExpr;
77498
96369
 
77499
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96370
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77500
96371
 public :
77501
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77502
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96372
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96373
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77503
96374
};
77504
96375
 
 
96376
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
96377
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
96378
 *  where 1.2 is implicitely casted from float to int. */
77505
96379
 
77506
 
#line 77507 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96380
#line 96381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77507
96381
} // closed Puma
 
96382
class CCExprResolve;
 
96383
class CExprResolve;
77508
96384
class WinIfExists;
77509
96385
class WinImportHandler;
77510
96386
class WinMacros;
77511
 
class CMatchSyntax;
77512
 
class ExtGnu;
 
96387
class WinAsm;
 
96388
class WinDeclSpecs;
 
96389
class WinMemberExplSpec;
 
96390
class WinTypeKeywords;
 
96391
class WinFriend;
77513
96392
class ExtAC;
77514
96393
class ExtACBuilderCoupling;
77515
96394
class ExtACSyntaxCoupling;
77516
96395
class ExtACTree;
77517
96396
class ExtACKeywords;
77518
 
class WinAsm;
77519
 
class WinDeclSpecs;
77520
 
class WinMemberExplSpec;
77521
 
class WinTypeKeywords;
 
96397
class ExtGnu;
77522
96398
class PragmaOnceUnitState;
77523
96399
class PragmaOnce;
77524
 
class CCExprResolve;
77525
 
class CExprResolve;
77526
 
namespace Puma {
77527
 
 
77528
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96400
class CMatchSyntax;
 
96401
namespace Puma {
 
96402
 
 
96403
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96404
 
 
96405
#line 96406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96406
} // closed Puma
 
96407
 
 
96408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96410
#include "CCExprResolveH.ah"
 
96411
#endif
 
96412
namespace Puma {
 
96413
 
 
96414
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96415
 
 
96416
#line 96417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96417
} // closed Puma
 
96418
 
 
96419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96421
#include "CExprResolveH.ah"
 
96422
#endif
 
96423
namespace Puma {
 
96424
 
 
96425
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77529
96426
class CT_ImplicitCast : public CT_Expression {
77530
 
#line 77531 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96427
#line 96428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96428
  friend class ::CCExprResolve;
 
96429
  friend class ::CExprResolve;
77531
96430
  friend class ::WinIfExists;
77532
96431
  friend class ::WinImportHandler;
77533
96432
  friend class ::WinMacros;
77534
 
  friend class ::CMatchSyntax;
77535
 
  friend class ::ExtGnu;
 
96433
  friend class ::WinAsm;
 
96434
  friend class ::WinDeclSpecs;
 
96435
  friend class ::WinMemberExplSpec;
 
96436
  friend class ::WinTypeKeywords;
 
96437
  friend class ::WinFriend;
77536
96438
  friend class ::ExtAC;
77537
96439
  friend class ::ExtACBuilderCoupling;
77538
96440
  friend class ::ExtACSyntaxCoupling;
77539
96441
  friend class ::ExtACTree;
77540
96442
  friend class ::ExtACKeywords;
77541
 
  friend class ::WinAsm;
77542
 
  friend class ::WinDeclSpecs;
77543
 
  friend class ::WinMemberExplSpec;
77544
 
  friend class ::WinTypeKeywords;
 
96443
  friend class ::ExtGnu;
77545
96444
  friend class ::PragmaOnceUnitState;
77546
96445
  friend class ::PragmaOnce;
77547
 
  friend class ::CCExprResolve;
77548
 
  friend class ::CExprResolve;
 
96446
  friend class ::CMatchSyntax;
77549
96447
 
77550
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96448
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77551
96449
 
77552
96450
  CTree *_expr; // casted expression
77553
96451
 
77554
96452
public:
77555
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
96453
  /** Constructor.
 
96454
   *  \param e The expression that is implicitely casted. */
 
96455
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
96456
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77556
96457
  static const char *NodeId ();
 
96458
  /** Get the name of the node. Can be compared with NodeId(). */
77557
96459
  const char *NodeName () const { return NodeId (); }
 
96460
  /** Get the number of sons. */
77558
96461
  int Sons () const { return 1; }
 
96462
  /** Get the n-th son.
 
96463
   *  \param n The index of the son.
 
96464
   *  \return The n-th son or NULL. */
77559
96465
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
96466
  /** Get the casted expression. */
77560
96467
  CTree *Expr () const { return _expr; }
 
96468
  /** Replace a son.
 
96469
   *  \param old_son The son to replace.
 
96470
   *  \param new_son The new son. */
77561
96471
  void ReplaceSon (CTree *old_son, CTree *new_son) 
77562
 
   { if (old_son == _expr) _expr = new_son; }
 
96472
   { CTree::ReplaceSon (_expr, old_son, new_son); }
77563
96473
   private:
77564
96474
  typedef CT_ImplicitCast CCExprResolveExpr;
77565
96475
 
77566
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96476
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77567
96477
 public :
77568
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96478
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77569
96479
  typedef CT_ImplicitCast CExprResolveExpr;
77570
96480
 
77571
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96481
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77572
96482
 public :
77573
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77574
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96483
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96484
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77575
96485
};
77576
96486
 
 
96487
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
96488
 *  Tree node representing a typeid expression, e.g. typeid(X). */
77577
96489
 
77578
 
#line 77579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96490
#line 96491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77579
96491
} // closed Puma
 
96492
class CCExprResolve;
 
96493
class CExprResolve;
77580
96494
class WinIfExists;
77581
96495
class WinImportHandler;
77582
96496
class WinMacros;
77583
 
class CMatchSyntax;
77584
 
class ExtGnu;
 
96497
class WinAsm;
 
96498
class WinDeclSpecs;
 
96499
class WinMemberExplSpec;
 
96500
class WinTypeKeywords;
 
96501
class WinFriend;
77585
96502
class ExtAC;
77586
96503
class ExtACBuilderCoupling;
77587
96504
class ExtACSyntaxCoupling;
77588
96505
class ExtACTree;
77589
96506
class ExtACKeywords;
77590
 
class WinAsm;
77591
 
class WinDeclSpecs;
77592
 
class WinMemberExplSpec;
77593
 
class WinTypeKeywords;
 
96507
class ExtGnu;
77594
96508
class PragmaOnceUnitState;
77595
96509
class PragmaOnce;
77596
 
class CCExprResolve;
77597
 
class CExprResolve;
77598
 
namespace Puma {
77599
 
 
77600
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96510
class CMatchSyntax;
 
96511
namespace Puma {
 
96512
 
 
96513
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96514
 
 
96515
#line 96516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96516
} // closed Puma
 
96517
 
 
96518
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96519
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96520
#include "CCExprResolveH.ah"
 
96521
#endif
 
96522
namespace Puma {
 
96523
 
 
96524
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96525
 
 
96526
#line 96527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96527
} // closed Puma
 
96528
 
 
96529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96531
#include "CExprResolveH.ah"
 
96532
#endif
 
96533
namespace Puma {
 
96534
 
 
96535
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77601
96536
class CT_TypeidExpr : public CT_Expression {
77602
 
#line 77603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96537
#line 96538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96538
  friend class ::CCExprResolve;
 
96539
  friend class ::CExprResolve;
77603
96540
  friend class ::WinIfExists;
77604
96541
  friend class ::WinImportHandler;
77605
96542
  friend class ::WinMacros;
77606
 
  friend class ::CMatchSyntax;
77607
 
  friend class ::ExtGnu;
 
96543
  friend class ::WinAsm;
 
96544
  friend class ::WinDeclSpecs;
 
96545
  friend class ::WinMemberExplSpec;
 
96546
  friend class ::WinTypeKeywords;
 
96547
  friend class ::WinFriend;
77608
96548
  friend class ::ExtAC;
77609
96549
  friend class ::ExtACBuilderCoupling;
77610
96550
  friend class ::ExtACSyntaxCoupling;
77611
96551
  friend class ::ExtACTree;
77612
96552
  friend class ::ExtACKeywords;
77613
 
  friend class ::WinAsm;
77614
 
  friend class ::WinDeclSpecs;
77615
 
  friend class ::WinMemberExplSpec;
77616
 
  friend class ::WinTypeKeywords;
 
96553
  friend class ::ExtGnu;
77617
96554
  friend class ::PragmaOnceUnitState;
77618
96555
  friend class ::PragmaOnce;
77619
 
  friend class ::CCExprResolve;
77620
 
  friend class ::CExprResolve;
 
96556
  friend class ::CMatchSyntax;
77621
96557
 
77622
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96558
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77623
96559
 
77624
96560
  CTree *sons[4]; // typeid, open, type_id/expr, close
77625
96561
 
77626
96562
public:
 
96563
  /** Constructor.
 
96564
   *  \param tid The 'typeid' operator.
 
96565
   *  \param o The left parenthesis of the type name or expression.
 
96566
   *  \param e The expression or type name for which to get the type identifier.
 
96567
   *  \param c The right parenthesis of the type name or expression. */
77627
96568
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
77628
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
96569
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
96570
    AddSon (sons[2], e); AddSon (sons[3], c);
77629
96571
  }
 
96572
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77630
96573
  static const char *NodeId ();
 
96574
  /** Get the name of the node. Can be compared with NodeId(). */
77631
96575
  const char *NodeName () const { return NodeId (); }
 
96576
  /** Get the number of sons. */
77632
96577
  int Sons () const { return 4; }
 
96578
  /** Get the n-th son.
 
96579
   *  \param n The index of the son.
 
96580
   *  \return The n-th son or NULL. */
77633
96581
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
96582
  /** Replace a son.
 
96583
   *  \param old_son The son to replace.
 
96584
   *  \param new_son The new son. */
77634
96585
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77635
96586
    CTree::ReplaceSon (sons, 4, old_son, new_son);
77636
96587
  }
 
96588
  /** Get the typeid argument, i.e. the expression or type name for
 
96589
   *  which to get the type identifier. */
77637
96590
  CTree *Arg () const { return sons[2]; }
77638
96591
   private:
77639
96592
  typedef CT_TypeidExpr CCExprResolveExpr;
77640
96593
 
77641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96594
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77642
96595
 public :
77643
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96596
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77644
96597
  typedef CT_TypeidExpr CExprResolveExpr;
77645
96598
 
77646
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96599
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77647
96600
 public :
77648
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77649
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96601
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96602
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77650
96603
};
77651
96604
 
 
96605
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
96606
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
77652
96607
 
77653
 
#line 77654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96608
#line 96609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77654
96609
} // closed Puma
 
96610
class CCExprResolve;
 
96611
class CExprResolve;
77655
96612
class WinIfExists;
77656
96613
class WinImportHandler;
77657
96614
class WinMacros;
77658
 
class CMatchSyntax;
77659
 
class ExtGnu;
 
96615
class WinAsm;
 
96616
class WinDeclSpecs;
 
96617
class WinMemberExplSpec;
 
96618
class WinTypeKeywords;
 
96619
class WinFriend;
77660
96620
class ExtAC;
77661
96621
class ExtACBuilderCoupling;
77662
96622
class ExtACSyntaxCoupling;
77663
96623
class ExtACTree;
77664
96624
class ExtACKeywords;
77665
 
class WinAsm;
77666
 
class WinDeclSpecs;
77667
 
class WinMemberExplSpec;
77668
 
class WinTypeKeywords;
 
96625
class ExtGnu;
77669
96626
class PragmaOnceUnitState;
77670
96627
class PragmaOnce;
77671
 
class CCExprResolve;
77672
 
class CExprResolve;
77673
 
namespace Puma {
77674
 
 
77675
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96628
class CMatchSyntax;
 
96629
namespace Puma {
 
96630
 
 
96631
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96632
 
 
96633
#line 96634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96634
} // closed Puma
 
96635
 
 
96636
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96637
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96638
#include "CCExprResolveH.ah"
 
96639
#endif
 
96640
namespace Puma {
 
96641
 
 
96642
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96643
 
 
96644
#line 96645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96645
} // closed Puma
 
96646
 
 
96647
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96648
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96649
#include "CExprResolveH.ah"
 
96650
#endif
 
96651
namespace Puma {
 
96652
 
 
96653
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77676
96654
class CT_SizeofExpr : public CT_Expression {
77677
 
#line 77678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96655
#line 96656 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96656
  friend class ::CCExprResolve;
 
96657
  friend class ::CExprResolve;
77678
96658
  friend class ::WinIfExists;
77679
96659
  friend class ::WinImportHandler;
77680
96660
  friend class ::WinMacros;
77681
 
  friend class ::CMatchSyntax;
77682
 
  friend class ::ExtGnu;
 
96661
  friend class ::WinAsm;
 
96662
  friend class ::WinDeclSpecs;
 
96663
  friend class ::WinMemberExplSpec;
 
96664
  friend class ::WinTypeKeywords;
 
96665
  friend class ::WinFriend;
77683
96666
  friend class ::ExtAC;
77684
96667
  friend class ::ExtACBuilderCoupling;
77685
96668
  friend class ::ExtACSyntaxCoupling;
77686
96669
  friend class ::ExtACTree;
77687
96670
  friend class ::ExtACKeywords;
77688
 
  friend class ::WinAsm;
77689
 
  friend class ::WinDeclSpecs;
77690
 
  friend class ::WinMemberExplSpec;
77691
 
  friend class ::WinTypeKeywords;
 
96671
  friend class ::ExtGnu;
77692
96672
  friend class ::PragmaOnceUnitState;
77693
96673
  friend class ::PragmaOnce;
77694
 
  friend class ::CCExprResolve;
77695
 
  friend class ::CExprResolve;
 
96674
  friend class ::CMatchSyntax;
77696
96675
 
77697
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96676
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77698
96677
 
77699
96678
  CTree *sons[5]; // key, open, type, close, expr
77700
96679
 
77701
96680
public:
 
96681
  /** Constructor.
 
96682
   *  \param k The 'sizeof' keyword.
 
96683
   *  \param o Left parenthesis around the type name.
 
96684
   *  \param t The type from which to get the size.
 
96685
   *  \param c Right parenthesis around the type name. */
77702
96686
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
77703
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
96687
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
96688
    AddSon (sons[3], c); AddSon (sons[4], 0);
77704
96689
  }
 
96690
  /** Constructor.
 
96691
   *  \param k The 'sizeof' keyword.
 
96692
   *  \param e The expression from which to get the size. */
77705
96693
  CT_SizeofExpr (CTree *k, CTree *e) {
77706
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
96694
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
96695
    AddSon (sons[3], 0); AddSon (sons[4], e);
77707
96696
  }
 
96697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77708
96698
  static const char *NodeId ();
 
96699
  /** Get the name of the node. Can be compared with NodeId(). */
77709
96700
  const char *NodeName () const { return NodeId (); }
 
96701
  /** Get the number of sons. */
77710
96702
  int Sons () const { return CTree::Sons (sons, 5); }
 
96703
  /** Get the n-th son.
 
96704
   *  \param n The index of the son.
 
96705
   *  \return The n-th son or NULL. */
77711
96706
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
96707
  /** Replace a son.
 
96708
   *  \param old_son The son to replace.
 
96709
   *  \param new_son The new son. */
77712
96710
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77713
96711
    CTree::ReplaceSon (sons, 5, old_son, new_son);
77714
96712
  }
 
96713
  /** Get the expression. */
77715
96714
  CTree *Expr () const { return sons[4]; }
 
96715
  /** Get the type name. */
77716
96716
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
77717
96717
   private:
77718
96718
  typedef CT_SizeofExpr CCExprResolveExpr;
77719
96719
 
77720
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96720
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77721
96721
 public :
77722
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96722
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77723
96723
  typedef CT_SizeofExpr CExprResolveExpr;
77724
96724
 
77725
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96725
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77726
96726
 public :
77727
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77728
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96727
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96728
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77729
96729
};
77730
96730
 
 
96731
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
96732
 *  Tree node representing an index designator, i.e. [1]. */
77731
96733
 
77732
 
#line 77733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96734
#line 96735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77733
96735
} // closed Puma
 
96736
class CCExprResolve;
 
96737
class CExprResolve;
77734
96738
class WinIfExists;
77735
96739
class WinImportHandler;
77736
96740
class WinMacros;
77737
 
class CMatchSyntax;
77738
 
class ExtGnu;
 
96741
class WinAsm;
 
96742
class WinDeclSpecs;
 
96743
class WinMemberExplSpec;
 
96744
class WinTypeKeywords;
 
96745
class WinFriend;
77739
96746
class ExtAC;
77740
96747
class ExtACBuilderCoupling;
77741
96748
class ExtACSyntaxCoupling;
77742
96749
class ExtACTree;
77743
96750
class ExtACKeywords;
77744
 
class WinAsm;
77745
 
class WinDeclSpecs;
77746
 
class WinMemberExplSpec;
77747
 
class WinTypeKeywords;
 
96751
class ExtGnu;
77748
96752
class PragmaOnceUnitState;
77749
96753
class PragmaOnce;
77750
 
class CCExprResolve;
77751
 
class CExprResolve;
77752
 
namespace Puma {
77753
 
 
77754
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96754
class CMatchSyntax;
 
96755
namespace Puma {
 
96756
 
 
96757
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96758
 
 
96759
#line 96760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96760
} // closed Puma
 
96761
 
 
96762
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96763
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96764
#include "CCExprResolveH.ah"
 
96765
#endif
 
96766
namespace Puma {
 
96767
 
 
96768
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96769
 
 
96770
#line 96771 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96771
} // closed Puma
 
96772
 
 
96773
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96774
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96775
#include "CExprResolveH.ah"
 
96776
#endif
 
96777
namespace Puma {
 
96778
 
 
96779
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77755
96780
class CT_IndexDesignator : public CT_Expression {
77756
 
#line 77757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96781
#line 96782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96782
  friend class ::CCExprResolve;
 
96783
  friend class ::CExprResolve;
77757
96784
  friend class ::WinIfExists;
77758
96785
  friend class ::WinImportHandler;
77759
96786
  friend class ::WinMacros;
77760
 
  friend class ::CMatchSyntax;
77761
 
  friend class ::ExtGnu;
 
96787
  friend class ::WinAsm;
 
96788
  friend class ::WinDeclSpecs;
 
96789
  friend class ::WinMemberExplSpec;
 
96790
  friend class ::WinTypeKeywords;
 
96791
  friend class ::WinFriend;
77762
96792
  friend class ::ExtAC;
77763
96793
  friend class ::ExtACBuilderCoupling;
77764
96794
  friend class ::ExtACSyntaxCoupling;
77765
96795
  friend class ::ExtACTree;
77766
96796
  friend class ::ExtACKeywords;
77767
 
  friend class ::WinAsm;
77768
 
  friend class ::WinDeclSpecs;
77769
 
  friend class ::WinMemberExplSpec;
77770
 
  friend class ::WinTypeKeywords;
 
96797
  friend class ::ExtGnu;
77771
96798
  friend class ::PragmaOnceUnitState;
77772
96799
  friend class ::PragmaOnce;
77773
 
  friend class ::CCExprResolve;
77774
 
  friend class ::CExprResolve;
 
96800
  friend class ::CMatchSyntax;
77775
96801
 
77776
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96802
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77777
96803
 
77778
96804
  CTree *sons[3]; // open, index, close
77779
96805
 
77780
96806
public:
 
96807
  /** Constructor.
 
96808
   *  \param o Left bracket of the index designator.
 
96809
   *  \param i The index expression.
 
96810
   *  \param c Right bracket of the index designator. */
77781
96811
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
77782
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
96812
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
77783
96813
  }
 
96814
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77784
96815
  static const char *NodeId ();
 
96816
  /** Get the name of the node. Can be compared with NodeId(). */
77785
96817
  const char *NodeName () const { return NodeId (); }
 
96818
  /** Get the number of sons. */
77786
96819
  int Sons () const { return 3; }
 
96820
  /** Get the n-th son.
 
96821
   *  \param n The index of the son.
 
96822
   *  \return The n-th son or NULL. */
77787
96823
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
96824
  /** Replace a son.
 
96825
   *  \param old_son The son to replace.
 
96826
   *  \param new_son The new son. */
77788
96827
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77789
96828
    CTree::ReplaceSon (sons, 3, old_son, new_son);
77790
96829
  }
77791
96830
   private:
77792
96831
  typedef CT_IndexDesignator CCExprResolveExpr;
77793
96832
 
77794
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96833
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77795
96834
 public :
77796
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96835
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77797
96836
  typedef CT_IndexDesignator CExprResolveExpr;
77798
96837
 
77799
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96838
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77800
96839
 public :
77801
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77802
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96840
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96841
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77803
96842
};
77804
96843
 
 
96844
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
96845
 *  Tree node representing a member designator, e.g. .a. */
77805
96846
 
77806
 
#line 77807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96847
#line 96848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77807
96848
} // closed Puma
 
96849
class CCExprResolve;
 
96850
class CExprResolve;
77808
96851
class WinIfExists;
77809
96852
class WinImportHandler;
77810
96853
class WinMacros;
77811
 
class CMatchSyntax;
77812
 
class ExtGnu;
 
96854
class WinAsm;
 
96855
class WinDeclSpecs;
 
96856
class WinMemberExplSpec;
 
96857
class WinTypeKeywords;
 
96858
class WinFriend;
77813
96859
class ExtAC;
77814
96860
class ExtACBuilderCoupling;
77815
96861
class ExtACSyntaxCoupling;
77816
96862
class ExtACTree;
77817
96863
class ExtACKeywords;
77818
 
class WinAsm;
77819
 
class WinDeclSpecs;
77820
 
class WinMemberExplSpec;
77821
 
class WinTypeKeywords;
 
96864
class ExtGnu;
77822
96865
class PragmaOnceUnitState;
77823
96866
class PragmaOnce;
77824
 
class CCExprResolve;
77825
 
class CExprResolve;
77826
 
namespace Puma {
77827
 
 
77828
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96867
class CMatchSyntax;
 
96868
namespace Puma {
 
96869
 
 
96870
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96871
 
 
96872
#line 96873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96873
} // closed Puma
 
96874
 
 
96875
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96876
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
96877
#include "CCExprResolveH.ah"
 
96878
#endif
 
96879
namespace Puma {
 
96880
 
 
96881
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96882
 
 
96883
#line 96884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96884
} // closed Puma
 
96885
 
 
96886
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96887
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
96888
#include "CExprResolveH.ah"
 
96889
#endif
 
96890
namespace Puma {
 
96891
 
 
96892
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77829
96893
class CT_MembDesignator : public CT_Expression {
77830
 
#line 77831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96894
#line 96895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96895
  friend class ::CCExprResolve;
 
96896
  friend class ::CExprResolve;
77831
96897
  friend class ::WinIfExists;
77832
96898
  friend class ::WinImportHandler;
77833
96899
  friend class ::WinMacros;
77834
 
  friend class ::CMatchSyntax;
77835
 
  friend class ::ExtGnu;
 
96900
  friend class ::WinAsm;
 
96901
  friend class ::WinDeclSpecs;
 
96902
  friend class ::WinMemberExplSpec;
 
96903
  friend class ::WinTypeKeywords;
 
96904
  friend class ::WinFriend;
77836
96905
  friend class ::ExtAC;
77837
96906
  friend class ::ExtACBuilderCoupling;
77838
96907
  friend class ::ExtACSyntaxCoupling;
77839
96908
  friend class ::ExtACTree;
77840
96909
  friend class ::ExtACKeywords;
77841
 
  friend class ::WinAsm;
77842
 
  friend class ::WinDeclSpecs;
77843
 
  friend class ::WinMemberExplSpec;
77844
 
  friend class ::WinTypeKeywords;
 
96910
  friend class ::ExtGnu;
77845
96911
  friend class ::PragmaOnceUnitState;
77846
96912
  friend class ::PragmaOnce;
77847
 
  friend class ::CCExprResolve;
77848
 
  friend class ::CExprResolve;
 
96913
  friend class ::CMatchSyntax;
77849
96914
 
77850
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96915
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77851
96916
 
77852
96917
  CTree *sons[2]; // dot, member
77853
96918
 
77854
96919
public:
77855
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
96920
  /** Constructor.
 
96921
   *  \param d The dot before the member name.
 
96922
   *  \param m The member name. */
 
96923
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
96924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77856
96925
  static const char *NodeId ();
 
96926
  /** Get the name of the node. Can be compared with NodeId(). */
77857
96927
  const char *NodeName () const { return NodeId (); }
 
96928
  /** Get the number of sons. */
77858
96929
  int Sons () const { return 2; }
 
96930
  /** Get the n-th son.
 
96931
   *  \param n The index of the son.
 
96932
   *  \return The n-th son or NULL. */
77859
96933
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
96934
  /** Replace a son.
 
96935
   *  \param old_son The son to replace.
 
96936
   *  \param new_son The new son. */
77860
96937
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
77861
96938
    CTree::ReplaceSon (sons, 2, old_son, new_son);
77862
96939
  }
77863
96940
   private:
77864
96941
  typedef CT_MembDesignator CCExprResolveExpr;
77865
96942
 
77866
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
96943
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
77867
96944
 public :
77868
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
96945
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
77869
96946
  typedef CT_MembDesignator CExprResolveExpr;
77870
96947
 
77871
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
96948
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
77872
96949
 public :
77873
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
77874
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96950
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
96951
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77875
96952
};
77876
96953
 
 
96954
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
96955
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
77877
96956
 
77878
 
#line 77879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96957
#line 96958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77879
96958
} // closed Puma
 
96959
class CCExprResolve;
 
96960
class CExprResolve;
77880
96961
class WinIfExists;
77881
96962
class WinImportHandler;
77882
96963
class WinMacros;
77883
 
class CMatchSyntax;
77884
 
class ExtGnu;
 
96964
class WinAsm;
 
96965
class WinDeclSpecs;
 
96966
class WinMemberExplSpec;
 
96967
class WinTypeKeywords;
 
96968
class WinFriend;
77885
96969
class ExtAC;
77886
96970
class ExtACBuilderCoupling;
77887
96971
class ExtACSyntaxCoupling;
77888
96972
class ExtACTree;
77889
96973
class ExtACKeywords;
77890
 
class WinAsm;
77891
 
class WinDeclSpecs;
77892
 
class WinMemberExplSpec;
77893
 
class WinTypeKeywords;
 
96974
class ExtGnu;
77894
96975
class PragmaOnceUnitState;
77895
96976
class PragmaOnce;
77896
 
class CCExprResolve;
77897
 
class CExprResolve;
 
96977
class CMatchSyntax;
77898
96978
namespace Puma {
77899
96979
 
77900
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
96980
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77901
96981
class CT_DesignatorSeq : public CT_List, public CSemValue {
77902
 
#line 77903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
96982
#line 96983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
96983
  friend class ::CCExprResolve;
 
96984
  friend class ::CExprResolve;
77903
96985
  friend class ::WinIfExists;
77904
96986
  friend class ::WinImportHandler;
77905
96987
  friend class ::WinMacros;
77906
 
  friend class ::CMatchSyntax;
77907
 
  friend class ::ExtGnu;
 
96988
  friend class ::WinAsm;
 
96989
  friend class ::WinDeclSpecs;
 
96990
  friend class ::WinMemberExplSpec;
 
96991
  friend class ::WinTypeKeywords;
 
96992
  friend class ::WinFriend;
77908
96993
  friend class ::ExtAC;
77909
96994
  friend class ::ExtACBuilderCoupling;
77910
96995
  friend class ::ExtACSyntaxCoupling;
77911
96996
  friend class ::ExtACTree;
77912
96997
  friend class ::ExtACKeywords;
77913
 
  friend class ::WinAsm;
77914
 
  friend class ::WinDeclSpecs;
77915
 
  friend class ::WinMemberExplSpec;
77916
 
  friend class ::WinTypeKeywords;
 
96998
  friend class ::ExtGnu;
77917
96999
  friend class ::PragmaOnceUnitState;
77918
97000
  friend class ::PragmaOnce;
77919
 
  friend class ::CCExprResolve;
77920
 
  friend class ::CExprResolve;
 
97001
  friend class ::CMatchSyntax;
77921
97002
 
77922
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97003
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77923
97004
 
77924
97005
public:
 
97006
  /** Constructor.
 
97007
   *  \param size Initial number of designators. */
77925
97008
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
97009
  /** Get the identifier for this node type. Can be compared with NodeName(). */
77926
97010
  static const char *NodeId ();
 
97011
  /** Get the name of the node. Can be compared with NodeId(). */
77927
97012
  const char *NodeName () const { return NodeId (); }
77928
97013
 
 
97014
  /** Get the type of the entity to initialize. */
77929
97015
  CTypeInfo *Type () const { return type; }
 
97016
  /** Get the value of the entity to initialize. */
77930
97017
  CExprValue *Value () const { return value; }
 
97018
  /** Get the semantic value object. */
77931
97019
  CSemValue *SemValue () const { return (CSemValue*)this; }
77932
97020
};
77933
97021
 
77937
97025
/*                                                                           */
77938
97026
/*****************************************************************************/
77939
97027
 
 
97028
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
97029
 *  Base class for all tree nodes representing declaration specifiers. */
77940
97030
 
77941
 
#line 77942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97031
#line 97032 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77942
97032
} // closed Puma
 
97033
class CCExprResolve;
 
97034
class CExprResolve;
77943
97035
class WinIfExists;
77944
97036
class WinImportHandler;
77945
97037
class WinMacros;
77946
 
class CMatchSyntax;
77947
 
class ExtGnu;
 
97038
class WinAsm;
 
97039
class WinDeclSpecs;
 
97040
class WinMemberExplSpec;
 
97041
class WinTypeKeywords;
 
97042
class WinFriend;
77948
97043
class ExtAC;
77949
97044
class ExtACBuilderCoupling;
77950
97045
class ExtACSyntaxCoupling;
77951
97046
class ExtACTree;
77952
97047
class ExtACKeywords;
77953
 
class WinAsm;
77954
 
class WinDeclSpecs;
77955
 
class WinMemberExplSpec;
77956
 
class WinTypeKeywords;
 
97048
class ExtGnu;
77957
97049
class PragmaOnceUnitState;
77958
97050
class PragmaOnce;
77959
 
class CCExprResolve;
77960
 
class CExprResolve;
 
97051
class CMatchSyntax;
77961
97052
namespace Puma {
77962
97053
 
77963
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97054
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77964
97055
class CT_DeclSpec : public CTree {
77965
 
#line 77966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97056
#line 97057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97057
  friend class ::CCExprResolve;
 
97058
  friend class ::CExprResolve;
77966
97059
  friend class ::WinIfExists;
77967
97060
  friend class ::WinImportHandler;
77968
97061
  friend class ::WinMacros;
77969
 
  friend class ::CMatchSyntax;
77970
 
  friend class ::ExtGnu;
 
97062
  friend class ::WinAsm;
 
97063
  friend class ::WinDeclSpecs;
 
97064
  friend class ::WinMemberExplSpec;
 
97065
  friend class ::WinTypeKeywords;
 
97066
  friend class ::WinFriend;
77971
97067
  friend class ::ExtAC;
77972
97068
  friend class ::ExtACBuilderCoupling;
77973
97069
  friend class ::ExtACSyntaxCoupling;
77974
97070
  friend class ::ExtACTree;
77975
97071
  friend class ::ExtACKeywords;
77976
 
  friend class ::WinAsm;
77977
 
  friend class ::WinDeclSpecs;
77978
 
  friend class ::WinMemberExplSpec;
77979
 
  friend class ::WinTypeKeywords;
 
97072
  friend class ::ExtGnu;
77980
97073
  friend class ::PragmaOnceUnitState;
77981
97074
  friend class ::PragmaOnce;
77982
 
  friend class ::CCExprResolve;
77983
 
  friend class ::CExprResolve;
 
97075
  friend class ::CMatchSyntax;
77984
97076
 
77985
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97077
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
77986
97078
 
77987
97079
protected:
 
97080
  /** Constructor. */
77988
97081
  CT_DeclSpec () {}
77989
97082
};
77990
97083
 
 
97084
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
97085
 *  Tree node representing a primitive declaration specifier. */
77991
97086
 
77992
 
#line 77993 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97087
#line 97088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
77993
97088
} // closed Puma
 
97089
class CCExprResolve;
 
97090
class CExprResolve;
77994
97091
class WinIfExists;
77995
97092
class WinImportHandler;
77996
97093
class WinMacros;
77997
 
class CMatchSyntax;
77998
 
class ExtGnu;
 
97094
class WinAsm;
 
97095
class WinDeclSpecs;
 
97096
class WinMemberExplSpec;
 
97097
class WinTypeKeywords;
 
97098
class WinFriend;
77999
97099
class ExtAC;
78000
97100
class ExtACBuilderCoupling;
78001
97101
class ExtACSyntaxCoupling;
78002
97102
class ExtACTree;
78003
97103
class ExtACKeywords;
78004
 
class WinAsm;
78005
 
class WinDeclSpecs;
78006
 
class WinMemberExplSpec;
78007
 
class WinTypeKeywords;
 
97104
class ExtGnu;
78008
97105
class PragmaOnceUnitState;
78009
97106
class PragmaOnce;
78010
 
class CCExprResolve;
78011
 
class CExprResolve;
 
97107
class CMatchSyntax;
78012
97108
namespace Puma {
78013
97109
 
78014
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97110
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78015
97111
class CT_PrimDeclSpec : public CT_DeclSpec {
78016
 
#line 78017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97112
#line 97113 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97113
  friend class ::CCExprResolve;
 
97114
  friend class ::CExprResolve;
78017
97115
  friend class ::WinIfExists;
78018
97116
  friend class ::WinImportHandler;
78019
97117
  friend class ::WinMacros;
78020
 
  friend class ::CMatchSyntax;
78021
 
  friend class ::ExtGnu;
 
97118
  friend class ::WinAsm;
 
97119
  friend class ::WinDeclSpecs;
 
97120
  friend class ::WinMemberExplSpec;
 
97121
  friend class ::WinTypeKeywords;
 
97122
  friend class ::WinFriend;
78022
97123
  friend class ::ExtAC;
78023
97124
  friend class ::ExtACBuilderCoupling;
78024
97125
  friend class ::ExtACSyntaxCoupling;
78025
97126
  friend class ::ExtACTree;
78026
97127
  friend class ::ExtACKeywords;
78027
 
  friend class ::WinAsm;
78028
 
  friend class ::WinDeclSpecs;
78029
 
  friend class ::WinMemberExplSpec;
78030
 
  friend class ::WinTypeKeywords;
 
97128
  friend class ::ExtGnu;
78031
97129
  friend class ::PragmaOnceUnitState;
78032
97130
  friend class ::PragmaOnce;
78033
 
  friend class ::CCExprResolve;
78034
 
  friend class ::CExprResolve;
 
97131
  friend class ::CMatchSyntax;
78035
97132
 
78036
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97133
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78037
97134
 
78038
97135
public:
78039
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
78040
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
78041
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
78042
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
78043
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
78044
 
              // AspectC++ specific type specifier
78045
 
              PDS_UNKNOWN_T,
78046
 
              // Win specific declaration specifiers
78047
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
78048
 
              PDS_UNKNOWN, PDS_NUM };
 
97136
  /** Declaration specifier types. */
 
97137
  enum Type { 
 
97138
    PDS_FRIEND,    /** friend */
 
97139
    PDS_TYPEDEF,   /** typedef */
 
97140
    PDS_AUTO,      /** auto */
 
97141
    PDS_REGISTER,  /** register */
 
97142
    PDS_STATIC,    /** static */
 
97143
    PDS_EXTERN,    /** extern */
 
97144
    PDS_MUTABLE,   /** mutable */
 
97145
    PDS_INLINE,    /** inline */
 
97146
    PDS_VIRTUAL,   /** virtual */
 
97147
    PDS_EXPLICIT,  /** explicit */
 
97148
    PDS_CONST,     /** const */
 
97149
    PDS_VOLATILE,  /** volatile */
 
97150
    PDS_RESTRICT,  /** restrict */
 
97151
    PDS_CHAR,      /** char */
 
97152
    PDS_WCHAR_T,   /** wchar_t */
 
97153
    PDS_BOOL,      /** bool */
 
97154
    PDS_SHORT,     /** short */
 
97155
    PDS_INT,       /** int */
 
97156
    PDS_LONG,      /** long */
 
97157
    PDS_SIGNED,    /** signed */
 
97158
    PDS_UNSIGNED,  /** unsigned */
 
97159
    PDS_FLOAT,     /** float */
 
97160
    PDS_DOUBLE,    /** double */
 
97161
    PDS_VOID,      /** void */
 
97162
    // AspectC++ specific type specifier
 
97163
    PDS_UNKNOWN_T, /** unknown_t */
 
97164
    // Win specific declaration specifiers
 
97165
    PDS_CDECL,     /** __cdecl */
 
97166
    PDS_STDCALL,   /** __stdcall */
 
97167
    PDS_FASTCALL,  /** __fastcall */
 
97168
    PDS_INT64,     /** __int64 */
 
97169
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
97170
    PDS_NUM        /** Number of declaration specifier types. */
 
97171
  };
78049
97172
 
78050
97173
private:
78051
97174
  Type _type;
78052
 
  CT_Token *_token;
 
97175
  CTree *_token; // has to be a CT_Token
78053
97176
 
78054
97177
  void determine_type ();
78055
97178
 
78056
97179
public:
78057
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
97180
  /** Constructor.
 
97181
   *  \param t The token containing the declaration specifier. */
 
97182
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
97183
  /** Constructor.
 
97184
   *  \param t The declaration specifier type. */
78058
97185
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
97186
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78059
97187
  static const char *NodeId ();
 
97188
  /** Get the name of the node. Can be compared with NodeId(). */
78060
97189
  const char *NodeName () const { return NodeId (); }
 
97190
  /** Get the number of sons. */
78061
97191
  int Sons () const { return _token ? 1 : 0; }
 
97192
  /** Get the n-th son.
 
97193
   *  \param n The index of the son.
 
97194
   *  \return The n-th son or NULL. */
78062
97195
  CTree *Son (int n) const 
78063
97196
   { return (n == 0) ? _token : (CTree*)0; }
 
97197
  /** Get the textual representation of the declaration specifier.
 
97198
   *  \return The string representation or " ". */
78064
97199
  const char *SpecText () const 
78065
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
97200
   { return _token ? _token->token ()->text () : " "; }
 
97201
  /** Get the declaration specifier type. */
78066
97202
  Type SpecType () const { return _type; }
 
97203
  /** Number of declaration specifier types. */
78067
97204
  static const int NumTypes = PDS_NUM;
 
97205
  /** Replace a son.
 
97206
   *  \param old_son The son to replace.
 
97207
   *  \param new_son The new son. */
 
97208
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
97209
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
97210
    determine_type ();
 
97211
  }
78068
97212
};
78069
97213
 
 
97214
/** \class CT_NamedType CTree.h Puma/CTree.h
 
97215
 *  Tree node representing a named type, e.g. (int*)a. 
 
97216
 *  where int* is a type with a generated name. */
78070
97217
 
78071
 
#line 78072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97218
#line 97219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78072
97219
} // closed Puma
 
97220
class CCExprResolve;
 
97221
class CExprResolve;
78073
97222
class WinIfExists;
78074
97223
class WinImportHandler;
78075
97224
class WinMacros;
78076
 
class CMatchSyntax;
78077
 
class ExtGnu;
 
97225
class WinAsm;
 
97226
class WinDeclSpecs;
 
97227
class WinMemberExplSpec;
 
97228
class WinTypeKeywords;
 
97229
class WinFriend;
78078
97230
class ExtAC;
78079
97231
class ExtACBuilderCoupling;
78080
97232
class ExtACSyntaxCoupling;
78081
97233
class ExtACTree;
78082
97234
class ExtACKeywords;
78083
 
class WinAsm;
78084
 
class WinDeclSpecs;
78085
 
class WinMemberExplSpec;
78086
 
class WinTypeKeywords;
 
97235
class ExtGnu;
78087
97236
class PragmaOnceUnitState;
78088
97237
class PragmaOnce;
78089
 
class CCExprResolve;
78090
 
class CExprResolve;
 
97238
class CMatchSyntax;
78091
97239
namespace Puma {
78092
97240
 
78093
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97241
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78094
97242
class CT_NamedType : public CT_DeclSpec, public CSemObject {
78095
 
#line 78096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97243
#line 97244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97244
  friend class ::CCExprResolve;
 
97245
  friend class ::CExprResolve;
78096
97246
  friend class ::WinIfExists;
78097
97247
  friend class ::WinImportHandler;
78098
97248
  friend class ::WinMacros;
78099
 
  friend class ::CMatchSyntax;
78100
 
  friend class ::ExtGnu;
 
97249
  friend class ::WinAsm;
 
97250
  friend class ::WinDeclSpecs;
 
97251
  friend class ::WinMemberExplSpec;
 
97252
  friend class ::WinTypeKeywords;
 
97253
  friend class ::WinFriend;
78101
97254
  friend class ::ExtAC;
78102
97255
  friend class ::ExtACBuilderCoupling;
78103
97256
  friend class ::ExtACSyntaxCoupling;
78104
97257
  friend class ::ExtACTree;
78105
97258
  friend class ::ExtACKeywords;
78106
 
  friend class ::WinAsm;
78107
 
  friend class ::WinDeclSpecs;
78108
 
  friend class ::WinMemberExplSpec;
78109
 
  friend class ::WinTypeKeywords;
 
97259
  friend class ::ExtGnu;
78110
97260
  friend class ::PragmaOnceUnitState;
78111
97261
  friend class ::PragmaOnce;
78112
 
  friend class ::CCExprResolve;
78113
 
  friend class ::CExprResolve;
 
97262
  friend class ::CMatchSyntax;
78114
97263
 
78115
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97264
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78116
97265
 
78117
97266
  CTree *sons[2]; // declspecs, declarator
78118
97267
 
78119
97268
public:
78120
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
97269
  /** Constructor.
 
97270
   *  \param dss The declaration specifier sequence of the type.
 
97271
   *  \param d The type declarator. */
 
97272
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
97273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78121
97274
  static const char *NodeId ();
 
97275
  /** Get the name of the node. Can be compared with NodeId(). */
78122
97276
  const char *NodeName () const { return NodeId (); }
 
97277
  /** Get the number of sons. */
78123
97278
  int Sons () const { return CTree::Sons (sons, 2); }
 
97279
  /** Get the n-th son.
 
97280
   *  \param n The index of the son.
 
97281
   *  \return The n-th son or NULL. */
78124
97282
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
97283
  /** Get the declarator. */
78125
97284
  CTree *Declarator () const { return sons[1]; }
 
97285
  /** Replace a son.
 
97286
   *  \param old_son The son to replace.
 
97287
   *  \param new_son The new son. */
78126
97288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78127
97289
    CTree::ReplaceSon (sons, 2, old_son, new_son);
78128
97290
  }
 
97291
  /** Get the semantic information object. */
78129
97292
  CSemObject *SemObject () const { return (CSemObject*)this; }
78130
97293
};
78131
97294
      
 
97295
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
97296
 *  Tree node representing a class specifier, e.g. class X. */
78132
97297
 
78133
 
#line 78134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97298
#line 97299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78134
97299
} // closed Puma
 
97300
class CCExprResolve;
 
97301
class CExprResolve;
78135
97302
class WinIfExists;
78136
97303
class WinImportHandler;
78137
97304
class WinMacros;
78138
 
class CMatchSyntax;
78139
 
class ExtGnu;
 
97305
class WinAsm;
 
97306
class WinDeclSpecs;
 
97307
class WinMemberExplSpec;
 
97308
class WinTypeKeywords;
 
97309
class WinFriend;
78140
97310
class ExtAC;
78141
97311
class ExtACBuilderCoupling;
78142
97312
class ExtACSyntaxCoupling;
78143
97313
class ExtACTree;
78144
97314
class ExtACKeywords;
78145
 
class WinAsm;
78146
 
class WinDeclSpecs;
78147
 
class WinMemberExplSpec;
78148
 
class WinTypeKeywords;
 
97315
class ExtGnu;
78149
97316
class PragmaOnceUnitState;
78150
97317
class PragmaOnce;
78151
 
class CCExprResolve;
78152
 
class CExprResolve;
 
97318
class CMatchSyntax;
78153
97319
namespace Puma {
78154
97320
 
78155
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97321
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78156
97322
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
78157
 
#line 78158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97323
#line 97324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97324
  friend class ::CCExprResolve;
 
97325
  friend class ::CExprResolve;
78158
97326
  friend class ::WinIfExists;
78159
97327
  friend class ::WinImportHandler;
78160
97328
  friend class ::WinMacros;
78161
 
  friend class ::CMatchSyntax;
78162
 
  friend class ::ExtGnu;
 
97329
  friend class ::WinAsm;
 
97330
  friend class ::WinDeclSpecs;
 
97331
  friend class ::WinMemberExplSpec;
 
97332
  friend class ::WinTypeKeywords;
 
97333
  friend class ::WinFriend;
78163
97334
  friend class ::ExtAC;
78164
97335
  friend class ::ExtACBuilderCoupling;
78165
97336
  friend class ::ExtACSyntaxCoupling;
78166
97337
  friend class ::ExtACTree;
78167
97338
  friend class ::ExtACKeywords;
78168
 
  friend class ::WinAsm;
78169
 
  friend class ::WinDeclSpecs;
78170
 
  friend class ::WinMemberExplSpec;
78171
 
  friend class ::WinTypeKeywords;
 
97339
  friend class ::ExtGnu;
78172
97340
  friend class ::PragmaOnceUnitState;
78173
97341
  friend class ::PragmaOnce;
78174
 
  friend class ::CCExprResolve;
78175
 
  friend class ::CExprResolve;
 
97342
  friend class ::CMatchSyntax;
78176
97343
 
78177
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97344
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78178
97345
 
78179
97346
  CTree *sons[2]; // key, name
78180
97347
  
78181
97348
public:
78182
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
97349
  /** Constructor.
 
97350
   *  \param k The 'class' or 'struct' keyword.
 
97351
   *  \param n The class name. */
 
97352
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
97353
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78183
97354
  static const char *NodeId ();
 
97355
  /** Get the name of the node. Can be compared with NodeId(). */
78184
97356
  const char *NodeName () const { return NodeId (); }
 
97357
  /** Get the number of sons. */
78185
97358
  int Sons () const { return 2; }
 
97359
  /** Get the n-th son.
 
97360
   *  \param n The index of the son.
 
97361
   *  \return The n-th son or NULL. */
78186
97362
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
97363
  /** Get the class name. */
78187
97364
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
97365
  /** Get the semantic information object. */
78188
97366
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
97367
  /** Replace a son.
 
97368
   *  \param old_son The son to replace.
 
97369
   *  \param new_son The new son. */
78189
97370
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78190
97371
    CTree::ReplaceSon (sons, 2, old_son, new_son);
78191
97372
  }
78192
97373
};
78193
97374
 
 
97375
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
97376
 *  Tree node representing a union specifier, e.g. union X. */
78194
97377
 
78195
 
#line 78196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97378
#line 97379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78196
97379
} // closed Puma
 
97380
class CCExprResolve;
 
97381
class CExprResolve;
78197
97382
class WinIfExists;
78198
97383
class WinImportHandler;
78199
97384
class WinMacros;
78200
 
class CMatchSyntax;
78201
 
class ExtGnu;
 
97385
class WinAsm;
 
97386
class WinDeclSpecs;
 
97387
class WinMemberExplSpec;
 
97388
class WinTypeKeywords;
 
97389
class WinFriend;
78202
97390
class ExtAC;
78203
97391
class ExtACBuilderCoupling;
78204
97392
class ExtACSyntaxCoupling;
78205
97393
class ExtACTree;
78206
97394
class ExtACKeywords;
78207
 
class WinAsm;
78208
 
class WinDeclSpecs;
78209
 
class WinMemberExplSpec;
78210
 
class WinTypeKeywords;
 
97395
class ExtGnu;
78211
97396
class PragmaOnceUnitState;
78212
97397
class PragmaOnce;
78213
 
class CCExprResolve;
78214
 
class CExprResolve;
 
97398
class CMatchSyntax;
78215
97399
namespace Puma {
78216
97400
 
78217
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97401
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78218
97402
class CT_UnionSpec : public CT_ClassSpec {
78219
 
#line 78220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97403
#line 97404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97404
  friend class ::CCExprResolve;
 
97405
  friend class ::CExprResolve;
78220
97406
  friend class ::WinIfExists;
78221
97407
  friend class ::WinImportHandler;
78222
97408
  friend class ::WinMacros;
78223
 
  friend class ::CMatchSyntax;
78224
 
  friend class ::ExtGnu;
 
97409
  friend class ::WinAsm;
 
97410
  friend class ::WinDeclSpecs;
 
97411
  friend class ::WinMemberExplSpec;
 
97412
  friend class ::WinTypeKeywords;
 
97413
  friend class ::WinFriend;
78225
97414
  friend class ::ExtAC;
78226
97415
  friend class ::ExtACBuilderCoupling;
78227
97416
  friend class ::ExtACSyntaxCoupling;
78228
97417
  friend class ::ExtACTree;
78229
97418
  friend class ::ExtACKeywords;
78230
 
  friend class ::WinAsm;
78231
 
  friend class ::WinDeclSpecs;
78232
 
  friend class ::WinMemberExplSpec;
78233
 
  friend class ::WinTypeKeywords;
 
97419
  friend class ::ExtGnu;
78234
97420
  friend class ::PragmaOnceUnitState;
78235
97421
  friend class ::PragmaOnce;
78236
 
  friend class ::CCExprResolve;
78237
 
  friend class ::CExprResolve;
 
97422
  friend class ::CMatchSyntax;
78238
97423
 
78239
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97424
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78240
97425
 
78241
97426
public:
 
97427
  /** Constructor.
 
97428
   *  \param k The 'union' keyword.
 
97429
   *  \param n The name of the union. */
78242
97430
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
97431
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78243
97432
  static const char *NodeId ();
 
97433
  /** Get the name of the node. Can be compared with NodeId(). */
78244
97434
  const char *NodeName () const { return NodeId (); }
78245
97435
};
78246
97436
 
 
97437
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
97438
 *  Tree node representing an enumeration specifier, e.g. enum X. */
78247
97439
 
78248
 
#line 78249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97440
#line 97441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78249
97441
} // closed Puma
 
97442
class CCExprResolve;
 
97443
class CExprResolve;
78250
97444
class WinIfExists;
78251
97445
class WinImportHandler;
78252
97446
class WinMacros;
78253
 
class CMatchSyntax;
78254
 
class ExtGnu;
 
97447
class WinAsm;
 
97448
class WinDeclSpecs;
 
97449
class WinMemberExplSpec;
 
97450
class WinTypeKeywords;
 
97451
class WinFriend;
78255
97452
class ExtAC;
78256
97453
class ExtACBuilderCoupling;
78257
97454
class ExtACSyntaxCoupling;
78258
97455
class ExtACTree;
78259
97456
class ExtACKeywords;
78260
 
class WinAsm;
78261
 
class WinDeclSpecs;
78262
 
class WinMemberExplSpec;
78263
 
class WinTypeKeywords;
 
97457
class ExtGnu;
78264
97458
class PragmaOnceUnitState;
78265
97459
class PragmaOnce;
78266
 
class CCExprResolve;
78267
 
class CExprResolve;
 
97460
class CMatchSyntax;
78268
97461
namespace Puma {
78269
97462
 
78270
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97463
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78271
97464
class CT_EnumSpec : public CT_ClassSpec {
78272
 
#line 78273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97465
#line 97466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97466
  friend class ::CCExprResolve;
 
97467
  friend class ::CExprResolve;
78273
97468
  friend class ::WinIfExists;
78274
97469
  friend class ::WinImportHandler;
78275
97470
  friend class ::WinMacros;
78276
 
  friend class ::CMatchSyntax;
78277
 
  friend class ::ExtGnu;
 
97471
  friend class ::WinAsm;
 
97472
  friend class ::WinDeclSpecs;
 
97473
  friend class ::WinMemberExplSpec;
 
97474
  friend class ::WinTypeKeywords;
 
97475
  friend class ::WinFriend;
78278
97476
  friend class ::ExtAC;
78279
97477
  friend class ::ExtACBuilderCoupling;
78280
97478
  friend class ::ExtACSyntaxCoupling;
78281
97479
  friend class ::ExtACTree;
78282
97480
  friend class ::ExtACKeywords;
78283
 
  friend class ::WinAsm;
78284
 
  friend class ::WinDeclSpecs;
78285
 
  friend class ::WinMemberExplSpec;
78286
 
  friend class ::WinTypeKeywords;
 
97481
  friend class ::ExtGnu;
78287
97482
  friend class ::PragmaOnceUnitState;
78288
97483
  friend class ::PragmaOnce;
78289
 
  friend class ::CCExprResolve;
78290
 
  friend class ::CExprResolve;
 
97484
  friend class ::CMatchSyntax;
78291
97485
 
78292
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97486
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78293
97487
 
78294
97488
public:
 
97489
  /** Constructor.
 
97490
   *  \param k The 'enum' keyword. 
 
97491
   *  \param n The name of the enumeration. */
78295
97492
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
97493
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78296
97494
  static const char *NodeId ();
 
97495
  /** Get the name of the node. Can be compared with NodeId(). */
78297
97496
  const char *NodeName () const { return NodeId (); }
78298
97497
};
78299
97498
 
 
97499
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
97500
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
78300
97501
 
78301
 
#line 78302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97502
#line 97503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78302
97503
} // closed Puma
 
97504
class CCExprResolve;
 
97505
class CExprResolve;
78303
97506
class WinIfExists;
78304
97507
class WinImportHandler;
78305
97508
class WinMacros;
78306
 
class CMatchSyntax;
78307
 
class ExtGnu;
 
97509
class WinAsm;
 
97510
class WinDeclSpecs;
 
97511
class WinMemberExplSpec;
 
97512
class WinTypeKeywords;
 
97513
class WinFriend;
78308
97514
class ExtAC;
78309
97515
class ExtACBuilderCoupling;
78310
97516
class ExtACSyntaxCoupling;
78311
97517
class ExtACTree;
78312
97518
class ExtACKeywords;
78313
 
class WinAsm;
78314
 
class WinDeclSpecs;
78315
 
class WinMemberExplSpec;
78316
 
class WinTypeKeywords;
 
97519
class ExtGnu;
78317
97520
class PragmaOnceUnitState;
78318
97521
class PragmaOnce;
78319
 
class CCExprResolve;
78320
 
class CExprResolve;
 
97522
class CMatchSyntax;
78321
97523
namespace Puma {
78322
97524
 
78323
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97525
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78324
97526
class CT_ExceptionSpec : public CT_DeclSpec {
78325
 
#line 78326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97527
#line 97528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97528
  friend class ::CCExprResolve;
 
97529
  friend class ::CExprResolve;
78326
97530
  friend class ::WinIfExists;
78327
97531
  friend class ::WinImportHandler;
78328
97532
  friend class ::WinMacros;
78329
 
  friend class ::CMatchSyntax;
78330
 
  friend class ::ExtGnu;
 
97533
  friend class ::WinAsm;
 
97534
  friend class ::WinDeclSpecs;
 
97535
  friend class ::WinMemberExplSpec;
 
97536
  friend class ::WinTypeKeywords;
 
97537
  friend class ::WinFriend;
78331
97538
  friend class ::ExtAC;
78332
97539
  friend class ::ExtACBuilderCoupling;
78333
97540
  friend class ::ExtACSyntaxCoupling;
78334
97541
  friend class ::ExtACTree;
78335
97542
  friend class ::ExtACKeywords;
78336
 
  friend class ::WinAsm;
78337
 
  friend class ::WinDeclSpecs;
78338
 
  friend class ::WinMemberExplSpec;
78339
 
  friend class ::WinTypeKeywords;
 
97543
  friend class ::ExtGnu;
78340
97544
  friend class ::PragmaOnceUnitState;
78341
97545
  friend class ::PragmaOnce;
78342
 
  friend class ::CCExprResolve;
78343
 
  friend class ::CExprResolve;
 
97546
  friend class ::CMatchSyntax;
78344
97547
 
78345
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97548
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78346
97549
 
78347
97550
  CTree *sons[2]; // throw, type_id_list
78348
97551
  
78349
97552
public:
78350
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
97553
  /** Constructor.
 
97554
   *  \param k The 'throw' keyword.
 
97555
   *  \param l The type list for the exception type to throw. */
 
97556
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
97557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78351
97558
  static const char *NodeId ();
 
97559
  /** Get the name of the node. Can be compared with NodeId(). */
78352
97560
  const char *NodeName () const { return NodeId (); }
 
97561
  /** Get the number of sons. */
78353
97562
  int Sons () const { return 2; }
 
97563
  /** Get the n-th son.
 
97564
   *  \param n The index of the son.
 
97565
   *  \return The n-th son or NULL. */
78354
97566
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
97567
  /** Get the exception type list. */
78355
97568
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
97569
  /** Replace a son.
 
97570
   *  \param old_son The son to replace.
 
97571
   *  \param new_son The new son. */
78356
97572
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78357
97573
    CTree::ReplaceSon (sons, 2, old_son, new_son);
78358
97574
  }
78364
97580
/*                                                                           */
78365
97581
/*****************************************************************************/
78366
97582
 
 
97583
/** \class CT_Decl CTree.h Puma/CTree.h
 
97584
 *  Base class for all tree nodes representing declarations. */
78367
97585
 
78368
 
#line 78369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97586
#line 97587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78369
97587
} // closed Puma
 
97588
class CCExprResolve;
 
97589
class CExprResolve;
78370
97590
class WinIfExists;
78371
97591
class WinImportHandler;
78372
97592
class WinMacros;
78373
 
class CMatchSyntax;
78374
 
class ExtGnu;
 
97593
class WinAsm;
 
97594
class WinDeclSpecs;
 
97595
class WinMemberExplSpec;
 
97596
class WinTypeKeywords;
 
97597
class WinFriend;
78375
97598
class ExtAC;
78376
97599
class ExtACBuilderCoupling;
78377
97600
class ExtACSyntaxCoupling;
78378
97601
class ExtACTree;
78379
97602
class ExtACKeywords;
78380
 
class WinAsm;
78381
 
class WinDeclSpecs;
78382
 
class WinMemberExplSpec;
78383
 
class WinTypeKeywords;
 
97603
class ExtGnu;
78384
97604
class PragmaOnceUnitState;
78385
97605
class PragmaOnce;
78386
 
class CCExprResolve;
78387
 
class CExprResolve;
 
97606
class CMatchSyntax;
78388
97607
namespace Puma {
78389
97608
 
78390
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97609
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78391
97610
class CT_Decl : public CTree {
78392
 
#line 78393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97611
#line 97612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97612
  friend class ::CCExprResolve;
 
97613
  friend class ::CExprResolve;
78393
97614
  friend class ::WinIfExists;
78394
97615
  friend class ::WinImportHandler;
78395
97616
  friend class ::WinMacros;
78396
 
  friend class ::CMatchSyntax;
78397
 
  friend class ::ExtGnu;
 
97617
  friend class ::WinAsm;
 
97618
  friend class ::WinDeclSpecs;
 
97619
  friend class ::WinMemberExplSpec;
 
97620
  friend class ::WinTypeKeywords;
 
97621
  friend class ::WinFriend;
78398
97622
  friend class ::ExtAC;
78399
97623
  friend class ::ExtACBuilderCoupling;
78400
97624
  friend class ::ExtACSyntaxCoupling;
78401
97625
  friend class ::ExtACTree;
78402
97626
  friend class ::ExtACKeywords;
78403
 
  friend class ::WinAsm;
78404
 
  friend class ::WinDeclSpecs;
78405
 
  friend class ::WinMemberExplSpec;
78406
 
  friend class ::WinTypeKeywords;
 
97627
  friend class ::ExtGnu;
78407
97628
  friend class ::PragmaOnceUnitState;
78408
97629
  friend class ::PragmaOnce;
78409
 
  friend class ::CCExprResolve;
78410
 
  friend class ::CExprResolve;
 
97630
  friend class ::CMatchSyntax;
78411
97631
 
78412
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97632
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78413
97633
 
78414
97634
  CT_LinkageSpec *_linkage;
 
97635
  
78415
97636
protected:
 
97637
  /** Constructor. */
78416
97638
  CT_Decl () : _linkage (0) {}
 
97639
  
78417
97640
public:
 
97641
  /** Set the linkage of the declared entity.
 
97642
   *  \param l The linkage specifiers. */
78418
97643
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
97644
  /** Get the linkage specifiers. */
78419
97645
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
97646
  /** Get this. */
 
97647
  virtual CT_Decl *IsDeclaration () { return this; }
78420
97648
};
78421
97649
 
 
97650
/** \class CT_Program CTree.h Puma/CTree.h
 
97651
 *  Root node of C/C++ syntax tree. */
78422
97652
 
78423
 
#line 78424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97653
#line 97654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78424
97654
} // closed Puma
 
97655
class CCExprResolve;
 
97656
class CExprResolve;
78425
97657
class WinIfExists;
78426
97658
class WinImportHandler;
78427
97659
class WinMacros;
78428
 
class CMatchSyntax;
78429
 
class ExtGnu;
 
97660
class WinAsm;
 
97661
class WinDeclSpecs;
 
97662
class WinMemberExplSpec;
 
97663
class WinTypeKeywords;
 
97664
class WinFriend;
78430
97665
class ExtAC;
78431
97666
class ExtACBuilderCoupling;
78432
97667
class ExtACSyntaxCoupling;
78433
97668
class ExtACTree;
78434
97669
class ExtACKeywords;
78435
 
class WinAsm;
78436
 
class WinDeclSpecs;
78437
 
class WinMemberExplSpec;
78438
 
class WinTypeKeywords;
 
97670
class ExtGnu;
78439
97671
class PragmaOnceUnitState;
78440
97672
class PragmaOnce;
78441
 
class CCExprResolve;
78442
 
class CExprResolve;
 
97673
class CMatchSyntax;
78443
97674
namespace Puma {
78444
97675
 
78445
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97676
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78446
97677
class CT_Program : public CT_DeclList, public CSemScope {
78447
 
#line 78448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97678
#line 97679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97679
  friend class ::CCExprResolve;
 
97680
  friend class ::CExprResolve;
78448
97681
  friend class ::WinIfExists;
78449
97682
  friend class ::WinImportHandler;
78450
97683
  friend class ::WinMacros;
78451
 
  friend class ::CMatchSyntax;
78452
 
  friend class ::ExtGnu;
 
97684
  friend class ::WinAsm;
 
97685
  friend class ::WinDeclSpecs;
 
97686
  friend class ::WinMemberExplSpec;
 
97687
  friend class ::WinTypeKeywords;
 
97688
  friend class ::WinFriend;
78453
97689
  friend class ::ExtAC;
78454
97690
  friend class ::ExtACBuilderCoupling;
78455
97691
  friend class ::ExtACSyntaxCoupling;
78456
97692
  friend class ::ExtACTree;
78457
97693
  friend class ::ExtACKeywords;
78458
 
  friend class ::WinAsm;
78459
 
  friend class ::WinDeclSpecs;
78460
 
  friend class ::WinMemberExplSpec;
78461
 
  friend class ::WinTypeKeywords;
 
97694
  friend class ::ExtGnu;
78462
97695
  friend class ::PragmaOnceUnitState;
78463
97696
  friend class ::PragmaOnce;
78464
 
  friend class ::CCExprResolve;
78465
 
  friend class ::CExprResolve;
 
97697
  friend class ::CMatchSyntax;
78466
97698
 
78467
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97699
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78468
97700
 
78469
97701
public:
 
97702
  /** Constructor.
 
97703
   *  \param size The initial number of declarations in the program.
 
97704
   *  \param incr The initial increment count. */
78470
97705
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
97706
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78471
97707
  static const char *NodeId ();
 
97708
  /** Get the name of the node. Can be compared with NodeId(). */
78472
97709
  const char *NodeName () const { return NodeId (); }
 
97710
  /** Get the semantic scope object. */
 
97711
  CSemScope *SemScope () const { return (CSemScope*)this; }
78473
97712
};
78474
97713
   
 
97714
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
97715
 *  Tree node representing an object declaration, e.g. int *i. */
78475
97716
 
78476
 
#line 78477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97717
#line 97718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78477
97718
} // closed Puma
 
97719
class CCExprResolve;
 
97720
class CExprResolve;
78478
97721
class WinIfExists;
78479
97722
class WinImportHandler;
78480
97723
class WinMacros;
78481
 
class CMatchSyntax;
78482
 
class ExtGnu;
 
97724
class WinAsm;
 
97725
class WinDeclSpecs;
 
97726
class WinMemberExplSpec;
 
97727
class WinTypeKeywords;
 
97728
class WinFriend;
78483
97729
class ExtAC;
78484
97730
class ExtACBuilderCoupling;
78485
97731
class ExtACSyntaxCoupling;
78486
97732
class ExtACTree;
78487
97733
class ExtACKeywords;
78488
 
class WinAsm;
78489
 
class WinDeclSpecs;
78490
 
class WinMemberExplSpec;
78491
 
class WinTypeKeywords;
 
97734
class ExtGnu;
78492
97735
class PragmaOnceUnitState;
78493
97736
class PragmaOnce;
78494
 
class CCExprResolve;
78495
 
class CExprResolve;
 
97737
class CMatchSyntax;
78496
97738
namespace Puma {
78497
97739
 
78498
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97740
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78499
97741
class CT_ObjDecl : public CT_Decl {
78500
 
#line 78501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97742
#line 97743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97743
  friend class ::CCExprResolve;
 
97744
  friend class ::CExprResolve;
78501
97745
  friend class ::WinIfExists;
78502
97746
  friend class ::WinImportHandler;
78503
97747
  friend class ::WinMacros;
78504
 
  friend class ::CMatchSyntax;
78505
 
  friend class ::ExtGnu;
 
97748
  friend class ::WinAsm;
 
97749
  friend class ::WinDeclSpecs;
 
97750
  friend class ::WinMemberExplSpec;
 
97751
  friend class ::WinTypeKeywords;
 
97752
  friend class ::WinFriend;
78506
97753
  friend class ::ExtAC;
78507
97754
  friend class ::ExtACBuilderCoupling;
78508
97755
  friend class ::ExtACSyntaxCoupling;
78509
97756
  friend class ::ExtACTree;
78510
97757
  friend class ::ExtACKeywords;
78511
 
  friend class ::WinAsm;
78512
 
  friend class ::WinDeclSpecs;
78513
 
  friend class ::WinMemberExplSpec;
78514
 
  friend class ::WinTypeKeywords;
 
97758
  friend class ::ExtGnu;
78515
97759
  friend class ::PragmaOnceUnitState;
78516
97760
  friend class ::PragmaOnce;
78517
 
  friend class ::CCExprResolve;
78518
 
  friend class ::CExprResolve;
 
97761
  friend class ::CMatchSyntax;
78519
97762
 
78520
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97763
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78521
97764
 
78522
97765
  CTree *sons[3]; // declspecs, declarators, colon
78523
97766
 
78524
97767
public:
 
97768
  /** Constructor.
 
97769
   *  \param dsl The declaration specifier sequence.
 
97770
   *  \param dl The declarator list.
 
97771
   *  \param c Optional colon. */
78525
97772
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
78526
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
97773
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
78527
97774
  }
 
97775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78528
97776
  static const char *NodeId ();
 
97777
  /** Get the name of the node. Can be compared with NodeId(). */
78529
97778
  const char *NodeName () const { return NodeId (); }
 
97779
  /** Get the number of sons. */
78530
97780
  int Sons () const { return 3; }
 
97781
  /** Get the n-th son.
 
97782
   *  \param n The index of the son.
 
97783
   *  \return The n-th son or NULL. */
78531
97784
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
97785
  /** Get the declaration specifier sequence. */
78532
97786
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
97787
  /** Get the declarator list. */
78533
97788
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
97789
  /** Replace a son.
 
97790
   *  \param old_son The son to replace.
 
97791
   *  \param new_son The new son. */
78534
97792
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78535
97793
    CTree::ReplaceSon (sons, 3, old_son, new_son);
78536
97794
  }
78537
97795
};
78538
97796
 
 
97797
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
97798
 *  Tree node representing a template declaration. */
78539
97799
 
78540
 
#line 78541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97800
#line 97801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78541
97801
} // closed Puma
 
97802
class CCExprResolve;
 
97803
class CExprResolve;
78542
97804
class WinIfExists;
78543
97805
class WinImportHandler;
78544
97806
class WinMacros;
78545
 
class CMatchSyntax;
78546
 
class ExtGnu;
 
97807
class WinAsm;
 
97808
class WinDeclSpecs;
 
97809
class WinMemberExplSpec;
 
97810
class WinTypeKeywords;
 
97811
class WinFriend;
78547
97812
class ExtAC;
78548
97813
class ExtACBuilderCoupling;
78549
97814
class ExtACSyntaxCoupling;
78550
97815
class ExtACTree;
78551
97816
class ExtACKeywords;
78552
 
class WinAsm;
78553
 
class WinDeclSpecs;
78554
 
class WinMemberExplSpec;
78555
 
class WinTypeKeywords;
 
97817
class ExtGnu;
78556
97818
class PragmaOnceUnitState;
78557
97819
class PragmaOnce;
78558
 
class CCExprResolve;
78559
 
class CExprResolve;
 
97820
class CMatchSyntax;
78560
97821
namespace Puma {
78561
97822
 
78562
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97823
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78563
97824
class CT_TemplateDecl : public CT_Decl, public CSemScope {
78564
 
#line 78565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97825
#line 97826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97826
  friend class ::CCExprResolve;
 
97827
  friend class ::CExprResolve;
78565
97828
  friend class ::WinIfExists;
78566
97829
  friend class ::WinImportHandler;
78567
97830
  friend class ::WinMacros;
78568
 
  friend class ::CMatchSyntax;
78569
 
  friend class ::ExtGnu;
 
97831
  friend class ::WinAsm;
 
97832
  friend class ::WinDeclSpecs;
 
97833
  friend class ::WinMemberExplSpec;
 
97834
  friend class ::WinTypeKeywords;
 
97835
  friend class ::WinFriend;
78570
97836
  friend class ::ExtAC;
78571
97837
  friend class ::ExtACBuilderCoupling;
78572
97838
  friend class ::ExtACSyntaxCoupling;
78573
97839
  friend class ::ExtACTree;
78574
97840
  friend class ::ExtACKeywords;
78575
 
  friend class ::WinAsm;
78576
 
  friend class ::WinDeclSpecs;
78577
 
  friend class ::WinMemberExplSpec;
78578
 
  friend class ::WinTypeKeywords;
 
97841
  friend class ::ExtGnu;
78579
97842
  friend class ::PragmaOnceUnitState;
78580
97843
  friend class ::PragmaOnce;
78581
 
  friend class ::CCExprResolve;
78582
 
  friend class ::CExprResolve;
 
97844
  friend class ::CMatchSyntax;
78583
97845
 
78584
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97846
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78585
97847
 
78586
97848
  CTree *sons[3]; // export, param_list, decl
78587
97849
 
78588
97850
public:
 
97851
  /** Constructor.
 
97852
   *  \param e Optional 'export' keyword. 
 
97853
   *  \param p The template parameter list.
 
97854
   *  \param d The class or function declaration. */
78589
97855
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
78590
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
97856
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
78591
97857
  }
 
97858
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78592
97859
  static const char *NodeId ();
 
97860
  /** Get the name of the node. Can be compared with NodeId(). */
78593
97861
  const char *NodeName () const { return NodeId (); }
 
97862
  /** Get the number of sons. */
78594
97863
  int Sons () const { return CTree::Sons (sons, 3); }
 
97864
  /** Get the n-th son.
 
97865
   *  \param n The index of the son.
 
97866
   *  \return The n-th son or NULL. */
78595
97867
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
97868
  /** Replace a son.
 
97869
   *  \param old_son The son to replace.
 
97870
   *  \param new_son The new son. */
78596
97871
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78597
97872
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
78598
97873
  }
 
97874
  /** Get the 'export' keyword. */
78599
97875
  CTree *Export () const { return sons[0]; }
 
97876
  /** Get the template parameter list. */
78600
97877
  CT_TemplateParamList *Parameters () const { 
78601
97878
    return (CT_TemplateParamList*)sons[1]; 
78602
97879
  }
 
97880
  /** Get the class or function declaration. */
78603
97881
  CTree *Declaration () const { return sons[2]; }
 
97882
  /** Get the semantic scope object. */
 
97883
  CSemScope *SemScope () const { return (CSemScope*)this; }
78604
97884
};
78605
97885
 
 
97886
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
97887
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
78606
97888
 
78607
 
#line 78608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97889
#line 97890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78608
97890
} // closed Puma
 
97891
class CCExprResolve;
 
97892
class CExprResolve;
78609
97893
class WinIfExists;
78610
97894
class WinImportHandler;
78611
97895
class WinMacros;
78612
 
class CMatchSyntax;
78613
 
class ExtGnu;
 
97896
class WinAsm;
 
97897
class WinDeclSpecs;
 
97898
class WinMemberExplSpec;
 
97899
class WinTypeKeywords;
 
97900
class WinFriend;
78614
97901
class ExtAC;
78615
97902
class ExtACBuilderCoupling;
78616
97903
class ExtACSyntaxCoupling;
78617
97904
class ExtACTree;
78618
97905
class ExtACKeywords;
78619
 
class WinAsm;
78620
 
class WinDeclSpecs;
78621
 
class WinMemberExplSpec;
78622
 
class WinTypeKeywords;
 
97906
class ExtGnu;
78623
97907
class PragmaOnceUnitState;
78624
97908
class PragmaOnce;
78625
 
class CCExprResolve;
78626
 
class CExprResolve;
 
97909
class CMatchSyntax;
78627
97910
namespace Puma {
78628
97911
 
78629
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97912
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78630
97913
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
78631
 
#line 78632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97914
#line 97915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97915
  friend class ::CCExprResolve;
 
97916
  friend class ::CExprResolve;
78632
97917
  friend class ::WinIfExists;
78633
97918
  friend class ::WinImportHandler;
78634
97919
  friend class ::WinMacros;
78635
 
  friend class ::CMatchSyntax;
78636
 
  friend class ::ExtGnu;
 
97920
  friend class ::WinAsm;
 
97921
  friend class ::WinDeclSpecs;
 
97922
  friend class ::WinMemberExplSpec;
 
97923
  friend class ::WinTypeKeywords;
 
97924
  friend class ::WinFriend;
78637
97925
  friend class ::ExtAC;
78638
97926
  friend class ::ExtACBuilderCoupling;
78639
97927
  friend class ::ExtACSyntaxCoupling;
78640
97928
  friend class ::ExtACTree;
78641
97929
  friend class ::ExtACKeywords;
78642
 
  friend class ::WinAsm;
78643
 
  friend class ::WinDeclSpecs;
78644
 
  friend class ::WinMemberExplSpec;
78645
 
  friend class ::WinTypeKeywords;
 
97930
  friend class ::ExtGnu;
78646
97931
  friend class ::PragmaOnceUnitState;
78647
97932
  friend class ::PragmaOnce;
78648
 
  friend class ::CCExprResolve;
78649
 
  friend class ::CExprResolve;
 
97933
  friend class ::CMatchSyntax;
78650
97934
 
78651
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97935
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78652
97936
 
78653
97937
protected:
 
97938
  /** Constructor. */
78654
97939
  CT_TemplateParamDecl () {}
78655
97940
  
78656
97941
public:
 
97942
  /** Get the template default argument. */
78657
97943
  virtual CT_ExprList *DefaultArgument () const = 0;
 
97944
  /** Get the semantic information object. */
78658
97945
  CSemObject *SemObject () const { return (CSemObject*)this; }
78659
97946
};
78660
97947
 
78661
97948
 
78662
 
#line 78663 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97949
#line 97950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78663
97950
} // closed Puma
 
97951
class CCExprResolve;
 
97952
class CExprResolve;
78664
97953
class WinIfExists;
78665
97954
class WinImportHandler;
78666
97955
class WinMacros;
78667
 
class CMatchSyntax;
78668
 
class ExtGnu;
 
97956
class WinAsm;
 
97957
class WinDeclSpecs;
 
97958
class WinMemberExplSpec;
 
97959
class WinTypeKeywords;
 
97960
class WinFriend;
78669
97961
class ExtAC;
78670
97962
class ExtACBuilderCoupling;
78671
97963
class ExtACSyntaxCoupling;
78672
97964
class ExtACTree;
78673
97965
class ExtACKeywords;
78674
 
class WinAsm;
78675
 
class WinDeclSpecs;
78676
 
class WinMemberExplSpec;
78677
 
class WinTypeKeywords;
 
97966
class ExtGnu;
78678
97967
class PragmaOnceUnitState;
78679
97968
class PragmaOnce;
78680
 
class CCExprResolve;
78681
 
class CExprResolve;
 
97969
class CMatchSyntax;
78682
97970
namespace Puma {
78683
97971
 
78684
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97972
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78685
97973
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
78686
 
#line 78687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
97974
#line 97975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
97975
  friend class ::CCExprResolve;
 
97976
  friend class ::CExprResolve;
78687
97977
  friend class ::WinIfExists;
78688
97978
  friend class ::WinImportHandler;
78689
97979
  friend class ::WinMacros;
78690
 
  friend class ::CMatchSyntax;
78691
 
  friend class ::ExtGnu;
 
97980
  friend class ::WinAsm;
 
97981
  friend class ::WinDeclSpecs;
 
97982
  friend class ::WinMemberExplSpec;
 
97983
  friend class ::WinTypeKeywords;
 
97984
  friend class ::WinFriend;
78692
97985
  friend class ::ExtAC;
78693
97986
  friend class ::ExtACBuilderCoupling;
78694
97987
  friend class ::ExtACSyntaxCoupling;
78695
97988
  friend class ::ExtACTree;
78696
97989
  friend class ::ExtACKeywords;
78697
 
  friend class ::WinAsm;
78698
 
  friend class ::WinDeclSpecs;
78699
 
  friend class ::WinMemberExplSpec;
78700
 
  friend class ::WinTypeKeywords;
 
97990
  friend class ::ExtGnu;
78701
97991
  friend class ::PragmaOnceUnitState;
78702
97992
  friend class ::PragmaOnce;
78703
 
  friend class ::CCExprResolve;
78704
 
  friend class ::CExprResolve;
 
97993
  friend class ::CMatchSyntax;
78705
97994
 
78706
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
97995
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78707
97996
 
78708
97997
  CTree *sons[3]; // declspecs, declarator, init
78709
97998
 
78710
97999
public:
78711
98000
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
78712
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
98001
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
78713
98002
  }
 
98003
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78714
98004
  static const char *NodeId ();
 
98005
  /** Get the name of the node. Can be compared with NodeId(). */
78715
98006
  const char *NodeName () const { return NodeId (); }
 
98007
  /** Get the number of sons. */
78716
98008
  int Sons () const { return CTree::Sons (sons, 3); }
 
98009
  /** Get the n-th son.
 
98010
   *  \param n The index of the son.
 
98011
   *  \return The n-th son or NULL. */
78717
98012
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
78718
98013
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
78719
98014
  CTree *Declarator () const { return sons[1]; }
78720
98015
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
78721
98016
  CSemObject *SemObject () const { return (CSemObject*)this; }
78722
 
  void Initializer (CTree *i) { sons[2] = i; }
 
98017
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
98018
  /** Replace a son.
 
98019
   *  \param old_son The son to replace.
 
98020
   *  \param new_son The new son. */
78723
98021
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78724
98022
    CTree::ReplaceSon (sons, 3, old_son, new_son);
78725
98023
  }
78726
98024
};
78727
98025
 
78728
98026
 
78729
 
#line 78730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98027
#line 98028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78730
98028
} // closed Puma
 
98029
class CCExprResolve;
 
98030
class CExprResolve;
78731
98031
class WinIfExists;
78732
98032
class WinImportHandler;
78733
98033
class WinMacros;
78734
 
class CMatchSyntax;
78735
 
class ExtGnu;
 
98034
class WinAsm;
 
98035
class WinDeclSpecs;
 
98036
class WinMemberExplSpec;
 
98037
class WinTypeKeywords;
 
98038
class WinFriend;
78736
98039
class ExtAC;
78737
98040
class ExtACBuilderCoupling;
78738
98041
class ExtACSyntaxCoupling;
78739
98042
class ExtACTree;
78740
98043
class ExtACKeywords;
78741
 
class WinAsm;
78742
 
class WinDeclSpecs;
78743
 
class WinMemberExplSpec;
78744
 
class WinTypeKeywords;
 
98044
class ExtGnu;
78745
98045
class PragmaOnceUnitState;
78746
98046
class PragmaOnce;
78747
 
class CCExprResolve;
78748
 
class CExprResolve;
 
98047
class CMatchSyntax;
78749
98048
namespace Puma {
78750
98049
 
78751
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98050
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78752
98051
class CT_TypeParamDecl : public CT_TemplateParamDecl {
78753
 
#line 78754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98052
#line 98053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98053
  friend class ::CCExprResolve;
 
98054
  friend class ::CExprResolve;
78754
98055
  friend class ::WinIfExists;
78755
98056
  friend class ::WinImportHandler;
78756
98057
  friend class ::WinMacros;
78757
 
  friend class ::CMatchSyntax;
78758
 
  friend class ::ExtGnu;
 
98058
  friend class ::WinAsm;
 
98059
  friend class ::WinDeclSpecs;
 
98060
  friend class ::WinMemberExplSpec;
 
98061
  friend class ::WinTypeKeywords;
 
98062
  friend class ::WinFriend;
78759
98063
  friend class ::ExtAC;
78760
98064
  friend class ::ExtACBuilderCoupling;
78761
98065
  friend class ::ExtACSyntaxCoupling;
78762
98066
  friend class ::ExtACTree;
78763
98067
  friend class ::ExtACKeywords;
78764
 
  friend class ::WinAsm;
78765
 
  friend class ::WinDeclSpecs;
78766
 
  friend class ::WinMemberExplSpec;
78767
 
  friend class ::WinTypeKeywords;
 
98068
  friend class ::ExtGnu;
78768
98069
  friend class ::PragmaOnceUnitState;
78769
98070
  friend class ::PragmaOnce;
78770
 
  friend class ::CCExprResolve;
78771
 
  friend class ::CExprResolve;
 
98071
  friend class ::CMatchSyntax;
78772
98072
 
78773
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98073
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78774
98074
 
78775
98075
  CTree *sons[4]; // params, key, id, init
78776
98076
 
78777
98077
public:
78778
98078
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
78779
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
98079
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
98080
    AddSon (sons[2], id); AddSon (sons[3], i);
78780
98081
  }
 
98082
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78781
98083
  static const char *NodeId ();
 
98084
  /** Get the name of the node. Can be compared with NodeId(). */
78782
98085
  const char *NodeName () const { return NodeId (); }
 
98086
  /** Get the number of sons. */
78783
98087
  int Sons () const { return CTree::Sons (sons, 4); }
 
98088
  /** Get the n-th son.
 
98089
   *  \param n The index of the son.
 
98090
   *  \return The n-th son or NULL. */
78784
98091
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
78785
98092
  CT_TemplateParamList *Parameters () const { 
78786
98093
    return (CT_TemplateParamList*)sons[0]; 
78787
98094
  }
78788
98095
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
78789
98096
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
78790
 
  void Initializer (CTree *i) { sons[3] = i; }
 
98097
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
98098
  /** Replace a son.
 
98099
   *  \param old_son The son to replace.
 
98100
   *  \param new_son The new son. */
78791
98101
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78792
98102
    CTree::ReplaceSon (sons, 4, old_son, new_son);
78793
98103
  }
78794
98104
};
78795
98105
 
78796
98106
 
78797
 
#line 78798 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98107
#line 98108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78798
98108
} // closed Puma
 
98109
class CCExprResolve;
 
98110
class CExprResolve;
78799
98111
class WinIfExists;
78800
98112
class WinImportHandler;
78801
98113
class WinMacros;
78802
 
class CMatchSyntax;
78803
 
class ExtGnu;
 
98114
class WinAsm;
 
98115
class WinDeclSpecs;
 
98116
class WinMemberExplSpec;
 
98117
class WinTypeKeywords;
 
98118
class WinFriend;
78804
98119
class ExtAC;
78805
98120
class ExtACBuilderCoupling;
78806
98121
class ExtACSyntaxCoupling;
78807
98122
class ExtACTree;
78808
98123
class ExtACKeywords;
78809
 
class WinAsm;
78810
 
class WinDeclSpecs;
78811
 
class WinMemberExplSpec;
78812
 
class WinTypeKeywords;
 
98124
class ExtGnu;
78813
98125
class PragmaOnceUnitState;
78814
98126
class PragmaOnce;
78815
 
class CCExprResolve;
78816
 
class CExprResolve;
 
98127
class CMatchSyntax;
78817
98128
namespace Puma {
78818
98129
 
78819
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98130
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78820
98131
class CT_EnumDef : public CT_Decl, public CSemObject {
78821
 
#line 78822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98132
#line 98133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98133
  friend class ::CCExprResolve;
 
98134
  friend class ::CExprResolve;
78822
98135
  friend class ::WinIfExists;
78823
98136
  friend class ::WinImportHandler;
78824
98137
  friend class ::WinMacros;
78825
 
  friend class ::CMatchSyntax;
78826
 
  friend class ::ExtGnu;
 
98138
  friend class ::WinAsm;
 
98139
  friend class ::WinDeclSpecs;
 
98140
  friend class ::WinMemberExplSpec;
 
98141
  friend class ::WinTypeKeywords;
 
98142
  friend class ::WinFriend;
78827
98143
  friend class ::ExtAC;
78828
98144
  friend class ::ExtACBuilderCoupling;
78829
98145
  friend class ::ExtACSyntaxCoupling;
78830
98146
  friend class ::ExtACTree;
78831
98147
  friend class ::ExtACKeywords;
78832
 
  friend class ::WinAsm;
78833
 
  friend class ::WinDeclSpecs;
78834
 
  friend class ::WinMemberExplSpec;
78835
 
  friend class ::WinTypeKeywords;
 
98148
  friend class ::ExtGnu;
78836
98149
  friend class ::PragmaOnceUnitState;
78837
98150
  friend class ::PragmaOnce;
78838
 
  friend class ::CCExprResolve;
78839
 
  friend class ::CExprResolve;
 
98151
  friend class ::CMatchSyntax;
78840
98152
 
78841
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98153
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78842
98154
 
78843
98155
  CTree *sons[3]; // key, name, enumerators
78844
98156
 
78845
98157
public:
78846
98158
  CT_EnumDef (CTree *k, CTree *n) {
78847
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
98159
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
78848
98160
  }
 
98161
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78849
98162
  static const char *NodeId ();
 
98163
  /** Get the name of the node. Can be compared with NodeId(). */
78850
98164
  const char *NodeName () const { return NodeId (); }
 
98165
  /** Get the number of sons. */
78851
98166
  int Sons () const { return CTree::Sons (sons, 3); }
 
98167
  /** Get the n-th son.
 
98168
   *  \param n The index of the son.
 
98169
   *  \return The n-th son or NULL. */
78852
98170
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
78853
98171
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
78854
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
98172
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
78855
98173
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
98174
  /** Replace a son.
 
98175
   *  \param old_son The son to replace.
 
98176
   *  \param new_son The new son. */
78856
98177
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78857
98178
    CTree::ReplaceSon (sons, 3, old_son, new_son);
78858
98179
  }
78860
98181
};
78861
98182
 
78862
98183
 
78863
 
#line 78864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98184
#line 98185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78864
98185
} // closed Puma
 
98186
class CCExprResolve;
 
98187
class CExprResolve;
78865
98188
class WinIfExists;
78866
98189
class WinImportHandler;
78867
98190
class WinMacros;
78868
 
class CMatchSyntax;
78869
 
class ExtGnu;
 
98191
class WinAsm;
 
98192
class WinDeclSpecs;
 
98193
class WinMemberExplSpec;
 
98194
class WinTypeKeywords;
 
98195
class WinFriend;
78870
98196
class ExtAC;
78871
98197
class ExtACBuilderCoupling;
78872
98198
class ExtACSyntaxCoupling;
78873
98199
class ExtACTree;
78874
98200
class ExtACKeywords;
78875
 
class WinAsm;
78876
 
class WinDeclSpecs;
78877
 
class WinMemberExplSpec;
78878
 
class WinTypeKeywords;
 
98201
class ExtGnu;
78879
98202
class PragmaOnceUnitState;
78880
98203
class PragmaOnce;
78881
 
class CCExprResolve;
78882
 
class CExprResolve;
 
98204
class CMatchSyntax;
78883
98205
namespace Puma {
78884
98206
 
78885
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98207
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78886
98208
class CT_Enumerator : public CT_Decl, public CSemObject {
78887
 
#line 78888 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98209
#line 98210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98210
  friend class ::CCExprResolve;
 
98211
  friend class ::CExprResolve;
78888
98212
  friend class ::WinIfExists;
78889
98213
  friend class ::WinImportHandler;
78890
98214
  friend class ::WinMacros;
78891
 
  friend class ::CMatchSyntax;
78892
 
  friend class ::ExtGnu;
 
98215
  friend class ::WinAsm;
 
98216
  friend class ::WinDeclSpecs;
 
98217
  friend class ::WinMemberExplSpec;
 
98218
  friend class ::WinTypeKeywords;
 
98219
  friend class ::WinFriend;
78893
98220
  friend class ::ExtAC;
78894
98221
  friend class ::ExtACBuilderCoupling;
78895
98222
  friend class ::ExtACSyntaxCoupling;
78896
98223
  friend class ::ExtACTree;
78897
98224
  friend class ::ExtACKeywords;
78898
 
  friend class ::WinAsm;
78899
 
  friend class ::WinDeclSpecs;
78900
 
  friend class ::WinMemberExplSpec;
78901
 
  friend class ::WinTypeKeywords;
 
98225
  friend class ::ExtGnu;
78902
98226
  friend class ::PragmaOnceUnitState;
78903
98227
  friend class ::PragmaOnce;
78904
 
  friend class ::CCExprResolve;
78905
 
  friend class ::CExprResolve;
 
98228
  friend class ::CMatchSyntax;
78906
98229
 
78907
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98230
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78908
98231
 
78909
98232
  CTree *sons[2]; // name, init
78910
98233
 
78911
98234
public:
78912
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
98235
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
98236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78913
98237
  static const char *NodeId ();
 
98238
  /** Get the name of the node. Can be compared with NodeId(). */
78914
98239
  const char *NodeName () const { return NodeId (); }
 
98240
  /** Get the number of sons. */
78915
98241
  int Sons () const { return CTree::Sons (sons, 2); }
 
98242
  /** Get the n-th son.
 
98243
   *  \param n The index of the son.
 
98244
   *  \return The n-th son or NULL. */
78916
98245
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
78917
98246
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
78918
 
  void Initializer (CTree *i) { sons[1] = i; }
 
98247
  void Initializer (CTree *i) { AddSon (sons[1], i); }
78919
98248
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
98249
  /** Replace a son.
 
98250
   *  \param old_son The son to replace.
 
98251
   *  \param new_son The new son. */
78920
98252
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78921
98253
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
78922
98254
  }
78924
98256
};
78925
98257
 
78926
98258
 
78927
 
#line 78928 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98259
#line 98260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
78928
98260
} // closed Puma
 
98261
class CCExprResolve;
 
98262
class CExprResolve;
78929
98263
class WinIfExists;
78930
98264
class WinImportHandler;
78931
98265
class WinMacros;
78932
 
class CMatchSyntax;
78933
 
class ExtGnu;
 
98266
class WinAsm;
 
98267
class WinDeclSpecs;
 
98268
class WinMemberExplSpec;
 
98269
class WinTypeKeywords;
 
98270
class WinFriend;
78934
98271
class ExtAC;
78935
98272
class ExtACBuilderCoupling;
78936
98273
class ExtACSyntaxCoupling;
78937
98274
class ExtACTree;
78938
98275
class ExtACKeywords;
78939
 
class WinAsm;
78940
 
class WinDeclSpecs;
78941
 
class WinMemberExplSpec;
78942
 
class WinTypeKeywords;
 
98276
class ExtGnu;
78943
98277
class PragmaOnceUnitState;
78944
98278
class PragmaOnce;
78945
 
class CCExprResolve;
78946
 
class CExprResolve;
 
98279
class CMatchSyntax;
78947
98280
namespace Puma {
78948
98281
 
78949
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98282
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78950
98283
class CT_FctDef : public CT_Decl, public CSemObject {
78951
 
#line 78952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98284
#line 98285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98285
  friend class ::CCExprResolve;
 
98286
  friend class ::CExprResolve;
78952
98287
  friend class ::WinIfExists;
78953
98288
  friend class ::WinImportHandler;
78954
98289
  friend class ::WinMacros;
78955
 
  friend class ::CMatchSyntax;
78956
 
  friend class ::ExtGnu;
 
98290
  friend class ::WinAsm;
 
98291
  friend class ::WinDeclSpecs;
 
98292
  friend class ::WinMemberExplSpec;
 
98293
  friend class ::WinTypeKeywords;
 
98294
  friend class ::WinFriend;
78957
98295
  friend class ::ExtAC;
78958
98296
  friend class ::ExtACBuilderCoupling;
78959
98297
  friend class ::ExtACSyntaxCoupling;
78960
98298
  friend class ::ExtACTree;
78961
98299
  friend class ::ExtACKeywords;
78962
 
  friend class ::WinAsm;
78963
 
  friend class ::WinDeclSpecs;
78964
 
  friend class ::WinMemberExplSpec;
78965
 
  friend class ::WinTypeKeywords;
 
98300
  friend class ::ExtGnu;
78966
98301
  friend class ::PragmaOnceUnitState;
78967
98302
  friend class ::PragmaOnce;
78968
 
  friend class ::CCExprResolve;
78969
 
  friend class ::CExprResolve;
 
98303
  friend class ::CMatchSyntax;
78970
98304
 
78971
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98305
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
78972
98306
 
78973
98307
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
78974
98308
 
78975
98309
public:
78976
98310
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
78977
98311
             CTree *b, CTree *hs) {
78978
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
78979
 
    sons[5] = b; sons[6] = hs; 
 
98312
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
98313
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
98314
    AddSon (sons[6], hs); 
78980
98315
  }
 
98316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
78981
98317
  static const char *NodeId ();
 
98318
  /** Get the name of the node. Can be compared with NodeId(). */
78982
98319
  const char *NodeName () const { return NodeId (); }
 
98320
  /** Get the number of sons. */
78983
98321
  int Sons () const { return CTree::Sons (sons, 7); }
 
98322
  /** Get the n-th son.
 
98323
   *  \param n The index of the son.
 
98324
   *  \return The n-th son or NULL. */
78984
98325
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
78985
98326
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
78986
98327
  CTree *Declarator () const { return sons[1]; }
78990
98331
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
78991
98332
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
78992
98333
  CSemObject *SemObject () const { return (CSemObject*)this; }
78993
 
  void CtorInit (CTree *i) { sons[3] = i; }
78994
 
  void Body (CTree *b) { sons[5] = b; }
 
98334
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
98335
  void Body (CTree *b) { AddSon (sons[5], b); }
78995
98336
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
78996
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
98337
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
98338
    AddSon (sons[5], b); AddSon (sons[6], h);
78997
98339
  }
 
98340
  /** Replace a son.
 
98341
   *  \param old_son The son to replace.
 
98342
   *  \param new_son The new son. */
78998
98343
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
78999
98344
    CTree::ReplaceSon (sons, 7, old_son, new_son);
79000
98345
  }
79001
98346
};
79002
98347
 
79003
98348
 
79004
 
#line 79005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98349
#line 98350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79005
98350
} // closed Puma
 
98351
class CCExprResolve;
 
98352
class CExprResolve;
79006
98353
class WinIfExists;
79007
98354
class WinImportHandler;
79008
98355
class WinMacros;
79009
 
class CMatchSyntax;
79010
 
class ExtGnu;
 
98356
class WinAsm;
 
98357
class WinDeclSpecs;
 
98358
class WinMemberExplSpec;
 
98359
class WinTypeKeywords;
 
98360
class WinFriend;
79011
98361
class ExtAC;
79012
98362
class ExtACBuilderCoupling;
79013
98363
class ExtACSyntaxCoupling;
79014
98364
class ExtACTree;
79015
98365
class ExtACKeywords;
79016
 
class WinAsm;
79017
 
class WinDeclSpecs;
79018
 
class WinMemberExplSpec;
79019
 
class WinTypeKeywords;
 
98366
class ExtGnu;
79020
98367
class PragmaOnceUnitState;
79021
98368
class PragmaOnce;
79022
 
class CCExprResolve;
79023
 
class CExprResolve;
 
98369
class CMatchSyntax;
79024
98370
namespace Puma {
79025
98371
 
79026
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98372
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79027
98373
class CT_AsmDef : public CT_Decl {
79028
 
#line 79029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98374
#line 98375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98375
  friend class ::CCExprResolve;
 
98376
  friend class ::CExprResolve;
79029
98377
  friend class ::WinIfExists;
79030
98378
  friend class ::WinImportHandler;
79031
98379
  friend class ::WinMacros;
79032
 
  friend class ::CMatchSyntax;
79033
 
  friend class ::ExtGnu;
 
98380
  friend class ::WinAsm;
 
98381
  friend class ::WinDeclSpecs;
 
98382
  friend class ::WinMemberExplSpec;
 
98383
  friend class ::WinTypeKeywords;
 
98384
  friend class ::WinFriend;
79034
98385
  friend class ::ExtAC;
79035
98386
  friend class ::ExtACBuilderCoupling;
79036
98387
  friend class ::ExtACSyntaxCoupling;
79037
98388
  friend class ::ExtACTree;
79038
98389
  friend class ::ExtACKeywords;
79039
 
  friend class ::WinAsm;
79040
 
  friend class ::WinDeclSpecs;
79041
 
  friend class ::WinMemberExplSpec;
79042
 
  friend class ::WinTypeKeywords;
 
98390
  friend class ::ExtGnu;
79043
98391
  friend class ::PragmaOnceUnitState;
79044
98392
  friend class ::PragmaOnce;
79045
 
  friend class ::CCExprResolve;
79046
 
  friend class ::CExprResolve;
 
98393
  friend class ::CMatchSyntax;
79047
98394
 
79048
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98395
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79049
98396
 
79050
98397
  CTree *sons[5]; // asm, open, str, close, semi_colon
79051
98398
 
79052
98399
public:
79053
98400
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
79054
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
98401
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
98402
    AddSon (sons[3], c); AddSon (sons[4], sc); 
79055
98403
  }
 
98404
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79056
98405
  static const char *NodeId ();
 
98406
  /** Get the name of the node. Can be compared with NodeId(). */
79057
98407
  const char *NodeName () const { return NodeId (); }
 
98408
  /** Get the number of sons. */
79058
98409
  int Sons () const { return 5; }
 
98410
  /** Get the n-th son.
 
98411
   *  \param n The index of the son.
 
98412
   *  \return The n-th son or NULL. */
79059
98413
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
79060
98414
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
98415
  /** Replace a son.
 
98416
   *  \param old_son The son to replace.
 
98417
   *  \param new_son The new son. */
79061
98418
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79062
98419
    CTree::ReplaceSon (sons, 5, old_son, new_son);
79063
98420
  }
79064
98421
};
79065
98422
 
79066
98423
 
79067
 
#line 79068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98424
#line 98425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79068
98425
} // closed Puma
 
98426
class CCExprResolve;
 
98427
class CExprResolve;
79069
98428
class WinIfExists;
79070
98429
class WinImportHandler;
79071
98430
class WinMacros;
79072
 
class CMatchSyntax;
79073
 
class ExtGnu;
 
98431
class WinAsm;
 
98432
class WinDeclSpecs;
 
98433
class WinMemberExplSpec;
 
98434
class WinTypeKeywords;
 
98435
class WinFriend;
79074
98436
class ExtAC;
79075
98437
class ExtACBuilderCoupling;
79076
98438
class ExtACSyntaxCoupling;
79077
98439
class ExtACTree;
79078
98440
class ExtACKeywords;
79079
 
class WinAsm;
79080
 
class WinDeclSpecs;
79081
 
class WinMemberExplSpec;
79082
 
class WinTypeKeywords;
 
98441
class ExtGnu;
79083
98442
class PragmaOnceUnitState;
79084
98443
class PragmaOnce;
79085
 
class CCExprResolve;
79086
 
class CExprResolve;
 
98444
class CMatchSyntax;
79087
98445
namespace Puma {
79088
98446
 
79089
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98447
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79090
98448
class CT_Handler : public CT_Decl, public CSemScope {
79091
 
#line 79092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98449
#line 98450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98450
  friend class ::CCExprResolve;
 
98451
  friend class ::CExprResolve;
79092
98452
  friend class ::WinIfExists;
79093
98453
  friend class ::WinImportHandler;
79094
98454
  friend class ::WinMacros;
79095
 
  friend class ::CMatchSyntax;
79096
 
  friend class ::ExtGnu;
 
98455
  friend class ::WinAsm;
 
98456
  friend class ::WinDeclSpecs;
 
98457
  friend class ::WinMemberExplSpec;
 
98458
  friend class ::WinTypeKeywords;
 
98459
  friend class ::WinFriend;
79097
98460
  friend class ::ExtAC;
79098
98461
  friend class ::ExtACBuilderCoupling;
79099
98462
  friend class ::ExtACSyntaxCoupling;
79100
98463
  friend class ::ExtACTree;
79101
98464
  friend class ::ExtACKeywords;
79102
 
  friend class ::WinAsm;
79103
 
  friend class ::WinDeclSpecs;
79104
 
  friend class ::WinMemberExplSpec;
79105
 
  friend class ::WinTypeKeywords;
 
98465
  friend class ::ExtGnu;
79106
98466
  friend class ::PragmaOnceUnitState;
79107
98467
  friend class ::PragmaOnce;
79108
 
  friend class ::CCExprResolve;
79109
 
  friend class ::CExprResolve;
 
98468
  friend class ::CMatchSyntax;
79110
98469
 
79111
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98470
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79112
98471
 
79113
98472
  CTree *sons[3]; // catch, exception_decl, stmt
79114
98473
 
79115
98474
public:
79116
98475
  CT_Handler (CTree *c, CTree *e, CTree *s) {
79117
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
98476
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
79118
98477
  }
 
98478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79119
98479
  static const char *NodeId ();
 
98480
  /** Get the name of the node. Can be compared with NodeId(). */
79120
98481
  const char *NodeName () const { return NodeId (); }
 
98482
  /** Get the number of sons. */
79121
98483
  int Sons () const { return 3; }
 
98484
  /** Get the n-th son.
 
98485
   *  \param n The index of the son.
 
98486
   *  \return The n-th son or NULL. */
79122
98487
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
79123
98488
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
79124
98489
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
98490
  /** Replace a son.
 
98491
   *  \param old_son The son to replace.
 
98492
   *  \param new_son The new son. */
79125
98493
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79126
98494
    CTree::ReplaceSon (sons, 3, old_son, new_son);
79127
98495
  }
 
98496
  CSemScope *SemScope () const { return (CSemScope*)this; }
79128
98497
};
79129
98498
 
79130
98499
 
79131
 
#line 79132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98500
#line 98501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79132
98501
} // closed Puma
 
98502
class CCExprResolve;
 
98503
class CExprResolve;
79133
98504
class WinIfExists;
79134
98505
class WinImportHandler;
79135
98506
class WinMacros;
79136
 
class CMatchSyntax;
79137
 
class ExtGnu;
 
98507
class WinAsm;
 
98508
class WinDeclSpecs;
 
98509
class WinMemberExplSpec;
 
98510
class WinTypeKeywords;
 
98511
class WinFriend;
79138
98512
class ExtAC;
79139
98513
class ExtACBuilderCoupling;
79140
98514
class ExtACSyntaxCoupling;
79141
98515
class ExtACTree;
79142
98516
class ExtACKeywords;
79143
 
class WinAsm;
79144
 
class WinDeclSpecs;
79145
 
class WinMemberExplSpec;
79146
 
class WinTypeKeywords;
 
98517
class ExtGnu;
79147
98518
class PragmaOnceUnitState;
79148
98519
class PragmaOnce;
79149
 
class CCExprResolve;
79150
 
class CExprResolve;
 
98520
class CMatchSyntax;
79151
98521
namespace Puma {
79152
98522
 
79153
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98523
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79154
98524
class CT_LinkageSpec : public CT_Decl {
79155
 
#line 79156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98525
#line 98526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98526
  friend class ::CCExprResolve;
 
98527
  friend class ::CExprResolve;
79156
98528
  friend class ::WinIfExists;
79157
98529
  friend class ::WinImportHandler;
79158
98530
  friend class ::WinMacros;
79159
 
  friend class ::CMatchSyntax;
79160
 
  friend class ::ExtGnu;
 
98531
  friend class ::WinAsm;
 
98532
  friend class ::WinDeclSpecs;
 
98533
  friend class ::WinMemberExplSpec;
 
98534
  friend class ::WinTypeKeywords;
 
98535
  friend class ::WinFriend;
79161
98536
  friend class ::ExtAC;
79162
98537
  friend class ::ExtACBuilderCoupling;
79163
98538
  friend class ::ExtACSyntaxCoupling;
79164
98539
  friend class ::ExtACTree;
79165
98540
  friend class ::ExtACKeywords;
79166
 
  friend class ::WinAsm;
79167
 
  friend class ::WinDeclSpecs;
79168
 
  friend class ::WinMemberExplSpec;
79169
 
  friend class ::WinTypeKeywords;
 
98541
  friend class ::ExtGnu;
79170
98542
  friend class ::PragmaOnceUnitState;
79171
98543
  friend class ::PragmaOnce;
79172
 
  friend class ::CCExprResolve;
79173
 
  friend class ::CExprResolve;
 
98544
  friend class ::CMatchSyntax;
79174
98545
 
79175
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98546
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79176
98547
 
79177
98548
  CTree *sons[5]; // extern, str, open, decls, close
79178
98549
 
79179
98550
public:
79180
98551
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
79181
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
98552
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
98553
    AddSon (sons[3], d); AddSon (sons[4], c);
79182
98554
    if (isList ())
79183
98555
      ((CT_DeclList*)Decls ())->Linkage (this);
79184
98556
    else
79185
98557
      ((CT_Decl*)Decls ())->Linkage (this);
79186
98558
  }
 
98559
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79187
98560
  static const char *NodeId ();
 
98561
  /** Get the name of the node. Can be compared with NodeId(). */
79188
98562
  const char *NodeName () const { return NodeId (); }
 
98563
  /** Get the number of sons. */
79189
98564
  int Sons () const { return CTree::Sons (sons, 5); }
 
98565
  /** Get the n-th son.
 
98566
   *  \param n The index of the son.
 
98567
   *  \return The n-th son or NULL. */
79190
98568
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
79191
98569
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
79192
98570
  CTree *Decls () const { return sons[3]; }
79193
98571
  bool isList () const {
79194
98572
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
79195
98573
  }
 
98574
  /** Replace a son.
 
98575
   *  \param old_son The son to replace.
 
98576
   *  \param new_son The new son. */
79196
98577
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79197
98578
    CTree::ReplaceSon (sons, 5, old_son, new_son);
79198
98579
  }
79199
98580
};
79200
98581
 
79201
98582
 
79202
 
#line 79203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98583
#line 98584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79203
98584
} // closed Puma
 
98585
class CCExprResolve;
 
98586
class CExprResolve;
79204
98587
class WinIfExists;
79205
98588
class WinImportHandler;
79206
98589
class WinMacros;
79207
 
class CMatchSyntax;
79208
 
class ExtGnu;
 
98590
class WinAsm;
 
98591
class WinDeclSpecs;
 
98592
class WinMemberExplSpec;
 
98593
class WinTypeKeywords;
 
98594
class WinFriend;
79209
98595
class ExtAC;
79210
98596
class ExtACBuilderCoupling;
79211
98597
class ExtACSyntaxCoupling;
79212
98598
class ExtACTree;
79213
98599
class ExtACKeywords;
79214
 
class WinAsm;
79215
 
class WinDeclSpecs;
79216
 
class WinMemberExplSpec;
79217
 
class WinTypeKeywords;
 
98600
class ExtGnu;
79218
98601
class PragmaOnceUnitState;
79219
98602
class PragmaOnce;
79220
 
class CCExprResolve;
79221
 
class CExprResolve;
 
98603
class CMatchSyntax;
79222
98604
namespace Puma {
79223
98605
 
79224
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98606
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79225
98607
class CT_ArgDecl : public CT_Decl, public CSemObject {
79226
 
#line 79227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98608
#line 98609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98609
  friend class ::CCExprResolve;
 
98610
  friend class ::CExprResolve;
79227
98611
  friend class ::WinIfExists;
79228
98612
  friend class ::WinImportHandler;
79229
98613
  friend class ::WinMacros;
79230
 
  friend class ::CMatchSyntax;
79231
 
  friend class ::ExtGnu;
 
98614
  friend class ::WinAsm;
 
98615
  friend class ::WinDeclSpecs;
 
98616
  friend class ::WinMemberExplSpec;
 
98617
  friend class ::WinTypeKeywords;
 
98618
  friend class ::WinFriend;
79232
98619
  friend class ::ExtAC;
79233
98620
  friend class ::ExtACBuilderCoupling;
79234
98621
  friend class ::ExtACSyntaxCoupling;
79235
98622
  friend class ::ExtACTree;
79236
98623
  friend class ::ExtACKeywords;
79237
 
  friend class ::WinAsm;
79238
 
  friend class ::WinDeclSpecs;
79239
 
  friend class ::WinMemberExplSpec;
79240
 
  friend class ::WinTypeKeywords;
 
98624
  friend class ::ExtGnu;
79241
98625
  friend class ::PragmaOnceUnitState;
79242
98626
  friend class ::PragmaOnce;
79243
 
  friend class ::CCExprResolve;
79244
 
  friend class ::CExprResolve;
 
98627
  friend class ::CMatchSyntax;
79245
98628
 
79246
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98629
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79247
98630
 
79248
98631
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
79249
98632
 
79250
98633
public:
79251
98634
  CT_ArgDecl (CTree *dsl, CTree *d) {
79252
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
98635
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
98636
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
79253
98637
  }
79254
98638
  CT_ArgDecl (CTree *ellipsis) {
79255
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
98639
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
98640
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
79256
98641
  }
 
98642
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79257
98643
  static const char *NodeId ();
 
98644
  /** Get the name of the node. Can be compared with NodeId(). */
79258
98645
  const char *NodeName () const { return NodeId (); }
 
98646
  /** Get the number of sons. */
79259
98647
  int Sons () const { return CTree::Sons (sons, 4); }
 
98648
  /** Get the n-th son.
 
98649
   *  \param n The index of the son.
 
98650
   *  \return The n-th son or NULL. */
79260
98651
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
79261
98652
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
79262
98653
  CTree *Declarator () const { return sons[1]; }
79263
98654
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
79264
98655
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
79265
98656
  CSemObject *SemObject () const { return (CSemObject*)this; }
79266
 
  void Initializer (CTree *i) { sons[2] = i; }
 
98657
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
98658
  /** Replace a son.
 
98659
   *  \param old_son The son to replace.
 
98660
   *  \param new_son The new son. */
79267
98661
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79268
98662
    CTree::ReplaceSon (sons, 4, old_son, new_son);
79269
98663
  }
79270
98664
};
79271
98665
 
79272
98666
 
79273
 
#line 79274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98667
#line 98668 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79274
98668
} // closed Puma
 
98669
class CCExprResolve;
 
98670
class CExprResolve;
79275
98671
class WinIfExists;
79276
98672
class WinImportHandler;
79277
98673
class WinMacros;
79278
 
class CMatchSyntax;
79279
 
class ExtGnu;
 
98674
class WinAsm;
 
98675
class WinDeclSpecs;
 
98676
class WinMemberExplSpec;
 
98677
class WinTypeKeywords;
 
98678
class WinFriend;
79280
98679
class ExtAC;
79281
98680
class ExtACBuilderCoupling;
79282
98681
class ExtACSyntaxCoupling;
79283
98682
class ExtACTree;
79284
98683
class ExtACKeywords;
79285
 
class WinAsm;
79286
 
class WinDeclSpecs;
79287
 
class WinMemberExplSpec;
79288
 
class WinTypeKeywords;
 
98684
class ExtGnu;
79289
98685
class PragmaOnceUnitState;
79290
98686
class PragmaOnce;
79291
 
class CCExprResolve;
79292
 
class CExprResolve;
 
98687
class CMatchSyntax;
79293
98688
namespace Puma {
79294
98689
 
79295
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98690
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79296
98691
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
79297
 
#line 79298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98692
#line 98693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98693
  friend class ::CCExprResolve;
 
98694
  friend class ::CExprResolve;
79298
98695
  friend class ::WinIfExists;
79299
98696
  friend class ::WinImportHandler;
79300
98697
  friend class ::WinMacros;
79301
 
  friend class ::CMatchSyntax;
79302
 
  friend class ::ExtGnu;
 
98698
  friend class ::WinAsm;
 
98699
  friend class ::WinDeclSpecs;
 
98700
  friend class ::WinMemberExplSpec;
 
98701
  friend class ::WinTypeKeywords;
 
98702
  friend class ::WinFriend;
79303
98703
  friend class ::ExtAC;
79304
98704
  friend class ::ExtACBuilderCoupling;
79305
98705
  friend class ::ExtACSyntaxCoupling;
79306
98706
  friend class ::ExtACTree;
79307
98707
  friend class ::ExtACKeywords;
79308
 
  friend class ::WinAsm;
79309
 
  friend class ::WinDeclSpecs;
79310
 
  friend class ::WinMemberExplSpec;
79311
 
  friend class ::WinTypeKeywords;
 
98708
  friend class ::ExtGnu;
79312
98709
  friend class ::PragmaOnceUnitState;
79313
98710
  friend class ::PragmaOnce;
79314
 
  friend class ::CCExprResolve;
79315
 
  friend class ::CExprResolve;
 
98711
  friend class ::CMatchSyntax;
79316
98712
 
79317
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98713
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79318
98714
 
79319
98715
public:
79320
98716
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
79321
98717
   CT_DeclList (size, 2) { AddProperties (props); }
 
98718
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79322
98719
  static const char *NodeId ();
 
98720
  /** Get the name of the node. Can be compared with NodeId(). */
79323
98721
  const char *NodeName () const { return NodeId (); }
 
98722
  CSemScope *SemScope () const { return (CSemScope*)this; }
79324
98723
};
79325
98724
 
79326
98725
 
79327
 
#line 79328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98726
#line 98727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79328
98727
} // closed Puma
 
98728
class CCExprResolve;
 
98729
class CExprResolve;
79329
98730
class WinIfExists;
79330
98731
class WinImportHandler;
79331
98732
class WinMacros;
79332
 
class CMatchSyntax;
79333
 
class ExtGnu;
 
98733
class WinAsm;
 
98734
class WinDeclSpecs;
 
98735
class WinMemberExplSpec;
 
98736
class WinTypeKeywords;
 
98737
class WinFriend;
79334
98738
class ExtAC;
79335
98739
class ExtACBuilderCoupling;
79336
98740
class ExtACSyntaxCoupling;
79337
98741
class ExtACTree;
79338
98742
class ExtACKeywords;
79339
 
class WinAsm;
79340
 
class WinDeclSpecs;
79341
 
class WinMemberExplSpec;
79342
 
class WinTypeKeywords;
 
98743
class ExtGnu;
79343
98744
class PragmaOnceUnitState;
79344
98745
class PragmaOnce;
79345
 
class CCExprResolve;
79346
 
class CExprResolve;
 
98746
class CMatchSyntax;
79347
98747
namespace Puma {
79348
98748
 
79349
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98749
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79350
98750
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
79351
 
#line 79352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98751
#line 98752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98752
  friend class ::CCExprResolve;
 
98753
  friend class ::CExprResolve;
79352
98754
  friend class ::WinIfExists;
79353
98755
  friend class ::WinImportHandler;
79354
98756
  friend class ::WinMacros;
79355
 
  friend class ::CMatchSyntax;
79356
 
  friend class ::ExtGnu;
 
98757
  friend class ::WinAsm;
 
98758
  friend class ::WinDeclSpecs;
 
98759
  friend class ::WinMemberExplSpec;
 
98760
  friend class ::WinTypeKeywords;
 
98761
  friend class ::WinFriend;
79357
98762
  friend class ::ExtAC;
79358
98763
  friend class ::ExtACBuilderCoupling;
79359
98764
  friend class ::ExtACSyntaxCoupling;
79360
98765
  friend class ::ExtACTree;
79361
98766
  friend class ::ExtACKeywords;
79362
 
  friend class ::WinAsm;
79363
 
  friend class ::WinDeclSpecs;
79364
 
  friend class ::WinMemberExplSpec;
79365
 
  friend class ::WinTypeKeywords;
 
98767
  friend class ::ExtGnu;
79366
98768
  friend class ::PragmaOnceUnitState;
79367
98769
  friend class ::PragmaOnce;
79368
 
  friend class ::CCExprResolve;
79369
 
  friend class ::CExprResolve;
 
98770
  friend class ::CMatchSyntax;
79370
98771
 
79371
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98772
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79372
98773
 
79373
98774
public:
79374
98775
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
98776
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79375
98777
  static const char *NodeId ();
 
98778
  /** Get the name of the node. Can be compared with NodeId(). */
79376
98779
  const char *NodeName () const { return NodeId (); }
 
98780
  CSemScope *SemScope () const { return (CSemScope*)this; }
79377
98781
};
79378
98782
 
79379
98783
 
79380
 
#line 79381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98784
#line 98785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79381
98785
} // closed Puma
 
98786
class CCExprResolve;
 
98787
class CExprResolve;
79382
98788
class WinIfExists;
79383
98789
class WinImportHandler;
79384
98790
class WinMacros;
79385
 
class CMatchSyntax;
79386
 
class ExtGnu;
 
98791
class WinAsm;
 
98792
class WinDeclSpecs;
 
98793
class WinMemberExplSpec;
 
98794
class WinTypeKeywords;
 
98795
class WinFriend;
79387
98796
class ExtAC;
79388
98797
class ExtACBuilderCoupling;
79389
98798
class ExtACSyntaxCoupling;
79390
98799
class ExtACTree;
79391
98800
class ExtACKeywords;
79392
 
class WinAsm;
79393
 
class WinDeclSpecs;
79394
 
class WinMemberExplSpec;
79395
 
class WinTypeKeywords;
 
98801
class ExtGnu;
79396
98802
class PragmaOnceUnitState;
79397
98803
class PragmaOnce;
79398
 
class CCExprResolve;
79399
 
class CExprResolve;
 
98804
class CMatchSyntax;
79400
98805
namespace Puma {
79401
98806
 
79402
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98807
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79403
98808
class CT_ArgNameList : public CT_ArgDeclList {
79404
 
#line 79405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98809
#line 98810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98810
  friend class ::CCExprResolve;
 
98811
  friend class ::CExprResolve;
79405
98812
  friend class ::WinIfExists;
79406
98813
  friend class ::WinImportHandler;
79407
98814
  friend class ::WinMacros;
79408
 
  friend class ::CMatchSyntax;
79409
 
  friend class ::ExtGnu;
 
98815
  friend class ::WinAsm;
 
98816
  friend class ::WinDeclSpecs;
 
98817
  friend class ::WinMemberExplSpec;
 
98818
  friend class ::WinTypeKeywords;
 
98819
  friend class ::WinFriend;
79410
98820
  friend class ::ExtAC;
79411
98821
  friend class ::ExtACBuilderCoupling;
79412
98822
  friend class ::ExtACSyntaxCoupling;
79413
98823
  friend class ::ExtACTree;
79414
98824
  friend class ::ExtACKeywords;
79415
 
  friend class ::WinAsm;
79416
 
  friend class ::WinDeclSpecs;
79417
 
  friend class ::WinMemberExplSpec;
79418
 
  friend class ::WinTypeKeywords;
 
98825
  friend class ::ExtGnu;
79419
98826
  friend class ::PragmaOnceUnitState;
79420
98827
  friend class ::PragmaOnce;
79421
 
  friend class ::CCExprResolve;
79422
 
  friend class ::CExprResolve;
 
98828
  friend class ::CMatchSyntax;
79423
98829
 
79424
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98830
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79425
98831
 
79426
98832
public:
79427
98833
  CT_ArgNameList () : CT_ArgDeclList () {}
 
98834
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79428
98835
  static const char *NodeId ();
 
98836
  /** Get the name of the node. Can be compared with NodeId(). */
79429
98837
  const char *NodeName () const { return NodeId (); }
79430
98838
};
79431
98839
 
79432
98840
 
79433
 
#line 79434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98841
#line 98842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79434
98842
} // closed Puma
 
98843
class CCExprResolve;
 
98844
class CExprResolve;
79435
98845
class WinIfExists;
79436
98846
class WinImportHandler;
79437
98847
class WinMacros;
79438
 
class CMatchSyntax;
79439
 
class ExtGnu;
 
98848
class WinAsm;
 
98849
class WinDeclSpecs;
 
98850
class WinMemberExplSpec;
 
98851
class WinTypeKeywords;
 
98852
class WinFriend;
79440
98853
class ExtAC;
79441
98854
class ExtACBuilderCoupling;
79442
98855
class ExtACSyntaxCoupling;
79443
98856
class ExtACTree;
79444
98857
class ExtACKeywords;
79445
 
class WinAsm;
79446
 
class WinDeclSpecs;
79447
 
class WinMemberExplSpec;
79448
 
class WinTypeKeywords;
 
98858
class ExtGnu;
79449
98859
class PragmaOnceUnitState;
79450
98860
class PragmaOnce;
79451
 
class CCExprResolve;
79452
 
class CExprResolve;
 
98861
class CMatchSyntax;
79453
98862
namespace Puma {
79454
98863
 
79455
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98864
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79456
98865
class CT_NamespaceDef : public CT_Decl, public CSemObject {
79457
 
#line 79458 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98866
#line 98867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98867
  friend class ::CCExprResolve;
 
98868
  friend class ::CExprResolve;
79458
98869
  friend class ::WinIfExists;
79459
98870
  friend class ::WinImportHandler;
79460
98871
  friend class ::WinMacros;
79461
 
  friend class ::CMatchSyntax;
79462
 
  friend class ::ExtGnu;
 
98872
  friend class ::WinAsm;
 
98873
  friend class ::WinDeclSpecs;
 
98874
  friend class ::WinMemberExplSpec;
 
98875
  friend class ::WinTypeKeywords;
 
98876
  friend class ::WinFriend;
79463
98877
  friend class ::ExtAC;
79464
98878
  friend class ::ExtACBuilderCoupling;
79465
98879
  friend class ::ExtACSyntaxCoupling;
79466
98880
  friend class ::ExtACTree;
79467
98881
  friend class ::ExtACKeywords;
79468
 
  friend class ::WinAsm;
79469
 
  friend class ::WinDeclSpecs;
79470
 
  friend class ::WinMemberExplSpec;
79471
 
  friend class ::WinTypeKeywords;
 
98882
  friend class ::ExtGnu;
79472
98883
  friend class ::PragmaOnceUnitState;
79473
98884
  friend class ::PragmaOnce;
79474
 
  friend class ::CCExprResolve;
79475
 
  friend class ::CExprResolve;
 
98885
  friend class ::CMatchSyntax;
79476
98886
 
79477
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98887
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79478
98888
 
79479
98889
  CTree *sons[3]; // ns, name, members
79480
98890
 
79481
98891
public:
79482
98892
  CT_NamespaceDef (CTree *n, CTree *nm) {
79483
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
98893
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
79484
98894
  }
79485
98895
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
79486
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
98896
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
79487
98897
  }
 
98898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79488
98899
  static const char *NodeId ();
 
98900
  /** Get the name of the node. Can be compared with NodeId(). */
79489
98901
  const char *NodeName () const { return NodeId (); }
 
98902
  /** Get the number of sons. */
79490
98903
  int Sons () const { return CTree::Sons (sons, 3); }
 
98904
  /** Get the n-th son.
 
98905
   *  \param n The index of the son.
 
98906
   *  \return The n-th son or NULL. */
79491
98907
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
79492
 
  void Members (CTree *m) { sons[2] = m; }
 
98908
  void Members (CTree *m) { AddSon (sons[2], m); }
79493
98909
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
79494
98910
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
79495
98911
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
98912
  /** Replace a son.
 
98913
   *  \param old_son The son to replace.
 
98914
   *  \param new_son The new son. */
79496
98915
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79497
98916
    CTree::ReplaceSon (sons, 3, old_son, new_son);
79498
98917
  }
79499
98918
};
79500
98919
 
79501
98920
 
79502
 
#line 79503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98921
#line 98922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79503
98922
} // closed Puma
 
98923
class CCExprResolve;
 
98924
class CExprResolve;
79504
98925
class WinIfExists;
79505
98926
class WinImportHandler;
79506
98927
class WinMacros;
79507
 
class CMatchSyntax;
79508
 
class ExtGnu;
 
98928
class WinAsm;
 
98929
class WinDeclSpecs;
 
98930
class WinMemberExplSpec;
 
98931
class WinTypeKeywords;
 
98932
class WinFriend;
79509
98933
class ExtAC;
79510
98934
class ExtACBuilderCoupling;
79511
98935
class ExtACSyntaxCoupling;
79512
98936
class ExtACTree;
79513
98937
class ExtACKeywords;
79514
 
class WinAsm;
79515
 
class WinDeclSpecs;
79516
 
class WinMemberExplSpec;
79517
 
class WinTypeKeywords;
 
98938
class ExtGnu;
79518
98939
class PragmaOnceUnitState;
79519
98940
class PragmaOnce;
79520
 
class CCExprResolve;
79521
 
class CExprResolve;
 
98941
class CMatchSyntax;
79522
98942
namespace Puma {
79523
98943
 
79524
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98944
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79525
98945
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
79526
 
#line 79527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98946
#line 98947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
98947
  friend class ::CCExprResolve;
 
98948
  friend class ::CExprResolve;
79527
98949
  friend class ::WinIfExists;
79528
98950
  friend class ::WinImportHandler;
79529
98951
  friend class ::WinMacros;
79530
 
  friend class ::CMatchSyntax;
79531
 
  friend class ::ExtGnu;
 
98952
  friend class ::WinAsm;
 
98953
  friend class ::WinDeclSpecs;
 
98954
  friend class ::WinMemberExplSpec;
 
98955
  friend class ::WinTypeKeywords;
 
98956
  friend class ::WinFriend;
79532
98957
  friend class ::ExtAC;
79533
98958
  friend class ::ExtACBuilderCoupling;
79534
98959
  friend class ::ExtACSyntaxCoupling;
79535
98960
  friend class ::ExtACTree;
79536
98961
  friend class ::ExtACKeywords;
79537
 
  friend class ::WinAsm;
79538
 
  friend class ::WinDeclSpecs;
79539
 
  friend class ::WinMemberExplSpec;
79540
 
  friend class ::WinTypeKeywords;
 
98962
  friend class ::ExtGnu;
79541
98963
  friend class ::PragmaOnceUnitState;
79542
98964
  friend class ::PragmaOnce;
79543
 
  friend class ::CCExprResolve;
79544
 
  friend class ::CExprResolve;
 
98965
  friend class ::CMatchSyntax;
79545
98966
 
79546
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
98967
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79547
98968
 
79548
98969
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
79549
98970
 
79550
98971
public:
79551
98972
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
79552
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
98973
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
98974
    AddSon (sons[3], nm); AddSon (sons[4], s); 
79553
98975
  }
 
98976
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79554
98977
  static const char *NodeId ();
 
98978
  /** Get the name of the node. Can be compared with NodeId(). */
79555
98979
  const char *NodeName () const { return NodeId (); }
 
98980
  /** Get the number of sons. */
79556
98981
  int Sons () const { return 5; }
 
98982
  /** Get the n-th son.
 
98983
   *  \param n The index of the son.
 
98984
   *  \return The n-th son or NULL. */
79557
98985
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
79558
98986
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
79559
98987
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
79560
98988
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
98989
  /** Replace a son.
 
98990
   *  \param old_son The son to replace.
 
98991
   *  \param new_son The new son. */
79561
98992
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79562
98993
    CTree::ReplaceSon (sons, 5, old_son, new_son);
79563
98994
  }
79564
98995
};
79565
98996
 
79566
98997
 
79567
 
#line 79568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
98998
#line 98999 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79568
98999
} // closed Puma
 
99000
class CCExprResolve;
 
99001
class CExprResolve;
79569
99002
class WinIfExists;
79570
99003
class WinImportHandler;
79571
99004
class WinMacros;
79572
 
class CMatchSyntax;
79573
 
class ExtGnu;
 
99005
class WinAsm;
 
99006
class WinDeclSpecs;
 
99007
class WinMemberExplSpec;
 
99008
class WinTypeKeywords;
 
99009
class WinFriend;
79574
99010
class ExtAC;
79575
99011
class ExtACBuilderCoupling;
79576
99012
class ExtACSyntaxCoupling;
79577
99013
class ExtACTree;
79578
99014
class ExtACKeywords;
79579
 
class WinAsm;
79580
 
class WinDeclSpecs;
79581
 
class WinMemberExplSpec;
79582
 
class WinTypeKeywords;
 
99015
class ExtGnu;
79583
99016
class PragmaOnceUnitState;
79584
99017
class PragmaOnce;
79585
 
class CCExprResolve;
79586
 
class CExprResolve;
 
99018
class CMatchSyntax;
79587
99019
namespace Puma {
79588
99020
 
79589
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99021
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79590
99022
class CT_UsingDirective : public CT_Decl {
79591
 
#line 79592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99023
#line 99024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99024
  friend class ::CCExprResolve;
 
99025
  friend class ::CExprResolve;
79592
99026
  friend class ::WinIfExists;
79593
99027
  friend class ::WinImportHandler;
79594
99028
  friend class ::WinMacros;
79595
 
  friend class ::CMatchSyntax;
79596
 
  friend class ::ExtGnu;
 
99029
  friend class ::WinAsm;
 
99030
  friend class ::WinDeclSpecs;
 
99031
  friend class ::WinMemberExplSpec;
 
99032
  friend class ::WinTypeKeywords;
 
99033
  friend class ::WinFriend;
79597
99034
  friend class ::ExtAC;
79598
99035
  friend class ::ExtACBuilderCoupling;
79599
99036
  friend class ::ExtACSyntaxCoupling;
79600
99037
  friend class ::ExtACTree;
79601
99038
  friend class ::ExtACKeywords;
79602
 
  friend class ::WinAsm;
79603
 
  friend class ::WinDeclSpecs;
79604
 
  friend class ::WinMemberExplSpec;
79605
 
  friend class ::WinTypeKeywords;
 
99039
  friend class ::ExtGnu;
79606
99040
  friend class ::PragmaOnceUnitState;
79607
99041
  friend class ::PragmaOnce;
79608
 
  friend class ::CCExprResolve;
79609
 
  friend class ::CExprResolve;
 
99042
  friend class ::CMatchSyntax;
79610
99043
 
79611
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99044
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79612
99045
 
79613
99046
  CTree *sons[4]; // using, ns, name, semi_colon
79614
99047
 
79615
99048
public:
79616
99049
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
79617
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
99050
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
99051
    AddSon (sons[3], s); 
79618
99052
  }
 
99053
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79619
99054
  static const char *NodeId ();
 
99055
  /** Get the name of the node. Can be compared with NodeId(). */
79620
99056
  const char *NodeName () const { return NodeId (); }
 
99057
  /** Get the number of sons. */
79621
99058
  int Sons () const { return 4; }
 
99059
  /** Get the n-th son.
 
99060
   *  \param n The index of the son.
 
99061
   *  \return The n-th son or NULL. */
79622
99062
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
79623
99063
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
99064
  /** Replace a son.
 
99065
   *  \param old_son The son to replace.
 
99066
   *  \param new_son The new son. */
79624
99067
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79625
99068
    CTree::ReplaceSon (sons, 4, old_son, new_son);
79626
99069
  }
79633
99076
/*****************************************************************************/
79634
99077
 
79635
99078
 
79636
 
#line 79637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99079
#line 99080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79637
99080
} // closed Puma
 
99081
class CCExprResolve;
 
99082
class CExprResolve;
79638
99083
class WinIfExists;
79639
99084
class WinImportHandler;
79640
99085
class WinMacros;
79641
 
class CMatchSyntax;
79642
 
class ExtGnu;
 
99086
class WinAsm;
 
99087
class WinDeclSpecs;
 
99088
class WinMemberExplSpec;
 
99089
class WinTypeKeywords;
 
99090
class WinFriend;
79643
99091
class ExtAC;
79644
99092
class ExtACBuilderCoupling;
79645
99093
class ExtACSyntaxCoupling;
79646
99094
class ExtACTree;
79647
99095
class ExtACKeywords;
79648
 
class WinAsm;
79649
 
class WinDeclSpecs;
79650
 
class WinMemberExplSpec;
79651
 
class WinTypeKeywords;
 
99096
class ExtGnu;
79652
99097
class PragmaOnceUnitState;
79653
99098
class PragmaOnce;
79654
 
class CCExprResolve;
79655
 
class CExprResolve;
 
99099
class CMatchSyntax;
79656
99100
namespace Puma {
79657
99101
 
79658
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99102
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79659
99103
class CT_Declarator : public CTree {
79660
 
#line 79661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99104
#line 99105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99105
  friend class ::CCExprResolve;
 
99106
  friend class ::CExprResolve;
79661
99107
  friend class ::WinIfExists;
79662
99108
  friend class ::WinImportHandler;
79663
99109
  friend class ::WinMacros;
79664
 
  friend class ::CMatchSyntax;
79665
 
  friend class ::ExtGnu;
 
99110
  friend class ::WinAsm;
 
99111
  friend class ::WinDeclSpecs;
 
99112
  friend class ::WinMemberExplSpec;
 
99113
  friend class ::WinTypeKeywords;
 
99114
  friend class ::WinFriend;
79666
99115
  friend class ::ExtAC;
79667
99116
  friend class ::ExtACBuilderCoupling;
79668
99117
  friend class ::ExtACSyntaxCoupling;
79669
99118
  friend class ::ExtACTree;
79670
99119
  friend class ::ExtACKeywords;
79671
 
  friend class ::WinAsm;
79672
 
  friend class ::WinDeclSpecs;
79673
 
  friend class ::WinMemberExplSpec;
79674
 
  friend class ::WinTypeKeywords;
 
99120
  friend class ::ExtGnu;
79675
99121
  friend class ::PragmaOnceUnitState;
79676
99122
  friend class ::PragmaOnce;
79677
 
  friend class ::CCExprResolve;
79678
 
  friend class ::CExprResolve;
 
99123
  friend class ::CMatchSyntax;
79679
99124
 
79680
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99125
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79681
99126
 
79682
99127
protected:
79683
99128
  CT_Declarator () {}
79692
99137
};
79693
99138
 
79694
99139
 
79695
 
#line 79696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99140
#line 99141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79696
99141
} // closed Puma
 
99142
class CCExprResolve;
 
99143
class CExprResolve;
79697
99144
class WinIfExists;
79698
99145
class WinImportHandler;
79699
99146
class WinMacros;
79700
 
class CMatchSyntax;
79701
 
class ExtGnu;
 
99147
class WinAsm;
 
99148
class WinDeclSpecs;
 
99149
class WinMemberExplSpec;
 
99150
class WinTypeKeywords;
 
99151
class WinFriend;
79702
99152
class ExtAC;
79703
99153
class ExtACBuilderCoupling;
79704
99154
class ExtACSyntaxCoupling;
79705
99155
class ExtACTree;
79706
99156
class ExtACKeywords;
79707
 
class WinAsm;
79708
 
class WinDeclSpecs;
79709
 
class WinMemberExplSpec;
79710
 
class WinTypeKeywords;
 
99157
class ExtGnu;
79711
99158
class PragmaOnceUnitState;
79712
99159
class PragmaOnce;
79713
 
class CCExprResolve;
79714
 
class CExprResolve;
 
99160
class CMatchSyntax;
79715
99161
namespace Puma {
79716
99162
 
79717
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99163
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79718
99164
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
79719
 
#line 79720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99165
#line 99166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99166
  friend class ::CCExprResolve;
 
99167
  friend class ::CExprResolve;
79720
99168
  friend class ::WinIfExists;
79721
99169
  friend class ::WinImportHandler;
79722
99170
  friend class ::WinMacros;
79723
 
  friend class ::CMatchSyntax;
79724
 
  friend class ::ExtGnu;
 
99171
  friend class ::WinAsm;
 
99172
  friend class ::WinDeclSpecs;
 
99173
  friend class ::WinMemberExplSpec;
 
99174
  friend class ::WinTypeKeywords;
 
99175
  friend class ::WinFriend;
79725
99176
  friend class ::ExtAC;
79726
99177
  friend class ::ExtACBuilderCoupling;
79727
99178
  friend class ::ExtACSyntaxCoupling;
79728
99179
  friend class ::ExtACTree;
79729
99180
  friend class ::ExtACKeywords;
79730
 
  friend class ::WinAsm;
79731
 
  friend class ::WinDeclSpecs;
79732
 
  friend class ::WinMemberExplSpec;
79733
 
  friend class ::WinTypeKeywords;
 
99181
  friend class ::ExtGnu;
79734
99182
  friend class ::PragmaOnceUnitState;
79735
99183
  friend class ::PragmaOnce;
79736
 
  friend class ::CCExprResolve;
79737
 
  friend class ::CExprResolve;
79738
 
 
79739
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
79740
 
 
79741
 
  CTree *sons[2]; // declarator, init
 
99184
  friend class ::CMatchSyntax;
 
99185
 
 
99186
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99187
 
 
99188
  CTree *sons[3]; // declarator, ext, init
79742
99189
  CTree *obj_decl;
79743
99190
 
79744
99191
public:
79745
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
79746
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
99192
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
99193
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
99194
    AddSon (obj_decl, 0); 
79747
99195
  }
 
99196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79748
99197
  static const char *NodeId ();
 
99198
  /** Get the name of the node. Can be compared with NodeId(). */
79749
99199
  const char *NodeName () const { return NodeId (); }
79750
 
  int Sons () const { return CTree::Sons (sons, 2); }
79751
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
99200
  /** Get the number of sons. */
 
99201
  int Sons () const { return CTree::Sons (sons, 3); }
 
99202
  /** Get the n-th son.
 
99203
   *  \param n The index of the son.
 
99204
   *  \return The n-th son or NULL. */
 
99205
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
79752
99206
  CTree *Declarator () const { return sons[0]; }
79753
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
99207
  CTree *Extension () const { return sons[1]; }
 
99208
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
79754
99209
  CSemObject *SemObject () const { return (CSemObject*)this; }
79755
99210
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
79756
 
  void Initializer (CTree* i) { sons[1] = i; }
79757
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
99211
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
99212
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
99213
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
99214
  /** Replace a son.
 
99215
   *  \param old_son The son to replace.
 
99216
   *  \param new_son The new son. */
79758
99217
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79759
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
99218
    CTree::ReplaceSon (sons, 3, old_son, new_son);
79760
99219
  }
79761
99220
};
79762
99221
 
79763
99222
 
79764
 
#line 79765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99223
#line 99224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79765
99224
} // closed Puma
 
99225
class CCExprResolve;
 
99226
class CExprResolve;
79766
99227
class WinIfExists;
79767
99228
class WinImportHandler;
79768
99229
class WinMacros;
79769
 
class CMatchSyntax;
79770
 
class ExtGnu;
 
99230
class WinAsm;
 
99231
class WinDeclSpecs;
 
99232
class WinMemberExplSpec;
 
99233
class WinTypeKeywords;
 
99234
class WinFriend;
79771
99235
class ExtAC;
79772
99236
class ExtACBuilderCoupling;
79773
99237
class ExtACSyntaxCoupling;
79774
99238
class ExtACTree;
79775
99239
class ExtACKeywords;
79776
 
class WinAsm;
79777
 
class WinDeclSpecs;
79778
 
class WinMemberExplSpec;
79779
 
class WinTypeKeywords;
 
99240
class ExtGnu;
79780
99241
class PragmaOnceUnitState;
79781
99242
class PragmaOnce;
79782
 
class CCExprResolve;
79783
 
class CExprResolve;
 
99243
class CMatchSyntax;
79784
99244
namespace Puma {
79785
99245
 
79786
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99246
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79787
99247
class CT_BracedDeclarator : public CT_Declarator {
79788
 
#line 79789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99248
#line 99249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99249
  friend class ::CCExprResolve;
 
99250
  friend class ::CExprResolve;
79789
99251
  friend class ::WinIfExists;
79790
99252
  friend class ::WinImportHandler;
79791
99253
  friend class ::WinMacros;
79792
 
  friend class ::CMatchSyntax;
79793
 
  friend class ::ExtGnu;
 
99254
  friend class ::WinAsm;
 
99255
  friend class ::WinDeclSpecs;
 
99256
  friend class ::WinMemberExplSpec;
 
99257
  friend class ::WinTypeKeywords;
 
99258
  friend class ::WinFriend;
79794
99259
  friend class ::ExtAC;
79795
99260
  friend class ::ExtACBuilderCoupling;
79796
99261
  friend class ::ExtACSyntaxCoupling;
79797
99262
  friend class ::ExtACTree;
79798
99263
  friend class ::ExtACKeywords;
79799
 
  friend class ::WinAsm;
79800
 
  friend class ::WinDeclSpecs;
79801
 
  friend class ::WinMemberExplSpec;
79802
 
  friend class ::WinTypeKeywords;
 
99264
  friend class ::ExtGnu;
79803
99265
  friend class ::PragmaOnceUnitState;
79804
99266
  friend class ::PragmaOnce;
79805
 
  friend class ::CCExprResolve;
79806
 
  friend class ::CExprResolve;
 
99267
  friend class ::CMatchSyntax;
79807
99268
 
79808
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99269
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79809
99270
 
79810
99271
  CTree *sons[4]; // open, win_specs, declarator, close
79811
99272
 
79812
99273
public:
79813
99274
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
79814
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
99275
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
99276
    AddSon (sons[2], d); AddSon (sons[3], c); 
79815
99277
  }
79816
99278
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
79817
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
99279
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
99280
    AddSon (sons[2], d); AddSon (sons[3], c); 
79818
99281
  }
 
99282
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79819
99283
  static const char *NodeId ();
 
99284
  /** Get the name of the node. Can be compared with NodeId(). */
79820
99285
  const char *NodeName () const { return NodeId (); }
 
99286
  /** Get the number of sons. */
79821
99287
  int Sons () const { return CTree::Sons (sons, 4); }
 
99288
  /** Get the n-th son.
 
99289
   *  \param n The index of the son.
 
99290
   *  \return The n-th son or NULL. */
79822
99291
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
79823
99292
  CTree *Declarator () const { return sons[2]; }
 
99293
  /** Replace a son.
 
99294
   *  \param old_son The son to replace.
 
99295
   *  \param new_son The new son. */
79824
99296
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79825
99297
    CTree::ReplaceSon (sons, 4, old_son, new_son);
79826
99298
  }
79827
99299
};
79828
99300
 
79829
99301
 
79830
 
#line 79831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99302
#line 99303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79831
99303
} // closed Puma
 
99304
class CCExprResolve;
 
99305
class CExprResolve;
79832
99306
class WinIfExists;
79833
99307
class WinImportHandler;
79834
99308
class WinMacros;
79835
 
class CMatchSyntax;
79836
 
class ExtGnu;
 
99309
class WinAsm;
 
99310
class WinDeclSpecs;
 
99311
class WinMemberExplSpec;
 
99312
class WinTypeKeywords;
 
99313
class WinFriend;
79837
99314
class ExtAC;
79838
99315
class ExtACBuilderCoupling;
79839
99316
class ExtACSyntaxCoupling;
79840
99317
class ExtACTree;
79841
99318
class ExtACKeywords;
79842
 
class WinAsm;
79843
 
class WinDeclSpecs;
79844
 
class WinMemberExplSpec;
79845
 
class WinTypeKeywords;
 
99319
class ExtGnu;
79846
99320
class PragmaOnceUnitState;
79847
99321
class PragmaOnce;
79848
 
class CCExprResolve;
79849
 
class CExprResolve;
 
99322
class CMatchSyntax;
79850
99323
namespace Puma {
79851
99324
 
79852
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99325
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79853
99326
class CT_ArrayDelimiter : public CTree {
79854
 
#line 79855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99327
#line 99328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99328
  friend class ::CCExprResolve;
 
99329
  friend class ::CExprResolve;
79855
99330
  friend class ::WinIfExists;
79856
99331
  friend class ::WinImportHandler;
79857
99332
  friend class ::WinMacros;
79858
 
  friend class ::CMatchSyntax;
79859
 
  friend class ::ExtGnu;
 
99333
  friend class ::WinAsm;
 
99334
  friend class ::WinDeclSpecs;
 
99335
  friend class ::WinMemberExplSpec;
 
99336
  friend class ::WinTypeKeywords;
 
99337
  friend class ::WinFriend;
79860
99338
  friend class ::ExtAC;
79861
99339
  friend class ::ExtACBuilderCoupling;
79862
99340
  friend class ::ExtACSyntaxCoupling;
79863
99341
  friend class ::ExtACTree;
79864
99342
  friend class ::ExtACKeywords;
79865
 
  friend class ::WinAsm;
79866
 
  friend class ::WinDeclSpecs;
79867
 
  friend class ::WinMemberExplSpec;
79868
 
  friend class ::WinTypeKeywords;
 
99343
  friend class ::ExtGnu;
79869
99344
  friend class ::PragmaOnceUnitState;
79870
99345
  friend class ::PragmaOnce;
79871
 
  friend class ::CCExprResolve;
79872
 
  friend class ::CExprResolve;
 
99346
  friend class ::CMatchSyntax;
79873
99347
 
79874
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99348
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79875
99349
 
79876
99350
  CTree *sons[4]; // star, static, quals, expr
79877
99351
  bool pos0;
79878
99352
 
79879
99353
public:
79880
99354
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
79881
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
99355
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
99356
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
79882
99357
  }
 
99358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79883
99359
  static const char *NodeId ();
 
99360
  /** Get the name of the node. Can be compared with NodeId(). */
79884
99361
  const char *NodeName () const { return NodeId (); }
 
99362
  /** Get the number of sons. */
79885
99363
  int Sons () const { return CTree::Sons (sons, 4); }
 
99364
  /** Get the n-th son.
 
99365
   *  \param n The index of the son.
 
99366
   *  \return The n-th son or NULL. */
79886
99367
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
79887
99368
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
79888
99369
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
79889
99370
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
79890
99371
  CTree *Expr () const { return sons[3]; }
 
99372
  /** Replace a son.
 
99373
   *  \param old_son The son to replace.
 
99374
   *  \param new_son The new son. */
79891
99375
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79892
99376
    CTree::ReplaceSon (sons, 4, old_son, new_son);
79893
99377
  }
79894
99378
};
79895
99379
 
79896
99380
 
79897
 
#line 79898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99381
#line 99382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79898
99382
} // closed Puma
 
99383
class CCExprResolve;
 
99384
class CExprResolve;
79899
99385
class WinIfExists;
79900
99386
class WinImportHandler;
79901
99387
class WinMacros;
79902
 
class CMatchSyntax;
79903
 
class ExtGnu;
 
99388
class WinAsm;
 
99389
class WinDeclSpecs;
 
99390
class WinMemberExplSpec;
 
99391
class WinTypeKeywords;
 
99392
class WinFriend;
79904
99393
class ExtAC;
79905
99394
class ExtACBuilderCoupling;
79906
99395
class ExtACSyntaxCoupling;
79907
99396
class ExtACTree;
79908
99397
class ExtACKeywords;
79909
 
class WinAsm;
79910
 
class WinDeclSpecs;
79911
 
class WinMemberExplSpec;
79912
 
class WinTypeKeywords;
 
99398
class ExtGnu;
79913
99399
class PragmaOnceUnitState;
79914
99400
class PragmaOnce;
79915
 
class CCExprResolve;
79916
 
class CExprResolve;
 
99401
class CMatchSyntax;
79917
99402
namespace Puma {
79918
99403
 
79919
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99404
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79920
99405
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
79921
 
#line 79922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99406
#line 99407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99407
  friend class ::CCExprResolve;
 
99408
  friend class ::CExprResolve;
79922
99409
  friend class ::WinIfExists;
79923
99410
  friend class ::WinImportHandler;
79924
99411
  friend class ::WinMacros;
79925
 
  friend class ::CMatchSyntax;
79926
 
  friend class ::ExtGnu;
 
99412
  friend class ::WinAsm;
 
99413
  friend class ::WinDeclSpecs;
 
99414
  friend class ::WinMemberExplSpec;
 
99415
  friend class ::WinTypeKeywords;
 
99416
  friend class ::WinFriend;
79927
99417
  friend class ::ExtAC;
79928
99418
  friend class ::ExtACBuilderCoupling;
79929
99419
  friend class ::ExtACSyntaxCoupling;
79930
99420
  friend class ::ExtACTree;
79931
99421
  friend class ::ExtACKeywords;
79932
 
  friend class ::WinAsm;
79933
 
  friend class ::WinDeclSpecs;
79934
 
  friend class ::WinMemberExplSpec;
79935
 
  friend class ::WinTypeKeywords;
 
99422
  friend class ::ExtGnu;
79936
99423
  friend class ::PragmaOnceUnitState;
79937
99424
  friend class ::PragmaOnce;
79938
 
  friend class ::CCExprResolve;
79939
 
  friend class ::CExprResolve;
 
99425
  friend class ::CMatchSyntax;
79940
99426
 
79941
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99427
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79942
99428
 
79943
99429
  CTree *sons[4]; // declarator, open, delim, close
79944
99430
 
79945
99431
public:
79946
99432
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
79947
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
99433
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
99434
    AddSon (sons[2], ad); AddSon (sons[3], c); 
79948
99435
  }
 
99436
  /** Get the identifier for this node type. Can be compared with NodeName(). */
79949
99437
  static const char *NodeId ();
 
99438
  /** Get the name of the node. Can be compared with NodeId(). */
79950
99439
  const char *NodeName () const { return NodeId (); }
 
99440
  /** Get the number of sons. */
79951
99441
  int Sons () const { return 4; }
 
99442
  /** Get the n-th son.
 
99443
   *  \param n The index of the son.
 
99444
   *  \return The n-th son or NULL. */
79952
99445
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
79953
99446
  CTree *Declarator () const { return sons[0]; }
79954
99447
  CT_ArrayDelimiter *Delimiter () const 
79955
99448
   { return (CT_ArrayDelimiter*)sons[2]; }
 
99449
  /** Replace a son.
 
99450
   *  \param old_son The son to replace.
 
99451
   *  \param new_son The new son. */
79956
99452
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
79957
99453
    CTree::ReplaceSon (sons, 4, old_son, new_son);
79958
99454
  }
79962
99458
};
79963
99459
 
79964
99460
 
79965
 
#line 79966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99461
#line 99462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
79966
99462
} // closed Puma
 
99463
class CCExprResolve;
 
99464
class CExprResolve;
79967
99465
class WinIfExists;
79968
99466
class WinImportHandler;
79969
99467
class WinMacros;
79970
 
class CMatchSyntax;
79971
 
class ExtGnu;
 
99468
class WinAsm;
 
99469
class WinDeclSpecs;
 
99470
class WinMemberExplSpec;
 
99471
class WinTypeKeywords;
 
99472
class WinFriend;
79972
99473
class ExtAC;
79973
99474
class ExtACBuilderCoupling;
79974
99475
class ExtACSyntaxCoupling;
79975
99476
class ExtACTree;
79976
99477
class ExtACKeywords;
79977
 
class WinAsm;
79978
 
class WinDeclSpecs;
79979
 
class WinMemberExplSpec;
79980
 
class WinTypeKeywords;
 
99478
class ExtGnu;
79981
99479
class PragmaOnceUnitState;
79982
99480
class PragmaOnce;
79983
 
class CCExprResolve;
79984
 
class CExprResolve;
 
99481
class CMatchSyntax;
79985
99482
namespace Puma {
79986
99483
 
79987
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99484
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
79988
99485
class CT_FctDeclarator : public CT_Declarator {
79989
 
#line 79990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99486
#line 99487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99487
  friend class ::CCExprResolve;
 
99488
  friend class ::CExprResolve;
79990
99489
  friend class ::WinIfExists;
79991
99490
  friend class ::WinImportHandler;
79992
99491
  friend class ::WinMacros;
79993
 
  friend class ::CMatchSyntax;
79994
 
  friend class ::ExtGnu;
 
99492
  friend class ::WinAsm;
 
99493
  friend class ::WinDeclSpecs;
 
99494
  friend class ::WinMemberExplSpec;
 
99495
  friend class ::WinTypeKeywords;
 
99496
  friend class ::WinFriend;
79995
99497
  friend class ::ExtAC;
79996
99498
  friend class ::ExtACBuilderCoupling;
79997
99499
  friend class ::ExtACSyntaxCoupling;
79998
99500
  friend class ::ExtACTree;
79999
99501
  friend class ::ExtACKeywords;
80000
 
  friend class ::WinAsm;
80001
 
  friend class ::WinDeclSpecs;
80002
 
  friend class ::WinMemberExplSpec;
80003
 
  friend class ::WinTypeKeywords;
 
99502
  friend class ::ExtGnu;
80004
99503
  friend class ::PragmaOnceUnitState;
80005
99504
  friend class ::PragmaOnce;
80006
 
  friend class ::CCExprResolve;
80007
 
  friend class ::CExprResolve;
 
99505
  friend class ::CMatchSyntax;
80008
99506
 
80009
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99507
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80010
99508
 
80011
99509
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
80012
99510
 
80013
99511
public:
80014
99512
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
80015
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
99513
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
99514
    AddSon (sons[2], cv); AddSon (sons[3], es); 
80016
99515
  }
 
99516
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80017
99517
  static const char *NodeId ();
 
99518
  /** Get the name of the node. Can be compared with NodeId(). */
80018
99519
  const char *NodeName () const { return NodeId (); }
 
99520
  /** Get the number of sons. */
80019
99521
  int Sons () const { return CTree::Sons (sons, 4); }
 
99522
  /** Get the n-th son.
 
99523
   *  \param n The index of the son.
 
99524
   *  \return The n-th son or NULL. */
80020
99525
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
80021
99526
  CTree *Declarator () const { return sons[0]; }
80022
99527
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
80023
99528
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
80024
99529
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
99530
  /** Replace a son.
 
99531
   *  \param old_son The son to replace.
 
99532
   *  \param new_son The new son. */
80025
99533
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80026
99534
    CTree::ReplaceSon (sons, 4, old_son, new_son);
80027
99535
  }
80028
99536
};
80029
99537
 
80030
99538
 
80031
 
#line 80032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99539
#line 99540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80032
99540
} // closed Puma
 
99541
class CCExprResolve;
 
99542
class CExprResolve;
80033
99543
class WinIfExists;
80034
99544
class WinImportHandler;
80035
99545
class WinMacros;
80036
 
class CMatchSyntax;
80037
 
class ExtGnu;
 
99546
class WinAsm;
 
99547
class WinDeclSpecs;
 
99548
class WinMemberExplSpec;
 
99549
class WinTypeKeywords;
 
99550
class WinFriend;
80038
99551
class ExtAC;
80039
99552
class ExtACBuilderCoupling;
80040
99553
class ExtACSyntaxCoupling;
80041
99554
class ExtACTree;
80042
99555
class ExtACKeywords;
80043
 
class WinAsm;
80044
 
class WinDeclSpecs;
80045
 
class WinMemberExplSpec;
80046
 
class WinTypeKeywords;
 
99556
class ExtGnu;
80047
99557
class PragmaOnceUnitState;
80048
99558
class PragmaOnce;
80049
 
class CCExprResolve;
80050
 
class CExprResolve;
 
99559
class CMatchSyntax;
80051
99560
namespace Puma {
80052
99561
 
80053
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99562
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80054
99563
class CT_RefDeclarator : public CT_Declarator {
80055
 
#line 80056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99564
#line 99565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99565
  friend class ::CCExprResolve;
 
99566
  friend class ::CExprResolve;
80056
99567
  friend class ::WinIfExists;
80057
99568
  friend class ::WinImportHandler;
80058
99569
  friend class ::WinMacros;
80059
 
  friend class ::CMatchSyntax;
80060
 
  friend class ::ExtGnu;
 
99570
  friend class ::WinAsm;
 
99571
  friend class ::WinDeclSpecs;
 
99572
  friend class ::WinMemberExplSpec;
 
99573
  friend class ::WinTypeKeywords;
 
99574
  friend class ::WinFriend;
80061
99575
  friend class ::ExtAC;
80062
99576
  friend class ::ExtACBuilderCoupling;
80063
99577
  friend class ::ExtACSyntaxCoupling;
80064
99578
  friend class ::ExtACTree;
80065
99579
  friend class ::ExtACKeywords;
80066
 
  friend class ::WinAsm;
80067
 
  friend class ::WinDeclSpecs;
80068
 
  friend class ::WinMemberExplSpec;
80069
 
  friend class ::WinTypeKeywords;
 
99580
  friend class ::ExtGnu;
80070
99581
  friend class ::PragmaOnceUnitState;
80071
99582
  friend class ::PragmaOnce;
80072
 
  friend class ::CCExprResolve;
80073
 
  friend class ::CExprResolve;
 
99583
  friend class ::CMatchSyntax;
80074
99584
 
80075
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99585
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80076
99586
 
80077
99587
  CTree *sons[2]; // ref, declarator
80078
99588
 
80079
99589
public:
80080
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
99590
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
99591
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80081
99592
  static const char *NodeId ();
 
99593
  /** Get the name of the node. Can be compared with NodeId(). */
80082
99594
  const char *NodeName () const { return NodeId (); }
 
99595
  /** Get the number of sons. */
80083
99596
  int Sons () const { return 2; }
 
99597
  /** Get the n-th son.
 
99598
   *  \param n The index of the son.
 
99599
   *  \return The n-th son or NULL. */
80084
99600
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
80085
99601
  CTree *Declarator () const { return sons[1]; }
 
99602
  /** Replace a son.
 
99603
   *  \param old_son The son to replace.
 
99604
   *  \param new_son The new son. */
80086
99605
  void ReplaceSon (CTree *old_son, CTree *new_son) {
80087
99606
    CTree::ReplaceSon (sons, 2, old_son, new_son);
80088
99607
  }
80089
99608
};
80090
99609
 
80091
99610
 
80092
 
#line 80093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99611
#line 99612 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80093
99612
} // closed Puma
 
99613
class CCExprResolve;
 
99614
class CExprResolve;
80094
99615
class WinIfExists;
80095
99616
class WinImportHandler;
80096
99617
class WinMacros;
80097
 
class CMatchSyntax;
80098
 
class ExtGnu;
 
99618
class WinAsm;
 
99619
class WinDeclSpecs;
 
99620
class WinMemberExplSpec;
 
99621
class WinTypeKeywords;
 
99622
class WinFriend;
80099
99623
class ExtAC;
80100
99624
class ExtACBuilderCoupling;
80101
99625
class ExtACSyntaxCoupling;
80102
99626
class ExtACTree;
80103
99627
class ExtACKeywords;
80104
 
class WinAsm;
80105
 
class WinDeclSpecs;
80106
 
class WinMemberExplSpec;
80107
 
class WinTypeKeywords;
 
99628
class ExtGnu;
80108
99629
class PragmaOnceUnitState;
80109
99630
class PragmaOnce;
80110
 
class CCExprResolve;
80111
 
class CExprResolve;
 
99631
class CMatchSyntax;
80112
99632
namespace Puma {
80113
99633
 
80114
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99634
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80115
99635
class CT_PtrDeclarator : public CT_Declarator {
80116
 
#line 80117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99636
#line 99637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99637
  friend class ::CCExprResolve;
 
99638
  friend class ::CExprResolve;
80117
99639
  friend class ::WinIfExists;
80118
99640
  friend class ::WinImportHandler;
80119
99641
  friend class ::WinMacros;
80120
 
  friend class ::CMatchSyntax;
80121
 
  friend class ::ExtGnu;
 
99642
  friend class ::WinAsm;
 
99643
  friend class ::WinDeclSpecs;
 
99644
  friend class ::WinMemberExplSpec;
 
99645
  friend class ::WinTypeKeywords;
 
99646
  friend class ::WinFriend;
80122
99647
  friend class ::ExtAC;
80123
99648
  friend class ::ExtACBuilderCoupling;
80124
99649
  friend class ::ExtACSyntaxCoupling;
80125
99650
  friend class ::ExtACTree;
80126
99651
  friend class ::ExtACKeywords;
80127
 
  friend class ::WinAsm;
80128
 
  friend class ::WinDeclSpecs;
80129
 
  friend class ::WinMemberExplSpec;
80130
 
  friend class ::WinTypeKeywords;
 
99652
  friend class ::ExtGnu;
80131
99653
  friend class ::PragmaOnceUnitState;
80132
99654
  friend class ::PragmaOnce;
80133
 
  friend class ::CCExprResolve;
80134
 
  friend class ::CExprResolve;
 
99655
  friend class ::CMatchSyntax;
80135
99656
 
80136
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99657
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80137
99658
 
80138
99659
  CTree *sons[3]; // ptr, cv_quals, declarator
80139
99660
 
80140
99661
public:
80141
99662
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
80142
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
99663
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
80143
99664
  }
 
99665
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80144
99666
  static const char *NodeId ();
 
99667
  /** Get the name of the node. Can be compared with NodeId(). */
80145
99668
  const char *NodeName () const { return NodeId (); }
 
99669
  /** Get the number of sons. */
80146
99670
  int Sons () const { return CTree::Sons (sons, 3); }
 
99671
  /** Get the n-th son.
 
99672
   *  \param n The index of the son.
 
99673
   *  \return The n-th son or NULL. */
80147
99674
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
80148
99675
  CTree *Declarator () const { return sons[2]; }
80149
99676
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
99677
  /** Replace a son.
 
99678
   *  \param old_son The son to replace.
 
99679
   *  \param new_son The new son. */
80150
99680
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80151
99681
    CTree::ReplaceSon (sons, 3, old_son, new_son);
80152
99682
  }
80153
99683
};
80154
99684
 
80155
99685
 
80156
 
#line 80157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99686
#line 99687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80157
99687
} // closed Puma
 
99688
class CCExprResolve;
 
99689
class CExprResolve;
80158
99690
class WinIfExists;
80159
99691
class WinImportHandler;
80160
99692
class WinMacros;
80161
 
class CMatchSyntax;
80162
 
class ExtGnu;
 
99693
class WinAsm;
 
99694
class WinDeclSpecs;
 
99695
class WinMemberExplSpec;
 
99696
class WinTypeKeywords;
 
99697
class WinFriend;
80163
99698
class ExtAC;
80164
99699
class ExtACBuilderCoupling;
80165
99700
class ExtACSyntaxCoupling;
80166
99701
class ExtACTree;
80167
99702
class ExtACKeywords;
80168
 
class WinAsm;
80169
 
class WinDeclSpecs;
80170
 
class WinMemberExplSpec;
80171
 
class WinTypeKeywords;
 
99703
class ExtGnu;
80172
99704
class PragmaOnceUnitState;
80173
99705
class PragmaOnce;
80174
 
class CCExprResolve;
80175
 
class CExprResolve;
 
99706
class CMatchSyntax;
80176
99707
namespace Puma {
80177
99708
 
80178
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99709
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80179
99710
class CT_MembPtrDeclarator : public CT_Declarator {
80180
 
#line 80181 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99711
#line 99712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99712
  friend class ::CCExprResolve;
 
99713
  friend class ::CExprResolve;
80181
99714
  friend class ::WinIfExists;
80182
99715
  friend class ::WinImportHandler;
80183
99716
  friend class ::WinMacros;
80184
 
  friend class ::CMatchSyntax;
80185
 
  friend class ::ExtGnu;
 
99717
  friend class ::WinAsm;
 
99718
  friend class ::WinDeclSpecs;
 
99719
  friend class ::WinMemberExplSpec;
 
99720
  friend class ::WinTypeKeywords;
 
99721
  friend class ::WinFriend;
80186
99722
  friend class ::ExtAC;
80187
99723
  friend class ::ExtACBuilderCoupling;
80188
99724
  friend class ::ExtACSyntaxCoupling;
80189
99725
  friend class ::ExtACTree;
80190
99726
  friend class ::ExtACKeywords;
80191
 
  friend class ::WinAsm;
80192
 
  friend class ::WinDeclSpecs;
80193
 
  friend class ::WinMemberExplSpec;
80194
 
  friend class ::WinTypeKeywords;
 
99727
  friend class ::ExtGnu;
80195
99728
  friend class ::PragmaOnceUnitState;
80196
99729
  friend class ::PragmaOnce;
80197
 
  friend class ::CCExprResolve;
80198
 
  friend class ::CExprResolve;
 
99730
  friend class ::CMatchSyntax;
80199
99731
 
80200
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99732
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80201
99733
 
80202
99734
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
80203
99735
 
80204
99736
public:
80205
99737
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
80206
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
99738
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
99739
    AddSon (sons[3], q); AddSon (sons[4], d); 
80207
99740
  }
 
99741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80208
99742
  static const char *NodeId ();
 
99743
  /** Get the name of the node. Can be compared with NodeId(). */
80209
99744
  const char *NodeName () const { return NodeId (); }
 
99745
  /** Get the number of sons. */
80210
99746
  int Sons () const { return CTree::Sons (sons, 5); }
 
99747
  /** Get the n-th son.
 
99748
   *  \param n The index of the son.
 
99749
   *  \return The n-th son or NULL. */
80211
99750
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
80212
99751
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
80213
99752
  CTree *Declarator () const { return sons[4]; }
80214
99753
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
99754
  /** Replace a son.
 
99755
   *  \param old_son The son to replace.
 
99756
   *  \param new_son The new son. */
80215
99757
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80216
99758
    CTree::ReplaceSon (sons, 5, old_son, new_son);
80217
99759
  }
80218
99760
};
80219
99761
 
80220
99762
 
80221
 
#line 80222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99763
#line 99764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80222
99764
} // closed Puma
 
99765
class CCExprResolve;
 
99766
class CExprResolve;
80223
99767
class WinIfExists;
80224
99768
class WinImportHandler;
80225
99769
class WinMacros;
80226
 
class CMatchSyntax;
80227
 
class ExtGnu;
 
99770
class WinAsm;
 
99771
class WinDeclSpecs;
 
99772
class WinMemberExplSpec;
 
99773
class WinTypeKeywords;
 
99774
class WinFriend;
80228
99775
class ExtAC;
80229
99776
class ExtACBuilderCoupling;
80230
99777
class ExtACSyntaxCoupling;
80231
99778
class ExtACTree;
80232
99779
class ExtACKeywords;
80233
 
class WinAsm;
80234
 
class WinDeclSpecs;
80235
 
class WinMemberExplSpec;
80236
 
class WinTypeKeywords;
 
99780
class ExtGnu;
80237
99781
class PragmaOnceUnitState;
80238
99782
class PragmaOnce;
80239
 
class CCExprResolve;
80240
 
class CExprResolve;
 
99783
class CMatchSyntax;
80241
99784
namespace Puma {
80242
99785
 
80243
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99786
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80244
99787
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
80245
 
#line 80246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99788
#line 99789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99789
  friend class ::CCExprResolve;
 
99790
  friend class ::CExprResolve;
80246
99791
  friend class ::WinIfExists;
80247
99792
  friend class ::WinImportHandler;
80248
99793
  friend class ::WinMacros;
80249
 
  friend class ::CMatchSyntax;
80250
 
  friend class ::ExtGnu;
 
99794
  friend class ::WinAsm;
 
99795
  friend class ::WinDeclSpecs;
 
99796
  friend class ::WinMemberExplSpec;
 
99797
  friend class ::WinTypeKeywords;
 
99798
  friend class ::WinFriend;
80251
99799
  friend class ::ExtAC;
80252
99800
  friend class ::ExtACBuilderCoupling;
80253
99801
  friend class ::ExtACSyntaxCoupling;
80254
99802
  friend class ::ExtACTree;
80255
99803
  friend class ::ExtACKeywords;
80256
 
  friend class ::WinAsm;
80257
 
  friend class ::WinDeclSpecs;
80258
 
  friend class ::WinMemberExplSpec;
80259
 
  friend class ::WinTypeKeywords;
 
99804
  friend class ::ExtGnu;
80260
99805
  friend class ::PragmaOnceUnitState;
80261
99806
  friend class ::PragmaOnce;
80262
 
  friend class ::CCExprResolve;
80263
 
  friend class ::CExprResolve;
 
99807
  friend class ::CMatchSyntax;
80264
99808
 
80265
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99809
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80266
99810
 
80267
99811
  CTree *sons[3]; // declarator, colon, expr
80268
99812
 
80269
99813
public:
80270
99814
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
80271
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
99815
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
80272
99816
  }
 
99817
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80273
99818
  static const char *NodeId ();
 
99819
  /** Get the name of the node. Can be compared with NodeId(). */
80274
99820
  const char *NodeName () const { return NodeId (); }
 
99821
  /** Get the number of sons. */
80275
99822
  int Sons () const { return CTree::Sons (sons, 3); }
 
99823
  /** Get the n-th son.
 
99824
   *  \param n The index of the son.
 
99825
   *  \return The n-th son or NULL. */
80276
99826
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
80277
99827
  CTree *Declarator () const { return sons[0]; }
80278
99828
  CTree *Expr () const { return sons[2]; }
80279
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
99829
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
80280
99830
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
99831
  /** Replace a son.
 
99832
   *  \param old_son The son to replace.
 
99833
   *  \param new_son The new son. */
80281
99834
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80282
99835
    CTree::ReplaceSon (sons, 3, old_son, new_son);
80283
99836
  }
80290
99843
/*****************************************************************************/
80291
99844
 
80292
99845
 
80293
 
#line 80294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99846
#line 99847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80294
99847
} // closed Puma
 
99848
class CCExprResolve;
 
99849
class CExprResolve;
80295
99850
class WinIfExists;
80296
99851
class WinImportHandler;
80297
99852
class WinMacros;
80298
 
class CMatchSyntax;
80299
 
class ExtGnu;
 
99853
class WinAsm;
 
99854
class WinDeclSpecs;
 
99855
class WinMemberExplSpec;
 
99856
class WinTypeKeywords;
 
99857
class WinFriend;
80300
99858
class ExtAC;
80301
99859
class ExtACBuilderCoupling;
80302
99860
class ExtACSyntaxCoupling;
80303
99861
class ExtACTree;
80304
99862
class ExtACKeywords;
80305
 
class WinAsm;
80306
 
class WinDeclSpecs;
80307
 
class WinMemberExplSpec;
80308
 
class WinTypeKeywords;
 
99863
class ExtGnu;
80309
99864
class PragmaOnceUnitState;
80310
99865
class PragmaOnce;
80311
 
class CCExprResolve;
80312
 
class CExprResolve;
 
99866
class CMatchSyntax;
80313
99867
namespace Puma {
80314
99868
 
80315
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99869
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80316
99870
class CT_Statement : public CTree {
80317
 
#line 80318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99871
#line 99872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99872
  friend class ::CCExprResolve;
 
99873
  friend class ::CExprResolve;
80318
99874
  friend class ::WinIfExists;
80319
99875
  friend class ::WinImportHandler;
80320
99876
  friend class ::WinMacros;
80321
 
  friend class ::CMatchSyntax;
80322
 
  friend class ::ExtGnu;
 
99877
  friend class ::WinAsm;
 
99878
  friend class ::WinDeclSpecs;
 
99879
  friend class ::WinMemberExplSpec;
 
99880
  friend class ::WinTypeKeywords;
 
99881
  friend class ::WinFriend;
80323
99882
  friend class ::ExtAC;
80324
99883
  friend class ::ExtACBuilderCoupling;
80325
99884
  friend class ::ExtACSyntaxCoupling;
80326
99885
  friend class ::ExtACTree;
80327
99886
  friend class ::ExtACKeywords;
80328
 
  friend class ::WinAsm;
80329
 
  friend class ::WinDeclSpecs;
80330
 
  friend class ::WinMemberExplSpec;
80331
 
  friend class ::WinTypeKeywords;
 
99887
  friend class ::ExtGnu;
80332
99888
  friend class ::PragmaOnceUnitState;
80333
99889
  friend class ::PragmaOnce;
80334
 
  friend class ::CCExprResolve;
80335
 
  friend class ::CExprResolve;
 
99890
  friend class ::CMatchSyntax;
80336
99891
 
80337
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99892
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80338
99893
 
80339
99894
protected:
80340
99895
  CT_Statement () {}
 
99896
  virtual CT_Statement *IsStatement () { return this; }
80341
99897
};
80342
99898
 
80343
99899
 
80344
 
#line 80345 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99900
#line 99901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80345
99901
} // closed Puma
 
99902
class CCExprResolve;
 
99903
class CExprResolve;
80346
99904
class WinIfExists;
80347
99905
class WinImportHandler;
80348
99906
class WinMacros;
80349
 
class CMatchSyntax;
80350
 
class ExtGnu;
 
99907
class WinAsm;
 
99908
class WinDeclSpecs;
 
99909
class WinMemberExplSpec;
 
99910
class WinTypeKeywords;
 
99911
class WinFriend;
80351
99912
class ExtAC;
80352
99913
class ExtACBuilderCoupling;
80353
99914
class ExtACSyntaxCoupling;
80354
99915
class ExtACTree;
80355
99916
class ExtACKeywords;
80356
 
class WinAsm;
80357
 
class WinDeclSpecs;
80358
 
class WinMemberExplSpec;
80359
 
class WinTypeKeywords;
 
99917
class ExtGnu;
80360
99918
class PragmaOnceUnitState;
80361
99919
class PragmaOnce;
80362
 
class CCExprResolve;
80363
 
class CExprResolve;
 
99920
class CMatchSyntax;
80364
99921
namespace Puma {
80365
99922
 
80366
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99923
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80367
99924
class CT_LabelStmt : public CT_Statement {
80368
 
#line 80369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99925
#line 99926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
99926
  friend class ::CCExprResolve;
 
99927
  friend class ::CExprResolve;
80369
99928
  friend class ::WinIfExists;
80370
99929
  friend class ::WinImportHandler;
80371
99930
  friend class ::WinMacros;
80372
 
  friend class ::CMatchSyntax;
80373
 
  friend class ::ExtGnu;
 
99931
  friend class ::WinAsm;
 
99932
  friend class ::WinDeclSpecs;
 
99933
  friend class ::WinMemberExplSpec;
 
99934
  friend class ::WinTypeKeywords;
 
99935
  friend class ::WinFriend;
80374
99936
  friend class ::ExtAC;
80375
99937
  friend class ::ExtACBuilderCoupling;
80376
99938
  friend class ::ExtACSyntaxCoupling;
80377
99939
  friend class ::ExtACTree;
80378
99940
  friend class ::ExtACKeywords;
80379
 
  friend class ::WinAsm;
80380
 
  friend class ::WinDeclSpecs;
80381
 
  friend class ::WinMemberExplSpec;
80382
 
  friend class ::WinTypeKeywords;
 
99941
  friend class ::ExtGnu;
80383
99942
  friend class ::PragmaOnceUnitState;
80384
99943
  friend class ::PragmaOnce;
80385
 
  friend class ::CCExprResolve;
80386
 
  friend class ::CExprResolve;
 
99944
  friend class ::CMatchSyntax;
80387
99945
 
80388
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99946
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80389
99947
 
80390
99948
  CTree *sons[3]; // id, colon, stmt
80391
99949
 
80392
99950
public:
80393
99951
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
80394
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
99952
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
80395
99953
  }
 
99954
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80396
99955
  static const char *NodeId ();
 
99956
  /** Get the name of the node. Can be compared with NodeId(). */
80397
99957
  const char *NodeName () const { return NodeId (); }
 
99958
  /** Get the number of sons. */
80398
99959
  int Sons () const { return 3; }
 
99960
  /** Get the n-th son.
 
99961
   *  \param n The index of the son.
 
99962
   *  \return The n-th son or NULL. */
80399
99963
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
80400
99964
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
80401
99965
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
99966
  /** Replace a son.
 
99967
   *  \param old_son The son to replace.
 
99968
   *  \param new_son The new son. */
80402
99969
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80403
99970
    CTree::ReplaceSon (sons, 3, old_son, new_son);
80404
99971
  }
80405
99972
};
80406
99973
 
80407
99974
 
80408
 
#line 80409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
99975
#line 99976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80409
99976
} // closed Puma
 
99977
class CCExprResolve;
 
99978
class CExprResolve;
80410
99979
class WinIfExists;
80411
99980
class WinImportHandler;
80412
99981
class WinMacros;
80413
 
class CMatchSyntax;
80414
 
class ExtGnu;
 
99982
class WinAsm;
 
99983
class WinDeclSpecs;
 
99984
class WinMemberExplSpec;
 
99985
class WinTypeKeywords;
 
99986
class WinFriend;
80415
99987
class ExtAC;
80416
99988
class ExtACBuilderCoupling;
80417
99989
class ExtACSyntaxCoupling;
80418
99990
class ExtACTree;
80419
99991
class ExtACKeywords;
80420
 
class WinAsm;
80421
 
class WinDeclSpecs;
80422
 
class WinMemberExplSpec;
80423
 
class WinTypeKeywords;
 
99992
class ExtGnu;
80424
99993
class PragmaOnceUnitState;
80425
99994
class PragmaOnce;
80426
 
class CCExprResolve;
80427
 
class CExprResolve;
 
99995
class CMatchSyntax;
80428
99996
namespace Puma {
80429
99997
 
80430
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
99998
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80431
99999
class CT_DefaultStmt : public CT_Statement {
80432
 
#line 80433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100000
#line 100001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100001
  friend class ::CCExprResolve;
 
100002
  friend class ::CExprResolve;
80433
100003
  friend class ::WinIfExists;
80434
100004
  friend class ::WinImportHandler;
80435
100005
  friend class ::WinMacros;
80436
 
  friend class ::CMatchSyntax;
80437
 
  friend class ::ExtGnu;
 
100006
  friend class ::WinAsm;
 
100007
  friend class ::WinDeclSpecs;
 
100008
  friend class ::WinMemberExplSpec;
 
100009
  friend class ::WinTypeKeywords;
 
100010
  friend class ::WinFriend;
80438
100011
  friend class ::ExtAC;
80439
100012
  friend class ::ExtACBuilderCoupling;
80440
100013
  friend class ::ExtACSyntaxCoupling;
80441
100014
  friend class ::ExtACTree;
80442
100015
  friend class ::ExtACKeywords;
80443
 
  friend class ::WinAsm;
80444
 
  friend class ::WinDeclSpecs;
80445
 
  friend class ::WinMemberExplSpec;
80446
 
  friend class ::WinTypeKeywords;
 
100016
  friend class ::ExtGnu;
80447
100017
  friend class ::PragmaOnceUnitState;
80448
100018
  friend class ::PragmaOnce;
80449
 
  friend class ::CCExprResolve;
80450
 
  friend class ::CExprResolve;
 
100019
  friend class ::CMatchSyntax;
80451
100020
 
80452
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100021
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80453
100022
 
80454
100023
  CTree *sons[3]; // keyword, colon, stmt
80455
100024
 
80456
100025
public:
80457
100026
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
80458
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
100027
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
80459
100028
  }
 
100029
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80460
100030
  static const char *NodeId ();
 
100031
  /** Get the name of the node. Can be compared with NodeId(). */
80461
100032
  const char *NodeName () const { return NodeId (); }
 
100033
  /** Get the number of sons. */
80462
100034
  int Sons () const { return 3; }
 
100035
  /** Get the n-th son.
 
100036
   *  \param n The index of the son.
 
100037
   *  \return The n-th son or NULL. */
80463
100038
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
80464
100039
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
100040
  /** Replace a son.
 
100041
   *  \param old_son The son to replace.
 
100042
   *  \param new_son The new son. */
80465
100043
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80466
100044
    CTree::ReplaceSon (sons, 3, old_son, new_son);
80467
100045
  }
80468
100046
};
80469
100047
 
80470
100048
 
80471
 
#line 80472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100049
#line 100050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80472
100050
} // closed Puma
 
100051
class CCExprResolve;
 
100052
class CExprResolve;
80473
100053
class WinIfExists;
80474
100054
class WinImportHandler;
80475
100055
class WinMacros;
80476
 
class CMatchSyntax;
80477
 
class ExtGnu;
 
100056
class WinAsm;
 
100057
class WinDeclSpecs;
 
100058
class WinMemberExplSpec;
 
100059
class WinTypeKeywords;
 
100060
class WinFriend;
80478
100061
class ExtAC;
80479
100062
class ExtACBuilderCoupling;
80480
100063
class ExtACSyntaxCoupling;
80481
100064
class ExtACTree;
80482
100065
class ExtACKeywords;
80483
 
class WinAsm;
80484
 
class WinDeclSpecs;
80485
 
class WinMemberExplSpec;
80486
 
class WinTypeKeywords;
 
100066
class ExtGnu;
80487
100067
class PragmaOnceUnitState;
80488
100068
class PragmaOnce;
80489
 
class CCExprResolve;
80490
 
class CExprResolve;
 
100069
class CMatchSyntax;
80491
100070
namespace Puma {
80492
100071
 
80493
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100072
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80494
100073
class CT_TryStmt : public CT_Statement {
80495
 
#line 80496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100074
#line 100075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100075
  friend class ::CCExprResolve;
 
100076
  friend class ::CExprResolve;
80496
100077
  friend class ::WinIfExists;
80497
100078
  friend class ::WinImportHandler;
80498
100079
  friend class ::WinMacros;
80499
 
  friend class ::CMatchSyntax;
80500
 
  friend class ::ExtGnu;
 
100080
  friend class ::WinAsm;
 
100081
  friend class ::WinDeclSpecs;
 
100082
  friend class ::WinMemberExplSpec;
 
100083
  friend class ::WinTypeKeywords;
 
100084
  friend class ::WinFriend;
80501
100085
  friend class ::ExtAC;
80502
100086
  friend class ::ExtACBuilderCoupling;
80503
100087
  friend class ::ExtACSyntaxCoupling;
80504
100088
  friend class ::ExtACTree;
80505
100089
  friend class ::ExtACKeywords;
80506
 
  friend class ::WinAsm;
80507
 
  friend class ::WinDeclSpecs;
80508
 
  friend class ::WinMemberExplSpec;
80509
 
  friend class ::WinTypeKeywords;
 
100090
  friend class ::ExtGnu;
80510
100091
  friend class ::PragmaOnceUnitState;
80511
100092
  friend class ::PragmaOnce;
80512
 
  friend class ::CCExprResolve;
80513
 
  friend class ::CExprResolve;
 
100093
  friend class ::CMatchSyntax;
80514
100094
 
80515
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100095
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80516
100096
 
80517
100097
  CTree *sons[3]; // try, stmt, handlers
80518
100098
 
80519
100099
public:
80520
100100
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
80521
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
100101
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
80522
100102
  }
 
100103
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80523
100104
  static const char *NodeId ();
 
100105
  /** Get the name of the node. Can be compared with NodeId(). */
80524
100106
  const char *NodeName () const { return NodeId (); }
 
100107
  /** Get the number of sons. */
80525
100108
  int Sons () const { return 3; }
 
100109
  /** Get the n-th son.
 
100110
   *  \param n The index of the son.
 
100111
   *  \return The n-th son or NULL. */
80526
100112
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
80527
100113
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
80528
100114
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
100115
  /** Replace a son.
 
100116
   *  \param old_son The son to replace.
 
100117
   *  \param new_son The new son. */
80529
100118
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80530
100119
    CTree::ReplaceSon (sons, 3, old_son, new_son);
80531
100120
  }
80532
100121
};
80533
100122
 
80534
100123
 
80535
 
#line 80536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100124
#line 100125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80536
100125
} // closed Puma
 
100126
class CCExprResolve;
 
100127
class CExprResolve;
80537
100128
class WinIfExists;
80538
100129
class WinImportHandler;
80539
100130
class WinMacros;
80540
 
class CMatchSyntax;
80541
 
class ExtGnu;
 
100131
class WinAsm;
 
100132
class WinDeclSpecs;
 
100133
class WinMemberExplSpec;
 
100134
class WinTypeKeywords;
 
100135
class WinFriend;
80542
100136
class ExtAC;
80543
100137
class ExtACBuilderCoupling;
80544
100138
class ExtACSyntaxCoupling;
80545
100139
class ExtACTree;
80546
100140
class ExtACKeywords;
80547
 
class WinAsm;
80548
 
class WinDeclSpecs;
80549
 
class WinMemberExplSpec;
80550
 
class WinTypeKeywords;
 
100141
class ExtGnu;
80551
100142
class PragmaOnceUnitState;
80552
100143
class PragmaOnce;
80553
 
class CCExprResolve;
80554
 
class CExprResolve;
 
100144
class CMatchSyntax;
80555
100145
namespace Puma {
80556
100146
 
80557
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100147
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80558
100148
class CT_CaseStmt : public CT_Statement {
80559
 
#line 80560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100149
#line 100150 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100150
  friend class ::CCExprResolve;
 
100151
  friend class ::CExprResolve;
80560
100152
  friend class ::WinIfExists;
80561
100153
  friend class ::WinImportHandler;
80562
100154
  friend class ::WinMacros;
80563
 
  friend class ::CMatchSyntax;
80564
 
  friend class ::ExtGnu;
 
100155
  friend class ::WinAsm;
 
100156
  friend class ::WinDeclSpecs;
 
100157
  friend class ::WinMemberExplSpec;
 
100158
  friend class ::WinTypeKeywords;
 
100159
  friend class ::WinFriend;
80565
100160
  friend class ::ExtAC;
80566
100161
  friend class ::ExtACBuilderCoupling;
80567
100162
  friend class ::ExtACSyntaxCoupling;
80568
100163
  friend class ::ExtACTree;
80569
100164
  friend class ::ExtACKeywords;
80570
 
  friend class ::WinAsm;
80571
 
  friend class ::WinDeclSpecs;
80572
 
  friend class ::WinMemberExplSpec;
80573
 
  friend class ::WinTypeKeywords;
 
100165
  friend class ::ExtGnu;
80574
100166
  friend class ::PragmaOnceUnitState;
80575
100167
  friend class ::PragmaOnce;
80576
 
  friend class ::CCExprResolve;
80577
 
  friend class ::CExprResolve;
 
100168
  friend class ::CMatchSyntax;
80578
100169
 
80579
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100170
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80580
100171
 
80581
100172
  CTree *sons[4]; // keyword, expr, colon, stmt
80582
100173
 
80583
100174
public:
80584
100175
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
80585
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
100176
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
100177
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
80586
100178
  }
 
100179
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80587
100180
  static const char *NodeId ();
 
100181
  /** Get the name of the node. Can be compared with NodeId(). */
80588
100182
  const char *NodeName () const { return NodeId (); }
 
100183
  /** Get the number of sons. */
80589
100184
  int Sons () const { return 4; }
 
100185
  /** Get the n-th son.
 
100186
   *  \param n The index of the son.
 
100187
   *  \return The n-th son or NULL. */
80590
100188
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
80591
100189
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
80592
100190
  CTree *Expr () const { return sons[1]; }
 
100191
  /** Replace a son.
 
100192
   *  \param old_son The son to replace.
 
100193
   *  \param new_son The new son. */
80593
100194
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80594
100195
    CTree::ReplaceSon (sons, 4, old_son, new_son);
80595
100196
  }
80596
100197
};
80597
100198
 
80598
100199
 
80599
 
#line 80600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100200
#line 100201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80600
100201
} // closed Puma
 
100202
class CCExprResolve;
 
100203
class CExprResolve;
80601
100204
class WinIfExists;
80602
100205
class WinImportHandler;
80603
100206
class WinMacros;
80604
 
class CMatchSyntax;
80605
 
class ExtGnu;
 
100207
class WinAsm;
 
100208
class WinDeclSpecs;
 
100209
class WinMemberExplSpec;
 
100210
class WinTypeKeywords;
 
100211
class WinFriend;
80606
100212
class ExtAC;
80607
100213
class ExtACBuilderCoupling;
80608
100214
class ExtACSyntaxCoupling;
80609
100215
class ExtACTree;
80610
100216
class ExtACKeywords;
80611
 
class WinAsm;
80612
 
class WinDeclSpecs;
80613
 
class WinMemberExplSpec;
80614
 
class WinTypeKeywords;
 
100217
class ExtGnu;
80615
100218
class PragmaOnceUnitState;
80616
100219
class PragmaOnce;
80617
 
class CCExprResolve;
80618
 
class CExprResolve;
 
100220
class CMatchSyntax;
80619
100221
namespace Puma {
80620
100222
 
80621
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100223
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80622
100224
class CT_ExprStmt : public CT_Statement {
80623
 
#line 80624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100225
#line 100226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100226
  friend class ::CCExprResolve;
 
100227
  friend class ::CExprResolve;
80624
100228
  friend class ::WinIfExists;
80625
100229
  friend class ::WinImportHandler;
80626
100230
  friend class ::WinMacros;
80627
 
  friend class ::CMatchSyntax;
80628
 
  friend class ::ExtGnu;
 
100231
  friend class ::WinAsm;
 
100232
  friend class ::WinDeclSpecs;
 
100233
  friend class ::WinMemberExplSpec;
 
100234
  friend class ::WinTypeKeywords;
 
100235
  friend class ::WinFriend;
80629
100236
  friend class ::ExtAC;
80630
100237
  friend class ::ExtACBuilderCoupling;
80631
100238
  friend class ::ExtACSyntaxCoupling;
80632
100239
  friend class ::ExtACTree;
80633
100240
  friend class ::ExtACKeywords;
80634
 
  friend class ::WinAsm;
80635
 
  friend class ::WinDeclSpecs;
80636
 
  friend class ::WinMemberExplSpec;
80637
 
  friend class ::WinTypeKeywords;
 
100241
  friend class ::ExtGnu;
80638
100242
  friend class ::PragmaOnceUnitState;
80639
100243
  friend class ::PragmaOnce;
80640
 
  friend class ::CCExprResolve;
80641
 
  friend class ::CExprResolve;
 
100244
  friend class ::CMatchSyntax;
80642
100245
 
80643
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100246
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80644
100247
 
80645
100248
  CTree *sons[2]; // expr, semi_colon
80646
100249
 
80647
100250
public:
80648
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
100251
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
100252
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80649
100253
  static const char *NodeId ();
 
100254
  /** Get the name of the node. Can be compared with NodeId(). */
80650
100255
  const char *NodeName () const { return NodeId (); }
 
100256
  /** Get the number of sons. */
80651
100257
  int Sons () const { return CTree::Sons (sons, 2); }
 
100258
  /** Get the n-th son.
 
100259
   *  \param n The index of the son.
 
100260
   *  \return The n-th son or NULL. */
80652
100261
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
80653
100262
  CTree *Expr () const { return sons[0]; }
 
100263
  /** Replace a son.
 
100264
   *  \param old_son The son to replace.
 
100265
   *  \param new_son The new son. */
80654
100266
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80655
100267
    CTree::ReplaceSon (sons, 2, old_son, new_son);
80656
100268
  }
80657
100269
};
80658
100270
 
80659
100271
 
80660
 
#line 80661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100272
#line 100273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80661
100273
} // closed Puma
 
100274
class CCExprResolve;
 
100275
class CExprResolve;
80662
100276
class WinIfExists;
80663
100277
class WinImportHandler;
80664
100278
class WinMacros;
80665
 
class CMatchSyntax;
80666
 
class ExtGnu;
 
100279
class WinAsm;
 
100280
class WinDeclSpecs;
 
100281
class WinMemberExplSpec;
 
100282
class WinTypeKeywords;
 
100283
class WinFriend;
80667
100284
class ExtAC;
80668
100285
class ExtACBuilderCoupling;
80669
100286
class ExtACSyntaxCoupling;
80670
100287
class ExtACTree;
80671
100288
class ExtACKeywords;
80672
 
class WinAsm;
80673
 
class WinDeclSpecs;
80674
 
class WinMemberExplSpec;
80675
 
class WinTypeKeywords;
 
100289
class ExtGnu;
80676
100290
class PragmaOnceUnitState;
80677
100291
class PragmaOnce;
80678
 
class CCExprResolve;
80679
 
class CExprResolve;
 
100292
class CMatchSyntax;
80680
100293
namespace Puma {
80681
100294
 
80682
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100295
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80683
100296
class CT_DeclStmt : public CT_Statement {
80684
 
#line 80685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100297
#line 100298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100298
  friend class ::CCExprResolve;
 
100299
  friend class ::CExprResolve;
80685
100300
  friend class ::WinIfExists;
80686
100301
  friend class ::WinImportHandler;
80687
100302
  friend class ::WinMacros;
80688
 
  friend class ::CMatchSyntax;
80689
 
  friend class ::ExtGnu;
 
100303
  friend class ::WinAsm;
 
100304
  friend class ::WinDeclSpecs;
 
100305
  friend class ::WinMemberExplSpec;
 
100306
  friend class ::WinTypeKeywords;
 
100307
  friend class ::WinFriend;
80690
100308
  friend class ::ExtAC;
80691
100309
  friend class ::ExtACBuilderCoupling;
80692
100310
  friend class ::ExtACSyntaxCoupling;
80693
100311
  friend class ::ExtACTree;
80694
100312
  friend class ::ExtACKeywords;
80695
 
  friend class ::WinAsm;
80696
 
  friend class ::WinDeclSpecs;
80697
 
  friend class ::WinMemberExplSpec;
80698
 
  friend class ::WinTypeKeywords;
 
100313
  friend class ::ExtGnu;
80699
100314
  friend class ::PragmaOnceUnitState;
80700
100315
  friend class ::PragmaOnce;
80701
 
  friend class ::CCExprResolve;
80702
 
  friend class ::CExprResolve;
 
100316
  friend class ::CMatchSyntax;
80703
100317
 
80704
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100318
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80705
100319
 
80706
100320
  CTree *_decl;
80707
100321
 
80708
100322
public:
80709
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
100323
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
100324
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80710
100325
  static const char *NodeId ();
 
100326
  /** Get the name of the node. Can be compared with NodeId(). */
80711
100327
  const char *NodeName () const { return NodeId (); }
 
100328
  /** Get the number of sons. */
80712
100329
  int Sons () const { return 1; }
 
100330
  /** Get the n-th son.
 
100331
   *  \param n The index of the son.
 
100332
   *  \return The n-th son or NULL. */
80713
100333
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
100334
  /** Replace a son.
 
100335
   *  \param old_son The son to replace.
 
100336
   *  \param new_son The new son. */
80714
100337
  void ReplaceSon (CTree *old_son, CTree *new_son) 
80715
 
   { if (old_son == _decl) _decl = new_son; }
 
100338
   { CTree::ReplaceSon (_decl, old_son, new_son); }
80716
100339
};
80717
100340
 
80718
100341
 
80719
 
#line 80720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100342
#line 100343 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80720
100343
} // closed Puma
 
100344
class CCExprResolve;
 
100345
class CExprResolve;
80721
100346
class WinIfExists;
80722
100347
class WinImportHandler;
80723
100348
class WinMacros;
80724
 
class CMatchSyntax;
80725
 
class ExtGnu;
 
100349
class WinAsm;
 
100350
class WinDeclSpecs;
 
100351
class WinMemberExplSpec;
 
100352
class WinTypeKeywords;
 
100353
class WinFriend;
80726
100354
class ExtAC;
80727
100355
class ExtACBuilderCoupling;
80728
100356
class ExtACSyntaxCoupling;
80729
100357
class ExtACTree;
80730
100358
class ExtACKeywords;
80731
 
class WinAsm;
80732
 
class WinDeclSpecs;
80733
 
class WinMemberExplSpec;
80734
 
class WinTypeKeywords;
 
100359
class ExtGnu;
80735
100360
class PragmaOnceUnitState;
80736
100361
class PragmaOnce;
80737
 
class CCExprResolve;
80738
 
class CExprResolve;
 
100362
class CMatchSyntax;
80739
100363
namespace Puma {
80740
100364
 
80741
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100365
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80742
100366
class CT_SwitchStmt : public CT_Statement, public CSemScope {
80743
 
#line 80744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100367
#line 100368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100368
  friend class ::CCExprResolve;
 
100369
  friend class ::CExprResolve;
80744
100370
  friend class ::WinIfExists;
80745
100371
  friend class ::WinImportHandler;
80746
100372
  friend class ::WinMacros;
80747
 
  friend class ::CMatchSyntax;
80748
 
  friend class ::ExtGnu;
 
100373
  friend class ::WinAsm;
 
100374
  friend class ::WinDeclSpecs;
 
100375
  friend class ::WinMemberExplSpec;
 
100376
  friend class ::WinTypeKeywords;
 
100377
  friend class ::WinFriend;
80749
100378
  friend class ::ExtAC;
80750
100379
  friend class ::ExtACBuilderCoupling;
80751
100380
  friend class ::ExtACSyntaxCoupling;
80752
100381
  friend class ::ExtACTree;
80753
100382
  friend class ::ExtACKeywords;
80754
 
  friend class ::WinAsm;
80755
 
  friend class ::WinDeclSpecs;
80756
 
  friend class ::WinMemberExplSpec;
80757
 
  friend class ::WinTypeKeywords;
 
100383
  friend class ::ExtGnu;
80758
100384
  friend class ::PragmaOnceUnitState;
80759
100385
  friend class ::PragmaOnce;
80760
 
  friend class ::CCExprResolve;
80761
 
  friend class ::CExprResolve;
 
100386
  friend class ::CMatchSyntax;
80762
100387
 
80763
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100388
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80764
100389
 
80765
100390
  CTree *sons[5]; // keyword, open, cond, close, stmt
80766
100391
 
80767
100392
public:
80768
100393
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
80769
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
100394
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
100395
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
80770
100396
  }
 
100397
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80771
100398
  static const char *NodeId ();
 
100399
  /** Get the name of the node. Can be compared with NodeId(). */
80772
100400
  const char *NodeName () const { return NodeId (); }
 
100401
  /** Get the number of sons. */
80773
100402
  int Sons () const { return 5; }
 
100403
  /** Get the n-th son.
 
100404
   *  \param n The index of the son.
 
100405
   *  \return The n-th son or NULL. */
80774
100406
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
80775
100407
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
80776
100408
  CTree *Condition () const { return sons[2]; }
 
100409
  /** Replace a son.
 
100410
   *  \param old_son The son to replace.
 
100411
   *  \param new_son The new son. */
80777
100412
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80778
100413
    CTree::ReplaceSon (sons, 5, old_son, new_son);
80779
100414
  }
 
100415
  CSemScope *SemScope () const { return (CSemScope*)this; }
80780
100416
};
80781
100417
 
80782
100418
 
80783
 
#line 80784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100419
#line 100420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80784
100420
} // closed Puma
 
100421
class CCExprResolve;
 
100422
class CExprResolve;
80785
100423
class WinIfExists;
80786
100424
class WinImportHandler;
80787
100425
class WinMacros;
80788
 
class CMatchSyntax;
80789
 
class ExtGnu;
 
100426
class WinAsm;
 
100427
class WinDeclSpecs;
 
100428
class WinMemberExplSpec;
 
100429
class WinTypeKeywords;
 
100430
class WinFriend;
80790
100431
class ExtAC;
80791
100432
class ExtACBuilderCoupling;
80792
100433
class ExtACSyntaxCoupling;
80793
100434
class ExtACTree;
80794
100435
class ExtACKeywords;
80795
 
class WinAsm;
80796
 
class WinDeclSpecs;
80797
 
class WinMemberExplSpec;
80798
 
class WinTypeKeywords;
 
100436
class ExtGnu;
80799
100437
class PragmaOnceUnitState;
80800
100438
class PragmaOnce;
80801
 
class CCExprResolve;
80802
 
class CExprResolve;
 
100439
class CMatchSyntax;
80803
100440
namespace Puma {
80804
100441
 
80805
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100442
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80806
100443
class CT_IfStmt : public CT_Statement, public CSemScope {
80807
 
#line 80808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100444
#line 100445 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100445
  friend class ::CCExprResolve;
 
100446
  friend class ::CExprResolve;
80808
100447
  friend class ::WinIfExists;
80809
100448
  friend class ::WinImportHandler;
80810
100449
  friend class ::WinMacros;
80811
 
  friend class ::CMatchSyntax;
80812
 
  friend class ::ExtGnu;
 
100450
  friend class ::WinAsm;
 
100451
  friend class ::WinDeclSpecs;
 
100452
  friend class ::WinMemberExplSpec;
 
100453
  friend class ::WinTypeKeywords;
 
100454
  friend class ::WinFriend;
80813
100455
  friend class ::ExtAC;
80814
100456
  friend class ::ExtACBuilderCoupling;
80815
100457
  friend class ::ExtACSyntaxCoupling;
80816
100458
  friend class ::ExtACTree;
80817
100459
  friend class ::ExtACKeywords;
80818
 
  friend class ::WinAsm;
80819
 
  friend class ::WinDeclSpecs;
80820
 
  friend class ::WinMemberExplSpec;
80821
 
  friend class ::WinTypeKeywords;
 
100460
  friend class ::ExtGnu;
80822
100461
  friend class ::PragmaOnceUnitState;
80823
100462
  friend class ::PragmaOnce;
80824
 
  friend class ::CCExprResolve;
80825
 
  friend class ::CExprResolve;
 
100463
  friend class ::CMatchSyntax;
80826
100464
 
80827
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100465
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80828
100466
 
80829
100467
  CTree *sons[5]; // keyword, open, cond, close, stmt
80830
100468
 
80831
100469
public:
80832
100470
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
80833
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
100471
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
100472
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
80834
100473
  }
 
100474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80835
100475
  static const char *NodeId ();
 
100476
  /** Get the name of the node. Can be compared with NodeId(). */
80836
100477
  const char *NodeName () const { return NodeId (); }
 
100478
  /** Get the number of sons. */
80837
100479
  int Sons () const { return 5; }
 
100480
  /** Get the n-th son.
 
100481
   *  \param n The index of the son.
 
100482
   *  \return The n-th son or NULL. */
80838
100483
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
80839
100484
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
80840
100485
  CTree *Condition () const { return sons[2]; }
 
100486
  /** Replace a son.
 
100487
   *  \param old_son The son to replace.
 
100488
   *  \param new_son The new son. */
80841
100489
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80842
100490
    CTree::ReplaceSon (sons, 5, old_son, new_son);
80843
100491
  }
 
100492
  CSemScope *SemScope () const { return (CSemScope*)this; }
80844
100493
};
80845
100494
 
80846
100495
 
80847
 
#line 80848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100496
#line 100497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80848
100497
} // closed Puma
 
100498
class CCExprResolve;
 
100499
class CExprResolve;
80849
100500
class WinIfExists;
80850
100501
class WinImportHandler;
80851
100502
class WinMacros;
80852
 
class CMatchSyntax;
80853
 
class ExtGnu;
 
100503
class WinAsm;
 
100504
class WinDeclSpecs;
 
100505
class WinMemberExplSpec;
 
100506
class WinTypeKeywords;
 
100507
class WinFriend;
80854
100508
class ExtAC;
80855
100509
class ExtACBuilderCoupling;
80856
100510
class ExtACSyntaxCoupling;
80857
100511
class ExtACTree;
80858
100512
class ExtACKeywords;
80859
 
class WinAsm;
80860
 
class WinDeclSpecs;
80861
 
class WinMemberExplSpec;
80862
 
class WinTypeKeywords;
 
100513
class ExtGnu;
80863
100514
class PragmaOnceUnitState;
80864
100515
class PragmaOnce;
80865
 
class CCExprResolve;
80866
 
class CExprResolve;
 
100516
class CMatchSyntax;
80867
100517
namespace Puma {
80868
100518
 
80869
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100519
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80870
100520
class CT_IfElseStmt : public CT_Statement, public CSemScope {
80871
 
#line 80872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100521
#line 100522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100522
  friend class ::CCExprResolve;
 
100523
  friend class ::CExprResolve;
80872
100524
  friend class ::WinIfExists;
80873
100525
  friend class ::WinImportHandler;
80874
100526
  friend class ::WinMacros;
80875
 
  friend class ::CMatchSyntax;
80876
 
  friend class ::ExtGnu;
 
100527
  friend class ::WinAsm;
 
100528
  friend class ::WinDeclSpecs;
 
100529
  friend class ::WinMemberExplSpec;
 
100530
  friend class ::WinTypeKeywords;
 
100531
  friend class ::WinFriend;
80877
100532
  friend class ::ExtAC;
80878
100533
  friend class ::ExtACBuilderCoupling;
80879
100534
  friend class ::ExtACSyntaxCoupling;
80880
100535
  friend class ::ExtACTree;
80881
100536
  friend class ::ExtACKeywords;
80882
 
  friend class ::WinAsm;
80883
 
  friend class ::WinDeclSpecs;
80884
 
  friend class ::WinMemberExplSpec;
80885
 
  friend class ::WinTypeKeywords;
 
100537
  friend class ::ExtGnu;
80886
100538
  friend class ::PragmaOnceUnitState;
80887
100539
  friend class ::PragmaOnce;
80888
 
  friend class ::CCExprResolve;
80889
 
  friend class ::CExprResolve;
 
100540
  friend class ::CMatchSyntax;
80890
100541
 
80891
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100542
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80892
100543
 
80893
100544
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
80894
100545
 
80895
100546
public:
80896
100547
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
80897
100548
                 CTree *is, CTree *e, CTree *es) {
80898
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
80899
 
    sons[5] = e; sons[6] = es; 
 
100549
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
100550
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
100551
    AddSon (sons[6], es); 
80900
100552
  }
 
100553
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80901
100554
  static const char *NodeId ();
 
100555
  /** Get the name of the node. Can be compared with NodeId(). */
80902
100556
  const char *NodeName () const { return NodeId (); }
 
100557
  /** Get the number of sons. */
80903
100558
  int Sons () const { return 7; }
 
100559
  /** Get the n-th son.
 
100560
   *  \param n The index of the son.
 
100561
   *  \return The n-th son or NULL. */
80904
100562
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
80905
100563
  CTree *Condition () const { return sons[2]; }
80906
100564
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
80907
100565
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
100566
  /** Replace a son.
 
100567
   *  \param old_son The son to replace.
 
100568
   *  \param new_son The new son. */
80908
100569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80909
100570
    CTree::ReplaceSon (sons, 7, old_son, new_son);
80910
100571
  }
 
100572
  CSemScope *SemScope () const { return (CSemScope*)this; }
80911
100573
};
80912
100574
 
80913
100575
 
80914
 
#line 80915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100576
#line 100577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80915
100577
} // closed Puma
 
100578
class CCExprResolve;
 
100579
class CExprResolve;
80916
100580
class WinIfExists;
80917
100581
class WinImportHandler;
80918
100582
class WinMacros;
80919
 
class CMatchSyntax;
80920
 
class ExtGnu;
 
100583
class WinAsm;
 
100584
class WinDeclSpecs;
 
100585
class WinMemberExplSpec;
 
100586
class WinTypeKeywords;
 
100587
class WinFriend;
80921
100588
class ExtAC;
80922
100589
class ExtACBuilderCoupling;
80923
100590
class ExtACSyntaxCoupling;
80924
100591
class ExtACTree;
80925
100592
class ExtACKeywords;
80926
 
class WinAsm;
80927
 
class WinDeclSpecs;
80928
 
class WinMemberExplSpec;
80929
 
class WinTypeKeywords;
 
100593
class ExtGnu;
80930
100594
class PragmaOnceUnitState;
80931
100595
class PragmaOnce;
80932
 
class CCExprResolve;
80933
 
class CExprResolve;
 
100596
class CMatchSyntax;
80934
100597
namespace Puma {
80935
100598
 
80936
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100599
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80937
100600
class CT_BreakStmt : public CT_Statement {
80938
 
#line 80939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100601
#line 100602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100602
  friend class ::CCExprResolve;
 
100603
  friend class ::CExprResolve;
80939
100604
  friend class ::WinIfExists;
80940
100605
  friend class ::WinImportHandler;
80941
100606
  friend class ::WinMacros;
80942
 
  friend class ::CMatchSyntax;
80943
 
  friend class ::ExtGnu;
 
100607
  friend class ::WinAsm;
 
100608
  friend class ::WinDeclSpecs;
 
100609
  friend class ::WinMemberExplSpec;
 
100610
  friend class ::WinTypeKeywords;
 
100611
  friend class ::WinFriend;
80944
100612
  friend class ::ExtAC;
80945
100613
  friend class ::ExtACBuilderCoupling;
80946
100614
  friend class ::ExtACSyntaxCoupling;
80947
100615
  friend class ::ExtACTree;
80948
100616
  friend class ::ExtACKeywords;
80949
 
  friend class ::WinAsm;
80950
 
  friend class ::WinDeclSpecs;
80951
 
  friend class ::WinMemberExplSpec;
80952
 
  friend class ::WinTypeKeywords;
 
100617
  friend class ::ExtGnu;
80953
100618
  friend class ::PragmaOnceUnitState;
80954
100619
  friend class ::PragmaOnce;
80955
 
  friend class ::CCExprResolve;
80956
 
  friend class ::CExprResolve;
 
100620
  friend class ::CMatchSyntax;
80957
100621
 
80958
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100622
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80959
100623
 
80960
100624
  CTree *sons[2]; // key, semi_colon
80961
100625
 
80962
100626
public:
80963
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
100627
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
100628
  /** Get the identifier for this node type. Can be compared with NodeName(). */
80964
100629
  static const char *NodeId ();
 
100630
  /** Get the name of the node. Can be compared with NodeId(). */
80965
100631
  const char *NodeName () const { return NodeId (); }
 
100632
  /** Get the number of sons. */
80966
100633
  int Sons () const { return 2; }
 
100634
  /** Get the n-th son.
 
100635
   *  \param n The index of the son.
 
100636
   *  \return The n-th son or NULL. */
80967
100637
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
100638
  /** Replace a son.
 
100639
   *  \param old_son The son to replace.
 
100640
   *  \param new_son The new son. */
80968
100641
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
80969
100642
    CTree::ReplaceSon (sons, 2, old_son, new_son);
80970
100643
  }
80971
100644
};
80972
100645
 
80973
100646
 
80974
 
#line 80975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100647
#line 100648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
80975
100648
} // closed Puma
 
100649
class CCExprResolve;
 
100650
class CExprResolve;
80976
100651
class WinIfExists;
80977
100652
class WinImportHandler;
80978
100653
class WinMacros;
80979
 
class CMatchSyntax;
80980
 
class ExtGnu;
 
100654
class WinAsm;
 
100655
class WinDeclSpecs;
 
100656
class WinMemberExplSpec;
 
100657
class WinTypeKeywords;
 
100658
class WinFriend;
80981
100659
class ExtAC;
80982
100660
class ExtACBuilderCoupling;
80983
100661
class ExtACSyntaxCoupling;
80984
100662
class ExtACTree;
80985
100663
class ExtACKeywords;
80986
 
class WinAsm;
80987
 
class WinDeclSpecs;
80988
 
class WinMemberExplSpec;
80989
 
class WinTypeKeywords;
 
100664
class ExtGnu;
80990
100665
class PragmaOnceUnitState;
80991
100666
class PragmaOnce;
80992
 
class CCExprResolve;
80993
 
class CExprResolve;
 
100667
class CMatchSyntax;
80994
100668
namespace Puma {
80995
100669
 
80996
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100670
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
80997
100671
class CT_ContinueStmt : public CT_Statement {
80998
 
#line 80999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100672
#line 100673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100673
  friend class ::CCExprResolve;
 
100674
  friend class ::CExprResolve;
80999
100675
  friend class ::WinIfExists;
81000
100676
  friend class ::WinImportHandler;
81001
100677
  friend class ::WinMacros;
81002
 
  friend class ::CMatchSyntax;
81003
 
  friend class ::ExtGnu;
 
100678
  friend class ::WinAsm;
 
100679
  friend class ::WinDeclSpecs;
 
100680
  friend class ::WinMemberExplSpec;
 
100681
  friend class ::WinTypeKeywords;
 
100682
  friend class ::WinFriend;
81004
100683
  friend class ::ExtAC;
81005
100684
  friend class ::ExtACBuilderCoupling;
81006
100685
  friend class ::ExtACSyntaxCoupling;
81007
100686
  friend class ::ExtACTree;
81008
100687
  friend class ::ExtACKeywords;
81009
 
  friend class ::WinAsm;
81010
 
  friend class ::WinDeclSpecs;
81011
 
  friend class ::WinMemberExplSpec;
81012
 
  friend class ::WinTypeKeywords;
 
100688
  friend class ::ExtGnu;
81013
100689
  friend class ::PragmaOnceUnitState;
81014
100690
  friend class ::PragmaOnce;
81015
 
  friend class ::CCExprResolve;
81016
 
  friend class ::CExprResolve;
 
100691
  friend class ::CMatchSyntax;
81017
100692
 
81018
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100693
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81019
100694
 
81020
100695
  CTree *sons[2]; // key, semi_colon
81021
100696
 
81022
100697
public:
81023
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
100698
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
100699
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81024
100700
  static const char *NodeId ();
 
100701
  /** Get the name of the node. Can be compared with NodeId(). */
81025
100702
  const char *NodeName () const { return NodeId (); }
 
100703
  /** Get the number of sons. */
81026
100704
  int Sons () const { return 2; }
 
100705
  /** Get the n-th son.
 
100706
   *  \param n The index of the son.
 
100707
   *  \return The n-th son or NULL. */
81027
100708
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
100709
  /** Replace a son.
 
100710
   *  \param old_son The son to replace.
 
100711
   *  \param new_son The new son. */
81028
100712
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81029
100713
    CTree::ReplaceSon (sons, 2, old_son, new_son);
81030
100714
  }
81031
100715
};
81032
100716
 
81033
100717
 
81034
 
#line 81035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100718
#line 100719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81035
100719
} // closed Puma
 
100720
class CCExprResolve;
 
100721
class CExprResolve;
81036
100722
class WinIfExists;
81037
100723
class WinImportHandler;
81038
100724
class WinMacros;
81039
 
class CMatchSyntax;
81040
 
class ExtGnu;
 
100725
class WinAsm;
 
100726
class WinDeclSpecs;
 
100727
class WinMemberExplSpec;
 
100728
class WinTypeKeywords;
 
100729
class WinFriend;
81041
100730
class ExtAC;
81042
100731
class ExtACBuilderCoupling;
81043
100732
class ExtACSyntaxCoupling;
81044
100733
class ExtACTree;
81045
100734
class ExtACKeywords;
81046
 
class WinAsm;
81047
 
class WinDeclSpecs;
81048
 
class WinMemberExplSpec;
81049
 
class WinTypeKeywords;
 
100735
class ExtGnu;
81050
100736
class PragmaOnceUnitState;
81051
100737
class PragmaOnce;
81052
 
class CCExprResolve;
81053
 
class CExprResolve;
 
100738
class CMatchSyntax;
81054
100739
namespace Puma {
81055
100740
 
81056
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100741
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81057
100742
class CT_GotoStmt : public CT_Statement {
81058
 
#line 81059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100743
#line 100744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100744
  friend class ::CCExprResolve;
 
100745
  friend class ::CExprResolve;
81059
100746
  friend class ::WinIfExists;
81060
100747
  friend class ::WinImportHandler;
81061
100748
  friend class ::WinMacros;
81062
 
  friend class ::CMatchSyntax;
81063
 
  friend class ::ExtGnu;
 
100749
  friend class ::WinAsm;
 
100750
  friend class ::WinDeclSpecs;
 
100751
  friend class ::WinMemberExplSpec;
 
100752
  friend class ::WinTypeKeywords;
 
100753
  friend class ::WinFriend;
81064
100754
  friend class ::ExtAC;
81065
100755
  friend class ::ExtACBuilderCoupling;
81066
100756
  friend class ::ExtACSyntaxCoupling;
81067
100757
  friend class ::ExtACTree;
81068
100758
  friend class ::ExtACKeywords;
81069
 
  friend class ::WinAsm;
81070
 
  friend class ::WinDeclSpecs;
81071
 
  friend class ::WinMemberExplSpec;
81072
 
  friend class ::WinTypeKeywords;
 
100759
  friend class ::ExtGnu;
81073
100760
  friend class ::PragmaOnceUnitState;
81074
100761
  friend class ::PragmaOnce;
81075
 
  friend class ::CCExprResolve;
81076
 
  friend class ::CExprResolve;
 
100762
  friend class ::CMatchSyntax;
81077
100763
 
81078
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100764
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81079
100765
 
81080
100766
  CTree *sons[3]; // key, label, semi_colon
81081
100767
 
81082
100768
public:
81083
100769
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
81084
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
100770
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
81085
100771
  }
 
100772
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81086
100773
  static const char *NodeId ();
 
100774
  /** Get the name of the node. Can be compared with NodeId(). */
81087
100775
  const char *NodeName () const { return NodeId (); }
 
100776
  /** Get the number of sons. */
81088
100777
  int Sons () const { return 3; }
 
100778
  /** Get the n-th son.
 
100779
   *  \param n The index of the son.
 
100780
   *  \return The n-th son or NULL. */
81089
100781
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
81090
100782
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
100783
  /** Replace a son.
 
100784
   *  \param old_son The son to replace.
 
100785
   *  \param new_son The new son. */
81091
100786
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81092
100787
    CTree::ReplaceSon (sons, 3, old_son, new_son);
81093
100788
  }
81094
100789
};
81095
100790
 
81096
100791
 
81097
 
#line 81098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100792
#line 100793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81098
100793
} // closed Puma
 
100794
class CCExprResolve;
 
100795
class CExprResolve;
81099
100796
class WinIfExists;
81100
100797
class WinImportHandler;
81101
100798
class WinMacros;
81102
 
class CMatchSyntax;
81103
 
class ExtGnu;
 
100799
class WinAsm;
 
100800
class WinDeclSpecs;
 
100801
class WinMemberExplSpec;
 
100802
class WinTypeKeywords;
 
100803
class WinFriend;
81104
100804
class ExtAC;
81105
100805
class ExtACBuilderCoupling;
81106
100806
class ExtACSyntaxCoupling;
81107
100807
class ExtACTree;
81108
100808
class ExtACKeywords;
81109
 
class WinAsm;
81110
 
class WinDeclSpecs;
81111
 
class WinMemberExplSpec;
81112
 
class WinTypeKeywords;
 
100809
class ExtGnu;
81113
100810
class PragmaOnceUnitState;
81114
100811
class PragmaOnce;
81115
 
class CCExprResolve;
81116
 
class CExprResolve;
 
100812
class CMatchSyntax;
81117
100813
namespace Puma {
81118
100814
 
81119
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100815
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81120
100816
class CT_ReturnStmt : public CT_Statement {
81121
 
#line 81122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100817
#line 100818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100818
  friend class ::CCExprResolve;
 
100819
  friend class ::CExprResolve;
81122
100820
  friend class ::WinIfExists;
81123
100821
  friend class ::WinImportHandler;
81124
100822
  friend class ::WinMacros;
81125
 
  friend class ::CMatchSyntax;
81126
 
  friend class ::ExtGnu;
 
100823
  friend class ::WinAsm;
 
100824
  friend class ::WinDeclSpecs;
 
100825
  friend class ::WinMemberExplSpec;
 
100826
  friend class ::WinTypeKeywords;
 
100827
  friend class ::WinFriend;
81127
100828
  friend class ::ExtAC;
81128
100829
  friend class ::ExtACBuilderCoupling;
81129
100830
  friend class ::ExtACSyntaxCoupling;
81130
100831
  friend class ::ExtACTree;
81131
100832
  friend class ::ExtACKeywords;
81132
 
  friend class ::WinAsm;
81133
 
  friend class ::WinDeclSpecs;
81134
 
  friend class ::WinMemberExplSpec;
81135
 
  friend class ::WinTypeKeywords;
 
100833
  friend class ::ExtGnu;
81136
100834
  friend class ::PragmaOnceUnitState;
81137
100835
  friend class ::PragmaOnce;
81138
 
  friend class ::CCExprResolve;
81139
 
  friend class ::CExprResolve;
 
100836
  friend class ::CMatchSyntax;
81140
100837
 
81141
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100838
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81142
100839
 
81143
100840
  CTree *sons[3]; // key, expr, semi_colon
81144
100841
 
81145
100842
public:
81146
100843
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
81147
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
100844
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
81148
100845
  }
 
100846
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81149
100847
  static const char *NodeId ();
 
100848
  /** Get the name of the node. Can be compared with NodeId(). */
81150
100849
  const char *NodeName () const { return NodeId (); }
 
100850
  /** Get the number of sons. */
81151
100851
  int Sons () const { return CTree::Sons (sons, 3); }
 
100852
  /** Get the n-th son.
 
100853
   *  \param n The index of the son.
 
100854
   *  \return The n-th son or NULL. */
81152
100855
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
81153
100856
  CTree *Expr () const { return sons[1]; }
 
100857
  /** Replace a son.
 
100858
   *  \param old_son The son to replace.
 
100859
   *  \param new_son The new son. */
81154
100860
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81155
100861
    CTree::ReplaceSon (sons, 3, old_son, new_son);
81156
100862
  }
81157
100863
};
81158
100864
 
81159
100865
 
81160
 
#line 81161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100866
#line 100867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81161
100867
} // closed Puma
 
100868
class CCExprResolve;
 
100869
class CExprResolve;
81162
100870
class WinIfExists;
81163
100871
class WinImportHandler;
81164
100872
class WinMacros;
81165
 
class CMatchSyntax;
81166
 
class ExtGnu;
 
100873
class WinAsm;
 
100874
class WinDeclSpecs;
 
100875
class WinMemberExplSpec;
 
100876
class WinTypeKeywords;
 
100877
class WinFriend;
81167
100878
class ExtAC;
81168
100879
class ExtACBuilderCoupling;
81169
100880
class ExtACSyntaxCoupling;
81170
100881
class ExtACTree;
81171
100882
class ExtACKeywords;
81172
 
class WinAsm;
81173
 
class WinDeclSpecs;
81174
 
class WinMemberExplSpec;
81175
 
class WinTypeKeywords;
 
100883
class ExtGnu;
81176
100884
class PragmaOnceUnitState;
81177
100885
class PragmaOnce;
81178
 
class CCExprResolve;
81179
 
class CExprResolve;
 
100886
class CMatchSyntax;
81180
100887
namespace Puma {
81181
100888
 
81182
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100889
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81183
100890
class CT_WhileStmt : public CT_Statement, public CSemScope {
81184
 
#line 81185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100891
#line 100892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100892
  friend class ::CCExprResolve;
 
100893
  friend class ::CExprResolve;
81185
100894
  friend class ::WinIfExists;
81186
100895
  friend class ::WinImportHandler;
81187
100896
  friend class ::WinMacros;
81188
 
  friend class ::CMatchSyntax;
81189
 
  friend class ::ExtGnu;
 
100897
  friend class ::WinAsm;
 
100898
  friend class ::WinDeclSpecs;
 
100899
  friend class ::WinMemberExplSpec;
 
100900
  friend class ::WinTypeKeywords;
 
100901
  friend class ::WinFriend;
81190
100902
  friend class ::ExtAC;
81191
100903
  friend class ::ExtACBuilderCoupling;
81192
100904
  friend class ::ExtACSyntaxCoupling;
81193
100905
  friend class ::ExtACTree;
81194
100906
  friend class ::ExtACKeywords;
81195
 
  friend class ::WinAsm;
81196
 
  friend class ::WinDeclSpecs;
81197
 
  friend class ::WinMemberExplSpec;
81198
 
  friend class ::WinTypeKeywords;
 
100907
  friend class ::ExtGnu;
81199
100908
  friend class ::PragmaOnceUnitState;
81200
100909
  friend class ::PragmaOnce;
81201
 
  friend class ::CCExprResolve;
81202
 
  friend class ::CExprResolve;
 
100910
  friend class ::CMatchSyntax;
81203
100911
 
81204
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100912
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81205
100913
 
81206
100914
  CTree *sons[5]; // key, open, cond, close, stmt
81207
100915
 
81208
100916
public:
81209
100917
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
81210
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
100918
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
100919
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
81211
100920
  }
 
100921
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81212
100922
  static const char *NodeId ();
 
100923
  /** Get the name of the node. Can be compared with NodeId(). */
81213
100924
  const char *NodeName () const { return NodeId (); }
 
100925
  /** Get the number of sons. */
81214
100926
  int Sons () const { return 5; }
 
100927
  /** Get the n-th son.
 
100928
   *  \param n The index of the son.
 
100929
   *  \return The n-th son or NULL. */
81215
100930
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
81216
100931
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
81217
100932
  CTree *Condition () const { return sons[2]; }
 
100933
  /** Replace a son.
 
100934
   *  \param old_son The son to replace.
 
100935
   *  \param new_son The new son. */
81218
100936
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81219
100937
    CTree::ReplaceSon (sons, 5, old_son, new_son);
81220
100938
  }
 
100939
  CSemScope *SemScope () const { return (CSemScope*)this; }
81221
100940
};
81222
100941
 
81223
100942
 
81224
 
#line 81225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100943
#line 100944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81225
100944
} // closed Puma
 
100945
class CCExprResolve;
 
100946
class CExprResolve;
81226
100947
class WinIfExists;
81227
100948
class WinImportHandler;
81228
100949
class WinMacros;
81229
 
class CMatchSyntax;
81230
 
class ExtGnu;
 
100950
class WinAsm;
 
100951
class WinDeclSpecs;
 
100952
class WinMemberExplSpec;
 
100953
class WinTypeKeywords;
 
100954
class WinFriend;
81231
100955
class ExtAC;
81232
100956
class ExtACBuilderCoupling;
81233
100957
class ExtACSyntaxCoupling;
81234
100958
class ExtACTree;
81235
100959
class ExtACKeywords;
81236
 
class WinAsm;
81237
 
class WinDeclSpecs;
81238
 
class WinMemberExplSpec;
81239
 
class WinTypeKeywords;
 
100960
class ExtGnu;
81240
100961
class PragmaOnceUnitState;
81241
100962
class PragmaOnce;
81242
 
class CCExprResolve;
81243
 
class CExprResolve;
 
100963
class CMatchSyntax;
81244
100964
namespace Puma {
81245
100965
 
81246
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100966
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81247
100967
class CT_DoStmt : public CT_Statement {
81248
 
#line 81249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
100968
#line 100969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
100969
  friend class ::CCExprResolve;
 
100970
  friend class ::CExprResolve;
81249
100971
  friend class ::WinIfExists;
81250
100972
  friend class ::WinImportHandler;
81251
100973
  friend class ::WinMacros;
81252
 
  friend class ::CMatchSyntax;
81253
 
  friend class ::ExtGnu;
 
100974
  friend class ::WinAsm;
 
100975
  friend class ::WinDeclSpecs;
 
100976
  friend class ::WinMemberExplSpec;
 
100977
  friend class ::WinTypeKeywords;
 
100978
  friend class ::WinFriend;
81254
100979
  friend class ::ExtAC;
81255
100980
  friend class ::ExtACBuilderCoupling;
81256
100981
  friend class ::ExtACSyntaxCoupling;
81257
100982
  friend class ::ExtACTree;
81258
100983
  friend class ::ExtACKeywords;
81259
 
  friend class ::WinAsm;
81260
 
  friend class ::WinDeclSpecs;
81261
 
  friend class ::WinMemberExplSpec;
81262
 
  friend class ::WinTypeKeywords;
 
100984
  friend class ::ExtGnu;
81263
100985
  friend class ::PragmaOnceUnitState;
81264
100986
  friend class ::PragmaOnce;
81265
 
  friend class ::CCExprResolve;
81266
 
  friend class ::CExprResolve;
 
100987
  friend class ::CMatchSyntax;
81267
100988
 
81268
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
100989
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81269
100990
 
81270
100991
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
81271
100992
 
81272
100993
public:
81273
100994
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
81274
100995
             CTree *c, CTree *sc) {
81275
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
81276
 
    sons[5] = c; sons[6] = sc; 
 
100996
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
100997
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
100998
    AddSon (sons[6], sc); 
81277
100999
  }
 
101000
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81278
101001
  static const char *NodeId ();
 
101002
  /** Get the name of the node. Can be compared with NodeId(). */
81279
101003
  const char *NodeName () const { return NodeId (); }
 
101004
  /** Get the number of sons. */
81280
101005
  int Sons () const { return 7; }
 
101006
  /** Get the n-th son.
 
101007
   *  \param n The index of the son.
 
101008
   *  \return The n-th son or NULL. */
81281
101009
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
81282
101010
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
81283
101011
  CTree *Expr () const { return sons[4]; }
 
101012
  /** Replace a son.
 
101013
   *  \param old_son The son to replace.
 
101014
   *  \param new_son The new son. */
81284
101015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81285
101016
    CTree::ReplaceSon (sons, 7, old_son, new_son);
81286
101017
  }
81287
101018
};
81288
101019
 
81289
101020
 
81290
 
#line 81291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101021
#line 101022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81291
101022
} // closed Puma
 
101023
class CCExprResolve;
 
101024
class CExprResolve;
81292
101025
class WinIfExists;
81293
101026
class WinImportHandler;
81294
101027
class WinMacros;
81295
 
class CMatchSyntax;
81296
 
class ExtGnu;
 
101028
class WinAsm;
 
101029
class WinDeclSpecs;
 
101030
class WinMemberExplSpec;
 
101031
class WinTypeKeywords;
 
101032
class WinFriend;
81297
101033
class ExtAC;
81298
101034
class ExtACBuilderCoupling;
81299
101035
class ExtACSyntaxCoupling;
81300
101036
class ExtACTree;
81301
101037
class ExtACKeywords;
81302
 
class WinAsm;
81303
 
class WinDeclSpecs;
81304
 
class WinMemberExplSpec;
81305
 
class WinTypeKeywords;
 
101038
class ExtGnu;
81306
101039
class PragmaOnceUnitState;
81307
101040
class PragmaOnce;
81308
 
class CCExprResolve;
81309
 
class CExprResolve;
 
101041
class CMatchSyntax;
81310
101042
namespace Puma {
81311
101043
 
81312
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101044
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81313
101045
class CT_ForStmt : public CT_Statement, public CSemScope {
81314
 
#line 81315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101046
#line 101047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101047
  friend class ::CCExprResolve;
 
101048
  friend class ::CExprResolve;
81315
101049
  friend class ::WinIfExists;
81316
101050
  friend class ::WinImportHandler;
81317
101051
  friend class ::WinMacros;
81318
 
  friend class ::CMatchSyntax;
81319
 
  friend class ::ExtGnu;
 
101052
  friend class ::WinAsm;
 
101053
  friend class ::WinDeclSpecs;
 
101054
  friend class ::WinMemberExplSpec;
 
101055
  friend class ::WinTypeKeywords;
 
101056
  friend class ::WinFriend;
81320
101057
  friend class ::ExtAC;
81321
101058
  friend class ::ExtACBuilderCoupling;
81322
101059
  friend class ::ExtACSyntaxCoupling;
81323
101060
  friend class ::ExtACTree;
81324
101061
  friend class ::ExtACKeywords;
81325
 
  friend class ::WinAsm;
81326
 
  friend class ::WinDeclSpecs;
81327
 
  friend class ::WinMemberExplSpec;
81328
 
  friend class ::WinTypeKeywords;
 
101062
  friend class ::ExtGnu;
81329
101063
  friend class ::PragmaOnceUnitState;
81330
101064
  friend class ::PragmaOnce;
81331
 
  friend class ::CCExprResolve;
81332
 
  friend class ::CExprResolve;
 
101065
  friend class ::CMatchSyntax;
81333
101066
 
81334
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101067
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81335
101068
 
81336
101069
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
81337
101070
 
81338
101071
public:
81339
101072
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
81340
101073
              CTree *e, CTree *c, CTree *stmt) {
81341
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
81342
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
101074
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
101075
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
101076
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
81343
101077
  }
 
101078
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81344
101079
  static const char *NodeId ();
 
101080
  /** Get the name of the node. Can be compared with NodeId(). */
81345
101081
  const char *NodeName () const { return NodeId (); }
 
101082
  /** Get the number of sons. */
81346
101083
  int Sons () const { return CTree::Sons (sons, 8); }
 
101084
  /** Get the n-th son.
 
101085
   *  \param n The index of the son.
 
101086
   *  \return The n-th son or NULL. */
81347
101087
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
81348
101088
  CTree *InitStmt () const { return sons[2]; }
81349
101089
  CTree *Condition () const { return sons[3]; }
81350
101090
  CTree *Expr () const { return sons[5]; }
81351
101091
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
101092
  /** Replace a son.
 
101093
   *  \param old_son The son to replace.
 
101094
   *  \param new_son The new son. */
81352
101095
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81353
101096
    CTree::ReplaceSon (sons, 8, old_son, new_son);
81354
101097
  }
 
101098
  CSemScope *SemScope () const { return (CSemScope*)this; }
81355
101099
};
81356
101100
 
81357
101101
 
81358
 
#line 81359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101102
#line 101103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81359
101103
} // closed Puma
 
101104
class CCExprResolve;
 
101105
class CExprResolve;
81360
101106
class WinIfExists;
81361
101107
class WinImportHandler;
81362
101108
class WinMacros;
81363
 
class CMatchSyntax;
81364
 
class ExtGnu;
 
101109
class WinAsm;
 
101110
class WinDeclSpecs;
 
101111
class WinMemberExplSpec;
 
101112
class WinTypeKeywords;
 
101113
class WinFriend;
81365
101114
class ExtAC;
81366
101115
class ExtACBuilderCoupling;
81367
101116
class ExtACSyntaxCoupling;
81368
101117
class ExtACTree;
81369
101118
class ExtACKeywords;
81370
 
class WinAsm;
81371
 
class WinDeclSpecs;
81372
 
class WinMemberExplSpec;
81373
 
class WinTypeKeywords;
 
101119
class ExtGnu;
81374
101120
class PragmaOnceUnitState;
81375
101121
class PragmaOnce;
81376
 
class CCExprResolve;
81377
 
class CExprResolve;
 
101122
class CMatchSyntax;
81378
101123
namespace Puma {
81379
101124
 
81380
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101125
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81381
101126
class CT_Condition : public CT_Decl, public CSemObject {
81382
 
#line 81383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101127
#line 101128 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101128
  friend class ::CCExprResolve;
 
101129
  friend class ::CExprResolve;
81383
101130
  friend class ::WinIfExists;
81384
101131
  friend class ::WinImportHandler;
81385
101132
  friend class ::WinMacros;
81386
 
  friend class ::CMatchSyntax;
81387
 
  friend class ::ExtGnu;
 
101133
  friend class ::WinAsm;
 
101134
  friend class ::WinDeclSpecs;
 
101135
  friend class ::WinMemberExplSpec;
 
101136
  friend class ::WinTypeKeywords;
 
101137
  friend class ::WinFriend;
81388
101138
  friend class ::ExtAC;
81389
101139
  friend class ::ExtACBuilderCoupling;
81390
101140
  friend class ::ExtACSyntaxCoupling;
81391
101141
  friend class ::ExtACTree;
81392
101142
  friend class ::ExtACKeywords;
81393
 
  friend class ::WinAsm;
81394
 
  friend class ::WinDeclSpecs;
81395
 
  friend class ::WinMemberExplSpec;
81396
 
  friend class ::WinTypeKeywords;
 
101143
  friend class ::ExtGnu;
81397
101144
  friend class ::PragmaOnceUnitState;
81398
101145
  friend class ::PragmaOnce;
81399
 
  friend class ::CCExprResolve;
81400
 
  friend class ::CExprResolve;
 
101146
  friend class ::CMatchSyntax;
81401
101147
 
81402
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101148
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81403
101149
 
81404
101150
  CTree *sons[3]; // declspecs, declarator, init
81405
101151
 
81406
101152
public:
81407
101153
  CT_Condition (CTree *dsl, CTree *d) {
81408
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
101154
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
81409
101155
  }
 
101156
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81410
101157
  static const char *NodeId ();
 
101158
  /** Get the name of the node. Can be compared with NodeId(). */
81411
101159
  const char *NodeName () const { return NodeId (); }
 
101160
  /** Get the number of sons. */
81412
101161
  int Sons () const { return CTree::Sons (sons, 3); }
 
101162
  /** Get the n-th son.
 
101163
   *  \param n The index of the son.
 
101164
   *  \return The n-th son or NULL. */
81413
101165
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
81414
101166
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
81415
101167
  CTree *Declarator () const { return sons[1]; }
81416
101168
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
81417
101169
  CSemObject *SemObject () const { return (CSemObject*)this; }
81418
 
  void Initializer (CTree *i) { sons[2] = i; }
 
101170
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
101171
  /** Replace a son.
 
101172
   *  \param old_son The son to replace.
 
101173
   *  \param new_son The new son. */
81419
101174
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81420
101175
    CTree::ReplaceSon (sons, 3, old_son, new_son);
81421
101176
  }
81428
101183
/*****************************************************************************/
81429
101184
 
81430
101185
 
81431
 
#line 81432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101186
#line 101187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81432
101187
} // closed Puma
 
101188
class CCExprResolve;
 
101189
class CExprResolve;
81433
101190
class WinIfExists;
81434
101191
class WinImportHandler;
81435
101192
class WinMacros;
81436
 
class CMatchSyntax;
81437
 
class ExtGnu;
 
101193
class WinAsm;
 
101194
class WinDeclSpecs;
 
101195
class WinMemberExplSpec;
 
101196
class WinTypeKeywords;
 
101197
class WinFriend;
81438
101198
class ExtAC;
81439
101199
class ExtACBuilderCoupling;
81440
101200
class ExtACSyntaxCoupling;
81441
101201
class ExtACTree;
81442
101202
class ExtACKeywords;
81443
 
class WinAsm;
81444
 
class WinDeclSpecs;
81445
 
class WinMemberExplSpec;
81446
 
class WinTypeKeywords;
 
101203
class ExtGnu;
81447
101204
class PragmaOnceUnitState;
81448
101205
class PragmaOnce;
81449
 
class CCExprResolve;
81450
 
class CExprResolve;
81451
 
namespace Puma {
81452
 
 
81453
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101206
class CMatchSyntax;
 
101207
namespace Puma {
 
101208
 
 
101209
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101210
 
 
101211
#line 101212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101212
} // closed Puma
 
101213
 
 
101214
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
101215
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
101216
#include "ExtACTree.ah"
 
101217
#endif
 
101218
namespace Puma {
 
101219
 
 
101220
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81454
101221
class CT_ClassDef : public CT_Decl, public CSemObject {
81455
 
#line 81456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101222
#line 101223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101223
  friend class ::CCExprResolve;
 
101224
  friend class ::CExprResolve;
81456
101225
  friend class ::WinIfExists;
81457
101226
  friend class ::WinImportHandler;
81458
101227
  friend class ::WinMacros;
81459
 
  friend class ::CMatchSyntax;
81460
 
  friend class ::ExtGnu;
 
101228
  friend class ::WinAsm;
 
101229
  friend class ::WinDeclSpecs;
 
101230
  friend class ::WinMemberExplSpec;
 
101231
  friend class ::WinTypeKeywords;
 
101232
  friend class ::WinFriend;
81461
101233
  friend class ::ExtAC;
81462
101234
  friend class ::ExtACBuilderCoupling;
81463
101235
  friend class ::ExtACSyntaxCoupling;
81464
101236
  friend class ::ExtACTree;
81465
101237
  friend class ::ExtACKeywords;
81466
 
  friend class ::WinAsm;
81467
 
  friend class ::WinDeclSpecs;
81468
 
  friend class ::WinMemberExplSpec;
81469
 
  friend class ::WinTypeKeywords;
 
101238
  friend class ::ExtGnu;
81470
101239
  friend class ::PragmaOnceUnitState;
81471
101240
  friend class ::PragmaOnce;
81472
 
  friend class ::CCExprResolve;
81473
 
  friend class ::CExprResolve;
 
101241
  friend class ::CMatchSyntax;
81474
101242
 
81475
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101243
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81476
101244
 
81477
101245
   
81478
 
#line 81479 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101246
#line 101247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81479
101247
 
81480
101248
  struct __ac_wrapper_sons {
81481
101249
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
81490
101258
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
81491
101259
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
81492
101260
  } sons
81493
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101261
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81494
101262
 
81495
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101263
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81496
101264
; // key, name, bases, members
81497
101265
  CTree *obj_decl;
81498
101266
 
81499
101267
public:
81500
101268
  
81501
 
#line 81502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
81502
 
 
81503
 
 
81504
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
81505
 
  typedef void Result;
81506
 
  typedef ::Puma::CT_ClassDef That;
81507
 
  typedef ::Puma::CT_ClassDef Target;
81508
 
  static const int JPID = 4;
 
101269
#line 101270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101270
 
 
101271
 
 
101272
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
101273
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
101274
  typedef TResult Result;
 
101275
  typedef TThat   That;
 
101276
  typedef TTarget Target;
 
101277
  enum { ARGS = TArgs::ARGS };
 
101278
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
101279
  static const int JPID = 55;
81509
101280
  static const AC::JPType JPTYPE = (AC::JPType)16;
81510
101281
  struct Res {
81511
101282
    typedef void Type;
81512
101283
    typedef void ReferredType;
81513
101284
  };
81514
 
  enum { ARGS = 3 };
81515
 
  template <int I, int DUMMY = 0> struct Arg {
81516
 
    typedef void Type;
81517
 
    typedef void ReferredType;
81518
 
  };
81519
 
  template <int DUMMY> struct Arg<0, DUMMY> {
81520
 
    typedef ::Puma::CTree * Type;
81521
 
    typedef ::Puma::CTree * ReferredType;
81522
 
  };
81523
 
  template <int DUMMY> struct Arg<1, DUMMY> {
81524
 
    typedef ::Puma::CTree * Type;
81525
 
    typedef ::Puma::CTree * ReferredType;
81526
 
  };
81527
 
  template <int DUMMY> struct Arg<2, DUMMY> {
81528
 
    typedef ::Puma::CTree * Type;
81529
 
    typedef ::Puma::CTree * ReferredType;
81530
 
  };
81531
101285
 
81532
101286
  That *_that;
81533
101287
 
81536
101290
};
81537
101291
 
81538
101292
 
81539
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101293
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81540
101294
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
81541
 
#line 81542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101295
#line 101296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81542
101296
{
81543
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
81544
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
81545
 
this->__exec_old_C1(arg0, arg1, arg2);
81546
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
81547
 
 
 
101297
  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;
 
101298
    __TJP tjp;
 
101299
  tjp._that =  (__TJP::That*)this;
 
101300
    this->__exec_old_C1(arg0, arg1, arg2);
 
101301
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
101302
  
81548
101303
}
81549
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
81550
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101304
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
101305
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81551
101306
{
81552
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
101307
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
101308
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
81553
101309
  }
 
101310
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81554
101311
  static const char *NodeId ();
 
101312
  /** Get the name of the node. Can be compared with NodeId(). */
81555
101313
  const char *NodeName () const { return NodeId (); }
 
101314
  /** Get the number of sons. */
81556
101315
  int Sons () const { return CTree::Sons (sons, 4); }
 
101316
  /** Get the n-th son.
 
101317
   *  \param n The index of the son.
 
101318
   *  \return The n-th son or NULL. */
81557
101319
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
81558
101320
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
81559
101321
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
81560
101322
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
81561
101323
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
81562
101324
  CSemObject *SemObject () const { return (CSemObject*)this; }
81563
 
  void Members (CTree *m) { sons[3] = m; }
81564
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
81565
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
101325
  void Members (CTree *m) { AddSon (sons[3], m); }
 
101326
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
101327
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
101328
  /** Replace a son.
 
101329
   *  \param old_son The son to replace.
 
101330
   *  \param new_son The new son. */
81566
101331
  void ReplaceSon (CTree *old_son, CTree *new_son) {
81567
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
81568
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
101332
    CTree::ReplaceSon (sons, 4, old_son, new_son);
81569
101333
  }
81570
101334
   private:
81571
101335
 
81572
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
81573
 
 CTree * _intro_members ;
 
101336
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
101337
 Puma :: CTree * _intro_members ;
 
101338
Puma :: CTree * _base_intros ;
81574
101339
public :
81575
 
CTree * IntroMembers ( ) const { return _intro_members ; }
81576
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
81577
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
81578
 
 
81579
 
#line 81580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
81580
 
 
81581
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
81582
 
  typedef void Result;
81583
 
  typedef ::Puma::CT_ClassDef That;
81584
 
  typedef ::Puma::CT_ClassDef Target;
81585
 
  static const int JPID = 4;
 
101340
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
101341
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
101342
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
101343
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
101344
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101345
 
 
101346
#line 101347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101347
 
 
101348
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
101349
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
101350
  typedef TResult Result;
 
101351
  typedef TThat   That;
 
101352
  typedef TTarget Target;
 
101353
  enum { ARGS = TArgs::ARGS };
 
101354
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
101355
  static const int JPID = 7249;
81586
101356
  static const AC::JPType JPTYPE = (AC::JPType)16;
81587
101357
  struct Res {
81588
101358
    typedef void Type;
81589
101359
    typedef void ReferredType;
81590
101360
  };
81591
 
  enum { ARGS = 1 };
81592
 
  template <int I, int DUMMY = 0> struct Arg {
81593
 
    typedef void Type;
81594
 
    typedef void ReferredType;
81595
 
  };
81596
 
  template <int DUMMY> struct Arg<0, DUMMY> {
81597
 
    typedef const ::Puma::CT_ClassDef & Type;
81598
 
    typedef const ::Puma::CT_ClassDef ReferredType;
81599
 
  };
81600
101361
 
81601
101362
  That *_that;
81602
101363
 
81605
101366
};
81606
101367
 
81607
101368
 
81608
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101369
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81609
101370
 
81610
 
#line 81611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101371
#line 101372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81611
101372
 
81612
101373
public:
81613
 
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) {
81614
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
81615
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
81616
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
101374
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) {
 
101375
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
101376
  __TJP tjp;
 
101377
  tjp._that =  (__TJP::That*)this;
 
101378
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
81617
101379
 
81618
101380
}
81619
101381
 
81620
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
81621
 
 
81622
 
#line 81623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
81623
 
 
81624
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
81625
 
  typedef void Result;
81626
 
  typedef ::Puma::CT_ClassDef That;
81627
 
  typedef ::Puma::CT_ClassDef Target;
81628
 
  static const int JPID = 4;
 
101382
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101383
 
 
101384
#line 101385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101385
 
 
101386
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
101387
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
101388
  typedef TResult Result;
 
101389
  typedef TThat   That;
 
101390
  typedef TTarget Target;
 
101391
  enum { ARGS = TArgs::ARGS };
 
101392
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
101393
  static const int JPID = 7247;
81629
101394
  static const AC::JPType JPTYPE = (AC::JPType)32;
81630
101395
  struct Res {
81631
101396
    typedef void Type;
81632
101397
    typedef void ReferredType;
81633
101398
  };
81634
 
  enum { ARGS = 0 };
81635
 
  template <int I, int DUMMY = 0> struct Arg {
81636
 
    typedef void Type;
81637
 
    typedef void ReferredType;
81638
 
  };
81639
101399
 
81640
101400
  That *_that;
81641
101401
 
81644
101404
};
81645
101405
 
81646
101406
 
81647
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101407
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81648
101408
 
81649
 
#line 81650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101409
#line 101410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81650
101410
 
81651
101411
public:
81652
101412
inline ~CT_ClassDef () {
81653
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
81654
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
81655
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
101413
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
101414
  __TJP tjp;
 
101415
  tjp._that =  (__TJP::That*)this;
 
101416
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
81656
101417
 
81657
101418
}
81658
101419
 
81659
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101420
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81660
101421
};
81661
101422
      
81662
101423
 
81663
 
#line 81664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101424
#line 101425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81664
101425
} // closed Puma
 
101426
class CCExprResolve;
 
101427
class CExprResolve;
81665
101428
class WinIfExists;
81666
101429
class WinImportHandler;
81667
101430
class WinMacros;
81668
 
class CMatchSyntax;
81669
 
class ExtGnu;
 
101431
class WinAsm;
 
101432
class WinDeclSpecs;
 
101433
class WinMemberExplSpec;
 
101434
class WinTypeKeywords;
 
101435
class WinFriend;
81670
101436
class ExtAC;
81671
101437
class ExtACBuilderCoupling;
81672
101438
class ExtACSyntaxCoupling;
81673
101439
class ExtACTree;
81674
101440
class ExtACKeywords;
81675
 
class WinAsm;
81676
 
class WinDeclSpecs;
81677
 
class WinMemberExplSpec;
81678
 
class WinTypeKeywords;
 
101441
class ExtGnu;
81679
101442
class PragmaOnceUnitState;
81680
101443
class PragmaOnce;
81681
 
class CCExprResolve;
81682
 
class CExprResolve;
 
101444
class CMatchSyntax;
81683
101445
namespace Puma {
81684
101446
 
81685
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101447
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81686
101448
class CT_UnionDef : public CT_ClassDef {
81687
 
#line 81688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101449
#line 101450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101450
  friend class ::CCExprResolve;
 
101451
  friend class ::CExprResolve;
81688
101452
  friend class ::WinIfExists;
81689
101453
  friend class ::WinImportHandler;
81690
101454
  friend class ::WinMacros;
81691
 
  friend class ::CMatchSyntax;
81692
 
  friend class ::ExtGnu;
 
101455
  friend class ::WinAsm;
 
101456
  friend class ::WinDeclSpecs;
 
101457
  friend class ::WinMemberExplSpec;
 
101458
  friend class ::WinTypeKeywords;
 
101459
  friend class ::WinFriend;
81693
101460
  friend class ::ExtAC;
81694
101461
  friend class ::ExtACBuilderCoupling;
81695
101462
  friend class ::ExtACSyntaxCoupling;
81696
101463
  friend class ::ExtACTree;
81697
101464
  friend class ::ExtACKeywords;
81698
 
  friend class ::WinAsm;
81699
 
  friend class ::WinDeclSpecs;
81700
 
  friend class ::WinMemberExplSpec;
81701
 
  friend class ::WinTypeKeywords;
 
101465
  friend class ::ExtGnu;
81702
101466
  friend class ::PragmaOnceUnitState;
81703
101467
  friend class ::PragmaOnce;
81704
 
  friend class ::CCExprResolve;
81705
 
  friend class ::CExprResolve;
 
101468
  friend class ::CMatchSyntax;
81706
101469
 
81707
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101470
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81708
101471
 
81709
101472
public:
81710
101473
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
81711
101474
  static const char *NodeId ();
 
101475
  /** Get the name of the node. Can be compared with NodeId(). */
81712
101476
  const char *NodeName () const { return NodeId (); }
81713
101477
};
81714
101478
      
81715
101479
 
81716
 
#line 81717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101480
#line 101481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81717
101481
} // closed Puma
 
101482
class CCExprResolve;
 
101483
class CExprResolve;
81718
101484
class WinIfExists;
81719
101485
class WinImportHandler;
81720
101486
class WinMacros;
81721
 
class CMatchSyntax;
81722
 
class ExtGnu;
 
101487
class WinAsm;
 
101488
class WinDeclSpecs;
 
101489
class WinMemberExplSpec;
 
101490
class WinTypeKeywords;
 
101491
class WinFriend;
81723
101492
class ExtAC;
81724
101493
class ExtACBuilderCoupling;
81725
101494
class ExtACSyntaxCoupling;
81726
101495
class ExtACTree;
81727
101496
class ExtACKeywords;
81728
 
class WinAsm;
81729
 
class WinDeclSpecs;
81730
 
class WinMemberExplSpec;
81731
 
class WinTypeKeywords;
 
101497
class ExtGnu;
81732
101498
class PragmaOnceUnitState;
81733
101499
class PragmaOnce;
81734
 
class CCExprResolve;
81735
 
class CExprResolve;
 
101500
class CMatchSyntax;
81736
101501
namespace Puma {
81737
101502
 
81738
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101503
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81739
101504
class CT_MembList : public CT_DeclList, public CSemScope {
81740
 
#line 81741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101505
#line 101506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101506
  friend class ::CCExprResolve;
 
101507
  friend class ::CExprResolve;
81741
101508
  friend class ::WinIfExists;
81742
101509
  friend class ::WinImportHandler;
81743
101510
  friend class ::WinMacros;
81744
 
  friend class ::CMatchSyntax;
81745
 
  friend class ::ExtGnu;
 
101511
  friend class ::WinAsm;
 
101512
  friend class ::WinDeclSpecs;
 
101513
  friend class ::WinMemberExplSpec;
 
101514
  friend class ::WinTypeKeywords;
 
101515
  friend class ::WinFriend;
81746
101516
  friend class ::ExtAC;
81747
101517
  friend class ::ExtACBuilderCoupling;
81748
101518
  friend class ::ExtACSyntaxCoupling;
81749
101519
  friend class ::ExtACTree;
81750
101520
  friend class ::ExtACKeywords;
81751
 
  friend class ::WinAsm;
81752
 
  friend class ::WinDeclSpecs;
81753
 
  friend class ::WinMemberExplSpec;
81754
 
  friend class ::WinTypeKeywords;
 
101521
  friend class ::ExtGnu;
81755
101522
  friend class ::PragmaOnceUnitState;
81756
101523
  friend class ::PragmaOnce;
81757
 
  friend class ::CCExprResolve;
81758
 
  friend class ::CExprResolve;
 
101524
  friend class ::CMatchSyntax;
81759
101525
 
81760
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101526
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81761
101527
 
81762
101528
public:
81763
101529
  CT_MembList (int size = 10, int incr = 10) : 
81764
101530
    CT_DeclList (size, incr) {}
 
101531
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81765
101532
  static const char *NodeId ();
 
101533
  /** Get the name of the node. Can be compared with NodeId(). */
81766
101534
  const char *NodeName () const { return NodeId (); }
 
101535
  CSemScope *SemScope () const { return (CSemScope*)this; }
81767
101536
};
81768
101537
 
81769
101538
 
81770
 
#line 81771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101539
#line 101540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81771
101540
} // closed Puma
 
101541
class CCExprResolve;
 
101542
class CExprResolve;
81772
101543
class WinIfExists;
81773
101544
class WinImportHandler;
81774
101545
class WinMacros;
81775
 
class CMatchSyntax;
81776
 
class ExtGnu;
 
101546
class WinAsm;
 
101547
class WinDeclSpecs;
 
101548
class WinMemberExplSpec;
 
101549
class WinTypeKeywords;
 
101550
class WinFriend;
81777
101551
class ExtAC;
81778
101552
class ExtACBuilderCoupling;
81779
101553
class ExtACSyntaxCoupling;
81780
101554
class ExtACTree;
81781
101555
class ExtACKeywords;
81782
 
class WinAsm;
81783
 
class WinDeclSpecs;
81784
 
class WinMemberExplSpec;
81785
 
class WinTypeKeywords;
 
101556
class ExtGnu;
81786
101557
class PragmaOnceUnitState;
81787
101558
class PragmaOnce;
81788
 
class CCExprResolve;
81789
 
class CExprResolve;
 
101559
class CMatchSyntax;
81790
101560
namespace Puma {
81791
101561
 
81792
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101562
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81793
101563
class CT_MembInitList : public CT_List, public CSemScope {
81794
 
#line 81795 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101564
#line 101565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101565
  friend class ::CCExprResolve;
 
101566
  friend class ::CExprResolve;
81795
101567
  friend class ::WinIfExists;
81796
101568
  friend class ::WinImportHandler;
81797
101569
  friend class ::WinMacros;
81798
 
  friend class ::CMatchSyntax;
81799
 
  friend class ::ExtGnu;
 
101570
  friend class ::WinAsm;
 
101571
  friend class ::WinDeclSpecs;
 
101572
  friend class ::WinMemberExplSpec;
 
101573
  friend class ::WinTypeKeywords;
 
101574
  friend class ::WinFriend;
81800
101575
  friend class ::ExtAC;
81801
101576
  friend class ::ExtACBuilderCoupling;
81802
101577
  friend class ::ExtACSyntaxCoupling;
81803
101578
  friend class ::ExtACTree;
81804
101579
  friend class ::ExtACKeywords;
81805
 
  friend class ::WinAsm;
81806
 
  friend class ::WinDeclSpecs;
81807
 
  friend class ::WinMemberExplSpec;
81808
 
  friend class ::WinTypeKeywords;
 
101580
  friend class ::ExtGnu;
81809
101581
  friend class ::PragmaOnceUnitState;
81810
101582
  friend class ::PragmaOnce;
81811
 
  friend class ::CCExprResolve;
81812
 
  friend class ::CExprResolve;
 
101583
  friend class ::CMatchSyntax;
81813
101584
 
81814
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101585
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81815
101586
 
81816
101587
public:
81817
101588
  CT_MembInitList (int size = 2) : 
81818
101589
    CT_List (size, 2, CT_List::OPEN) {}
81819
101590
  static const char *NodeId ();
 
101591
  /** Get the name of the node. Can be compared with NodeId(). */
81820
101592
  const char *NodeName () const { return NodeId (); }
 
101593
  CSemScope *SemScope () const { return (CSemScope*)this; }
81821
101594
};
81822
101595
 
81823
101596
 
81824
 
#line 81825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101597
#line 101598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81825
101598
} // closed Puma
 
101599
class CCExprResolve;
 
101600
class CExprResolve;
81826
101601
class WinIfExists;
81827
101602
class WinImportHandler;
81828
101603
class WinMacros;
81829
 
class CMatchSyntax;
81830
 
class ExtGnu;
 
101604
class WinAsm;
 
101605
class WinDeclSpecs;
 
101606
class WinMemberExplSpec;
 
101607
class WinTypeKeywords;
 
101608
class WinFriend;
81831
101609
class ExtAC;
81832
101610
class ExtACBuilderCoupling;
81833
101611
class ExtACSyntaxCoupling;
81834
101612
class ExtACTree;
81835
101613
class ExtACKeywords;
81836
 
class WinAsm;
81837
 
class WinDeclSpecs;
81838
 
class WinMemberExplSpec;
81839
 
class WinTypeKeywords;
 
101614
class ExtGnu;
81840
101615
class PragmaOnceUnitState;
81841
101616
class PragmaOnce;
81842
 
class CCExprResolve;
81843
 
class CExprResolve;
81844
 
namespace Puma {
81845
 
 
81846
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101617
class CMatchSyntax;
 
101618
namespace Puma {
 
101619
 
 
101620
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101621
 
 
101622
#line 101623 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101623
} // closed Puma
 
101624
 
 
101625
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
101626
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
101627
#include "CCExprResolveH.ah"
 
101628
#endif
 
101629
namespace Puma {
 
101630
 
 
101631
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101632
 
 
101633
#line 101634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101634
} // closed Puma
 
101635
 
 
101636
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
101637
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
101638
#include "CExprResolveH.ah"
 
101639
#endif
 
101640
namespace Puma {
 
101641
 
 
101642
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81847
101643
class CT_MembInit : public CT_Expression, public CSemObject {
81848
 
#line 81849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101644
#line 101645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101645
  friend class ::CCExprResolve;
 
101646
  friend class ::CExprResolve;
81849
101647
  friend class ::WinIfExists;
81850
101648
  friend class ::WinImportHandler;
81851
101649
  friend class ::WinMacros;
81852
 
  friend class ::CMatchSyntax;
81853
 
  friend class ::ExtGnu;
 
101650
  friend class ::WinAsm;
 
101651
  friend class ::WinDeclSpecs;
 
101652
  friend class ::WinMemberExplSpec;
 
101653
  friend class ::WinTypeKeywords;
 
101654
  friend class ::WinFriend;
81854
101655
  friend class ::ExtAC;
81855
101656
  friend class ::ExtACBuilderCoupling;
81856
101657
  friend class ::ExtACSyntaxCoupling;
81857
101658
  friend class ::ExtACTree;
81858
101659
  friend class ::ExtACKeywords;
81859
 
  friend class ::WinAsm;
81860
 
  friend class ::WinDeclSpecs;
81861
 
  friend class ::WinMemberExplSpec;
81862
 
  friend class ::WinTypeKeywords;
 
101660
  friend class ::ExtGnu;
81863
101661
  friend class ::PragmaOnceUnitState;
81864
101662
  friend class ::PragmaOnce;
81865
 
  friend class ::CCExprResolve;
81866
 
  friend class ::CExprResolve;
 
101663
  friend class ::CMatchSyntax;
81867
101664
 
81868
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101665
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81869
101666
 
81870
101667
  CTree *sons[2]; // name, init
81871
101668
 
81872
101669
public:
81873
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
101670
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
101671
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81874
101672
  static const char *NodeId ();
 
101673
  /** Get the name of the node. Can be compared with NodeId(). */
81875
101674
  const char *NodeName () const { return NodeId (); }
 
101675
  /** Get the number of sons. */
81876
101676
  int Sons () const { return 2; }
 
101677
  /** Get the n-th son.
 
101678
   *  \param n The index of the son.
 
101679
   *  \return The n-th son or NULL. */
81877
101680
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
101681
  /** Replace a son.
 
101682
   *  \param old_son The son to replace.
 
101683
   *  \param new_son The new son. */
81878
101684
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
81879
101685
    CTree::ReplaceSon (sons, 2, old_son, new_son);
81880
101686
  }
81884
101690
   private:
81885
101691
  typedef CT_MembInit CCExprResolveExpr;
81886
101692
 
81887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
101693
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
81888
101694
 public :
81889
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
101695
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
81890
101696
  typedef CT_MembInit CExprResolveExpr;
81891
101697
 
81892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
101698
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
81893
101699
 public :
81894
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
81895
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101700
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
101701
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81896
101702
};
81897
101703
 
81898
101704
 
81899
 
#line 81900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101705
#line 101706 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81900
101706
} // closed Puma
 
101707
class CCExprResolve;
 
101708
class CExprResolve;
81901
101709
class WinIfExists;
81902
101710
class WinImportHandler;
81903
101711
class WinMacros;
81904
 
class CMatchSyntax;
81905
 
class ExtGnu;
 
101712
class WinAsm;
 
101713
class WinDeclSpecs;
 
101714
class WinMemberExplSpec;
 
101715
class WinTypeKeywords;
 
101716
class WinFriend;
81906
101717
class ExtAC;
81907
101718
class ExtACBuilderCoupling;
81908
101719
class ExtACSyntaxCoupling;
81909
101720
class ExtACTree;
81910
101721
class ExtACKeywords;
81911
 
class WinAsm;
81912
 
class WinDeclSpecs;
81913
 
class WinMemberExplSpec;
81914
 
class WinTypeKeywords;
 
101722
class ExtGnu;
81915
101723
class PragmaOnceUnitState;
81916
101724
class PragmaOnce;
81917
 
class CCExprResolve;
81918
 
class CExprResolve;
 
101725
class CMatchSyntax;
81919
101726
namespace Puma {
81920
101727
 
81921
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101728
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81922
101729
class CT_BaseSpecList : public CT_List {
81923
 
#line 81924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101730
#line 101731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101731
  friend class ::CCExprResolve;
 
101732
  friend class ::CExprResolve;
81924
101733
  friend class ::WinIfExists;
81925
101734
  friend class ::WinImportHandler;
81926
101735
  friend class ::WinMacros;
81927
 
  friend class ::CMatchSyntax;
81928
 
  friend class ::ExtGnu;
 
101736
  friend class ::WinAsm;
 
101737
  friend class ::WinDeclSpecs;
 
101738
  friend class ::WinMemberExplSpec;
 
101739
  friend class ::WinTypeKeywords;
 
101740
  friend class ::WinFriend;
81929
101741
  friend class ::ExtAC;
81930
101742
  friend class ::ExtACBuilderCoupling;
81931
101743
  friend class ::ExtACSyntaxCoupling;
81932
101744
  friend class ::ExtACTree;
81933
101745
  friend class ::ExtACKeywords;
81934
 
  friend class ::WinAsm;
81935
 
  friend class ::WinDeclSpecs;
81936
 
  friend class ::WinMemberExplSpec;
81937
 
  friend class ::WinTypeKeywords;
 
101746
  friend class ::ExtGnu;
81938
101747
  friend class ::PragmaOnceUnitState;
81939
101748
  friend class ::PragmaOnce;
81940
 
  friend class ::CCExprResolve;
81941
 
  friend class ::CExprResolve;
 
101749
  friend class ::CMatchSyntax;
81942
101750
 
81943
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101751
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81944
101752
 
81945
101753
public:
81946
101754
  CT_BaseSpecList (int size = 2) : 
81947
101755
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
101756
  /** Get the identifier for this node type. Can be compared with NodeName(). */
81948
101757
  static const char *NodeId ();
 
101758
  /** Get the name of the node. Can be compared with NodeId(). */
81949
101759
  const char *NodeName () const { return NodeId (); }
81950
101760
};
81951
101761
 
81952
101762
 
81953
 
#line 81954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101763
#line 101764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
81954
101764
} // closed Puma
 
101765
class CCExprResolve;
 
101766
class CExprResolve;
81955
101767
class WinIfExists;
81956
101768
class WinImportHandler;
81957
101769
class WinMacros;
81958
 
class CMatchSyntax;
81959
 
class ExtGnu;
 
101770
class WinAsm;
 
101771
class WinDeclSpecs;
 
101772
class WinMemberExplSpec;
 
101773
class WinTypeKeywords;
 
101774
class WinFriend;
81960
101775
class ExtAC;
81961
101776
class ExtACBuilderCoupling;
81962
101777
class ExtACSyntaxCoupling;
81963
101778
class ExtACTree;
81964
101779
class ExtACKeywords;
81965
 
class WinAsm;
81966
 
class WinDeclSpecs;
81967
 
class WinMemberExplSpec;
81968
 
class WinTypeKeywords;
 
101780
class ExtGnu;
81969
101781
class PragmaOnceUnitState;
81970
101782
class PragmaOnce;
81971
 
class CCExprResolve;
81972
 
class CExprResolve;
 
101783
class CMatchSyntax;
81973
101784
namespace Puma {
81974
101785
 
81975
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101786
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81976
101787
class CT_AccessSpec : public CTree {
81977
 
#line 81978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101788
#line 101789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101789
  friend class ::CCExprResolve;
 
101790
  friend class ::CExprResolve;
81978
101791
  friend class ::WinIfExists;
81979
101792
  friend class ::WinImportHandler;
81980
101793
  friend class ::WinMacros;
81981
 
  friend class ::CMatchSyntax;
81982
 
  friend class ::ExtGnu;
 
101794
  friend class ::WinAsm;
 
101795
  friend class ::WinDeclSpecs;
 
101796
  friend class ::WinMemberExplSpec;
 
101797
  friend class ::WinTypeKeywords;
 
101798
  friend class ::WinFriend;
81983
101799
  friend class ::ExtAC;
81984
101800
  friend class ::ExtACBuilderCoupling;
81985
101801
  friend class ::ExtACSyntaxCoupling;
81986
101802
  friend class ::ExtACTree;
81987
101803
  friend class ::ExtACKeywords;
81988
 
  friend class ::WinAsm;
81989
 
  friend class ::WinDeclSpecs;
81990
 
  friend class ::WinMemberExplSpec;
81991
 
  friend class ::WinTypeKeywords;
 
101804
  friend class ::ExtGnu;
81992
101805
  friend class ::PragmaOnceUnitState;
81993
101806
  friend class ::PragmaOnce;
81994
 
  friend class ::CCExprResolve;
81995
 
  friend class ::CExprResolve;
 
101807
  friend class ::CMatchSyntax;
81996
101808
 
81997
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101809
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
81998
101810
 
81999
101811
  CTree *sons[2]; // access, colon
82000
101812
 
82001
101813
public:
82002
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
101814
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
101815
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82003
101816
  static const char *NodeId ();
 
101817
  /** Get the name of the node. Can be compared with NodeId(). */
82004
101818
  const char *NodeName () const { return NodeId (); }
 
101819
  /** Get the number of sons. */
82005
101820
  int Sons () const { return 2; }
 
101821
  /** Get the n-th son.
 
101822
   *  \param n The index of the son.
 
101823
   *  \return The n-th son or NULL. */
82006
101824
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
82007
101825
  int Access () const { return sons[0]->token ()->type (); }
 
101826
  /** Replace a son.
 
101827
   *  \param old_son The son to replace.
 
101828
   *  \param new_son The new son. */
82008
101829
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82009
101830
    CTree::ReplaceSon (sons, 2, old_son, new_son);
82010
101831
  }
82011
101832
};
82012
101833
 
82013
101834
 
82014
 
#line 82015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101835
#line 101836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82015
101836
} // closed Puma
 
101837
class CCExprResolve;
 
101838
class CExprResolve;
82016
101839
class WinIfExists;
82017
101840
class WinImportHandler;
82018
101841
class WinMacros;
82019
 
class CMatchSyntax;
82020
 
class ExtGnu;
 
101842
class WinAsm;
 
101843
class WinDeclSpecs;
 
101844
class WinMemberExplSpec;
 
101845
class WinTypeKeywords;
 
101846
class WinFriend;
82021
101847
class ExtAC;
82022
101848
class ExtACBuilderCoupling;
82023
101849
class ExtACSyntaxCoupling;
82024
101850
class ExtACTree;
82025
101851
class ExtACKeywords;
82026
 
class WinAsm;
82027
 
class WinDeclSpecs;
82028
 
class WinMemberExplSpec;
82029
 
class WinTypeKeywords;
 
101852
class ExtGnu;
82030
101853
class PragmaOnceUnitState;
82031
101854
class PragmaOnce;
82032
 
class CCExprResolve;
82033
 
class CExprResolve;
 
101855
class CMatchSyntax;
82034
101856
namespace Puma {
82035
101857
 
82036
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101858
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82037
101859
class CT_BaseSpec : public CTree {
82038
 
#line 82039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101860
#line 101861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101861
  friend class ::CCExprResolve;
 
101862
  friend class ::CExprResolve;
82039
101863
  friend class ::WinIfExists;
82040
101864
  friend class ::WinImportHandler;
82041
101865
  friend class ::WinMacros;
82042
 
  friend class ::CMatchSyntax;
82043
 
  friend class ::ExtGnu;
 
101866
  friend class ::WinAsm;
 
101867
  friend class ::WinDeclSpecs;
 
101868
  friend class ::WinMemberExplSpec;
 
101869
  friend class ::WinTypeKeywords;
 
101870
  friend class ::WinFriend;
82044
101871
  friend class ::ExtAC;
82045
101872
  friend class ::ExtACBuilderCoupling;
82046
101873
  friend class ::ExtACSyntaxCoupling;
82047
101874
  friend class ::ExtACTree;
82048
101875
  friend class ::ExtACKeywords;
82049
 
  friend class ::WinAsm;
82050
 
  friend class ::WinDeclSpecs;
82051
 
  friend class ::WinMemberExplSpec;
82052
 
  friend class ::WinTypeKeywords;
 
101876
  friend class ::ExtGnu;
82053
101877
  friend class ::PragmaOnceUnitState;
82054
101878
  friend class ::PragmaOnce;
82055
 
  friend class ::CCExprResolve;
82056
 
  friend class ::CExprResolve;
 
101879
  friend class ::CMatchSyntax;
82057
101880
 
82058
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101881
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82059
101882
 
82060
101883
  CTree *sons[3]; // virtual, access, name
82061
101884
 
82062
101885
public:
82063
101886
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
82064
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
101887
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
82065
101888
  }
 
101889
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82066
101890
  static const char *NodeId ();
 
101891
  /** Get the name of the node. Can be compared with NodeId(). */
82067
101892
  const char *NodeName () const { return NodeId (); }
 
101893
  /** Get the number of sons. */
82068
101894
  int Sons () const { return CTree::Sons (sons, 3); }
 
101895
  /** Get the n-th son.
 
101896
   *  \param n The index of the son.
 
101897
   *  \return The n-th son or NULL. */
82069
101898
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
82070
101899
  int Access () const { return sons[1]->token ()->type (); }
82071
101900
  CTree *AccessSpec () const { return sons[1]; }
82072
101901
  CTree *Virtual () const { return sons[0]; }
82073
101902
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
101903
  /** Replace a son.
 
101904
   *  \param old_son The son to replace.
 
101905
   *  \param new_son The new son. */
82074
101906
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82075
101907
    CTree::ReplaceSon (sons, 3, old_son, new_son);
82076
101908
  }
82077
101909
};
82078
101910
 
82079
101911
 
82080
 
#line 82081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101912
#line 101913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82081
101913
} // closed Puma
 
101914
class CCExprResolve;
 
101915
class CExprResolve;
82082
101916
class WinIfExists;
82083
101917
class WinImportHandler;
82084
101918
class WinMacros;
82085
 
class CMatchSyntax;
82086
 
class ExtGnu;
 
101919
class WinAsm;
 
101920
class WinDeclSpecs;
 
101921
class WinMemberExplSpec;
 
101922
class WinTypeKeywords;
 
101923
class WinFriend;
82087
101924
class ExtAC;
82088
101925
class ExtACBuilderCoupling;
82089
101926
class ExtACSyntaxCoupling;
82090
101927
class ExtACTree;
82091
101928
class ExtACKeywords;
82092
 
class WinAsm;
82093
 
class WinDeclSpecs;
82094
 
class WinMemberExplSpec;
82095
 
class WinTypeKeywords;
 
101929
class ExtGnu;
82096
101930
class PragmaOnceUnitState;
82097
101931
class PragmaOnce;
82098
 
class CCExprResolve;
82099
 
class CExprResolve;
 
101932
class CMatchSyntax;
82100
101933
namespace Puma {
82101
101934
 
82102
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101935
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82103
101936
class CT_AccessDecl : public CT_Decl {
82104
 
#line 82105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101937
#line 101938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
101938
  friend class ::CCExprResolve;
 
101939
  friend class ::CExprResolve;
82105
101940
  friend class ::WinIfExists;
82106
101941
  friend class ::WinImportHandler;
82107
101942
  friend class ::WinMacros;
82108
 
  friend class ::CMatchSyntax;
82109
 
  friend class ::ExtGnu;
 
101943
  friend class ::WinAsm;
 
101944
  friend class ::WinDeclSpecs;
 
101945
  friend class ::WinMemberExplSpec;
 
101946
  friend class ::WinTypeKeywords;
 
101947
  friend class ::WinFriend;
82110
101948
  friend class ::ExtAC;
82111
101949
  friend class ::ExtACBuilderCoupling;
82112
101950
  friend class ::ExtACSyntaxCoupling;
82113
101951
  friend class ::ExtACTree;
82114
101952
  friend class ::ExtACKeywords;
82115
 
  friend class ::WinAsm;
82116
 
  friend class ::WinDeclSpecs;
82117
 
  friend class ::WinMemberExplSpec;
82118
 
  friend class ::WinTypeKeywords;
 
101953
  friend class ::ExtGnu;
82119
101954
  friend class ::PragmaOnceUnitState;
82120
101955
  friend class ::PragmaOnce;
82121
 
  friend class ::CCExprResolve;
82122
 
  friend class ::CExprResolve;
 
101956
  friend class ::CMatchSyntax;
82123
101957
 
82124
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
101958
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82125
101959
 
82126
101960
  CTree *sons[2]; // name, semi_colon
82127
101961
 
82128
101962
public:
82129
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
101963
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
101964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82130
101965
  static const char *NodeId ();
 
101966
  /** Get the name of the node. Can be compared with NodeId(). */
82131
101967
  const char *NodeName () const { return NodeId (); }
 
101968
  /** Get the number of sons. */
82132
101969
  int Sons () const { return 2; }
 
101970
  /** Get the n-th son.
 
101971
   *  \param n The index of the son.
 
101972
   *  \return The n-th son or NULL. */
82133
101973
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
82134
101974
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
101975
  /** Replace a son.
 
101976
   *  \param old_son The son to replace.
 
101977
   *  \param new_son The new son. */
82135
101978
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82136
101979
    CTree::ReplaceSon (sons, 2, old_son, new_son);
82137
101980
  }
82138
101981
};
82139
101982
 
82140
101983
 
82141
 
#line 82142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
101984
#line 101985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82142
101985
} // closed Puma
 
101986
class CCExprResolve;
 
101987
class CExprResolve;
82143
101988
class WinIfExists;
82144
101989
class WinImportHandler;
82145
101990
class WinMacros;
82146
 
class CMatchSyntax;
82147
 
class ExtGnu;
 
101991
class WinAsm;
 
101992
class WinDeclSpecs;
 
101993
class WinMemberExplSpec;
 
101994
class WinTypeKeywords;
 
101995
class WinFriend;
82148
101996
class ExtAC;
82149
101997
class ExtACBuilderCoupling;
82150
101998
class ExtACSyntaxCoupling;
82151
101999
class ExtACTree;
82152
102000
class ExtACKeywords;
82153
 
class WinAsm;
82154
 
class WinDeclSpecs;
82155
 
class WinMemberExplSpec;
82156
 
class WinTypeKeywords;
 
102001
class ExtGnu;
82157
102002
class PragmaOnceUnitState;
82158
102003
class PragmaOnce;
82159
 
class CCExprResolve;
82160
 
class CExprResolve;
 
102004
class CMatchSyntax;
82161
102005
namespace Puma {
82162
102006
 
82163
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102007
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82164
102008
class CT_UsingDecl : public CT_AccessDecl {
82165
 
#line 82166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102009
#line 102010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102010
  friend class ::CCExprResolve;
 
102011
  friend class ::CExprResolve;
82166
102012
  friend class ::WinIfExists;
82167
102013
  friend class ::WinImportHandler;
82168
102014
  friend class ::WinMacros;
82169
 
  friend class ::CMatchSyntax;
82170
 
  friend class ::ExtGnu;
 
102015
  friend class ::WinAsm;
 
102016
  friend class ::WinDeclSpecs;
 
102017
  friend class ::WinMemberExplSpec;
 
102018
  friend class ::WinTypeKeywords;
 
102019
  friend class ::WinFriend;
82171
102020
  friend class ::ExtAC;
82172
102021
  friend class ::ExtACBuilderCoupling;
82173
102022
  friend class ::ExtACSyntaxCoupling;
82174
102023
  friend class ::ExtACTree;
82175
102024
  friend class ::ExtACKeywords;
82176
 
  friend class ::WinAsm;
82177
 
  friend class ::WinDeclSpecs;
82178
 
  friend class ::WinMemberExplSpec;
82179
 
  friend class ::WinTypeKeywords;
 
102025
  friend class ::ExtGnu;
82180
102026
  friend class ::PragmaOnceUnitState;
82181
102027
  friend class ::PragmaOnce;
82182
 
  friend class ::CCExprResolve;
82183
 
  friend class ::CExprResolve;
 
102028
  friend class ::CMatchSyntax;
82184
102029
 
82185
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102030
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82186
102031
 
82187
102032
  CTree *sons[2]; // using, typename
82188
102033
 
82189
102034
public:
82190
102035
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
82191
 
    sons[0] = u; sons[1] = 0; 
 
102036
    AddSon (sons[0], u); AddSon (sons[1], 0); 
82192
102037
  }
82193
102038
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
82194
 
    sons[0] = u; sons[1] = t; 
 
102039
    AddSon (sons[0], u); AddSon (sons[1], t); 
82195
102040
  }
 
102041
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82196
102042
  static const char *NodeId ();
 
102043
  /** Get the name of the node. Can be compared with NodeId(). */
82197
102044
  const char *NodeName () const { return NodeId (); }
 
102045
  /** Get the number of sons. */
82198
102046
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
102047
  /** Get the n-th son.
 
102048
   *  \param n The index of the son.
 
102049
   *  \return The n-th son or NULL. */
82199
102050
  CTree *Son (int n) const {
82200
102051
    int num = CTree::Sons (sons, 2);
82201
102052
    CTree *result = CTree::Son (sons, 2, n);
82202
102053
    return result ? result : CT_AccessDecl::Son (n-num);
82203
102054
  }
82204
102055
  CTree *Typename () const { return sons[1]; }
 
102056
  /** Replace a son.
 
102057
   *  \param old_son The son to replace.
 
102058
   *  \param new_son The new son. */
82205
102059
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82206
102060
    CTree::ReplaceSon (sons, 2, old_son, new_son);
82207
102061
    CT_AccessDecl::ReplaceSon (old_son, new_son);
82215
102069
/*****************************************************************************/
82216
102070
 
82217
102071
 
82218
 
#line 82219 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102072
#line 102073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82219
102073
} // closed Puma
 
102074
class CCExprResolve;
 
102075
class CExprResolve;
82220
102076
class WinIfExists;
82221
102077
class WinImportHandler;
82222
102078
class WinMacros;
82223
 
class CMatchSyntax;
82224
 
class ExtGnu;
 
102079
class WinAsm;
 
102080
class WinDeclSpecs;
 
102081
class WinMemberExplSpec;
 
102082
class WinTypeKeywords;
 
102083
class WinFriend;
82225
102084
class ExtAC;
82226
102085
class ExtACBuilderCoupling;
82227
102086
class ExtACSyntaxCoupling;
82228
102087
class ExtACTree;
82229
102088
class ExtACKeywords;
82230
 
class WinAsm;
82231
 
class WinDeclSpecs;
82232
 
class WinMemberExplSpec;
82233
 
class WinTypeKeywords;
 
102089
class ExtGnu;
82234
102090
class PragmaOnceUnitState;
82235
102091
class PragmaOnce;
82236
 
class CCExprResolve;
82237
 
class CExprResolve;
 
102092
class CMatchSyntax;
82238
102093
namespace Puma {
82239
102094
 
82240
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102095
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82241
102096
class CT_Any : public CTree {
82242
 
#line 82243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102097
#line 102098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102098
  friend class ::CCExprResolve;
 
102099
  friend class ::CExprResolve;
82243
102100
  friend class ::WinIfExists;
82244
102101
  friend class ::WinImportHandler;
82245
102102
  friend class ::WinMacros;
82246
 
  friend class ::CMatchSyntax;
82247
 
  friend class ::ExtGnu;
 
102103
  friend class ::WinAsm;
 
102104
  friend class ::WinDeclSpecs;
 
102105
  friend class ::WinMemberExplSpec;
 
102106
  friend class ::WinTypeKeywords;
 
102107
  friend class ::WinFriend;
82248
102108
  friend class ::ExtAC;
82249
102109
  friend class ::ExtACBuilderCoupling;
82250
102110
  friend class ::ExtACSyntaxCoupling;
82251
102111
  friend class ::ExtACTree;
82252
102112
  friend class ::ExtACKeywords;
82253
 
  friend class ::WinAsm;
82254
 
  friend class ::WinDeclSpecs;
82255
 
  friend class ::WinMemberExplSpec;
82256
 
  friend class ::WinTypeKeywords;
 
102113
  friend class ::ExtGnu;
82257
102114
  friend class ::PragmaOnceUnitState;
82258
102115
  friend class ::PragmaOnce;
82259
 
  friend class ::CCExprResolve;
82260
 
  friend class ::CExprResolve;
 
102116
  friend class ::CMatchSyntax;
82261
102117
 
82262
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102118
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82263
102119
 
82264
102120
  CTree *sons[2]; // keyword, extension
82265
102121
 
82266
102122
public:
82267
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
102123
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
102124
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82268
102125
  static const char *NodeId ();
 
102126
  /** Get the name of the node. Can be compared with NodeId(). */
82269
102127
  const char *NodeName () const { return NodeId (); }
 
102128
  /** Get the number of sons. */
82270
102129
  int Sons () const { return CTree::Sons (sons, 2); }
 
102130
  /** Get the n-th son.
 
102131
   *  \param n The index of the son.
 
102132
   *  \return The n-th son or NULL. */
82271
102133
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
102134
  /** Replace a son.
 
102135
   *  \param old_son The son to replace.
 
102136
   *  \param new_son The new son. */
82272
102137
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82273
102138
    CTree::ReplaceSon (sons, 2, old_son, new_son);
82274
102139
  }
82277
102142
};
82278
102143
 
82279
102144
 
82280
 
#line 82281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102145
#line 102146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82281
102146
} // closed Puma
 
102147
class CCExprResolve;
 
102148
class CExprResolve;
82282
102149
class WinIfExists;
82283
102150
class WinImportHandler;
82284
102151
class WinMacros;
82285
 
class CMatchSyntax;
82286
 
class ExtGnu;
 
102152
class WinAsm;
 
102153
class WinDeclSpecs;
 
102154
class WinMemberExplSpec;
 
102155
class WinTypeKeywords;
 
102156
class WinFriend;
82287
102157
class ExtAC;
82288
102158
class ExtACBuilderCoupling;
82289
102159
class ExtACSyntaxCoupling;
82290
102160
class ExtACTree;
82291
102161
class ExtACKeywords;
82292
 
class WinAsm;
82293
 
class WinDeclSpecs;
82294
 
class WinMemberExplSpec;
82295
 
class WinTypeKeywords;
 
102162
class ExtGnu;
82296
102163
class PragmaOnceUnitState;
82297
102164
class PragmaOnce;
82298
 
class CCExprResolve;
82299
 
class CExprResolve;
 
102165
class CMatchSyntax;
82300
102166
namespace Puma {
82301
102167
 
82302
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102168
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82303
102169
class CT_AnyList : public CT_Any {
82304
 
#line 82305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102170
#line 102171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102171
  friend class ::CCExprResolve;
 
102172
  friend class ::CExprResolve;
82305
102173
  friend class ::WinIfExists;
82306
102174
  friend class ::WinImportHandler;
82307
102175
  friend class ::WinMacros;
82308
 
  friend class ::CMatchSyntax;
82309
 
  friend class ::ExtGnu;
 
102176
  friend class ::WinAsm;
 
102177
  friend class ::WinDeclSpecs;
 
102178
  friend class ::WinMemberExplSpec;
 
102179
  friend class ::WinTypeKeywords;
 
102180
  friend class ::WinFriend;
82310
102181
  friend class ::ExtAC;
82311
102182
  friend class ::ExtACBuilderCoupling;
82312
102183
  friend class ::ExtACSyntaxCoupling;
82313
102184
  friend class ::ExtACTree;
82314
102185
  friend class ::ExtACKeywords;
82315
 
  friend class ::WinAsm;
82316
 
  friend class ::WinDeclSpecs;
82317
 
  friend class ::WinMemberExplSpec;
82318
 
  friend class ::WinTypeKeywords;
 
102186
  friend class ::ExtGnu;
82319
102187
  friend class ::PragmaOnceUnitState;
82320
102188
  friend class ::PragmaOnce;
82321
 
  friend class ::CCExprResolve;
82322
 
  friend class ::CExprResolve;
 
102189
  friend class ::CMatchSyntax;
82323
102190
 
82324
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102191
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82325
102192
 
82326
102193
public:
82327
102194
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
102195
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82328
102196
  static const char *NodeId ();
 
102197
  /** Get the name of the node. Can be compared with NodeId(). */
82329
102198
  const char *NodeName () const { return NodeId (); }
82330
102199
};
82331
102200
 
82332
102201
 
82333
 
#line 82334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102202
#line 102203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82334
102203
} // closed Puma
 
102204
class CCExprResolve;
 
102205
class CExprResolve;
82335
102206
class WinIfExists;
82336
102207
class WinImportHandler;
82337
102208
class WinMacros;
82338
 
class CMatchSyntax;
82339
 
class ExtGnu;
 
102209
class WinAsm;
 
102210
class WinDeclSpecs;
 
102211
class WinMemberExplSpec;
 
102212
class WinTypeKeywords;
 
102213
class WinFriend;
82340
102214
class ExtAC;
82341
102215
class ExtACBuilderCoupling;
82342
102216
class ExtACSyntaxCoupling;
82343
102217
class ExtACTree;
82344
102218
class ExtACKeywords;
82345
 
class WinAsm;
82346
 
class WinDeclSpecs;
82347
 
class WinMemberExplSpec;
82348
 
class WinTypeKeywords;
 
102219
class ExtGnu;
82349
102220
class PragmaOnceUnitState;
82350
102221
class PragmaOnce;
82351
 
class CCExprResolve;
82352
 
class CExprResolve;
 
102222
class CMatchSyntax;
82353
102223
namespace Puma {
82354
102224
 
82355
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102225
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82356
102226
class CT_AnyExtension : public CTree, public CSemValue {
82357
 
#line 82358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102227
#line 102228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102228
  friend class ::CCExprResolve;
 
102229
  friend class ::CExprResolve;
82358
102230
  friend class ::WinIfExists;
82359
102231
  friend class ::WinImportHandler;
82360
102232
  friend class ::WinMacros;
82361
 
  friend class ::CMatchSyntax;
82362
 
  friend class ::ExtGnu;
 
102233
  friend class ::WinAsm;
 
102234
  friend class ::WinDeclSpecs;
 
102235
  friend class ::WinMemberExplSpec;
 
102236
  friend class ::WinTypeKeywords;
 
102237
  friend class ::WinFriend;
82363
102238
  friend class ::ExtAC;
82364
102239
  friend class ::ExtACBuilderCoupling;
82365
102240
  friend class ::ExtACSyntaxCoupling;
82366
102241
  friend class ::ExtACTree;
82367
102242
  friend class ::ExtACKeywords;
82368
 
  friend class ::WinAsm;
82369
 
  friend class ::WinDeclSpecs;
82370
 
  friend class ::WinMemberExplSpec;
82371
 
  friend class ::WinTypeKeywords;
 
102243
  friend class ::ExtGnu;
82372
102244
  friend class ::PragmaOnceUnitState;
82373
102245
  friend class ::PragmaOnce;
82374
 
  friend class ::CCExprResolve;
82375
 
  friend class ::CExprResolve;
 
102246
  friend class ::CMatchSyntax;
82376
102247
 
82377
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102248
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82378
102249
 
82379
102250
  CTree *sons[5]; // open, string, comma, cond, close
82380
102251
 
82381
102252
public:
82382
102253
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
82383
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
102254
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
102255
    AddSon (sons[3], c); AddSon (sons[4], cr); 
82384
102256
  }
 
102257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82385
102258
  static const char *NodeId ();
 
102259
  /** Get the name of the node. Can be compared with NodeId(). */
82386
102260
  const char *NodeName () const { return NodeId (); }
 
102261
  /** Get the number of sons. */
82387
102262
  int Sons () const { return CTree::Sons (sons, 5); }
 
102263
  /** Get the n-th son.
 
102264
   *  \param n The index of the son.
 
102265
   *  \return The n-th son or NULL. */
82388
102266
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
102267
  /** Replace a son.
 
102268
   *  \param old_son The son to replace.
 
102269
   *  \param new_son The new son. */
82389
102270
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82390
102271
    CTree::ReplaceSon (sons, 5, old_son, new_son);
82391
102272
  }
82399
102280
};
82400
102281
 
82401
102282
 
82402
 
#line 82403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102283
#line 102284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82403
102284
} // closed Puma
 
102285
class CCExprResolve;
 
102286
class CExprResolve;
82404
102287
class WinIfExists;
82405
102288
class WinImportHandler;
82406
102289
class WinMacros;
82407
 
class CMatchSyntax;
82408
 
class ExtGnu;
 
102290
class WinAsm;
 
102291
class WinDeclSpecs;
 
102292
class WinMemberExplSpec;
 
102293
class WinTypeKeywords;
 
102294
class WinFriend;
82409
102295
class ExtAC;
82410
102296
class ExtACBuilderCoupling;
82411
102297
class ExtACSyntaxCoupling;
82412
102298
class ExtACTree;
82413
102299
class ExtACKeywords;
82414
 
class WinAsm;
82415
 
class WinDeclSpecs;
82416
 
class WinMemberExplSpec;
82417
 
class WinTypeKeywords;
 
102300
class ExtGnu;
82418
102301
class PragmaOnceUnitState;
82419
102302
class PragmaOnce;
82420
 
class CCExprResolve;
82421
 
class CExprResolve;
 
102303
class CMatchSyntax;
82422
102304
namespace Puma {
82423
102305
 
82424
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102306
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82425
102307
class CT_AnyCondition : public CTree {
82426
 
#line 82427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102308
#line 102309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102309
  friend class ::CCExprResolve;
 
102310
  friend class ::CExprResolve;
82427
102311
  friend class ::WinIfExists;
82428
102312
  friend class ::WinImportHandler;
82429
102313
  friend class ::WinMacros;
82430
 
  friend class ::CMatchSyntax;
82431
 
  friend class ::ExtGnu;
 
102314
  friend class ::WinAsm;
 
102315
  friend class ::WinDeclSpecs;
 
102316
  friend class ::WinMemberExplSpec;
 
102317
  friend class ::WinTypeKeywords;
 
102318
  friend class ::WinFriend;
82432
102319
  friend class ::ExtAC;
82433
102320
  friend class ::ExtACBuilderCoupling;
82434
102321
  friend class ::ExtACSyntaxCoupling;
82435
102322
  friend class ::ExtACTree;
82436
102323
  friend class ::ExtACKeywords;
82437
 
  friend class ::WinAsm;
82438
 
  friend class ::WinDeclSpecs;
82439
 
  friend class ::WinMemberExplSpec;
82440
 
  friend class ::WinTypeKeywords;
 
102324
  friend class ::ExtGnu;
82441
102325
  friend class ::PragmaOnceUnitState;
82442
102326
  friend class ::PragmaOnce;
82443
 
  friend class ::CCExprResolve;
82444
 
  friend class ::CExprResolve;
 
102327
  friend class ::CMatchSyntax;
82445
102328
 
82446
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
102329
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
82447
102330
 
82448
102331
  CTree *sons[3]; // arg1, arg2, arg3
82449
102332
 
82450
102333
public:
82451
102334
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
82452
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
102335
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
82453
102336
  }
 
102337
  /** Get the identifier for this node type. Can be compared with NodeName(). */
82454
102338
  static const char *NodeId ();
 
102339
  /** Get the name of the node. Can be compared with NodeId(). */
82455
102340
  const char *NodeName () const { return NodeId (); }
 
102341
  /** Get the number of sons. */
82456
102342
  int Sons () const { return CTree::Sons (sons, 3); }
 
102343
  /** Get the n-th son.
 
102344
   *  \param n The index of the son.
 
102345
   *  \return The n-th son or NULL. */
82457
102346
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
102347
  /** Replace a son.
 
102348
   *  \param old_son The son to replace.
 
102349
   *  \param new_son The new son. */
82458
102350
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
82459
102351
    CTree::ReplaceSon (sons, 3, old_son, new_son);
82460
102352
  }
82465
102357
 
82466
102358
#endif /* __CTree_h__ */
82467
102359
 
82468
 
#line 82469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82469
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
82470
 
 
82471
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
82472
 
 
82473
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102360
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82474
102361
namespace Puma {
82475
102362
 
82476
102363
 
82477
102364
class ErrorSink;
82478
102365
 
82479
102366
 
82480
 
#line 82481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102367
#line 102368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82481
102368
} // closed Puma
 
102369
class CCExprResolve;
 
102370
class CExprResolve;
82482
102371
class WinIfExists;
82483
102372
class WinImportHandler;
82484
102373
class WinMacros;
82485
 
class CMatchSyntax;
82486
 
class ExtGnu;
 
102374
class WinAsm;
 
102375
class WinDeclSpecs;
 
102376
class WinMemberExplSpec;
 
102377
class WinTypeKeywords;
 
102378
class WinFriend;
82487
102379
class ExtAC;
82488
102380
class ExtACBuilderCoupling;
82489
102381
class ExtACSyntaxCoupling;
82490
102382
class ExtACTree;
82491
102383
class ExtACKeywords;
82492
 
class WinAsm;
82493
 
class WinDeclSpecs;
82494
 
class WinMemberExplSpec;
82495
 
class WinTypeKeywords;
 
102384
class ExtGnu;
82496
102385
class PragmaOnceUnitState;
82497
102386
class PragmaOnce;
82498
 
class CCExprResolve;
82499
 
class CExprResolve;
82500
 
namespace Puma {
82501
 
 
82502
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102387
class CMatchSyntax;
 
102388
namespace Puma {
 
102389
 
 
102390
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102391
 
 
102392
#line 102393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102393
} // closed Puma
 
102394
 
 
102395
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
102396
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
102397
 
 
102398
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
102399
// This file is part of PUMA.
 
102400
// Copyright (C) 1999-2003  The PUMA developer team.
 
102401
//                                                                
 
102402
// This program is free software;  you can redistribute it and/or 
 
102403
// modify it under the terms of the GNU General Public License as 
 
102404
// published by the Free Software Foundation; either version 2 of 
 
102405
// the License, or (at your option) any later version.            
 
102406
//                                                                
 
102407
// This program is distributed in the hope that it will be useful,
 
102408
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
102409
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
102410
// GNU General Public License for more details.                   
 
102411
//                                                                
 
102412
// You should have received a copy of the GNU General Public      
 
102413
// License along with this program; if not, write to the Free     
 
102414
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
102415
// MA  02111-1307  USA                                            
 
102416
 
 
102417
#ifndef __ext_gnu_csem_decl_specs_ah__
 
102418
#define __ext_gnu_csem_decl_specs_ah__
 
102419
 
 
102420
 
 
102421
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
102422
namespace Puma {
 
102423
  
 
102424
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
102425
 
 
102426
}
 
102427
 
 
102428
#endif /* __ext_gnu_csem_decl_specs_ah__ */
 
102429
 
 
102430
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102431
#endif
 
102432
namespace Puma {
 
102433
 
 
102434
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82503
102435
class CSemDeclSpecs {
82504
 
#line 82505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102436
#line 102437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102437
  friend class ::CCExprResolve;
 
102438
  friend class ::CExprResolve;
82505
102439
  friend class ::WinIfExists;
82506
102440
  friend class ::WinImportHandler;
82507
102441
  friend class ::WinMacros;
82508
 
  friend class ::CMatchSyntax;
82509
 
  friend class ::ExtGnu;
 
102442
  friend class ::WinAsm;
 
102443
  friend class ::WinDeclSpecs;
 
102444
  friend class ::WinMemberExplSpec;
 
102445
  friend class ::WinTypeKeywords;
 
102446
  friend class ::WinFriend;
82510
102447
  friend class ::ExtAC;
82511
102448
  friend class ::ExtACBuilderCoupling;
82512
102449
  friend class ::ExtACSyntaxCoupling;
82513
102450
  friend class ::ExtACTree;
82514
102451
  friend class ::ExtACKeywords;
82515
 
  friend class ::WinAsm;
82516
 
  friend class ::WinDeclSpecs;
82517
 
  friend class ::WinMemberExplSpec;
82518
 
  friend class ::WinTypeKeywords;
 
102452
  friend class ::ExtGnu;
82519
102453
  friend class ::PragmaOnceUnitState;
82520
102454
  friend class ::PragmaOnce;
82521
 
  friend class ::CCExprResolve;
82522
 
  friend class ::CExprResolve;
 
102455
  friend class ::CMatchSyntax;
82523
102456
 
82524
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102457
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82525
102458
 
82526
102459
 
82527
102460
  // initialization context
82548
102481
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
82549
102482
  // if an error was detected. 
82550
102483
  
82551
 
#line 82552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82552
 
public: inline bool __exec_old_analyze_seq();
 
102484
#line 102485 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102485
public: __attribute__((always_inline)) inline bool __exec_old_analyze_seq();
82553
102486
private:
82554
102487
 
82555
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102488
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82556
102489
bool analyze_seq ();
82557
102490
  
82558
102491
  // analyzes the current declaration specifier in the sequence and set some
82559
102492
  // attributes according to the result. Returns false if the specifier type
82560
102493
  // is unknown.
82561
102494
  
82562
 
#line 82563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82563
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
 
102495
#line 102496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102496
public: __attribute__((always_inline)) inline bool __exec_old_analyze(::Puma::CTree * spec);
82564
102497
private:
82565
102498
 
82566
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102499
#line 60 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82567
102500
bool analyze (CTree *spec);
82568
102501
 
82569
102502
  // check functions (used after analyse_seq()
82570
102503
  bool check_prim_decl_specs (bool &have_type);
82571
102504
  
82572
 
#line 82573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82573
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
 
102505
#line 102506 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102506
public: __attribute__((always_inline)) inline bool __exec_old_check_complex_decl_specs(bool & have_type);
82574
102507
private:
82575
102508
 
82576
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102509
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82577
102510
bool check_complex_decl_specs (bool &have_type);  
82578
102511
  bool check_storage_class ();
82579
102512
  
82580
 
#line 82581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82581
 
public: inline bool __exec_old_check_signed_unsigned();
 
102513
#line 102514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102514
public: __attribute__((always_inline)) inline bool __exec_old_check_signed_unsigned();
82582
102515
private:
82583
102516
 
82584
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102517
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82585
102518
bool check_signed_unsigned ();
82586
102519
  bool check_long_short (); 
82587
102520
  
82588
 
#line 82589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82589
 
public: inline bool __exec_old_check_finally();
 
102521
#line 102522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102522
public: __attribute__((always_inline)) inline bool __exec_old_check_finally();
82590
102523
private:
82591
102524
 
82592
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102525
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82593
102526
bool check_finally ();
82594
102527
  
82595
102528
  // type creation code
82596
102529
  
82597
 
#line 82598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82598
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
 
102530
#line 102531 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102531
public: __attribute__((always_inline)) inline ::Puma::CTypeInfo * __exec_old_create_type();
82599
102532
private:
82600
102533
 
82601
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102534
#line 71 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82602
102535
CTypeInfo *create_type ();
82603
102536
  CTypeInfo *create_qualifiers (CTypeInfo *type);
82604
102537
  
82605
102538
public:
82606
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
 
102539
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
82607
102540
  ~CSemDeclSpecs ();
82608
102541
 
82609
102542
  CTypeInfo *make_type () const;
82614
102547
  bool defUnion () const;
82615
102548
  bool defEnum () const;
82616
102549
   private:
 
102550
  typedef CSemDeclSpecs ExtGnuCSemDeclSpecs;
82617
102551
 
82618
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102552
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
82619
102553
 public :
82620
102554
int _typeofs ;
82621
102555
CT_GnuTypeof * _typeof_node ;
82622
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
102556
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82623
102557
};
82624
102558
 
82625
102559
inline CSemDeclSpecs::~CSemDeclSpecs () 
82645
102579
 
82646
102580
#endif /* __c_sem_decl_specs_h__ */
82647
102581
 
82648
 
#line 82649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82649
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
82650
 
 
82651
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
82652
 
 
82653
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102582
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82654
102583
namespace Puma {
82655
102584
  class CCSyntax;
82656
102585
  class CSyntax;
82657
 
} // namespace Puma
82658
 
 
82659
 
 
82660
 
using namespace Puma;
 
102586
}
 
102587
 
82661
102588
 
82662
102589
namespace Puma {
82663
102590
  
82664
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82665
 
 
82666
 
  
82667
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82668
 
 
82669
 
  
82670
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82671
 
 
82672
 
  
82673
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82674
 
 
82675
 
  
82676
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82677
 
 
82678
 
  
82679
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82680
 
 
82681
 
  
82682
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82683
 
 
82684
 
  
82685
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82686
 
 
82687
 
  
82688
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82689
 
 
82690
 
  
82691
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102591
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102592
 
 
102593
  
 
102594
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102595
 
 
102596
  
 
102597
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102598
 
 
102599
  
 
102600
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102601
 
 
102602
  
 
102603
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102604
 
 
102605
  
 
102606
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102607
 
 
102608
  
 
102609
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102610
 
 
102611
  
 
102612
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102613
 
 
102614
  
 
102615
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102616
 
 
102617
  
 
102618
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82692
102619
 
82693
102620
}
82694
102621
 
82695
102622
 
82696
 
#line 82697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102623
#line 102624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102624
class CCExprResolve;
 
102625
class CExprResolve;
82697
102626
class WinIfExists;
82698
102627
class WinImportHandler;
82699
102628
class WinMacros;
82700
 
class CMatchSyntax;
 
102629
class WinAsm;
 
102630
class WinDeclSpecs;
 
102631
class WinMemberExplSpec;
 
102632
class WinTypeKeywords;
 
102633
class WinFriend;
82701
102634
class ExtAC;
82702
102635
class ExtACBuilderCoupling;
82703
102636
class ExtACSyntaxCoupling;
82704
102637
class ExtACTree;
82705
102638
class ExtACKeywords;
82706
 
class WinAsm;
82707
 
class WinDeclSpecs;
82708
 
class WinMemberExplSpec;
82709
 
class WinTypeKeywords;
82710
102639
class PragmaOnceUnitState;
82711
102640
class PragmaOnce;
82712
 
class CCExprResolve;
82713
 
class CExprResolve;
 
102641
class CMatchSyntax;
82714
102642
 
82715
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102643
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82716
102644
class ExtGnu {
82717
 
#line 82718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102645
#line 102646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82718
102646
 
82719
102647
public:
82720
102648
  static ExtGnu *aspectof () {
82726
102654
  }
82727
102655
private:
82728
102656
 
82729
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102657
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82730
102658
 
82731
 
#line 82732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102659
#line 102660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102660
  friend class ::CCExprResolve;
 
102661
  friend class ::CExprResolve;
82732
102662
  friend class ::WinIfExists;
82733
102663
  friend class ::WinImportHandler;
82734
102664
  friend class ::WinMacros;
82735
 
  friend class ::CMatchSyntax;
 
102665
  friend class ::WinAsm;
 
102666
  friend class ::WinDeclSpecs;
 
102667
  friend class ::WinMemberExplSpec;
 
102668
  friend class ::WinTypeKeywords;
 
102669
  friend class ::WinFriend;
82736
102670
  friend class ::ExtAC;
82737
102671
  friend class ::ExtACBuilderCoupling;
82738
102672
  friend class ::ExtACSyntaxCoupling;
82739
102673
  friend class ::ExtACTree;
82740
102674
  friend class ::ExtACKeywords;
82741
 
  friend class ::WinAsm;
82742
 
  friend class ::WinDeclSpecs;
82743
 
  friend class ::WinMemberExplSpec;
82744
 
  friend class ::WinTypeKeywords;
82745
102675
  friend class ::PragmaOnceUnitState;
82746
102676
  friend class ::PragmaOnce;
82747
 
  friend class ::CCExprResolve;
82748
 
  friend class ::CExprResolve;
 
102677
  friend class ::CMatchSyntax;
82749
102678
 
82750
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102679
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82751
102680
 
82752
102681
 
82753
102682
  // flags to enable/disable certain Gnu features
82760
102689
 
82761
102690
  // pointcut definitions
82762
102691
  
82763
 
#line 63 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82764
 
 
82765
 
  
82766
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82767
 
 
82768
 
  
82769
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82770
 
 
82771
 
  
82772
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82773
 
 
82774
 
  
82775
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102692
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102693
 
 
102694
  
 
102695
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102696
 
 
102697
  
 
102698
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102699
 
 
102700
  
 
102701
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102702
 
 
102703
  
 
102704
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102705
 
 
102706
  
 
102707
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82776
102708
 
82777
102709
 
82778
102710
  // ----------------------------------------------------
82781
102713
 
82782
102714
  // structural extensions
82783
102715
  
82784
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82785
 
 
82786
 
  
82787
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82788
 
 
82789
 
 
82790
 
  // extended asm statement
82791
 
  
82792
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82793
 
 
82794
 
public: template<class JoinPoint> void __a0_after 
82795
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82796
 
 
82797
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82798
 
(JoinPoint *tjp, CSyntax *syntax)
82799
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82800
 
 {
82801
 
#line 82802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82802
 
 
82803
 
  typedef typename JoinPoint::That __JP_That;
82804
 
  typedef typename JoinPoint::Target __JP_Target;
82805
 
  typedef typename JoinPoint::Result __JP_Result;
82806
 
 
82807
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82808
 
 
82809
 
    CTree *&result = *(CTree**)tjp->result ();
82810
 
    if (extended_asm && !result &&
82811
 
        ((__JP_That
82812
 
#line 82 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82813
 
*)syntax)->look_ahead (TOK_ASM) &&
82814
 
        ((__JP_That
82815
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82816
 
*)syntax)->parse (&__JP_That
82817
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82818
 
::gnu_asm_def)) {
82819
 
      result = ((__JP_That
82820
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82821
 
*)syntax)->builder().simple_decl ();
82822
 
    }
82823
 
  }
82824
 
#line 82825 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82825
 
 
82826
 
private:
82827
 
 
82828
 
#line 86 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82829
 
 
82830
 
 
82831
 
  // extended asm statement
82832
 
  
82833
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82834
 
 
82835
 
public: template<class JoinPoint> void __a1_around 
82836
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82837
 
 
82838
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82839
 
(JoinPoint *tjp, CSyntax *syn)
82840
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82841
 
 {
82842
 
#line 82843 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82843
 
 
82844
 
  typedef typename JoinPoint::That __JP_That;
82845
 
  typedef typename JoinPoint::Target __JP_Target;
82846
 
  typedef typename JoinPoint::Result __JP_Result;
82847
 
 
82848
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102716
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102717
 
 
102718
  
 
102719
#line 75 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102720
 
 
102721
 
 
102722
  // extended asm statement
 
102723
  
 
102724
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102725
 
 
102726
public: template<class JoinPoint> void __a0_around 
 
102727
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102728
 
 
102729
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102730
(JoinPoint *tjp, Puma::CSyntax *syn)
 
102731
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102732
 {
 
102733
#line 102734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102734
 
 
102735
  typedef typename JoinPoint::That __JP_That;
 
102736
  typedef typename JoinPoint::Target __JP_Target;
 
102737
  typedef typename JoinPoint::Result __JP_Result;
 
102738
 
 
102739
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82849
102740
 
82850
102741
    if (extended_asm)
82851
102742
      *tjp->result () = ((__JP_That
82852
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102743
#line 81 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82853
102744
*)syn)->gnu_asm_def ();
82854
102745
    else
82855
102746
      tjp->proceed ();
82856
102747
  }
82857
 
#line 82858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
82858
 
 
82859
 
private:
82860
 
 
82861
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82862
 
 
 
102748
#line 102749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102749
 
 
102750
private:
 
102751
 
 
102752
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102753
 
 
102754
 
 
102755
  // extended asm init declarator syntax
 
102756
  
 
102757
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102758
 
 
102759
public: template<class JoinPoint> void __a1_after 
 
102760
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102761
 
 
102762
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102763
(JoinPoint *tjp, Puma::CSyntax *syn)
 
102764
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102765
 {
 
102766
#line 102767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102767
 
 
102768
  typedef typename JoinPoint::That __JP_That;
 
102769
  typedef typename JoinPoint::Target __JP_Target;
 
102770
  typedef typename JoinPoint::Result __JP_Result;
 
102771
 
 
102772
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102773
 
 
102774
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
102775
    if (extended_asm && !result &&
 
102776
        ((__JP_That
 
102777
#line 92 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102778
*)syn)->look_ahead (Puma::TOK_ASM))
 
102779
      result = ((__JP_That
 
102780
#line 93 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102781
*)syn)->gnu_asm_spec ();
 
102782
  }
 
102783
#line 102784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
102784
 
 
102785
private:
 
102786
 
 
102787
#line 94 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102788
 
 
102789
 
 
102790
//   // asm declaration specifiers
 
102791
//   advice within (derived (syntax ())) &&
 
102792
//          execution ("% Puma::%::init_simple_type_spec()") : after () {
 
102793
//     if (extended_asm)
 
102794
//       tjp->that ()->_simple_type_spec_1.set (Puma::TOK_ASM);
 
102795
//   }
 
102796
//   advice execution ("% Puma::CSyntax::rule_simple_type_spec()") : after () {
 
102797
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
102798
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
102799
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
102800
//       result = tjp->that ()->builder ().gnu_asm_spec ();
 
102801
//   }
 
102802
//   advice execution ("% Puma::CCSyntax::rule_simple_type_spec()") : after () {
 
102803
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
102804
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
102805
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
102806
//       result = tjp->that ()->semantic ().simple_type_spec ();
 
102807
//   }
 
102808
//   // make the analysis function aware of 'asm(...)'
 
102809
//   advice execution("bool Puma::%::analyze(...)") && within (csemdeclspecs ()) &&
 
102810
//          args (spec): after (Puma::CTree *spec) {
 
102811
//     bool &result = *tjp->result ();
 
102812
//     if (!result && spec->NodeName () == Puma::CT_GnuAsmSpec::NodeId ())
 
102813
//       result = true;
 
102814
//   }
82863
102815
 
82864
102816
  // ----------------------------------------------------
82865
102817
  // the 'restrict' keyword
82867
102819
 
82868
102820
  // extended cv qualifier
82869
102821
  
82870
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102822
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82871
102823
 
82872
102824
public: template<class JoinPoint> void __a2_after 
82873
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102825
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82874
102826
 
82875
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102827
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82876
102828
(JoinPoint *tjp)
82877
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102829
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82878
102830
 {
82879
 
#line 82880 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102831
#line 102832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82880
102832
 
82881
102833
  typedef typename JoinPoint::That __JP_That;
82882
102834
  typedef typename JoinPoint::Target __JP_Target;
82883
102835
  typedef typename JoinPoint::Result __JP_Result;
82884
102836
 
82885
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102837
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82886
102838
 
82887
102839
    if (extended_cv_qual)
82888
 
      tjp->that ()->_cv_qual_1.set (TOK_RESTRICT);
 
102840
      tjp->that ()->_cv_qual_1.set (Puma::TOK_RESTRICT);
82889
102841
  }
82890
 
#line 82891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102842
#line 102843 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82891
102843
 
82892
102844
private:
82893
102845
 
82894
 
#line 105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102846
#line 130 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82895
102847
 
82896
102848
 
82897
102849
  // -------------------------
82900
102852
 
82901
102853
  // pointcut definitions
82902
102854
  
82903
 
#line 112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102855
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82904
102856
 
82905
102857
  
82906
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102858
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82907
102859
 
82908
102860
 
82909
102861
  // structural extensions
82910
102862
  
82911
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82912
 
 
82913
 
  
82914
 
#line 117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82915
 
 
82916
 
  
82917
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102863
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102864
 
 
102865
  
 
102866
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102867
 
 
102868
  
 
102869
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82918
102870
 
82919
102871
 
82920
102872
  // extended primary expression syntax
82921
102873
  
82922
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102874
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82923
102875
 
82924
102876
public: template<class JoinPoint> void __a3_around 
82925
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102877
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82926
102878
 
82927
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102879
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82928
102880
(JoinPoint *tjp)
82929
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102881
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82930
102882
 {
82931
 
#line 82932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102883
#line 102884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82932
102884
 
82933
102885
  typedef typename JoinPoint::That __JP_That;
82934
102886
  typedef typename JoinPoint::Target __JP_Target;
82935
102887
  typedef typename JoinPoint::Result __JP_Result;
82936
102888
 
82937
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102889
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82938
102890
 
82939
102891
    __JP_That
82940
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102892
#line 148 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82941
102893
 *syntax = tjp->that ();
82942
102894
    if (statement_exprs &&
82943
102895
        ((__JP_That
82944
 
#line 125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82945
 
*)syntax)->look_ahead (TOK_OPEN_ROUND) &&
 
102896
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102897
*)syntax)->look_ahead (Puma::TOK_OPEN_ROUND) &&
82946
102898
        ((__JP_That
82947
 
#line 126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82948
 
*)syntax)->look_ahead (TOK_OPEN_CURLY, 2)) {
82949
 
      CTree *&result = *(CTree**)tjp->result ();
 
102899
#line 151 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102900
*)syntax)->look_ahead (Puma::TOK_OPEN_CURLY, 2)) {
 
102901
      Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
82950
102902
      ((__JP_That
82951
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82952
 
*)syntax)->consume (); // skip the TOK_OPEN_ROUND
 
102903
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102904
*)syntax)->consume (); // skip the Puma::TOK_OPEN_ROUND
82953
102905
      result =
82954
102906
        (((__JP_That
82955
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102907
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82956
102908
*)syntax)->parse (&__JP_That
82957
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102909
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82958
102910
::cmpd_stmt) &&
82959
102911
        ((__JP_That
82960
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82961
 
*)syntax)->parse (TOK_CLOSE_ROUND)) ?
 
102912
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102913
*)syntax)->parse (Puma::TOK_CLOSE_ROUND)) ?
82962
102914
        ((__JP_That
82963
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102915
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82964
102916
*)syntax)->builder().gnu_statement_expr () : 0;
82965
102917
    }
82966
102918
    else
82967
102919
      tjp->proceed ();
82968
102920
  }
82969
 
#line 82970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102921
#line 102922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
82970
102922
 
82971
102923
private:
82972
102924
 
82973
 
#line 136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102925
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82974
102926
 
82975
102927
 
82976
102928
  // ----------------------
82979
102931
 
82980
102932
  // structural extensions
82981
102933
  
82982
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82983
 
 
82984
 
  
82985
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82986
 
 
82987
 
  
82988
 
#line 145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82989
 
 
82990
 
  
82991
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102934
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102935
 
 
102936
  
 
102937
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102938
 
 
102939
  
 
102940
#line 170 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102941
 
 
102942
  
 
102943
#line 171 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
82992
102944
 
82993
102945
 
82994
102946
  // introduce new state into CSemDeclSpecs
82995
102947
  
82996
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
82997
 
 
82998
 
  
82999
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102948
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83000
102949
 
83001
102950
 
83002
102951
  // syntax extension
83003
102952
  
83004
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102953
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83005
102954
 
83006
102955
public: template<class JoinPoint> void __a4_after 
83007
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102956
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83008
102957
 
83009
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102958
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83010
102959
(JoinPoint *tjp)
83011
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102960
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83012
102961
 {
83013
 
#line 83014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102962
#line 102963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83014
102963
 
83015
102964
  typedef typename JoinPoint::That __JP_That;
83016
102965
  typedef typename JoinPoint::Target __JP_Target;
83017
102966
  typedef typename JoinPoint::Result __JP_Result;
83018
102967
 
83019
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102968
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83020
102969
 
83021
102970
    if (typeof_keyword)
83022
 
      tjp->that ()->_simple_type_spec_1.set (TOK_TYPEOF);
 
102971
      tjp->that ()->_simple_type_spec_1.set (Puma::TOK_TYPEOF);
83023
102972
  }
83024
 
#line 83025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102973
#line 102974 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83025
102974
 
83026
102975
private:
83027
102976
 
83028
 
#line 161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102977
#line 181 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83029
102978
 
83030
102979
  
83031
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102980
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83032
102981
 
83033
102982
public: template<class JoinPoint> void __a5_after 
83034
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102983
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83035
102984
 
83036
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102985
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83037
102986
(JoinPoint *tjp)
83038
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102987
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83039
102988
 {
83040
 
#line 83041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
102989
#line 102990 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83041
102990
 
83042
102991
  typedef typename JoinPoint::That __JP_That;
83043
102992
  typedef typename JoinPoint::Target __JP_Target;
83044
102993
  typedef typename JoinPoint::Result __JP_Result;
83045
102994
 
83046
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
102995
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83047
102996
 
83048
 
    CTree *&result = *(CTree**)tjp->result ();
83049
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
102997
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
102998
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
83050
102999
        tjp->that ()->parse (&__JP_That
83051
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103000
#line 185 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83052
103001
::gnu_typeof))
83053
103002
      result = tjp->that ()->builder ().simple_type_spec ();
83054
103003
  }
83055
 
#line 83056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103004
#line 103005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83056
103005
 
83057
103006
private:
83058
103007
 
83059
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103008
#line 187 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83060
103009
 
83061
103010
  
83062
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103011
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83063
103012
 
83064
103013
public: template<class JoinPoint> void __a6_after 
83065
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103014
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83066
103015
 
83067
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103016
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83068
103017
(JoinPoint *tjp)
83069
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103018
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83070
103019
 {
83071
 
#line 83072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103020
#line 103021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83072
103021
 
83073
103022
  typedef typename JoinPoint::That __JP_That;
83074
103023
  typedef typename JoinPoint::Target __JP_Target;
83075
103024
  typedef typename JoinPoint::Result __JP_Result;
83076
103025
 
83077
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103026
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83078
103027
 
83079
 
    CTree *&result = *(CTree**)tjp->result ();
83080
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
103028
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
103029
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
83081
103030
        tjp->that ()->parse (&__JP_That
83082
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103031
#line 191 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83083
103032
::gnu_typeof))
83084
103033
      result = tjp->that ()->semantic ().simple_type_spec ();
83085
103034
  }
83086
 
#line 83087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103035
#line 103036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83087
103036
 
83088
103037
private:
83089
103038
 
83090
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103039
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83091
103040
 
83092
103041
 
83093
103042
  // initialize the new state before an analysis starts
83094
103043
  
83095
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103044
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83096
103045
 
83097
103046
public: void __a7_before 
83098
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103047
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83099
103048
 
83100
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83101
 
(CSemDeclSpecs &csd)
83102
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103049
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103050
(Puma::CSemDeclSpecs &csd)
 
103051
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83103
103052
 {
83104
103053
    csd._typeofs = 0;
83105
103054
    csd._typeof_node = 0;
83106
103055
  }
83107
 
#line 83108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103056
#line 103057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83108
103057
 
83109
103058
private:
83110
103059
 
83111
 
#line 180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103060
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83112
103061
 
83113
103062
 
83114
103063
  // make the analysis function aware of 'typeof'
83115
103064
  
83116
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103065
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83117
103066
 
83118
103067
public: template<class JoinPoint> void __a8_after 
83119
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103068
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83120
103069
 
83121
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83122
 
(JoinPoint *tjp, CSemDeclSpecs &csd, CTree *spec)
83123
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103070
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103071
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, Puma::CTree *spec)
 
103072
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83124
103073
 {
83125
 
#line 83126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103074
#line 103075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83126
103075
 
83127
103076
  typedef typename JoinPoint::That __JP_That;
83128
103077
  typedef typename JoinPoint::Target __JP_Target;
83129
103078
  typedef typename JoinPoint::Result __JP_Result;
83130
103079
 
83131
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103080
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83132
103081
 
83133
103082
    bool &result = *tjp->result ();
83134
 
    if (!result && spec->NodeName () == CT_GnuTypeof::NodeId ()) {
 
103083
    if (!result && spec->NodeName () == Puma::CT_GnuTypeof::NodeId ()) {
83135
103084
      csd._typeofs++;      
83136
 
      csd._typeof_node = (CT_GnuTypeof*)spec;
 
103085
      csd._typeof_node = (Puma::CT_GnuTypeof*)spec;
83137
103086
      result = true;
83138
103087
    }
83139
103088
  }
83140
 
#line 83141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103089
#line 103090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83141
103090
 
83142
103091
private:
83143
103092
 
83144
 
#line 191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103093
#line 211 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83145
103094
 
83146
103095
  
83147
103096
  // make the check functions aware of 'typeof'
83148
103097
  
83149
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103098
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83150
103099
 
83151
103100
public: template<class JoinPoint> void __a9_after 
83152
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103101
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83153
103102
 
83154
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83155
 
(JoinPoint *tjp, CSemDeclSpecs &csd, bool &have_type)
83156
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103103
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103104
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, bool &have_type)
 
103105
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83157
103106
 {
83158
 
#line 83159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103107
#line 103108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83159
103108
 
83160
103109
  typedef typename JoinPoint::That __JP_That;
83161
103110
  typedef typename JoinPoint::Target __JP_Target;
83162
103111
  typedef typename JoinPoint::Result __JP_Result;
83163
103112
 
83164
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103113
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83165
103114
 
83166
103115
    bool &result = *tjp->result ();
83167
103116
    if (result && !have_type && csd._typeofs) {
83169
103118
      result    = true;
83170
103119
    }
83171
103120
  }
83172
 
#line 83173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103121
#line 103122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83173
103122
 
83174
103123
private:
83175
103124
 
83176
 
#line 202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103125
#line 222 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83177
103126
 
83178
103127
  
83179
103128
  
83180
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103129
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83181
103130
 
83182
103131
public: template<class JoinPoint> void __a10_after 
83183
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103132
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83184
103133
 
83185
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83186
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
83187
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103134
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103135
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
103136
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83188
103137
 {
83189
 
#line 83190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103138
#line 103139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83190
103139
 
83191
103140
  typedef typename JoinPoint::That __JP_That;
83192
103141
  typedef typename JoinPoint::Target __JP_Target;
83193
103142
  typedef typename JoinPoint::Result __JP_Result;
83194
103143
 
83195
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103144
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83196
103145
 
83197
103146
    bool &result = *tjp->result ();
83198
103147
    if (result) {
83199
 
      if ((csd._prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
83200
 
           csd._prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
103148
      if ((csd._prim_map[Puma::CT_PrimDeclSpec::PDS_SIGNED] || 
 
103149
           csd._prim_map[Puma::CT_PrimDeclSpec::PDS_UNSIGNED]) &&
83201
103150
          csd._typeofs) {
83202
 
        *csd._err << sev_error << csd._dss->token ()->location () 
 
103151
        *csd._err << Puma::sev_error << csd._dss->token ()->location () 
83203
103152
                  << "`signed' or `unsigned' invalid for 'typeof'"
83204
 
                  << endMessage;
 
103153
                  << Puma::endMessage;
83205
103154
        result = false;
83206
103155
      }
83207
103156
    }
83208
103157
  }
83209
 
#line 83210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103158
#line 103159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83210
103159
 
83211
103160
private:
83212
103161
 
83213
 
#line 217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103162
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83214
103163
 
83215
103164
 
83216
103165
  
83217
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103166
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83218
103167
 
83219
103168
public: template<class JoinPoint> void __a11_after 
83220
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103169
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83221
103170
 
83222
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83223
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
83224
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103171
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103172
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
103173
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83225
103174
 {
83226
 
#line 83227 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103175
#line 103176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83227
103176
 
83228
103177
  typedef typename JoinPoint::That __JP_That;
83229
103178
  typedef typename JoinPoint::Target __JP_Target;
83230
103179
  typedef typename JoinPoint::Result __JP_Result;
83231
103180
 
83232
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103181
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83233
103182
 
83234
103183
    bool &result = *tjp->result ();
83235
103184
    if (result && csd._typeofs > 0) {
83236
 
      *csd._err << sev_error << csd._dss->token ()->location () 
 
103185
      *csd._err << Puma::sev_error << csd._dss->token ()->location () 
83237
103186
                << "invalid type specified in declaration"
83238
 
                << endMessage;
 
103187
                << Puma::endMessage;
83239
103188
      result = false;
83240
103189
    }
83241
103190
  }
83242
 
#line 83243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103191
#line 103192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83243
103192
 
83244
103193
private:
83245
103194
 
83246
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103195
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83247
103196
 
83248
103197
 
83249
103198
  // make the type creation function aware of 'typeof'
83250
103199
  
83251
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103200
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83252
103201
 
83253
103202
public: template<class JoinPoint> void __a12_after 
83254
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103203
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83255
103204
 
83256
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83257
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
83258
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103205
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103206
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
103207
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83259
103208
 {
83260
 
#line 83261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103209
#line 103210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83261
103210
 
83262
103211
  typedef typename JoinPoint::That __JP_That;
83263
103212
  typedef typename JoinPoint::Target __JP_Target;
83264
103213
  typedef typename JoinPoint::Result __JP_Result;
83265
103214
 
83266
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103215
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83267
103216
 
83268
 
    CTypeInfo *&result = *tjp->result ();
 
103217
    Puma::CTypeInfo *&result = *tjp->result ();
83269
103218
    if (result->isUndefined () && csd._typeofs) {
83270
103219
      csd._typeofs--;
83271
103220
      if (csd._typeof_node->Type ()) {
83272
 
        result = CTypeInfo::Duplicate (csd._typeof_node->Type ());
 
103221
        result = Puma::CTypeInfo::Duplicate (csd._typeof_node->Type ());
83273
103222
      }
83274
103223
    }
83275
103224
  }
83276
 
#line 83277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103225
#line 103226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83277
103226
 
83278
103227
private:
83279
103228
 
83280
 
#line 240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103229
#line 260 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83281
103230
 
83282
103231
  
83283
103232
  // ----------------------
83286
103235
 
83287
103236
  // structural extensions
83288
103237
  
83289
 
#line 247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103238
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83290
103239
 
83291
103240
 
83292
103241
  
83293
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103242
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83294
103243
 
83295
103244
public: template<class JoinPoint> void __a13_after 
83296
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103245
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83297
103246
 
83298
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103247
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83299
103248
(JoinPoint *tjp)
83300
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103249
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83301
103250
 {
83302
 
#line 83303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103251
#line 103252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83303
103252
 
83304
103253
  typedef typename JoinPoint::That __JP_That;
83305
103254
  typedef typename JoinPoint::Target __JP_Target;
83306
103255
  typedef typename JoinPoint::Result __JP_Result;
83307
103256
 
83308
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103257
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83309
103258
 
83310
103259
    if (gnu_builtins)
83311
103260
      tjp->that ()->define_gnu_builtins ();
83312
103261
  }
83313
 
#line 83314 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103262
#line 103263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83314
103263
 
83315
103264
private:
83316
103265
 
83317
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103266
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83318
103267
 
83319
103268
 
83320
103269
  // ----------------------------------------------------
83322
103271
  // ----------------------------------------------------
83323
103272
 
83324
103273
  
83325
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103274
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83326
103275
 
83327
103276
public: template<class JoinPoint> void __a14_before 
83328
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103277
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83329
103278
 
83330
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103279
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83331
103280
(JoinPoint *tjp)
83332
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103281
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83333
103282
 {
83334
 
#line 83335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103283
#line 103284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83335
103284
 
83336
103285
  typedef typename JoinPoint::That __JP_That;
83337
103286
  typedef typename JoinPoint::Target __JP_Target;
83338
103287
  typedef typename JoinPoint::Result __JP_Result;
83339
103288
 
83340
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103289
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83341
103290
 
83342
103291
    if (std_hack) {
83343
 
      CStructure *&scope = *(CStructure**)tjp->arg (0);
 
103292
      Puma::CStructure *&scope = *(Puma::CStructure**)tjp->arg (0);
83344
103293
      bool &nested = *(bool*)tjp->arg (1);
83345
103294
      if (scope->Parent ()->GlobalScope () &&
83346
103295
          strcmp (scope->Name (), "std") == 0)
83347
103296
        nested = true;
83348
103297
    }
83349
103298
  }
83350
 
#line 83351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103299
#line 103300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83351
103300
 
83352
103301
private:
83353
103302
 
83354
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103303
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83355
103304
 
83356
103305
  
83357
103306
  // get the configuration and check whether the GNU mode is enabled
83358
103307
  
83359
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103308
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83360
103309
 
83361
103310
public: void __a15_before 
83362
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103311
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83363
103312
 
83364
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83365
 
(Config &config)
83366
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103313
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103314
(Puma::Config &config)
 
103315
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83367
103316
 {
83368
103317
    if (config.Option ("--gnu") || config.Option ("--gnu-2.95")) {
83369
103318
      extended_asm     = true;
83377
103326
    if (config.Option ("--gnu-2.95") || config.Option ("--gnu-std-hack"))
83378
103327
      std_hack = true;
83379
103328
  }
83380
 
#line 83381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83381
 
 
83382
 
private:
83383
 
 
83384
 
#line 284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103329
#line 103330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103330
 
 
103331
private:
 
103332
 
 
103333
#line 304 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103334
 
 
103335
 
 
103336
  // --------------------------------------------------
 
103337
  // support for unnamed struct/union members
 
103338
  // --------------------------------------------------
 
103339
  
 
103340
  
 
103341
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103342
 
 
103343
public: template<class JoinPoint> void __a16_around 
 
103344
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103345
 
 
103346
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103347
(JoinPoint *tjp)
 
103348
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103349
 {
 
103350
#line 103351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103351
 
 
103352
  typedef typename JoinPoint::That __JP_That;
 
103353
  typedef typename JoinPoint::Target __JP_Target;
 
103354
  typedef typename JoinPoint::Result __JP_Result;
 
103355
 
 
103356
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103357
 
 
103358
    // 2: type_spec_seq                          ;
 
103359
    // 3: type_spec_seq  member_declarator_list  ;
 
103360
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
103361
    if (! (tjp->that ()->parse (&__JP_That
 
103362
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103363
::type_spec_seq) && 
 
103364
           tjp->that ()->opt(tjp->that ()->parse (&__JP_That
 
103365
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103366
::member_declarator_list)) && 
 
103367
           tjp->that ()->parse (Puma::TOK_SEMI_COLON))) {
 
103368
      result = (Puma::CTree*)0;
 
103369
    } else {
 
103370
      tjp->that ()->semantic ().finish_decl ();
 
103371
      result = tjp->that ()->builder ().member_decl (); 
 
103372
    }
 
103373
  }
 
103374
#line 103375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103375
 
 
103376
private:
 
103377
 
 
103378
#line 322 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83385
103379
 
83386
103380
 
83387
103381
protected:
83390
103384
    statement_exprs (false)
83391
103385
  {}
83392
103386
};
83393
 
#line 83394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
 
103387
#line 103388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
83394
103388
 
83395
103389
namespace AC {
83396
 
  template <class JoinPoint, class Binding>
83397
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp) {
83398
 
    typedef typename Binding::template Arg<0> Arg0;
83399
 
    ::ExtGnu::aspectof()->__a0_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
83400
 
  }
83401
 
  template <class JoinPoint, class Binding>
83402
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp) {
83403
 
    typedef typename Binding::template Arg<0> Arg0;
83404
 
    ::ExtGnu::aspectof()->__a1_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
83405
 
  }
83406
 
  template <class JoinPoint>
83407
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
 
103390
  template <class JoinPoint>
 
103391
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp) {
 
103392
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a0_around::template Arg<0> Arg0;
 
103393
    ::ExtGnu::aspectof()->__a0_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
103394
  }
 
103395
  template <class JoinPoint>
 
103396
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp) {
 
103397
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a1_after::template Arg<0> Arg0;
 
103398
    ::ExtGnu::aspectof()->__a1_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
103399
  }
 
103400
  template <class JoinPoint>
 
103401
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
83408
103402
    ::ExtGnu::aspectof()->__a2_after (tjp);
83409
103403
  }
83410
103404
  template <class JoinPoint>
83411
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
 
103405
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
83412
103406
    ::ExtGnu::aspectof()->__a3_around (tjp);
83413
103407
  }
83414
103408
  template <class JoinPoint>
83415
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
 
103409
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
83416
103410
    ::ExtGnu::aspectof()->__a4_after (tjp);
83417
103411
  }
83418
103412
  template <class JoinPoint>
83419
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
 
103413
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
83420
103414
    ::ExtGnu::aspectof()->__a5_after (tjp);
83421
103415
  }
83422
103416
  template <class JoinPoint>
83423
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
 
103417
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
83424
103418
    ::ExtGnu::aspectof()->__a6_after (tjp);
83425
103419
  }
83426
 
  template <class JoinPoint, class Binding>
83427
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
83428
 
    typedef typename Binding::template Arg<0> Arg0;
 
103420
  template <class JoinPoint>
 
103421
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
 
103422
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a7_before::template Arg<0> Arg0;
83429
103423
    ::ExtGnu::aspectof()->__a7_before ((Puma::CSemDeclSpecs &)Arg0::val (tjp));
83430
103424
  }
83431
 
  template <class JoinPoint, class Binding>
83432
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
83433
 
    typedef typename Binding::template Arg<0> Arg0;
83434
 
    typedef typename Binding::template Arg<1> Arg1;
 
103425
  template <class JoinPoint>
 
103426
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
 
103427
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<0> Arg0;
 
103428
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<1> Arg1;
83435
103429
    ::ExtGnu::aspectof()->__a8_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (Puma::CTree *)Arg1::val (tjp));
83436
103430
  }
83437
 
  template <class JoinPoint, class Binding>
83438
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
83439
 
    typedef typename Binding::template Arg<0> Arg0;
83440
 
    typedef typename Binding::template Arg<1> Arg1;
 
103431
  template <class JoinPoint>
 
103432
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
 
103433
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<0> Arg0;
 
103434
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<1> Arg1;
83441
103435
    ::ExtGnu::aspectof()->__a9_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (bool &)Arg1::val (tjp));
83442
103436
  }
83443
 
  template <class JoinPoint, class Binding>
83444
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
83445
 
    typedef typename Binding::template Arg<0> Arg0;
 
103437
  template <class JoinPoint>
 
103438
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
 
103439
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a10_after::template Arg<0> Arg0;
83446
103440
    ::ExtGnu::aspectof()->__a10_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
83447
103441
  }
83448
 
  template <class JoinPoint, class Binding>
83449
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
83450
 
    typedef typename Binding::template Arg<0> Arg0;
 
103442
  template <class JoinPoint>
 
103443
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
 
103444
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a11_after::template Arg<0> Arg0;
83451
103445
    ::ExtGnu::aspectof()->__a11_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
83452
103446
  }
83453
 
  template <class JoinPoint, class Binding>
83454
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
83455
 
    typedef typename Binding::template Arg<0> Arg0;
 
103447
  template <class JoinPoint>
 
103448
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
 
103449
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a12_after::template Arg<0> Arg0;
83456
103450
    ::ExtGnu::aspectof()->__a12_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
83457
103451
  }
83458
103452
  template <class JoinPoint>
83459
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
 
103453
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
83460
103454
    ::ExtGnu::aspectof()->__a13_after (tjp);
83461
103455
  }
83462
103456
  template <class JoinPoint>
83463
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
 
103457
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
83464
103458
    ::ExtGnu::aspectof()->__a14_before (tjp);
83465
103459
  }
83466
 
  template <class JoinPoint, class Binding>
83467
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
83468
 
    typedef typename Binding::template Arg<0> Arg0;
 
103460
  template <class JoinPoint>
 
103461
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
 
103462
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a15_before::template Arg<0> Arg0;
83469
103463
    ::ExtGnu::aspectof()->__a15_before ((Puma::Config &)Arg0::val (tjp));
83470
103464
  }
 
103465
  template <class JoinPoint>
 
103466
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp) {
 
103467
    ::ExtGnu::aspectof()->__a16_around (tjp);
 
103468
  }
83471
103469
83472
103470
 
83473
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103471
#line 329 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83474
103472
 
83475
103473
 
83476
103474
 
83480
103478
 
83481
103479
// add rules to the C Syntax
83482
103480
 
83483
 
#line 305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83484
 
 
83485
 
 
83486
 
 
83487
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83488
 
 
83489
 
 
83490
 
 
83491
 
#line 321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83492
 
 
83493
 
 
83494
 
 
83495
 
#line 327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83496
 
 
83497
 
 
83498
 
 
83499
 
#line 332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103481
#line 344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103482
 
 
103483
 
 
103484
 
 
103485
#line 352 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103486
 
 
103487
 
 
103488
 
 
103489
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103490
 
 
103491
 
 
103492
 
 
103493
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103494
 
 
103495
 
 
103496
 
 
103497
#line 374 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103498
 
 
103499
 
 
103500
 
 
103501
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83500
103502
 
83501
103503
 
83502
103504
// extend the C Builder
83503
103505
 
83504
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83505
 
 
83506
 
 
83507
 
 
83508
 
#line 355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83509
 
 
83510
 
 
83511
 
 
83512
 
#line 359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83513
 
 
83514
 
 
83515
 
 
83516
 
#line 364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103506
#line 389 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103507
 
 
103508
 
 
103509
 
 
103510
#line 394 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103511
 
 
103512
 
 
103513
 
 
103514
#line 408 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103515
 
 
103516
 
 
103517
 
 
103518
#line 412 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103519
 
 
103520
 
 
103521
 
 
103522
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83517
103523
 
83518
103524
        
83519
103525
 
83520
 
#line 368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103526
#line 421 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83521
103527
 
83522
103528
 
83523
103529
// -------------------------
83526
103532
 
83527
103533
// C Builder extension
83528
103534
 
83529
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83530
 
 
83531
 
 
83532
 
 
83533
 
#line 382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103535
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103536
 
 
103537
 
 
103538
 
 
103539
#line 435 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83534
103540
 
83535
103541
 
83536
103542
// C semantic extension
83537
103543
 
83538
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103544
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83539
103545
 
83540
103546
 
83541
103547
// the necessary #include "..CSemVisitor.h" in CSemExpr.cc will is inserted
83542
103548
// manually (for now)!
83543
103549
 
83544
 
#line 422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103550
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83545
103551
 
83546
103552
 
83547
103553
// C++ semantic extension
83548
103554
 
83549
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103555
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83550
103556
 
83551
103557
 
83552
103558
// the necessary #include "..CCSemVisitor.h" in CCSemExpr.cc will is inserted
83553
103559
// manually (for now)!
83554
103560
 
83555
 
#line 462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103561
#line 515 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83556
103562
 
83557
103563
 
83558
103564
// ----------------------
83561
103567
 
83562
103568
// add rules to the C Syntax for the Gnu Typeof syntax
83563
103569
 
83564
 
#line 472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83565
 
 
83566
 
 
83567
 
 
83568
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103570
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103571
 
 
103572
 
 
103573
 
 
103574
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83569
103575
 
83570
103576
 
83571
103577
// add rules to the C Builder for the Gnu Typeof syntax
83572
103578
 
83573
 
#line 484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103579
#line 537 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83574
103580
 
83575
103581
 
83576
103582
// builder extension
83577
103583
 
83578
 
#line 497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103584
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83579
103585
 
83580
103586
 
83581
103587
// C semantic extension
83582
103588
 
83583
 
#line 503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83584
 
 
83585
 
 
83586
 
 
83587
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103589
#line 556 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103590
 
 
103591
 
 
103592
 
 
103593
#line 574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83588
103594
 
83589
103595
 
83590
103596
// C++ semantic extension
83591
103597
 
83592
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83593
 
 
83594
 
 
83595
 
 
83596
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103598
#line 580 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103599
 
 
103600
 
 
103601
 
 
103602
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83597
103603
 
83598
103604
 
83599
103605
 
83603
103609
 
83604
103610
// extend the C/C++ semantic
83605
103611
 
83606
 
#line 555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
83607
 
 
83608
 
 
83609
 
 
83610
 
#line 894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103612
#line 608 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
103613
 
 
103614
 
 
103615
 
 
103616
#line 947 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
83611
103617
 
83612
103618
 
83613
103619
 
83614
103620
#endif /* __ext_gnu_h__ */
83615
103621
 
83616
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
83617
 
#endif
83618
 
#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__)
83619
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
83620
 
 
83621
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
83622
 
#endif
83623
 
#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__)
83624
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
103622
#line 115 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
 
103623
#endif
 
103624
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
103625
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
103626
 
 
103627
#line 119 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
 
103628
#endif
 
103629
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
103630
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
103631
 
 
103632
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103633
// This file is part of PUMA.
 
103634
// Copyright (C) 1999-2003  The PUMA developer team.
 
103635
//                                                                
 
103636
// This program is free software;  you can redistribute it and/or 
 
103637
// modify it under the terms of the GNU General Public License as 
 
103638
// published by the Free Software Foundation; either version 2 of 
 
103639
// the License, or (at your option) any later version.            
 
103640
//                                                                
 
103641
// This program is distributed in the hope that it will be useful,
 
103642
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
103643
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
103644
// GNU General Public License for more details.                   
 
103645
//                                                                
 
103646
// You should have received a copy of the GNU General Public      
 
103647
// License along with this program; if not, write to the Free     
 
103648
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
103649
// MA  02111-1307  USA                                            
 
103650
 
 
103651
#ifndef __CMatchSyntax_ah__
 
103652
#define __CMatchSyntax_ah__
 
103653
 
 
103654
 
 
103655
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103656
namespace Puma {
 
103657
  class CSyntax;
 
103658
  class CCSyntax;
 
103659
  class CBuilder;
 
103660
  class CSemantic;
 
103661
  class Container;
 
103662
  class CTree;
 
103663
  class CStrLiteral;
 
103664
  class CT_Any;
 
103665
  class CT_AnyList;
 
103666
  class CT_AnyExtension;
 
103667
  class CT_AnyCondition;
 
103668
  class CT_SimpleName;
 
103669
} // namespace Puma
 
103670
 
 
103671
 
 
103672
namespace Puma {
 
103673
  
 
103674
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103675
 
 
103676
  
 
103677
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103678
 
 
103679
  
 
103680
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103681
 
 
103682
}
 
103683
 
 
103684
 
 
103685
#line 103686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103686
class CCExprResolve;
 
103687
class CExprResolve;
 
103688
class WinIfExists;
 
103689
class WinImportHandler;
 
103690
class WinMacros;
 
103691
class WinAsm;
 
103692
class WinDeclSpecs;
 
103693
class WinMemberExplSpec;
 
103694
class WinTypeKeywords;
 
103695
class WinFriend;
 
103696
class ExtAC;
 
103697
class ExtACBuilderCoupling;
 
103698
class ExtACSyntaxCoupling;
 
103699
class ExtACTree;
 
103700
class ExtACKeywords;
 
103701
class ExtGnu;
 
103702
class PragmaOnceUnitState;
 
103703
class PragmaOnce;
 
103704
 
 
103705
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103706
class CMatchSyntax {
 
103707
#line 103708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103708
 
 
103709
public:
 
103710
  static CMatchSyntax *aspectof () {
 
103711
    static CMatchSyntax __instance;
 
103712
    return &__instance;
 
103713
  }
 
103714
  static CMatchSyntax *aspectOf () {
 
103715
    return aspectof ();
 
103716
  }
 
103717
private:
 
103718
 
 
103719
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103720
 
 
103721
#line 103722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103722
  friend class ::CCExprResolve;
 
103723
  friend class ::CExprResolve;
 
103724
  friend class ::WinIfExists;
 
103725
  friend class ::WinImportHandler;
 
103726
  friend class ::WinMacros;
 
103727
  friend class ::WinAsm;
 
103728
  friend class ::WinDeclSpecs;
 
103729
  friend class ::WinMemberExplSpec;
 
103730
  friend class ::WinTypeKeywords;
 
103731
  friend class ::WinFriend;
 
103732
  friend class ::ExtAC;
 
103733
  friend class ::ExtACBuilderCoupling;
 
103734
  friend class ::ExtACSyntaxCoupling;
 
103735
  friend class ::ExtACTree;
 
103736
  friend class ::ExtACKeywords;
 
103737
  friend class ::ExtGnu;
 
103738
  friend class ::PragmaOnceUnitState;
 
103739
  friend class ::PragmaOnce;
 
103740
 
 
103741
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103742
 
 
103743
  
 
103744
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103745
 
 
103746
  
 
103747
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103748
  
 
103749
  
 
103750
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103751
 
 
103752
  
 
103753
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103754
 
 
103755
 
 
103756
protected:
 
103757
  // flag to enable/disable parsing match expressions
 
103758
  bool match_expr;
 
103759
 
 
103760
protected:
 
103761
  CMatchSyntax () : match_expr (false) {}
 
103762
  
 
103763
  // introduce wildcard rules to CSyntax and CCSyntax
 
103764
  
 
103765
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103766
 
 
103767
  
 
103768
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103769
 
 
103770
 
 
103771
  // extend CBuilder
 
103772
  
 
103773
#line 70 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103774
 
 
103775
 
 
103776
  // extend CSemantic
 
103777
  
 
103778
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103779
 
 
103780
 
 
103781
  // let first parse wildcards before parsing anything else
 
103782
  
 
103783
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103784
 
 
103785
public: template<class JoinPoint> void __a0_around 
 
103786
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103787
 
 
103788
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103789
(JoinPoint *tjp)
 
103790
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103791
 {
 
103792
#line 103793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103793
 
 
103794
  JoinPoint *&thisJoinPoint = tjp;
 
103795
 
 
103796
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103797
 
 
103798
#line 103799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103799
 
 
103800
  typedef typename JoinPoint::That __JP_That;
 
103801
  typedef typename JoinPoint::Target __JP_Target;
 
103802
  typedef typename JoinPoint::Result __JP_Result;
 
103803
 
 
103804
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103805
 
 
103806
    if (match_expr &&
 
103807
        thisJoinPoint->that ()->parse (&__JP_That
 
103808
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103809
::wildcards)) 
 
103810
      *(Puma::CTree**)thisJoinPoint->result () = 
 
103811
        thisJoinPoint->that ()->builder ().get_node (); 
 
103812
    else 
 
103813
      thisJoinPoint->action ().trigger (); 
 
103814
  }
 
103815
#line 103816 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103816
 
 
103817
protected:
 
103818
 
 
103819
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103820
 
 
103821
 
 
103822
  // extend the syntax to parse ANYs
 
103823
 
 
103824
  
 
103825
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103826
 
 
103827
public: template<class JoinPoint> void __a1_around 
 
103828
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103829
 
 
103830
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103831
(JoinPoint *tjp)
 
103832
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103833
 {
 
103834
#line 103835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103835
 
 
103836
  JoinPoint *&thisJoinPoint = tjp;
 
103837
 
 
103838
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103839
 
 
103840
#line 103841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103841
 
 
103842
  typedef typename JoinPoint::That __JP_That;
 
103843
  typedef typename JoinPoint::Target __JP_Target;
 
103844
  typedef typename JoinPoint::Result __JP_Result;
 
103845
 
 
103846
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103847
 
 
103848
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR)) {
 
103849
      thisJoinPoint->that ()->parse (&__JP_That
 
103850
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103851
::wc_extension); 
 
103852
      *(Puma::CTree**)thisJoinPoint->result () = 
 
103853
        thisJoinPoint->that ()->builder ().any (); 
 
103854
    } else 
 
103855
      thisJoinPoint->action ().trigger (); 
 
103856
  }
 
103857
#line 103858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103858
 
 
103859
protected:
 
103860
 
 
103861
#line 108 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103862
 
 
103863
 
 
103864
  
 
103865
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103866
 
 
103867
public: template<class JoinPoint> void __a2_around 
 
103868
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103869
 
 
103870
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103871
(JoinPoint *tjp)
 
103872
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103873
 {
 
103874
#line 103875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103875
 
 
103876
  JoinPoint *&thisJoinPoint = tjp;
 
103877
 
 
103878
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103879
 
 
103880
#line 103881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103881
 
 
103882
  typedef typename JoinPoint::That __JP_That;
 
103883
  typedef typename JoinPoint::Target __JP_Target;
 
103884
  typedef typename JoinPoint::Result __JP_Result;
 
103885
 
 
103886
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103887
 
 
103888
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR_LIST)) {
 
103889
      thisJoinPoint->that ()->parse (&__JP_That
 
103890
#line 113 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103891
::wc_extension); 
 
103892
      *(Puma::CTree**)thisJoinPoint->result () = 
 
103893
        thisJoinPoint->that ()->builder ().any_list (); 
 
103894
    } else 
 
103895
      thisJoinPoint->action ().trigger (); 
 
103896
  }
 
103897
#line 103898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103898
 
 
103899
protected:
 
103900
 
 
103901
#line 118 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103902
 
 
103903
 
 
103904
  
 
103905
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103906
 
 
103907
public: template<class JoinPoint> void __a3_around 
 
103908
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103909
 
 
103910
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103911
(JoinPoint *tjp)
 
103912
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103913
 {
 
103914
#line 103915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103915
 
 
103916
  JoinPoint *&thisJoinPoint = tjp;
 
103917
 
 
103918
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103919
 
 
103920
#line 103921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103921
 
 
103922
  typedef typename JoinPoint::That __JP_That;
 
103923
  typedef typename JoinPoint::Target __JP_Target;
 
103924
  typedef typename JoinPoint::Result __JP_Result;
 
103925
 
 
103926
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103927
 
 
103928
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ID_EXPR)) {
 
103929
      thisJoinPoint->that ()->parse (&__JP_That
 
103930
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103931
::wc_extension); 
 
103932
      *(Puma::CTree**)thisJoinPoint->result () = 
 
103933
        thisJoinPoint->that ()->builder ().any (); 
 
103934
    } else 
 
103935
      thisJoinPoint->action ().trigger (); 
 
103936
  }
 
103937
#line 103938 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103938
 
 
103939
protected:
 
103940
 
 
103941
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103942
 
 
103943
 
 
103944
  
 
103945
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103946
 
 
103947
public: template<class JoinPoint> void __a4_around 
 
103948
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103949
 
 
103950
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103951
(JoinPoint *tjp)
 
103952
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103953
 {
 
103954
#line 103955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103955
 
 
103956
  JoinPoint *&thisJoinPoint = tjp;
 
103957
 
 
103958
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103959
 
 
103960
#line 103961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103961
 
 
103962
  typedef typename JoinPoint::That __JP_That;
 
103963
  typedef typename JoinPoint::Target __JP_Target;
 
103964
  typedef typename JoinPoint::Result __JP_Result;
 
103965
 
 
103966
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103967
 
 
103968
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_IDENTIFIER)) {
 
103969
      thisJoinPoint->that ()->parse (&__JP_That
 
103970
#line 133 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103971
::wc_extension); 
 
103972
      *(Puma::CTree**)thisJoinPoint->result () = 
 
103973
        thisJoinPoint->that ()->builder ().any (); 
 
103974
    } else 
 
103975
      thisJoinPoint->action ().trigger (); 
 
103976
  }
 
103977
#line 103978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103978
 
 
103979
protected:
 
103980
 
 
103981
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103982
 
 
103983
 
 
103984
  
 
103985
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103986
 
 
103987
public: template<class JoinPoint> void __a5_after 
 
103988
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103989
 
 
103990
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103991
(JoinPoint *tjp)
 
103992
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
103993
 {
 
103994
#line 103995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
103995
 
 
103996
  typedef typename JoinPoint::That __JP_That;
 
103997
  typedef typename JoinPoint::Target __JP_Target;
 
103998
  typedef typename JoinPoint::Result __JP_Result;
 
103999
 
 
104000
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104001
 
 
104002
      tjp->that ()->_decl_spec_1.set (Puma::TOK_ANY_DECL_SPEC);
 
104003
  }
 
104004
#line 104005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104005
 
 
104006
protected:
 
104007
 
 
104008
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104009
 
 
104010
  
 
104011
  
 
104012
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104013
 
 
104014
public: template<class JoinPoint> void __a6_after 
 
104015
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104016
 
 
104017
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104018
(JoinPoint *tjp)
 
104019
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104020
 {
 
104021
#line 104022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104022
 
 
104023
  typedef typename JoinPoint::That __JP_That;
 
104024
  typedef typename JoinPoint::Target __JP_Target;
 
104025
  typedef typename JoinPoint::Result __JP_Result;
 
104026
 
 
104027
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104028
 
 
104029
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
104030
    if (match_expr && !result &&
 
104031
        tjp->that ()->parse (Puma::TOK_ANY_DECL_SPEC) &&
 
104032
        tjp->that ()->parse (&__JP_That
 
104033
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104034
::wc_extension)) {
 
104035
      result = tjp->that ()->builder().any ();
 
104036
    }
 
104037
  }
 
104038
#line 104039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104039
 
 
104040
protected:
 
104041
 
 
104042
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104043
 
 
104044
 
 
104045
  
 
104046
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104047
 
 
104048
public: template<class JoinPoint> void __a7_around 
 
104049
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104050
 
 
104051
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104052
(JoinPoint *tjp)
 
104053
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104054
 {
 
104055
#line 104056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104056
 
 
104057
  JoinPoint *&thisJoinPoint = tjp;
 
104058
 
 
104059
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104060
 
 
104061
#line 104062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104062
 
 
104063
  typedef typename JoinPoint::That __JP_That;
 
104064
  typedef typename JoinPoint::Target __JP_Target;
 
104065
  typedef typename JoinPoint::Result __JP_Result;
 
104066
 
 
104067
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104068
 
 
104069
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECL_SPEC_SEQ)) {
 
104070
      thisJoinPoint->that ()->parse (&__JP_That
 
104071
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104072
::wc_extension); 
 
104073
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104074
        thisJoinPoint->that ()->builder ().any_list (); 
 
104075
    } else 
 
104076
      thisJoinPoint->action ().trigger (); 
 
104077
  }
 
104078
#line 104079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104079
 
 
104080
protected:
 
104081
 
 
104082
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104083
 
 
104084
 
 
104085
  
 
104086
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104087
 
 
104088
public: template<class JoinPoint> void __a8_around 
 
104089
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104090
 
 
104091
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104092
(JoinPoint *tjp)
 
104093
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104094
 {
 
104095
#line 104096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104096
 
 
104097
  JoinPoint *&thisJoinPoint = tjp;
 
104098
 
 
104099
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104100
 
 
104101
#line 104102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104102
 
 
104103
  typedef typename JoinPoint::That __JP_That;
 
104104
  typedef typename JoinPoint::Target __JP_Target;
 
104105
  typedef typename JoinPoint::Result __JP_Result;
 
104106
 
 
104107
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104108
 
 
104109
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR_LIST)) {
 
104110
      thisJoinPoint->that ()->parse (&__JP_That
 
104111
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104112
::wc_extension); 
 
104113
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104114
        thisJoinPoint->that ()->builder ().any_list (); 
 
104115
    } else 
 
104116
      thisJoinPoint->action ().trigger (); 
 
104117
  }
 
104118
#line 104119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104119
 
 
104120
protected:
 
104121
 
 
104122
#line 173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104123
 
 
104124
 
 
104125
  
 
104126
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104127
 
 
104128
public: template<class JoinPoint> void __a9_around 
 
104129
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104130
 
 
104131
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104132
(JoinPoint *tjp)
 
104133
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104134
 {
 
104135
#line 104136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104136
 
 
104137
  JoinPoint *&thisJoinPoint = tjp;
 
104138
 
 
104139
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104140
 
 
104141
#line 104142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104142
 
 
104143
  typedef typename JoinPoint::That __JP_That;
 
104144
  typedef typename JoinPoint::Target __JP_Target;
 
104145
  typedef typename JoinPoint::Result __JP_Result;
 
104146
 
 
104147
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104148
 
 
104149
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR)) {
 
104150
      thisJoinPoint->that ()->parse (&__JP_That
 
104151
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104152
::wc_extension); 
 
104153
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104154
        thisJoinPoint->that ()->builder ().any (); 
 
104155
    } else 
 
104156
      thisJoinPoint->action ().trigger (); 
 
104157
  }
 
104158
#line 104159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104159
 
 
104160
protected:
 
104161
 
 
104162
#line 183 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104163
 
 
104164
 
 
104165
  
 
104166
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104167
 
 
104168
public: template<class JoinPoint> void __a10_around 
 
104169
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104170
 
 
104171
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104172
(JoinPoint *tjp)
 
104173
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104174
 {
 
104175
#line 104176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104176
 
 
104177
  JoinPoint *&thisJoinPoint = tjp;
 
104178
 
 
104179
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104180
 
 
104181
#line 104182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104182
 
 
104183
  typedef typename JoinPoint::That __JP_That;
 
104184
  typedef typename JoinPoint::Target __JP_Target;
 
104185
  typedef typename JoinPoint::Result __JP_Result;
 
104186
 
 
104187
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104188
 
 
104189
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECLARATOR)) {
 
104190
      thisJoinPoint->that ()->parse (&__JP_That
 
104191
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104192
::wc_extension); 
 
104193
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104194
        thisJoinPoint->that ()->builder ().any (); 
 
104195
    } else 
 
104196
      thisJoinPoint->action ().trigger (); 
 
104197
  }
 
104198
#line 104199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104199
 
 
104200
protected:
 
104201
 
 
104202
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104203
 
 
104204
 
 
104205
  
 
104206
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104207
 
 
104208
public: template<class JoinPoint> void __a11_around 
 
104209
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104210
 
 
104211
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104212
(JoinPoint *tjp)
 
104213
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104214
 {
 
104215
#line 104216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104216
 
 
104217
  JoinPoint *&thisJoinPoint = tjp;
 
104218
 
 
104219
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104220
 
 
104221
#line 104222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104222
 
 
104223
  typedef typename JoinPoint::That __JP_That;
 
104224
  typedef typename JoinPoint::Target __JP_Target;
 
104225
  typedef typename JoinPoint::Result __JP_Result;
 
104226
 
 
104227
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104228
 
 
104229
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT)) {
 
104230
      thisJoinPoint->that ()->parse (&__JP_That
 
104231
#line 198 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104232
::wc_extension); 
 
104233
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104234
        thisJoinPoint->that ()->builder ().any (); 
 
104235
    } else 
 
104236
      thisJoinPoint->action ().trigger (); 
 
104237
  }
 
104238
#line 104239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104239
 
 
104240
protected:
 
104241
 
 
104242
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104243
 
 
104244
 
 
104245
  
 
104246
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104247
 
 
104248
public: template<class JoinPoint> void __a12_around 
 
104249
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104250
 
 
104251
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104252
(JoinPoint *tjp)
 
104253
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104254
 {
 
104255
#line 104256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104256
 
 
104257
  JoinPoint *&thisJoinPoint = tjp;
 
104258
 
 
104259
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104260
 
 
104261
#line 104262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104262
 
 
104263
  typedef typename JoinPoint::That __JP_That;
 
104264
  typedef typename JoinPoint::Target __JP_Target;
 
104265
  typedef typename JoinPoint::Result __JP_Result;
 
104266
 
 
104267
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104268
 
 
104269
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ARG_DECL_SEQ)) {
 
104270
      thisJoinPoint->that ()->parse (&__JP_That
 
104271
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104272
::wc_extension); 
 
104273
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104274
        thisJoinPoint->that ()->builder ().any_list (); 
 
104275
    } else 
 
104276
      thisJoinPoint->action ().trigger (); 
 
104277
  }
 
104278
#line 104279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104279
 
 
104280
protected:
 
104281
 
 
104282
#line 213 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104283
 
 
104284
 
 
104285
  
 
104286
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104287
 
 
104288
public: template<class JoinPoint> void __a13_around 
 
104289
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104290
 
 
104291
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104292
(JoinPoint *tjp)
 
104293
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104294
 {
 
104295
#line 104296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104296
 
 
104297
  JoinPoint *&thisJoinPoint = tjp;
 
104298
 
 
104299
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104300
 
 
104301
#line 104302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104302
 
 
104303
  typedef typename JoinPoint::That __JP_That;
 
104304
  typedef typename JoinPoint::Target __JP_Target;
 
104305
  typedef typename JoinPoint::Result __JP_Result;
 
104306
 
 
104307
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104308
 
 
104309
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_FCT_BODY)) {
 
104310
      thisJoinPoint->that ()->parse (&__JP_That
 
104311
#line 218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104312
::wc_extension); 
 
104313
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104314
        thisJoinPoint->that ()->builder ().any (); 
 
104315
    } else 
 
104316
      thisJoinPoint->action ().trigger (); 
 
104317
  }
 
104318
#line 104319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104319
 
 
104320
protected:
 
104321
 
 
104322
#line 223 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104323
 
 
104324
 
 
104325
  
 
104326
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104327
 
 
104328
public: template<class JoinPoint> void __a14_around 
 
104329
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104330
 
 
104331
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104332
(JoinPoint *tjp)
 
104333
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104334
 {
 
104335
#line 104336 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104336
 
 
104337
  JoinPoint *&thisJoinPoint = tjp;
 
104338
 
 
104339
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104340
 
 
104341
#line 104342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104342
 
 
104343
  typedef typename JoinPoint::That __JP_That;
 
104344
  typedef typename JoinPoint::Target __JP_Target;
 
104345
  typedef typename JoinPoint::Result __JP_Result;
 
104346
 
 
104347
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104348
 
 
104349
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CLASS_SPEC)) {
 
104350
      thisJoinPoint->that ()->parse (&__JP_That
 
104351
#line 228 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104352
::wc_extension); 
 
104353
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104354
        thisJoinPoint->that ()->builder ().any (); 
 
104355
    } else 
 
104356
      thisJoinPoint->action ().trigger (); 
 
104357
  }
 
104358
#line 104359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104359
 
 
104360
protected:
 
104361
 
 
104362
#line 233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104363
 
 
104364
 
 
104365
  
 
104366
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104367
 
 
104368
public: template<class JoinPoint> void __a15_around 
 
104369
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104370
 
 
104371
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104372
(JoinPoint *tjp)
 
104373
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104374
 {
 
104375
#line 104376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104376
 
 
104377
  JoinPoint *&thisJoinPoint = tjp;
 
104378
 
 
104379
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104380
 
 
104381
#line 104382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104382
 
 
104383
  typedef typename JoinPoint::That __JP_That;
 
104384
  typedef typename JoinPoint::Target __JP_Target;
 
104385
  typedef typename JoinPoint::Result __JP_Result;
 
104386
 
 
104387
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104388
 
 
104389
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_SPEC)) {
 
104390
      thisJoinPoint->that ()->parse (&__JP_That
 
104391
#line 238 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104392
::wc_extension); 
 
104393
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104394
        thisJoinPoint->that ()->builder ().any_list (); 
 
104395
    } else 
 
104396
      thisJoinPoint->action ().trigger (); 
 
104397
  }
 
104398
#line 104399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104399
 
 
104400
protected:
 
104401
 
 
104402
#line 243 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104403
 
 
104404
 
 
104405
  
 
104406
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104407
 
 
104408
public: template<class JoinPoint> void __a16_around 
 
104409
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104410
 
 
104411
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104412
(JoinPoint *tjp)
 
104413
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104414
 {
 
104415
#line 104416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104416
 
 
104417
  JoinPoint *&thisJoinPoint = tjp;
 
104418
 
 
104419
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104420
 
 
104421
#line 104422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104422
 
 
104423
  typedef typename JoinPoint::That __JP_That;
 
104424
  typedef typename JoinPoint::Target __JP_Target;
 
104425
  typedef typename JoinPoint::Result __JP_Result;
 
104426
 
 
104427
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104428
 
 
104429
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_DECL)) {
 
104430
      thisJoinPoint->that ()->parse (&__JP_That
 
104431
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104432
::wc_extension); 
 
104433
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104434
        thisJoinPoint->that ()->builder ().any (); 
 
104435
    } else 
 
104436
      thisJoinPoint->action ().trigger (); 
 
104437
  }
 
104438
#line 104439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104439
 
 
104440
protected:
 
104441
 
 
104442
#line 253 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104443
 
 
104444
 
 
104445
  
 
104446
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104447
 
 
104448
public: template<class JoinPoint> void __a17_around 
 
104449
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104450
 
 
104451
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104452
(JoinPoint *tjp)
 
104453
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104454
 {
 
104455
#line 104456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104456
 
 
104457
  JoinPoint *&thisJoinPoint = tjp;
 
104458
 
 
104459
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104460
 
 
104461
#line 104462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104462
 
 
104463
  typedef typename JoinPoint::That __JP_That;
 
104464
  typedef typename JoinPoint::Target __JP_Target;
 
104465
  typedef typename JoinPoint::Result __JP_Result;
 
104466
 
 
104467
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104468
 
 
104469
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT)) {
 
104470
      thisJoinPoint->that ()->parse (&__JP_That
 
104471
#line 258 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104472
::wc_extension); 
 
104473
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104474
        thisJoinPoint->that ()->builder ().any (); 
 
104475
    } else 
 
104476
      thisJoinPoint->action ().trigger (); 
 
104477
  }
 
104478
#line 104479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104479
 
 
104480
protected:
 
104481
 
 
104482
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104483
 
 
104484
 
 
104485
  
 
104486
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104487
 
 
104488
public: template<class JoinPoint> void __a18_around 
 
104489
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104490
 
 
104491
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104492
(JoinPoint *tjp)
 
104493
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104494
 {
 
104495
#line 104496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104496
 
 
104497
  JoinPoint *&thisJoinPoint = tjp;
 
104498
 
 
104499
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104500
 
 
104501
#line 104502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104502
 
 
104503
  typedef typename JoinPoint::That __JP_That;
 
104504
  typedef typename JoinPoint::Target __JP_Target;
 
104505
  typedef typename JoinPoint::Result __JP_Result;
 
104506
 
 
104507
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104508
 
 
104509
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT_SEQ)) {
 
104510
      thisJoinPoint->that ()->parse (&__JP_That
 
104511
#line 268 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104512
::wc_extension); 
 
104513
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104514
        thisJoinPoint->that ()->builder ().any_list (); 
 
104515
    } else 
 
104516
      thisJoinPoint->action ().trigger (); 
 
104517
  }
 
104518
#line 104519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104519
 
 
104520
protected:
 
104521
 
 
104522
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104523
 
 
104524
 
 
104525
  
 
104526
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104527
 
 
104528
public: template<class JoinPoint> void __a19_around 
 
104529
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104530
 
 
104531
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104532
(JoinPoint *tjp)
 
104533
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104534
 {
 
104535
#line 104536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104536
 
 
104537
  JoinPoint *&thisJoinPoint = tjp;
 
104538
 
 
104539
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104540
 
 
104541
#line 104542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104542
 
 
104543
  typedef typename JoinPoint::That __JP_That;
 
104544
  typedef typename JoinPoint::Target __JP_Target;
 
104545
  typedef typename JoinPoint::Result __JP_Result;
 
104546
 
 
104547
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104548
 
 
104549
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_BASE_CLAUSE)) {
 
104550
      thisJoinPoint->that ()->parse (&__JP_That
 
104551
#line 278 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104552
::wc_extension); 
 
104553
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104554
        thisJoinPoint->that ()->builder ().any_list (); 
 
104555
    } else 
 
104556
      thisJoinPoint->action ().trigger (); 
 
104557
  }
 
104558
#line 104559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104559
 
 
104560
protected:
 
104561
 
 
104562
#line 283 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104563
 
 
104564
 
 
104565
  
 
104566
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104567
 
 
104568
public: template<class JoinPoint> void __a20_around 
 
104569
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104570
 
 
104571
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104572
(JoinPoint *tjp)
 
104573
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104574
 {
 
104575
#line 104576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104576
 
 
104577
  JoinPoint *&thisJoinPoint = tjp;
 
104578
 
 
104579
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104580
 
 
104581
#line 104582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104582
 
 
104583
  typedef typename JoinPoint::That __JP_That;
 
104584
  typedef typename JoinPoint::Target __JP_Target;
 
104585
  typedef typename JoinPoint::Result __JP_Result;
 
104586
 
 
104587
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104588
 
 
104589
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CTOR_INIT)) {
 
104590
      thisJoinPoint->that ()->parse (&__JP_That
 
104591
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104592
::wc_extension); 
 
104593
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104594
        thisJoinPoint->that ()->builder ().any (); 
 
104595
    } else 
 
104596
      thisJoinPoint->action ().trigger (); 
 
104597
  }
 
104598
#line 104599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104599
 
 
104600
protected:
 
104601
 
 
104602
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104603
 
 
104604
 
 
104605
  
 
104606
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104607
 
 
104608
public: template<class JoinPoint> void __a21_around 
 
104609
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104610
 
 
104611
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104612
(JoinPoint *tjp)
 
104613
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104614
 {
 
104615
#line 104616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104616
 
 
104617
  JoinPoint *&thisJoinPoint = tjp;
 
104618
 
 
104619
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104620
 
 
104621
#line 104622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104622
 
 
104623
  typedef typename JoinPoint::That __JP_That;
 
104624
  typedef typename JoinPoint::Target __JP_Target;
 
104625
  typedef typename JoinPoint::Result __JP_Result;
 
104626
 
 
104627
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104628
 
 
104629
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEM_INIT)) {
 
104630
      thisJoinPoint->that ()->parse (&__JP_That
 
104631
#line 298 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104632
::wc_extension); 
 
104633
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104634
        thisJoinPoint->that ()->builder ().any (); 
 
104635
    } else 
 
104636
      thisJoinPoint->action ().trigger (); 
 
104637
  }
 
104638
#line 104639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104639
 
 
104640
protected:
 
104641
 
 
104642
#line 303 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104643
 
 
104644
 
 
104645
  // extend the syntax to be able to parse match trees
 
104646
 
 
104647
  
 
104648
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104649
 
 
104650
public: template<class JoinPoint> void __a22_around 
 
104651
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104652
 
 
104653
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104654
(JoinPoint *tjp)
 
104655
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104656
 {
 
104657
#line 104658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104658
 
 
104659
  JoinPoint *&thisJoinPoint = tjp;
 
104660
 
 
104661
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104662
 
 
104663
#line 104664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104664
 
 
104665
  typedef typename JoinPoint::That __JP_That;
 
104666
  typedef typename JoinPoint::Target __JP_Target;
 
104667
  typedef typename JoinPoint::Result __JP_Result;
 
104668
 
 
104669
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104670
 
 
104671
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_TYPEDEF)) {
 
104672
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104673
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
104674
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
104675
    } else 
 
104676
      thisJoinPoint->action ().trigger (); 
 
104677
  }
 
104678
#line 104679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104679
 
 
104680
protected:
 
104681
 
 
104682
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104683
 
 
104684
 
 
104685
  
 
104686
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104687
 
 
104688
public: template<class JoinPoint> void __a23_around 
 
104689
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104690
 
 
104691
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104692
(JoinPoint *tjp)
 
104693
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104694
 {
 
104695
#line 104696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104696
 
 
104697
  JoinPoint *&thisJoinPoint = tjp;
 
104698
 
 
104699
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104700
 
 
104701
#line 104702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104702
 
 
104703
  typedef typename JoinPoint::That __JP_That;
 
104704
  typedef typename JoinPoint::Target __JP_Target;
 
104705
  typedef typename JoinPoint::Result __JP_Result;
 
104706
 
 
104707
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104708
 
 
104709
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_CLASS)) {
 
104710
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104711
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
104712
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
104713
    } else 
 
104714
      thisJoinPoint->action ().trigger (); 
 
104715
  }
 
104716
#line 104717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104717
 
 
104718
protected:
 
104719
 
 
104720
#line 325 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104721
 
 
104722
 
 
104723
  
 
104724
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104725
 
 
104726
public: template<class JoinPoint> void __a24_around 
 
104727
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104728
 
 
104729
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104730
(JoinPoint *tjp)
 
104731
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104732
 {
 
104733
#line 104734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104734
 
 
104735
  JoinPoint *&thisJoinPoint = tjp;
 
104736
 
 
104737
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104738
 
 
104739
#line 104740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104740
 
 
104741
  typedef typename JoinPoint::That __JP_That;
 
104742
  typedef typename JoinPoint::Target __JP_Target;
 
104743
  typedef typename JoinPoint::Result __JP_Result;
 
104744
 
 
104745
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104746
 
 
104747
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_ENUM)) {
 
104748
      *(Puma::CTree**)thisJoinPoint->result () = 
 
104749
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
104750
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
104751
    } else 
 
104752
      thisJoinPoint->action ().trigger (); 
 
104753
  }
 
104754
#line 104755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104755
 
 
104756
protected:
 
104757
 
 
104758
#line 335 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104759
 
 
104760
 
 
104761
  // configure parsing match expressions
 
104762
  
 
104763
  
 
104764
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104765
 
 
104766
public: void __a25_before 
 
104767
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104768
 
 
104769
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104770
(Puma::Config &config)
 
104771
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104772
 {
 
104773
    match_expr = (config.Option ("--match-expr"));
 
104774
  }
 
104775
#line 104776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104776
 
 
104777
protected:
 
104778
 
 
104779
#line 342 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104780
 
 
104781
};
 
104782
#line 104783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/CMatchParser.cc"
 
104783
 
 
104784
namespace AC {
 
104785
  template <class JoinPoint>
 
104786
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
 
104787
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
 
104788
  }
 
104789
  template <class JoinPoint>
 
104790
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
 
104791
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
 
104792
  }
 
104793
  template <class JoinPoint>
 
104794
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
 
104795
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
 
104796
  }
 
104797
  template <class JoinPoint>
 
104798
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
 
104799
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
 
104800
  }
 
104801
  template <class JoinPoint>
 
104802
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
 
104803
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
 
104804
  }
 
104805
  template <class JoinPoint>
 
104806
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
 
104807
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
 
104808
  }
 
104809
  template <class JoinPoint>
 
104810
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
 
104811
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
 
104812
  }
 
104813
  template <class JoinPoint>
 
104814
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
 
104815
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
 
104816
  }
 
104817
  template <class JoinPoint>
 
104818
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
 
104819
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
 
104820
  }
 
104821
  template <class JoinPoint>
 
104822
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
 
104823
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
 
104824
  }
 
104825
  template <class JoinPoint>
 
104826
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
 
104827
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
 
104828
  }
 
104829
  template <class JoinPoint>
 
104830
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
 
104831
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
 
104832
  }
 
104833
  template <class JoinPoint>
 
104834
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
 
104835
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
 
104836
  }
 
104837
  template <class JoinPoint>
 
104838
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
 
104839
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
 
104840
  }
 
104841
  template <class JoinPoint>
 
104842
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
 
104843
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
 
104844
  }
 
104845
  template <class JoinPoint>
 
104846
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
 
104847
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
 
104848
  }
 
104849
  template <class JoinPoint>
 
104850
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
 
104851
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
 
104852
  }
 
104853
  template <class JoinPoint>
 
104854
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
 
104855
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
 
104856
  }
 
104857
  template <class JoinPoint>
 
104858
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
 
104859
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
 
104860
  }
 
104861
  template <class JoinPoint>
 
104862
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
 
104863
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
 
104864
  }
 
104865
  template <class JoinPoint>
 
104866
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
 
104867
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
 
104868
  }
 
104869
  template <class JoinPoint>
 
104870
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
 
104871
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
 
104872
  }
 
104873
  template <class JoinPoint>
 
104874
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
 
104875
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
 
104876
  }
 
104877
  template <class JoinPoint>
 
104878
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
 
104879
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
 
104880
  }
 
104881
  template <class JoinPoint>
 
104882
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
 
104883
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
 
104884
  }
 
104885
  template <class JoinPoint>
 
104886
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
 
104887
    typedef typename JoinPoint::Binding_CMatchSyntax_CMatchSyntax_a25_before::template Arg<0> Arg0;
 
104888
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
104889
  }
 
104890
 
104891
 
 
104892
#line 343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104893
 
 
104894
 
 
104895
// introduce wildcard rules to CSyntax
 
104896
 
 
104897
#line 356 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104898
 
 
104899
 
 
104900
// introduce wildcard rules to CCSyntax
 
104901
 
 
104902
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104903
 
 
104904
 
 
104905
// extend CBuilder
 
104906
 
 
104907
#line 378 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104908
 
 
104909
 
 
104910
 
 
104911
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104912
 
 
104913
         
 
104914
 
 
104915
#line 414 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104916
 
 
104917
 
 
104918
 
 
104919
#line 420 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104920
 
 
104921
 
 
104922
 
 
104923
#line 426 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104924
 
 
104925
 
 
104926
 
 
104927
#line 432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104928
 
 
104929
 
 
104930
 
 
104931
#line 437 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104932
 
 
104933
 
 
104934
/*****************************************************************************/
 
104935
/*                                                                           */
 
104936
/*                              wildcard rules                               */
 
104937
/*                                                                           */
 
104938
/*****************************************************************************/
 
104939
 
 
104940
 
 
104941
#line 449 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104942
 
 
104943
 
 
104944
 
 
104945
#line 470 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104946
 
 
104947
 
 
104948
 
 
104949
#line 477 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104950
 
 
104951
 
 
104952
 
 
104953
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104954
 
 
104955
 
 
104956
 
 
104957
#line 487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104958
 
 
104959
 
 
104960
 
 
104961
#line 494 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104962
 
 
104963
 
 
104964
 
 
104965
#line 510 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104966
 
 
104967
            
 
104968
 
 
104969
#line 523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104970
 
 
104971
 
 
104972
 
 
104973
#line 532 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104974
 
 
104975
 
 
104976
 
 
104977
#line 540 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104978
 
 
104979
 
 
104980
 
 
104981
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104982
 
 
104983
 
 
104984
 
 
104985
#line 563 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104986
 
 
104987
 
 
104988
 
 
104989
#line 569 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104990
 
 
104991
 
 
104992
 
 
104993
#line 575 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
104994
 
 
104995
 
 
104996
#endif /* __CMatchSyntax_ah__ */
 
104997
 
 
104998
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/CMatchParser.cc"
 
104999
#endif
 
105000
#endif
 
105001
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
105002
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
105003
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
83625
105004
#include "ExtACBuilderH.ah"
83626
105005
#endif
83627
 
#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__)
83628
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
105006
#endif
 
105007
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
105008
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
105009
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
83629
105010
#include "ExtACBuilderCC.ah"
83630
105011
#endif
83631
 
#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__)
83632
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
105012
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105013
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105014
#include "ExtACTree.ah"
 
105015
#endif
 
105016
#endif
 
105017
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
105018
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
105019
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
83633
105020
#include "ExtACSyntaxH.ah"
83634
105021
#endif
83635
 
#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__)
83636
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
105022
#endif
 
105023
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
105024
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
105025
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
83637
105026
#include "ExtACSyntaxCC.ah"
83638
105027
#endif
83639
 
#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__)
83640
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
83641
 
 
83642
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
83643
 
#endif
83644
 
#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__)
83645
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
83646
 
 
83647
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
83648
 
// This file is part of PUMA.
83649
 
// Copyright (C) 1999-2003  The PUMA developer team.
83650
 
//                                                                
83651
 
// This program is free software;  you can redistribute it and/or 
83652
 
// modify it under the terms of the GNU General Public License as 
83653
 
// published by the Free Software Foundation; either version 2 of 
83654
 
// the License, or (at your option) any later version.            
83655
 
//                                                                
83656
 
// This program is distributed in the hope that it will be useful,
83657
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
83658
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
83659
 
// GNU General Public License for more details.                   
83660
 
//                                                                
83661
 
// You should have received a copy of the GNU General Public      
83662
 
// License along with this program; if not, write to the Free     
83663
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
83664
 
// MA  02111-1307  USA                                            
83665
 
 
83666
 
#ifndef __ext_ac_keywords_ah__
83667
 
#define __ext_ac_keywords_ah__
83668
 
 
83669
 
 
83670
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
83671
 
 
83672
 
#line 83673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83673
 
 
83674
 
#ifndef __ac_fwd_ExtACKeywords__
83675
 
#define __ac_fwd_ExtACKeywords__
83676
 
class ExtACKeywords;
83677
 
namespace AC {
83678
 
  template <class JoinPoint, class Binding>
83679
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
83680
 
  template <class JoinPoint, class Binding>
83681
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
83682
 
  template <class JoinPoint>
83683
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
83684
 
}
83685
 
#endif
83686
 
 
83687
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
83688
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
83689
 
#endif
83690
 
 
83691
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
83692
 
// This file is part of PUMA.
83693
 
// Copyright (C) 1999-2003  The PUMA developer team.
83694
 
//                                                                
83695
 
// This program is free software;  you can redistribute it and/or 
83696
 
// modify it under the terms of the GNU General Public License as 
83697
 
// published by the Free Software Foundation; either version 2 of 
83698
 
// the License, or (at your option) any later version.            
83699
 
//                                                                
83700
 
// This program is distributed in the hope that it will be useful,
83701
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
83702
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
83703
 
// GNU General Public License for more details.                   
83704
 
//                                                                
83705
 
// You should have received a copy of the GNU General Public      
83706
 
// License along with this program; if not, write to the Free     
83707
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
83708
 
// MA  02111-1307  USA                                            
83709
 
 
83710
 
#ifndef __CProject_h__
83711
 
#define __CProject_h__
83712
 
 
83713
 
// Special project derivation for C++ sources.
83714
 
 
83715
 
#include "Puma/Config.h"
83716
 
#include "Puma/Project.h"
83717
 
#include "Puma/CScanner.h"
83718
 
#include "Puma/ErrorStream.h"
83719
 
 
83720
 
namespace Puma {
83721
 
 
83722
 
 
83723
 
class Source;
83724
 
class CTypeInfo;
83725
 
 
83726
 
 
83727
 
#line 83728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83728
 
} // closed Puma
83729
 
class WinIfExists;
83730
 
class WinImportHandler;
83731
 
class WinMacros;
83732
 
class CMatchSyntax;
83733
 
class ExtGnu;
83734
 
class ExtAC;
83735
 
class ExtACBuilderCoupling;
83736
 
class ExtACSyntaxCoupling;
83737
 
class ExtACTree;
83738
 
class ExtACKeywords;
83739
 
class WinAsm;
83740
 
class WinDeclSpecs;
83741
 
class WinMemberExplSpec;
83742
 
class WinTypeKeywords;
83743
 
class PragmaOnceUnitState;
83744
 
class PragmaOnce;
83745
 
class CCExprResolve;
83746
 
class CExprResolve;
83747
 
namespace Puma {
83748
 
 
83749
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
83750
 
class CProject : public Project {
83751
 
#line 83752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83752
 
  friend class ::WinIfExists;
83753
 
  friend class ::WinImportHandler;
83754
 
  friend class ::WinMacros;
83755
 
  friend class ::CMatchSyntax;
83756
 
  friend class ::ExtGnu;
83757
 
  friend class ::ExtAC;
83758
 
  friend class ::ExtACBuilderCoupling;
83759
 
  friend class ::ExtACSyntaxCoupling;
83760
 
  friend class ::ExtACTree;
83761
 
  friend class ::ExtACKeywords;
83762
 
  friend class ::WinAsm;
83763
 
  friend class ::WinDeclSpecs;
83764
 
  friend class ::WinMemberExplSpec;
83765
 
  friend class ::WinTypeKeywords;
83766
 
  friend class ::PragmaOnceUnitState;
83767
 
  friend class ::PragmaOnce;
83768
 
  friend class ::CCExprResolve;
83769
 
  friend class ::CExprResolve;
83770
 
 
83771
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
83772
 
 
83773
 
  Config _config;
83774
 
  CScanner _scanner;
83775
 
 
83776
 
public:
83777
 
  CProject (ErrorStream &e);
83778
 
 
83779
 
  // Constructor: Add some source directories.
83780
 
  CProject (ErrorStream &, const char *defs, 
83781
 
               const char *decls = (const char*)0); 
83782
 
 
83783
 
  // Constructor: Setup preprocessor configuration according to
83784
 
  // command line parameter and the global config file and
83785
 
  // add some source directories.
83786
 
  CProject (ErrorStream &, int &argc, char **&argv, 
83787
 
            const char *defs = (const char*)0, 
83788
 
            const char *decls = (const char*)0);
83789
 
 
83790
 
public: // Project configuration 
83791
 
  // Get the preprocessor configuration.
83792
 
  Config &config ();
83793
 
 
83794
 
  // Configure the project from the command line or a file.
83795
 
  virtual void configure (Config &);
83796
 
 
83797
 
  // Add a new file to the project.
83798
 
  Unit *addFile (Filename file);
83799
 
 
83800
 
public: // Scanner interface
83801
 
  // Get the scanner.
83802
 
  CScanner &scanner ();
83803
 
 
83804
 
  // Scan the file `file' or the source if given. When
83805
 
  // scanning a source the resulting unit gets the name `file'.
83806
 
  
83807
 
#line 83808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83808
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
83809
 
 
83810
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
83811
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
83812
 
                          bool isFile = true);
83813
 
        
83814
 
  // Scan a string. The resulting unit gets the name `name'.
83815
 
  // (and will not be registered at the unit manager!)
83816
 
  virtual Unit *scanString (const char *str, 
83817
 
                            const char *name = (const char*)0);
83818
 
 
83819
 
public: // Miscellaneous Functions
83820
 
 
83821
 
  // Give the filename needed to include a particular header file
83822
 
  Filename getInclString (Filename filename);
83823
 
 
83824
 
private:
83825
 
  // Map the type string from --size-type and --ptrdiff-type
83826
 
  // to real Puma type.
83827
 
  CTypeInfo *mapType (const char *) const;
83828
 
};
83829
 
 
83830
 
inline Config &CProject::config () 
83831
 
 { return _config; }
83832
 
inline CScanner &CProject::scanner () 
83833
 
 { return _scanner; }
83834
 
 
83835
 
 
83836
 
} // namespace Puma
83837
 
 
83838
 
#endif /* __CProject_h__ */
83839
 
 
83840
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
83841
 
// This file is part of PUMA.
83842
 
// Copyright (C) 1999-2003  The PUMA developer team.
83843
 
//                                                                
83844
 
// This program is free software;  you can redistribute it and/or 
83845
 
// modify it under the terms of the GNU General Public License as 
83846
 
// published by the Free Software Foundation; either version 2 of 
83847
 
// the License, or (at your option) any later version.            
83848
 
//                                                                
83849
 
// This program is distributed in the hope that it will be useful,
83850
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
83851
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
83852
 
// GNU General Public License for more details.                   
83853
 
//                                                                
83854
 
// You should have received a copy of the GNU General Public      
83855
 
// License along with this program; if not, write to the Free     
83856
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
83857
 
// MA  02111-1307  USA                                            
83858
 
 
83859
 
#ifndef __FileUnit__
83860
 
#define __FileUnit__
83861
 
 
83862
 
// Special Unit for files. Knows its last save location and the
83863
 
// absolute path of the corresponding file.
83864
 
 
83865
 
 
83866
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
83867
 
namespace Puma {
83868
 
 
83869
 
 
83870
 
class Project;
83871
 
 
83872
 
 
83873
 
#line 83874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83874
 
} // closed Puma
83875
 
class WinIfExists;
83876
 
class WinImportHandler;
83877
 
class WinMacros;
83878
 
class CMatchSyntax;
83879
 
class ExtGnu;
83880
 
class ExtAC;
83881
 
class ExtACBuilderCoupling;
83882
 
class ExtACSyntaxCoupling;
83883
 
class ExtACTree;
83884
 
class ExtACKeywords;
83885
 
class WinAsm;
83886
 
class WinDeclSpecs;
83887
 
class WinMemberExplSpec;
83888
 
class WinTypeKeywords;
83889
 
class PragmaOnceUnitState;
83890
 
class PragmaOnce;
83891
 
class CCExprResolve;
83892
 
class CExprResolve;
83893
 
namespace Puma {
83894
 
 
83895
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
83896
 
class FileUnit : public Unit {
83897
 
#line 83898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83898
 
  friend class ::WinIfExists;
83899
 
  friend class ::WinImportHandler;
83900
 
  friend class ::WinMacros;
83901
 
  friend class ::CMatchSyntax;
83902
 
  friend class ::ExtGnu;
83903
 
  friend class ::ExtAC;
83904
 
  friend class ::ExtACBuilderCoupling;
83905
 
  friend class ::ExtACSyntaxCoupling;
83906
 
  friend class ::ExtACTree;
83907
 
  friend class ::ExtACKeywords;
83908
 
  friend class ::WinAsm;
83909
 
  friend class ::WinDeclSpecs;
83910
 
  friend class ::WinMemberExplSpec;
83911
 
  friend class ::WinTypeKeywords;
83912
 
  friend class ::PragmaOnceUnitState;
83913
 
  friend class ::PragmaOnce;
83914
 
  friend class ::CCExprResolve;
83915
 
  friend class ::CExprResolve;
83916
 
 
83917
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
83918
 
 
83919
 
  char *_lastLocation; 
83920
 
  char *_absolutePath;
83921
 
  
83922
 
  Project *_project;
83923
 
  bool _isBelow;
83924
 
 
83925
 
public:
83926
 
  FileUnit ();
83927
 
  FileUnit (Unit &);
83928
 
  FileUnit (const List &);
83929
 
  virtual ~FileUnit ();
83930
 
            
83931
 
  virtual void name (const char *);        
83932
 
  void setLocation (const char *);    
83933
 
        
83934
 
  char *lastLocation () const;
83935
 
  char *absolutePath () const;
83936
 
  bool isFile () const;
83937
 
  
83938
 
  // Generates the absolute pathname to the file.
83939
 
  static char *absolutePath (const char *);
83940
 
  static char *resolvePath (const char *);
83941
 
  
83942
 
  // File belongs to given project?
83943
 
  bool belongsTo (Project &);
83944
 
};
83945
 
 
83946
 
inline FileUnit::FileUnit () : 
83947
 
  Unit (), 
83948
 
  _lastLocation ((char*)0), 
83949
 
  _absolutePath ((char*)0),
83950
 
  _project (0),
83951
 
  _isBelow (false)
83952
 
 {}
83953
 
inline FileUnit::FileUnit (Unit &unit) : 
83954
 
  Unit (unit), 
83955
 
  _lastLocation ((char*)0), 
83956
 
  _absolutePath ((char*)0),
83957
 
  _project (0),
83958
 
  _isBelow (false)
83959
 
 {}
83960
 
inline FileUnit::FileUnit (const List &list) : 
83961
 
  Unit (list), 
83962
 
  _lastLocation ((char*)0), 
83963
 
  _absolutePath ((char*)0),
83964
 
  _project (0),
83965
 
  _isBelow (false)  
83966
 
 {}
83967
 
inline FileUnit::~FileUnit () 
83968
 
 { if (_lastLocation) delete[] _lastLocation; 
83969
 
   if (_absolutePath) delete[] _absolutePath; }
83970
 
            
83971
 
inline char *FileUnit::lastLocation () const 
83972
 
 { return _lastLocation; }
83973
 
inline char *FileUnit::absolutePath () const 
83974
 
 { return _absolutePath; }
83975
 
inline bool FileUnit::isFile () const 
83976
 
 { return true; }
83977
 
 
83978
 
 
83979
 
} // namespace Puma
83980
 
 
83981
 
#endif /* __FileUnit__ */
83982
 
 
83983
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
83984
 
using namespace Puma;
83985
 
 
83986
 
// *****************************************
83987
 
// AspectC++ keyword handling in the scanner
83988
 
// *****************************************
83989
 
 
83990
 
#line 83991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
83991
 
class WinIfExists;
83992
 
class WinImportHandler;
83993
 
class WinMacros;
83994
 
class CMatchSyntax;
83995
 
class ExtGnu;
83996
 
class ExtAC;
83997
 
class ExtACBuilderCoupling;
83998
 
class ExtACSyntaxCoupling;
83999
 
class ExtACTree;
84000
 
class WinAsm;
84001
 
class WinDeclSpecs;
84002
 
class WinMemberExplSpec;
84003
 
class WinTypeKeywords;
84004
 
class PragmaOnceUnitState;
84005
 
class PragmaOnce;
84006
 
class CCExprResolve;
84007
 
class CExprResolve;
84008
 
 
84009
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84010
 
class ExtACKeywords {
84011
 
#line 84012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
84012
 
 
84013
 
public:
84014
 
  static ExtACKeywords *aspectof () {
84015
 
    static ExtACKeywords __instance;
84016
 
    return &__instance;
84017
 
  }
84018
 
  static ExtACKeywords *aspectOf () {
84019
 
    return aspectof ();
84020
 
  }
84021
 
private:
84022
 
 
84023
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84024
 
 
84025
 
#line 84026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
84026
 
  friend class ::WinIfExists;
84027
 
  friend class ::WinImportHandler;
84028
 
  friend class ::WinMacros;
84029
 
  friend class ::CMatchSyntax;
84030
 
  friend class ::ExtGnu;
84031
 
  friend class ::ExtAC;
84032
 
  friend class ::ExtACBuilderCoupling;
84033
 
  friend class ::ExtACSyntaxCoupling;
84034
 
  friend class ::ExtACTree;
84035
 
  friend class ::WinAsm;
84036
 
  friend class ::WinDeclSpecs;
84037
 
  friend class ::WinMemberExplSpec;
84038
 
  friend class ::WinTypeKeywords;
84039
 
  friend class ::PragmaOnceUnitState;
84040
 
  friend class ::PragmaOnce;
84041
 
  friend class ::CCExprResolve;
84042
 
  friend class ::CExprResolve;
84043
 
 
84044
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84045
 
 
84046
 
 
84047
 
  bool _prj_keywords;
84048
 
  CProject *_project; // active project
84049
 
  
84050
 
protected:
84051
 
  ExtACKeywords () : _prj_keywords (false) {}
84052
 
public:
84053
 
  // allow/forbid AspectC++ keywords in normal project files
84054
 
  void prj_keywords (bool kw) { _prj_keywords = kw; }
84055
 
  
84056
 
  
84057
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84058
 
 
84059
 
public: void __a0_before 
84060
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84061
 
 
84062
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84063
 
(CProject &project)
84064
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84065
 
 {
84066
 
    _project = &project;
84067
 
  }
84068
 
  
84069
 
  
84070
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84071
 
 
84072
 
public: template<class JoinPoint> void __a1_before 
84073
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84074
 
 
84075
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84076
 
(JoinPoint *tjp, Unit &unit)
84077
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84078
 
 {
84079
 
#line 84080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
84080
 
 
84081
 
  typedef typename JoinPoint::That __JP_That;
84082
 
  typedef typename JoinPoint::Target __JP_Target;
84083
 
  typedef typename JoinPoint::Result __JP_Result;
84084
 
 
84085
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84086
 
 
84087
 
    if (!unit.isFile ())
84088
 
      return;
84089
 
      
84090
 
    bool ac_kw = _prj_keywords;
84091
 
    // in external files the AspectC++ keywords are always identifiers
84092
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
84093
 
      ac_kw = false;
84094
 
    }
84095
 
    // in aspect headers keywords are keywords
84096
 
    else if (unit.name () &&
84097
 
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
84098
 
      ac_kw = true;
84099
 
    }
84100
 
    // finally the right flag
84101
 
    tjp->that ()->allow_aspectc (ac_kw);
84102
 
  }
84103
 
  
84104
 
  
84105
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84106
 
 
84107
 
public: template<class JoinPoint> void __a2_before 
84108
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84109
 
 
84110
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84111
 
(JoinPoint *tjp)
84112
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84113
 
 {
84114
 
#line 84115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
84115
 
 
84116
 
  typedef typename JoinPoint::That __JP_That;
84117
 
  typedef typename JoinPoint::Target __JP_Target;
84118
 
  typedef typename JoinPoint::Result __JP_Result;
84119
 
 
84120
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84121
 
 
84122
 
    _project = tjp->that ();
84123
 
  }
84124
 
};
84125
 
#line 84126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/CMatchParser.cc"
84126
 
 
84127
 
namespace AC {
84128
 
  template <class JoinPoint, class Binding>
84129
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
84130
 
    typedef typename Binding::template Arg<0> Arg0;
84131
 
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
84132
 
  }
84133
 
  template <class JoinPoint, class Binding>
84134
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
84135
 
    typedef typename Binding::template Arg<0> Arg0;
84136
 
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
84137
 
  }
84138
 
  template <class JoinPoint>
84139
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
84140
 
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
84141
 
  }
84142
 
84143
 
 
84144
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
84145
 
  
84146
 
 
84147
 
#endif /* __ext_ac_keywords_ah__ */
84148
 
 
84149
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
84150
 
#endif
84151
 
#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__)
84152
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
105028
#endif
 
105029
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105030
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105031
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105032
#include "ExtACTree.ah"
 
105033
#endif
 
105034
#endif
 
105035
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
105036
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
105037
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
105038
#include "ExtACKeywords.ah"
 
105039
#endif
 
105040
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105041
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105042
#include "PragmaOnceUnitState.ah"
 
105043
#endif
 
105044
#endif
 
105045
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
105046
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105047
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105048
#include "ExtACTree.ah"
 
105049
#endif
 
105050
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
105051
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
105052
#include "ExtGnu.ah"
 
105053
#endif
 
105054
#endif
 
105055
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
105056
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105057
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
105058
#include "ExtACTree.ah"
 
105059
#endif
 
105060
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
105061
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
105062
#include "ExtGnuCSemDeclSpecs.ah"
 
105063
#endif
 
105064
#endif
 
105065
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105066
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105067
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105068
#include "PragmaOnceUnitState.ah"
 
105069
#endif
 
105070
#endif
 
105071
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
105072
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105073
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
105074
#include "PragmaOnceUnitState.ah"
 
105075
#endif
 
105076
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
105077
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
105078
#include "PragmaOnce.ah"
 
105079
#endif
 
105080
#endif
 
105081
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
105082
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
105083
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
84153
105084
#include "TraceSyntax.ah"
84154
105085
#endif
84155
 
#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__)
84156
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
84157
 
#include "WinAsm.ah"
84158
 
#endif
84159
 
#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__)
84160
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
84161
 
#include "WinDeclSpecs.ah"
84162
 
#endif
84163
 
#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__)
84164
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
84165
 
#include "WinMemberExplSpec.ah"
84166
 
#endif
84167
 
#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__)
84168
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
84169
 
#include "WinTypeKeywords.ah"
84170
 
#endif
84171
 
#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__)
84172
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
84173
 
 
84174
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/CMatchParser.cc"
84175
 
#endif
84176
 
#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__)
84177
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
84178
 
#include "PragmaOnce.ah"
84179
 
#endif
84180
 
#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__)
84181
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
84182
 
#include "CCExprResolveH.ah"
84183
 
#endif
84184
 
#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__)
84185
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
84186
 
#include "CCExprResolveCC.ah"
84187
 
#endif
84188
 
#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__)
84189
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
84190
 
#include "CExprResolveH.ah"
84191
 
#endif
84192
 
#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__)
84193
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
84194
 
#include "CExprResolveCC.ah"
84195
 
#endif
84196
 
/*** end of aspect includes ***/
84197
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
84198
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CMatchParser_cc__
84199
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_CMatchParser_cc__
 
105086
#endif
 
105087
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
105088
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
105089
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
105090
#include "CMatchSyntax.ah"
 
105091
#endif
 
105092
#endif
 
105093
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
105094
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CMatchParser_cc__
 
105095
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_CMatchParser_cc__